CGUIViewImage - 다른 뷰와 동기화 기능
1 개요
1.1 개요
시점(스케일, 오프셋)과 페이지를 이미지 뷰 간에 동기화할 수 있습니다.
- 시점 동기화
- 동기화된 이미지 뷰의 확대 배율과 오프셋이 동일하게 맞춰집니다. 한 뷰를 확대하거나 패닝하면, 동기화된 나머지 뷰들도 확대되거나 패닝됩니다.
- 페이지 동기화
- 동기화된 이미지 뷰의 선택된 페이지가 동일하게 맞춰집니다. 어떤 뷰에서 15번 페이지를 선택하면, 동기화된 나머지 뷰들도 15번 페이지가 선택됩니다.
1.2 이미지 뷰 동기화 개념
이미지 뷰를 동기화하면, 동기화한 두 개의 뷰 중 하나는 root view가 됩니다. 여기에 다른 이미지 뷰를 추가로 동기화하면, 추가한 뷰는 동일한 root view 아래에서 동기화 됩니다. 아래 그림과 같이 View 1, 2, 3이 동일한 Root View를 공유하며 동기화 되고 있습니다. Root View의 Root View는 자기 자신이며, 아래 그림에서는 총 4개의 뷰가 서로 동기화됩니다.
동기화 종류별로 root view 포인터를 각각 개별적으로 가지고 있게 됩니다.
2 시점 동기화
현재 뷰와 다른 뷰의 시점을 동기화합니다. 이미지 연산 후 원본 이미지와 결과 이미지의 미세한 픽셀 값 차이를 비교 분석할 때 유용하게 사용됩니다.
UI
이미지 뷰 위에서 마우스 우클릭> Synchronization> Point of View> View Title 메뉴를 통해 다른 뷰와 시점을 동기화하거나 동기화 해제할 수 있습니다.
API
SynchronizePointOfView() 함수 호출을 통해 동기화하거나 동기화 해제할 수 있습니다.
3 페이지 동기화
현재 뷰와 다른 뷰의 페이지를 동기화합니다. 다중 페이지 이미지의 배치 연산 후 원본 이미지와 결과 이미지의 차이를 비교 분석할 때 유용하게 사용됩니다.
UI
이미지 뷰 위에서 마우스 우클릭> Synchronization> Page Index> View Title 메뉴를 통해 다른 뷰와 페이지 인덱스를 동기화하거나 동기화 해제할 수 있습니다.
API
SynchronizePageIndex() 함수 호출을 통해 동기화하거나 동기화 해제할 수 있습니다.
4 기능 설명
4.1 동기화 상태 확인
bool IsSynchronized(EViewImageSyncOption eViewImageSyncOption) const;
- 특정 옵션에 대해 현재 이미지 뷰가 다른 이미지 뷰와 동기화되어 있는지 여부를 확인합니다.
- 매개변수:
eViewImageSyncOption- 이미지 뷰 동기화 옵션. - 반환값:
bool- 동기화된 경우true, 아니면false.
4.2 동기화된 루트 뷰 얻기
CGUIViewImage* GetRootSyncView(EViewImageSyncOption eViewImageSyncOption) const;
- 특정 옵션에 대해 현재 이미지 뷰와 동기화된 루트 뷰를 얻습니다.
- 매개변수:
eViewImageSyncOption- 이미지 뷰 동기화 옵션. - 반환값:
CGUIViewImage*- 동기화된 루트 뷰의 포인터. 동기화된 뷰가 없으면nullptr.
4.3 루트 뷰 교체
const CResult ResignRootSyncView(EViewImageSyncOption eViewImageSyncOption);
- 특정 옵션에 대해 동기화된 뷰들의 루트 뷰가 현재 이미지 뷰일 경우, 이를 다른 뷰로 교체합니다.
- 매개변수:
eViewImageSyncOption- 이미지 뷰 동기화 옵션. - 반환값:
const FLImaging::CResult- 교체 결과를 반환합니다.
4.4 시점 동기화
const CResult SynchronizePointOfView(CGUIViewImage* pTargetView)
- 현재 뷰와 다른 뷰의 시점을 동기화합니다.
- 매개변수:
pTargetView- 동기화할 이미지 뷰 포인터. - 반환값:
const FLImaging::CResult- 동기화 수행 결과를 반환합니다.
4.5 시점 동기화 해제
const CResult DesynchronizePointOfView(CGUIViewImage* pTargetView)
- 특정 뷰의 시점 동기화를 해제합니다.
- 매개변수:
pTargetView(특정 뷰에 대해서만 해제 시 필요). - 반환값:
const FLImaging::CResult- 동기화 해제 결과를 반환합니다.
4.6 페이지 인덱스 동기화
const CResult SynchronizePageIndex(CGUIViewImage* pTargetView)
- 다른 뷰와 현재 뷰의 선택된 페이지 인덱스를 동기화합니다.
- 매개변수:
pTargetView- 동기화할 이미지 뷰 포인터. - 반환값:
const FLImaging::CResult- 동기화 결과를 반환합니다.
4.7 페이지 인덱스 동기화 해제
const CResult DesynchronizePageIndex(CGUIViewImage* pTargetView)
- 다른 뷰와 현재 뷰의 선택된 페이지 인덱스를 해제합니다.
- 매개변수:
pTargetView- 동기화 해제할 이미지 뷰 포인터. - 반환값:
const FLImaging::CResult- 동기화 해제 결과를 반환합니다.