Common
1 개요
CFLFigure
클래스는 FLImaging®의 Foundation 네임스페이스에서 다양한 기하학적 도형을 정의하고, 이 도형들에 대한 연산을 수행하는 데 사용됩니다. 이 클래스는 기본적인 기하학적 구조를 지원하며, 이러한 구조를 기반으로 다양한 기하학적 계산을 수행할 수 있습니다.
모든 Figure는 CFLFigure
클래스를 상속받으며, Figure 공통적으로 사용되는 메서드나 속성 설정 등이 CFLFigure
클래스에 구현되어 있습니다.
2 상속 구조
기본적으로 Figure 객체는 CFLFigure
클래스를 상속받습니다. 자세한 상속 다이어그램은 아래 링크를 참고바랍니다.
https://flimaging.fourthlogic.co.kr/ko/d3/dbe/class_f_l_imaging_1_1_foundation_1_1_c_f_l_figure.html
3 공통 메서드
Figure 공통으로 사용되는 메서드에 대한 설명입니다.
3.1 기본 정보
Width, Height, Angle, Area, Perimeter, Length, Center좌표 등 도형의 기본적인 정보를 얻어올 수 있습니다.
CFLRect<double> figureRect(0, 0, 20, 10, 15);
double f64Width = figureRect.GetWidth();
double f64Height = figureRect.GetHeight();
double f64Angle = figureRect.GetAngle();
double f64Area = figureRect.GetArea();

3.2 형태 변환
Source Figure | ||
---|---|---|
![]() |
||
Offset | Rotate | Scale |
![]() |
![]() |
![]() |
Flip | Inflate | Extend |
![]() |
![]() |
![]() |
Offset, Rotate, Scale, Flip, Inflate, Extend 메서드로 Figure의 형태나 위치, 크기 등을 변환할 수 있습니다.
3.3 Figure 간 변환
PointArray | Ellipse | BezierCubicCurve |
---|---|---|
![]() |
![]() |
![]() |
Region | Quad | Rect |
![]() |
![]() |
![]() |
각 Figure 간 변환 시 유사한 형태로 변환을 지원합니다.
3.4 Figure 영역
BoundaryRect | Minimum Enclosing Rectangle | ConvexHull |
---|---|---|
![]() |
![]() |
![]() |
RasterRegion | RasterContour | Sampling Points |
![]() |
![]() |
![]() |
모든 Figure로부터 BoundaryRect, Minimum Enclosing Rectangle, ConvexHull, RasterRegion, RasterContour, Sampling Points 등을 얻어올 수 있습니다.
3.5 Figure 간 관계
IsCollision | GetIntersection |
---|---|
![]() |
![]() |
Region Operation | GetPointsOfMinimumDistance |
![]() |
![]() |
서로 충돌 여부 (IsCollision), 교점 (GetIntersection), 영역 연산 (GetRegionOfIntersection, GetRegionOfUnion, GetRegionOfSubtraction, GetRegionOfExclusiveOr), 최단(혹은 최대) 거리 및 해당하는 점 GetMinimumDistance(Maximum), GetPointsOfMinimumDistance(Maximum) 을 얻어올 수 있습니다.
3.6 Attribute
Figure 속성에 관련된 내용들을 설정하거나 얻어올 수 있습니다. Name, Draw 속성, RasterOperation 연산 방식, 사용자 정의 Extra Data 등을 설정할 수 있습니다.
CFLRect<double> figureAttribute(0, 0, 20, 10);
figureAttribute.SetName(L"ABC");
figureAttribute.SetAttributeDrawingFillColor(LIME);
figureAttribute.SetExtraAttribute(L"Param 1", L"10");
3.7 Save/Load
모든 Figure는 저장과 불러오기가 가능합니다.
CFLRect<double> figureSave(0, 0, 20, 10);
figureSave.Save(L"C:/Manual/Rect.fig");
// 타입을 아는 경우
CFLRect<double> figureLoad;
figureLoad.Load(L"C:/Manual/Rect.fig");
// 타입을 모르는 경우 (사용 후 메모리 해제 필요)
CFLFigure* pFigure = CFigureUtilities::LoadFigure(L"C:/Manual/Rect.fig");
4 FigureUtilities
CFigureUtilities
클래스는 Figure 사용에 도움이 되는 기능들이 있는 클래스입니다.
Figure를 Save하거나 Load할 수 있고, Figure를 문자열로 변환하거나 혹은 반대로 문자열에서 Figure로 변환을 도와줍니다.
-
Save/Load
CFigureUtilities::SaveFigure(L"C:/Manual/Figure1.fig", pFigure); CFLFigure* pFigureNew = CFigureUtilities::LoadFigure(L"C:/Manual/Figure1.fig");
-
Figure와 문자열 간 변환
ConvertFigureObjectToString
: Figure를 문자열로 변환합니다.ConvertFigureStringToObject
: 문자열을 Figure로 변환합니다.ConvertImageFiguresToFigureArray
: CFLImage에 문자열로 저장된 Figure를 FigureArray로 변환합니다.ConvertImageFiguresToFigureArrayWithExpression
: 이미지에 있는 Figure들 중에서 조건식에 부합하는 Figure를 FigureArray로 변환합니다.ConvertFigureArrayToImageFigures
: FigureArray에 있는 Figure를 이미지의 Figure로 변환합니다.ConvertFigureArrayToImageFiguresWithExpression
: FigureArray에 있는 Figure들 중에서 조건식에 부합하는 Figure를 이미지의 Figure로 변환합니다.