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();
CFLRect<double> figureRect = new CFLRect<double>(0, 0, 20, 10, 15);

double f64Width = figureRect.GetWidth();
double f64Height = figureRect.GetHeight();
double f64Angle = figureRect.GetAngle();
double f64Area = figureRect.GetArea();
figureRect = CFLRect[Double](0, 0, 20, 10, 15)

f64Width = figureRect.GetWidth()
f64Height = figureRect.GetHeight()
f64Angle = figureRect.GetAngle()
f64Area = figureRect.GetArea()
Figure 기본 정보 예시
Fig. Figure 기본 정보 예시

3.2 형태 변환

Source Figure
Source Figure
Offset Rotate Scale
Offset Rotate Scale
Flip Inflate Extend
Flip Inflate Extend
Fig. Figure의 형태 변환

Offset, Rotate, Scale, Flip, Inflate, Extend 메서드로 Figure의 형태나 위치, 크기 등을 변환할 수 있습니다.

3.3 Figure 간 변환

PointArray Ellipse BezierCubicCurve
PointArray Ellipse BezierCubicCurve
Region Quad Rect
Region Quad Rect
Fig. Figure 간 변환

각 Figure 간 변환 시 유사한 형태로 변환을 지원합니다.

3.4 Figure 영역

BoundaryRect Minimum Enclosing Rectangle ConvexHull
BoundaryRect Minimum Enclosing Rectangle ConvexHull
RasterRegion RasterContour Sampling Points
RasterRegion RasterContour Sampling Points
Fig. Figure 영역

모든 Figure로부터 BoundaryRect, Minimum Enclosing Rectangle, ConvexHull, RasterRegion, RasterContour, Sampling Points 등을 얻어올 수 있습니다.

3.5 Figure 간 관계

IsCollision GetIntersection
IsCollision GetIntersection
Region Operation GetPointsOfMinimumDistance
Region Operation GetPointsOfMinimumDistance
Fig. Figure 간 관계

서로 충돌 여부 (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");
CFLRect<double> figureAttribute = new CFLRect<double>(0, 0, 20, 10);
figureAttribute.SetName("ABC");
figureAttribute.SetAttributeDrawingFillColor((uint)EColor.LIME);
figureAttribute.SetExtraAttribute("Param 1", "10");
figureAttribute = CFLRect[Double](0, 0, 20, 10)
figureAttribute.SetName("ABC")
figureAttribute.SetAttributeDrawingFillColor(int(EColor.LIME))
figureAttribute.SetExtraAttribute("Param 1", "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");
CFLRect<double> figureSave = new CFLRect<double>(0, 0, 20, 10);
figureSave.Save("C:/Manual/Rect.fig");

// 타입을 아는 경우
CFLRect<double> figureLoad = new CFLRect<double>();
figureLoad.Load("C:/Manual/Rect.fig");

// 타입을 모르는 경우
CFLFigure pFigure = CFigureUtilities.LoadFigure("C:/Manual/Rect.fig");
figureSave = CFLRect[Double](0, 0, 20, 10)
figureSave.Save("C:/Manual/Rect.fig")

# 타입을 아는 경우
figureLoad = CFLRect[Double]()
figureLoad.Load("C:/Manual/Rect.fig")

# 타입을 모르는 경우
pFigure = CFigureUtilities.LoadFigure("C:/Manual/Rect.fig")

4 FigureUtilities

CFigureUtilities 클래스는 Figure 사용에 도움이 되는 기능들이 있는 클래스입니다. Figure를 Save하거나 Load할 수 있고, Figure를 문자열로 변환하거나 혹은 반대로 문자열에서 Figure로 변환을 도와줍니다.