FLImaging 6.6.27.1
FLDoughnut.h
1#pragma once
2
8
9#include "FLCircle.h"
10#include "FLFigureForwardDeclaration.h"
11
12
14namespace FLImaging
15{
17 namespace Foundation
18 {
24 template<typename T>
25 class FL_EXPORT CFLDoughnut : public CFLCircle<T>
26 {
27 public:
33
43 virtual T GetInnerRadius() const sealed;
44
58 virtual const CResult SetInnerRadius(int32_t innerRadius) sealed;
59
73 virtual const CResult SetInnerRadius(int64_t innerRadius) sealed;
74
88 virtual const CResult SetInnerRadius(float innerRadius) sealed;
89
103 virtual const CResult SetInnerRadius(double innerRadius) sealed;
104
105 virtual EFigureDeclType GetDeclType() const override;
106 virtual bool IsFigureValid() const override;
107
108 virtual const CResult MakeFigureValid() override;
109 virtual const CResult MakeFigureInvalid() override;
110
112 virtual bool IsSpecEqual(const CFLFigure* pFlfRhs, EFigureSpecCompareType eSpecType = EFigureSpecCompareType_Coordinates) const override;
113
125 virtual const CResult MakeFullDoughnut();
126
142 virtual const CResult MakeArc(double f64StartDegree, double f64DeltaDegree);
143
153 virtual bool IsInsideOut() sealed;
154
156 virtual const CResult GetBoundaryRect(double& left, double& top, double& right, double& bottom) const override;
157
158 using CFLFigure::Inflate;
159 virtual const CResult Inflate(double left, double top, double right, double bottom) override;
160
161 using CFLFigure::Offset;
162
164
165 using CFLFigure::Scale;
166 virtual const CResult Scale(double f64PivotX, double f64PivotY, double f64RatioX, double f64RatioY) override;
167 using CFLFigure::Rotate;
168
170
172
173 using CFLFigure::Flip;
174
175 using CFLFigure::Swap;
176 virtual const CResult Swap(CFLFigure* pFlfRight) override;
177
179 virtual const CResult GetMinimumEnclosingRectangle(CFLQuad<double>* pQuad) const override;
180
181 using CFLFigure::Extend;
182
185
187 virtual const CResult GetPointsOfMinimumDistance(const CFLFigure* pFlfTarget, CFLPointArray* pFlpaResult) const override;
188
190 virtual const CResult GetPointsOfMaximumDistance(const CFLFigure* pFlfTarget, CFLPointArray* pFlpaResult) const override;
191
192
194 virtual const CResult GetRasterRegion(CFLFigureArray* pFlfaResult, const CFLRect<int64_t>* pFlrROI = nullptr) const override;
195 virtual const CResult GetRasterRegion(Base::CFLArray<Base::TRect<int32_t>>* pFlaResult, const CFLRect<int64_t>* pFlrROI = nullptr) const override;
196 virtual const CResult GetRasterRegion(Base::CFLArray<Base::TRect<int64_t>>* pFlaResult, const CFLRect<int64_t>* pFlrROI = nullptr) const override;
197 virtual const CResult GetRasterRegion(Base::CFLArray<Base::TRect<float>>* pFlaResult, const CFLRect<int64_t>* pFlrROI = nullptr) const override;
198 virtual const CResult GetRasterRegion(Base::CFLArray<Base::TRect<double>>* pFlaResult, const CFLRect<int64_t>* pFlrROI = nullptr) const override;
199 virtual const CResult GetRasterRegion(Base::CFLArray<Base::TPoint3<int32_t>>* pFlaResult, const CFLRect<int64_t>* pFlrROI = nullptr) const override;
200
202 virtual bool IsCollision(const CFLPoint<double>* pPoint) const override;
203 virtual bool IsCollision(const CFLLine<double>* pLine) const override;
204 virtual bool IsCollision(const CFLRect<double>* pRect) const override;
205 virtual bool IsCollision(const CFLRoundRect<double>* pFlrr) const override;
206 virtual bool IsCollision(const CFLQuad<double>* pQuad) const override;
207 virtual bool IsCollision(const CFLCircle<double>* pRect) const override;
208 virtual bool IsCollision(const CFLEllipse<double>* pEll) const override;
209 virtual bool IsCollision(const CFLDoughnut<double>* pDoughnut) const override;
210 virtual bool IsCollision(const CFLCubicSpline* pFlcs) const override;
211 virtual bool IsCollision(const CFLBezierQuadraticCurve* pFlbc2) const override;
212 virtual bool IsCollision(const CFLBezierCubicCurve* pFlbc3) const override;
213 virtual bool IsCollision(const CFLBezierQuarticCurve* pFlbc4) const override;
214 virtual bool IsCollision(const CFLRegion* pFlrg) const override;
215 virtual bool IsCollision(const CFLComplexRegion* pFlcr) const override;
216 virtual bool IsCollision(const CFLFigureArray* pFlfa) const override;
217 virtual bool IsCollision(const CFLPointArray* pFlpa) const override;
218
220 virtual const CResult GetIntersection(const CFLLine<double>* pLine, CFLFigureArray* pFlfaResult) const override;
221 virtual const CResult GetIntersection(const CFLRect<double>* pRect, CFLFigureArray* pFlfaResult) const override;
222 virtual const CResult GetIntersection(const CFLRoundRect<double>* pFlrr, CFLFigureArray* pFlfaResult) const override;
223 virtual const CResult GetIntersection(const CFLQuad<double>* pQuad, CFLFigureArray* pFlfaResult) const override;
224 virtual const CResult GetIntersection(const CFLCircle<double>* pCir, CFLFigureArray* pFlfaResult) const override;
225 virtual const CResult GetIntersection(const CFLEllipse<double>* pEll, CFLFigureArray* pFlfaResult) const override;
226 virtual const CResult GetIntersection(const CFLDoughnut<double>* pDoughnut, CFLFigureArray* pFlfaResult) const override;
227 virtual const CResult GetIntersection(const CFLCubicSpline* pFlcs, CFLFigureArray* pFlfaResult) const override;
228 virtual const CResult GetIntersection(const CFLBezierQuadraticCurve* pFlbc2, CFLFigureArray* pFlfaResult) const override;
229 virtual const CResult GetIntersection(const CFLBezierCubicCurve* pFlbc3, CFLFigureArray* pFlfaResult) const override;
230 virtual const CResult GetIntersection(const CFLBezierQuarticCurve* pFlbc4, CFLFigureArray* pFlfaResult) const override;
231 virtual const CResult GetIntersection(const CFLRegion* pFlrg, CFLFigureArray* pFlfaResult) const override;
232 virtual const CResult GetIntersection(const CFLComplexRegion* pFlcr, CFLFigureArray* pFlfaResult) const override;
233 virtual const CResult GetIntersection(const CFLFigureArray* pFlfaOperand, CFLFigureArray* pFlfaResult) const override;
234
239
240
241 virtual double GetArea() const override;
242 virtual double GetPerimeter() const override;
243 virtual double GetLength() const override;
245 virtual const CResult GetVertexCount(CFLFigureArray& flfaResult, EIncludingRegionType eType = EIncludingRegionType_All, bool bRecursive = true) const override;
246 virtual const CResult GetVertexCount(CFLFigureArray* pFlfaResult, EIncludingRegionType eType = EIncludingRegionType_All, bool bRecursive = true) const override;
247
248 virtual const CResult GetRasterContour(Base::CFLArray<Base::TPoint<int32_t>>* pFlaResult, bool bExcludeSingleDelta = false) const override;
249 virtual const CResult GetRasterContour(CFLFigureArray* pFlfaResult, bool bExcludeSingleDelta = false) const override;
250 virtual const CResult GetRasterContour(CFLPointArray* pFlpaResult, bool bExcludeSingleDelta = false) const override;
251
252 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLFigureArray& flfaResult) const override;
253 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLFigureArray* pFlfaResult) const override;
254 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLPointArray& flpaResult) const override;
255 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLPointArray* pFlpaResult) const override;
256
257 virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLFigureArray& flfaResult) const override;
258 virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLFigureArray* pFlfaResult) const override;
259 virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLPointArray& flpaResult) const override;
260 virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLPointArray* pFlpaResult) const override;
261
291 virtual const CResult Set(int32_t x, int32_t y, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther) sealed;
292
322 virtual const CResult Set(int64_t x, int64_t y, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther) sealed;
323
353 virtual const CResult Set(float x, float y, float f32Radius, float f32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther) sealed;
354
384 virtual const CResult Set(double x, double y, double f64Radius, double f64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther) sealed;
385
415 virtual const CResult Set(const CFLPoint<int32_t>& flpCenter, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther)sealed;
416
446 virtual const CResult Set(const CFLPoint<int32_t>* pFlpCenter, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther)sealed;
447
477 virtual const CResult Set(const CFLPoint<int64_t>& flpCenter, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther)sealed;
478
508 virtual const CResult Set(const CFLPoint<int64_t>* pFlpCenter, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther)sealed;
509
539 virtual const CResult Set(const CFLPoint<float>& flpCenter, float f32Radius, float f32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther)sealed;
540
570 virtual const CResult Set(const CFLPoint<float>* pFlpCenter, float f32Radius, float f32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther)sealed;
571
601 virtual const CResult Set(const CFLPoint<double>& flpCenter, double f64Radius, double f64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther)sealed;
602
632 virtual const CResult Set(const CFLPoint<double>* pFlpCenter, double f64Radius, double f64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther)sealed;
633
634
635 virtual const CResult Set(const CFLPoint<int32_t>& point) override;
636 virtual const CResult Set(const CFLPoint<int32_t>* pPoint) override;
637 virtual const CResult Set(const CFLPoint<int64_t>& point) override;
638 virtual const CResult Set(const CFLPoint<int64_t>* pPoint) override;
639 virtual const CResult Set(const CFLPoint<float>& point) override;
640 virtual const CResult Set(const CFLPoint<float>* pPoint) override;
641 virtual const CResult Set(const CFLPoint<double>& point) override;
642 virtual const CResult Set(const CFLPoint<double>* pPoint) override;
643
644 virtual const CResult Set(const CFLFigureText<int32_t>& flft) override;
645 virtual const CResult Set(const CFLFigureText<int32_t>* pFlft) override;
646 virtual const CResult Set(const CFLFigureText<int64_t>& flft) override;
647 virtual const CResult Set(const CFLFigureText<int64_t>* pFlft) override;
648 virtual const CResult Set(const CFLFigureText<float>& flft) override;
649 virtual const CResult Set(const CFLFigureText<float>* pFlft) override;
650 virtual const CResult Set(const CFLFigureText<double>& flft) override;
651 virtual const CResult Set(const CFLFigureText<double>* pFlft) override;
652
653 virtual const CResult Set(const CFLLine<int32_t>& line) override;
654 virtual const CResult Set(const CFLLine<int32_t>* pLine) override;
655 virtual const CResult Set(const CFLLine<int64_t>& line) override;
656 virtual const CResult Set(const CFLLine<int64_t>* pLine) override;
657 virtual const CResult Set(const CFLLine<float>& line) override;
658 virtual const CResult Set(const CFLLine<float>* pLine) override;
659 virtual const CResult Set(const CFLLine<double>& line) override;
660 virtual const CResult Set(const CFLLine<double>* pLine) override;
661
662 virtual const CResult Set(const CFLRect<int32_t>& rect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
663 virtual const CResult Set(const CFLRect<int32_t>* pRect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
664 virtual const CResult Set(const CFLRect<int64_t>& rect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
665 virtual const CResult Set(const CFLRect<int64_t>* pRect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
666 virtual const CResult Set(const CFLRect<float>& rect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
667 virtual const CResult Set(const CFLRect<float>* pRect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
668 virtual const CResult Set(const CFLRect<double>& rect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
669 virtual const CResult Set(const CFLRect<double>* pRect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
670
671 virtual const CResult Set(const CFLRoundRect<int32_t>& flrr, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
672 virtual const CResult Set(const CFLRoundRect<int32_t>* pFlrr, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
673 virtual const CResult Set(const CFLRoundRect<int64_t>& flrr, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
674 virtual const CResult Set(const CFLRoundRect<int64_t>* pFlrr, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
675 virtual const CResult Set(const CFLRoundRect<float>& flrr, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
676 virtual const CResult Set(const CFLRoundRect<float>* pFlrr, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
677 virtual const CResult Set(const CFLRoundRect<double>& flrr, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
678 virtual const CResult Set(const CFLRoundRect<double>* pFlrr, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
679
680 virtual const CResult Set(const CFLQuad<int32_t>& quad) override;
681 virtual const CResult Set(const CFLQuad<int32_t>* pQuad) override;
682 virtual const CResult Set(const CFLQuad<int64_t>& quad) override;
683 virtual const CResult Set(const CFLQuad<int64_t>* pQuad) override;
684 virtual const CResult Set(const CFLQuad<float>& quad) override;
685 virtual const CResult Set(const CFLQuad<float>* pQuad) override;
686 virtual const CResult Set(const CFLQuad<double>& quad) override;
687 virtual const CResult Set(const CFLQuad<double>* pQuad) override;
688
689 virtual const CResult Set(const CFLCircle<int32_t>& circle) override;
690 virtual const CResult Set(const CFLCircle<int32_t>* pCircle) override;
691 virtual const CResult Set(const CFLCircle<int64_t>& circle) override;
692 virtual const CResult Set(const CFLCircle<int64_t>* pCircle) override;
693 virtual const CResult Set(const CFLCircle<float>& circle) override;
694 virtual const CResult Set(const CFLCircle<float>* pCircle) override;
695 virtual const CResult Set(const CFLCircle<double>& circle) override;
696 virtual const CResult Set(const CFLCircle<double>* pCircle) override;
697
698 virtual const CResult Set(const CFLEllipse<int32_t>& ellipse) override;
699 virtual const CResult Set(const CFLEllipse<int32_t>* pEllipse) override;
700 virtual const CResult Set(const CFLEllipse<int64_t>& ellipse) override;
701 virtual const CResult Set(const CFLEllipse<int64_t>* pEllipse) override;
702 virtual const CResult Set(const CFLEllipse<float>& ellipse) override;
703 virtual const CResult Set(const CFLEllipse<float>* pEllipse) override;
704 virtual const CResult Set(const CFLEllipse<double>& ellipse) override;
705 virtual const CResult Set(const CFLEllipse<double>* pEllipse) override;
706
707 virtual const CResult Set(const CFLDoughnut<int32_t>& doughnut) override;
708 virtual const CResult Set(const CFLDoughnut<int32_t>* pDoughnut) override;
709 virtual const CResult Set(const CFLDoughnut<int64_t>& doughnut) override;
710 virtual const CResult Set(const CFLDoughnut<int64_t>* pDoughnut) override;
711 virtual const CResult Set(const CFLDoughnut<float>& doughnut) override;
712 virtual const CResult Set(const CFLDoughnut<float>* pDoughnut) override;
713 virtual const CResult Set(const CFLDoughnut<double>& doughnut) override;
714 virtual const CResult Set(const CFLDoughnut<double>* pDoughnut) override;
715
716 virtual const CResult Set(const CFLCubicSpline& cubicSpline) override;
717 virtual const CResult Set(const CFLCubicSpline* pCubicSpline) override;
718
719 virtual const CResult Set(const CFLBezierQuadraticCurve& flbc2) override;
720 virtual const CResult Set(const CFLBezierQuadraticCurve* pFlbc2) override;
721
722 virtual const CResult Set(const CFLBezierCubicCurve& flbc3) override;
723 virtual const CResult Set(const CFLBezierCubicCurve* pFlbc3) override;
724
725 virtual const CResult Set(const CFLBezierQuarticCurve& flbc4) override;
726 virtual const CResult Set(const CFLBezierQuarticCurve* pFlbc4) override;
727
728 virtual const CResult Set(const CFLRegion& region) override;
729 virtual const CResult Set(const CFLRegion* pRegion) override;
730
731 virtual const CResult Set(const CFLComplexRegion& complexRegion) override;
732 virtual const CResult Set(const CFLComplexRegion* pComplexRegion) override;
733
734 virtual const CResult Set(const CFLPointArray& pointArray) override;
735 virtual const CResult Set(const CFLPointArray* pPointArray) override;
736
760 virtual const CResult Set(const Base::TRect<int32_t>& rect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther);
761
785 virtual const CResult Set(const Base::TRect<int32_t>* pRect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther);
786
810 virtual const CResult Set(const Base::TRect<int64_t>& rect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther);
811
835 virtual const CResult Set(const Base::TRect<int64_t>* pRect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther);
836
860 virtual const CResult Set(const Base::TRect<float>& rect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther);
861
885 virtual const CResult Set(const Base::TRect<float>* pRect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther);
886
910 virtual const CResult Set(const Base::TRect<double>& rect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther);
911
935 virtual const CResult Set(const Base::TRect<double>* pRect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther);
936
937 virtual const CResult Set(const CFLFigure& flf) override;
938 virtual const CResult Set(const CFLFigure* pFlf) override;
939
940
941
947
952 virtual ~CFLDoughnut();
953
955 // Assignment operator
956
971
986
1001
1016
1031
1046
1061
1076
1091
1106
1121
1136
1151
1166
1181
1196
1209
1222
1235
1248
1261
1274
1287
1301
1302
1304 // Comparison operator
1305
1317 bool operator==(const CFLDoughnut<int32_t>& doughnut) const;
1318
1330 bool operator==(const CFLDoughnut<int64_t>& doughnut) const;
1331
1343 bool operator==(const CFLDoughnut<float>& doughnut) const;
1344
1356 bool operator==(const CFLDoughnut<double>& doughnut) const;
1357
1369 bool operator!=(const CFLDoughnut<int32_t>& doughnut) const;
1370
1382 bool operator!=(const CFLDoughnut<int64_t>& doughnut) const;
1383
1395 bool operator!=(const CFLDoughnut<float>& doughnut) const;
1396
1408 bool operator!=(const CFLDoughnut<double>& doughnut) const;
1410
1411
1413 // Arithmetic and assignment operator
1414
1426 const CFLDoughnut<T>& operator+=(const int32_t& value);
1427
1439 const CFLDoughnut<T>& operator+=(const int64_t& value);
1440
1452 const CFLDoughnut<T>& operator+=(const float& value);
1453
1465 const CFLDoughnut<T>& operator+=(const double& value);
1466
1481
1496
1511
1526
1541
1556
1571
1586
1601
1616
1631
1646
1658 const CFLDoughnut<T>& operator-=(const int32_t& value);
1659
1671 const CFLDoughnut<T>& operator-=(const int64_t& value);
1672
1684 const CFLDoughnut<T>& operator-=(const float& value);
1685
1697 const CFLDoughnut<T>& operator-=(const double& value);
1698
1713
1728
1743
1758
1773
1788
1803
1818
1833
1848
1863
1878
1890 const CFLDoughnut<T>& operator*=(const int32_t& value);
1891
1903 const CFLDoughnut<T>& operator*=(const int64_t& value);
1904
1916 const CFLDoughnut<T>& operator*=(const float& value);
1917
1929 const CFLDoughnut<T>& operator*=(const double& value);
1930
1942 const CFLDoughnut<T>& operator/=(const int32_t& value);
1943
1955 const CFLDoughnut<T>& operator/=(const int64_t& value);
1956
1968 const CFLDoughnut<T>& operator/=(const float& value);
1969
1981 const CFLDoughnut<T>& operator/=(const double& value);
1983
1984
1986 // Arithmetic operator
1987
1999 CFLDoughnut<double> operator+(const int32_t& value) const;
2000
2012 CFLDoughnut<double> operator+(const int64_t& value) const;
2013
2025 CFLDoughnut<double> operator+(const float& value) const;
2026
2038 CFLDoughnut<double> operator+(const double& value) const;
2039
2054
2069
2084
2099
2114
2129
2144
2159
2174
2189
2204
2219
2231 CFLDoughnut<double> operator-(const int32_t& value) const;
2232
2244 CFLDoughnut<double> operator-(const int64_t& value) const;
2245
2257 CFLDoughnut<double> operator-(const float& value) const;
2258
2270 CFLDoughnut<double> operator-(const double& value) const;
2271
2286
2301
2316
2331
2346
2361
2376
2391
2406
2421
2436
2451
2463 CFLDoughnut<double> operator*(const int32_t& value) const;
2464
2476 CFLDoughnut<double> operator*(const int64_t& value) const;
2477
2489 CFLDoughnut<double> operator*(const float& value) const;
2490
2502 CFLDoughnut<double> operator*(const double& value) const;
2503
2515 CFLDoughnut<double> operator/(const int32_t& value) const;
2516
2528 CFLDoughnut<double> operator/(const int64_t& value) const;
2529
2541 CFLDoughnut<double> operator/(const float& value) const;
2542
2554 CFLDoughnut<double> operator/(const double& value) const;
2556
2557 //Friend operator
2559 // Arithmetic operator
2560
2574 friend CFLDoughnut<double> operator+(const int32_t& value, const CFLDoughnut<T>& doughnut)
2575 {
2576 CFLDoughnut<double> t(doughnut);
2577 t += value;
2578 return t;
2579 }
2580
2594 friend CFLDoughnut<double> operator+(const int64_t& value, const CFLDoughnut<T>& doughnut)
2595 {
2596 CFLDoughnut<double> t(doughnut);
2597 t += value;
2598 return t;
2599 }
2600
2614 friend CFLDoughnut<double> operator+(const float& value, const CFLDoughnut<T>& doughnut)
2615 {
2616 CFLDoughnut<double> t(doughnut);
2617 t += value;
2618 return t;
2619 }
2620
2634 friend CFLDoughnut<double> operator+(const double& value, const CFLDoughnut<T>& doughnut)
2635 {
2636 CFLDoughnut<double> t(doughnut);
2637 t += value;
2638 return t;
2639 }
2640
2654 friend CFLDoughnut<double> operator-(const int32_t& value, const CFLDoughnut<T>& doughnut)
2655 {
2656 CFLDoughnut<double> t(doughnut);
2657 t *= -1.;
2658 t += value;
2659 return t;
2660 }
2661
2675 friend CFLDoughnut<double> operator-(const int64_t& value, const CFLDoughnut<T>& doughnut)
2676 {
2677 CFLDoughnut<double> t(doughnut);
2678 t *= -1.;
2679 t += value;
2680 return t;
2681 }
2682
2696 friend CFLDoughnut<double> operator-(const float& value, const CFLDoughnut<T>& doughnut)
2697 {
2698 CFLDoughnut<double> t(doughnut);
2699 t *= -1.;
2700 t += value;
2701 return t;
2702 }
2703
2717 friend CFLDoughnut<double> operator-(const double& value, const CFLDoughnut<T>& doughnut)
2718 {
2719 CFLDoughnut<double> t(doughnut);
2720 t *= -1.;
2721 t += value;
2722 return t;
2723 }
2724
2738 friend CFLDoughnut<double> operator*(const int32_t& value, const CFLDoughnut<T>& doughnut)
2739 {
2740 CFLDoughnut<double> t(doughnut);
2741 t *= value;
2742 return t;
2743 }
2744
2758 friend CFLDoughnut<double> operator*(const int64_t& value, const CFLDoughnut<T>& doughnut)
2759 {
2760 CFLDoughnut<double> t(doughnut);
2761 t *= value;
2762 return t;
2763 }
2764
2778 friend CFLDoughnut<double> operator*(const float& value, const CFLDoughnut<T>& doughnut)
2779 {
2780 CFLDoughnut<double> t(doughnut);
2781 t *= value;
2782 return t;
2783 }
2784
2798 friend CFLDoughnut<double> operator*(const double& value, const CFLDoughnut<T>& doughnut)
2799 {
2800 CFLDoughnut<double> t(doughnut);
2801 t *= value;
2802 return t;
2803 }
2804
2818 friend CFLDoughnut<double> operator/(const int32_t& value, const CFLDoughnut<T>& doughnut)
2819 {
2820 CFLDoughnut<double> t(doughnut);
2821 t.flpCenter.x = value;
2822 t.flpCenter.y = value;
2823 t.Multiply((double)doughnut.flpCenter.x ? 1. / (double)doughnut.flpCenter.x : 1.);
2824 return t;
2825 }
2826
2840 friend CFLDoughnut<double> operator/(const int64_t& value, const CFLDoughnut<T>& doughnut)
2841 {
2842 CFLDoughnut<double> t(doughnut);
2843 t.flpCenter.x = value;
2844 t.flpCenter.y = value;
2845 t.Multiply((double)doughnut.flpCenter.x ? 1. / (double)doughnut.flpCenter.x : 1.);
2846 return t;
2847 }
2848
2862 friend CFLDoughnut<double> operator/(const float& value, const CFLDoughnut<T>& doughnut)
2863 {
2864 CFLDoughnut<double> t(doughnut);
2865 t.flpCenter.x = value;
2866 t.flpCenter.y = value;
2867 t.Multiply((double)doughnut.flpCenter.x ? 1. / (double)doughnut.flpCenter.x : 1.);
2868 return t;
2869 }
2870
2884 friend CFLDoughnut<double> operator/(const double& value, const CFLDoughnut<T>& doughnut)
2885 {
2886 CFLDoughnut<double> t(doughnut);
2887 t.flpCenter.x = value;
2888 t.flpCenter.y = value;
2889 t.Multiply((double)doughnut.flpCenter.x ? 1. / (double)doughnut.flpCenter.x : 1.);
2890 return t;
2891 }
2893
2894
2910 CFLFigureArray operator& (const CFLFigure& flf) const;
2911
2927 CFLFigureArray operator| (const CFLFigure& flf) const;
2928
2944 CFLFigureArray operator^ (const CFLFigure& flf) const;
2945
2961 CFLFigureArray operator- (const CFLRect<int32_t>& flr) const;
2962
2978 CFLFigureArray operator- (const CFLRect<int64_t>& flr) const;
2979
2995 CFLFigureArray operator- (const CFLRect<float>& flr) const;
2996
3012 CFLFigureArray operator- (const CFLRect<double>& flr) const;
3013
3029 CFLFigureArray operator- (const CFLQuad<int32_t>& flq) const;
3030
3046 CFLFigureArray operator- (const CFLQuad<int64_t>& flq) const;
3047
3063 CFLFigureArray operator- (const CFLQuad<float>& flq) const;
3064
3080 CFLFigureArray operator- (const CFLQuad<double>& flq) const;
3081
3097 CFLFigureArray operator- (const CFLCircle<int32_t>& flc) const;
3098
3114 CFLFigureArray operator- (const CFLCircle<int64_t>& flc) const;
3115
3131 CFLFigureArray operator- (const CFLCircle<float>& flc) const;
3132
3148 CFLFigureArray operator- (const CFLCircle<double>& flc) const;
3149
3165 CFLFigureArray operator- (const CFLEllipse<int32_t>& fle) const;
3166
3182 CFLFigureArray operator- (const CFLEllipse<int64_t>& fle) const;
3183
3199 CFLFigureArray operator- (const CFLEllipse<float>& fle) const;
3200
3216 CFLFigureArray operator- (const CFLEllipse<double>& fle) const;
3217
3231 CFLFigureArray operator- (const CFLDoughnut<int32_t>& fld) const;
3232
3246 CFLFigureArray operator- (const CFLDoughnut<int64_t>& fld) const;
3247
3261 CFLFigureArray operator- (const CFLDoughnut<float>& fld) const;
3262
3276 CFLFigureArray operator- (const CFLDoughnut<double>& fld) const;
3277
3293 CFLFigureArray operator- (const CFLComplexRegion& flcr) const;
3294
3295 operator Base::TPoint<int32_t>() const;
3296 operator Base::TRect<int32_t>() const;
3297
3323 CFLDoughnut(int32_t x, int32_t y, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther);
3324
3350 CFLDoughnut(int64_t x, int64_t y, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther);
3351
3377 CFLDoughnut(float x, float y, float f32Radius, float f32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther);
3378
3404 CFLDoughnut(double x, double y, double f64Radius, double f64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther);
3405
3431 CFLDoughnut(const CFLPoint<int32_t>& flpCenter, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther);
3432
3458 CFLDoughnut(const CFLPoint<int32_t>* pFlpCenter, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther);
3459
3485 CFLDoughnut(const CFLPoint<int64_t>& flpCenter, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther);
3486
3512 CFLDoughnut(const CFLPoint<int64_t>* pFlpCenter, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther);
3513
3539 CFLDoughnut(const CFLPoint<float>& flpCenter, float f32Radius, float f32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther);
3540
3566 CFLDoughnut(const CFLPoint<float>* pFlpCenter, float f32Radius, float f32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther);
3567
3593 CFLDoughnut(const CFLPoint<double>& flpCenter, double f64Radius, double f64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther);
3594
3620 CFLDoughnut(const CFLPoint<double>* pFlpCenter, double f64Radius, double f64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther);
3621
3634
3647
3660
3673
3686
3699
3712
3725
3736
3747
3758
3769
3780
3791
3802
3813
3826
3839
3852
3865
3878
3891
3904
3917
3930
3943
3944
3945 SupportToDuplicateObject(CFLDoughnut<T>, *this);
3946 DeclareGetClassType();
3947
3948 private:
3949 virtual const CResult MakeFullCircle() override;
3950 virtual const CResult MakeArc(double f64StartDegree, double f64DeltaDegree, EArcClosingMethod eMethod) override;
3951 };
3952
3953 typedef CFLDoughnut<int32_t> CFLDoughnutL;
3954 typedef CFLDoughnut<int64_t> CFLDoughnutLL;
3955 typedef CFLDoughnut<float> CFLDoughnutF;
3956 typedef CFLDoughnut<double> CFLDoughnutD;
3957 }
3958}
3959
Template type 의 배열 클래스.
Definition FLArray.h:53
3차원 점을 표현하는 간략화된 클래스
Definition TPoint3.h:37
점을 표현하는 간략화된 클래스
Definition TPoint.h:37
직사각형을 표현하는 간략화된 클래스
Definition TRect.h:37
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1596
3차 베지어 곡선을 표현하는 클래스
Definition FLBezierCubicCurve.h:24
2차 베지어 곡선을 표현하는 클래스
Definition FLBezierQuadraticCurve.h:24
4차 베지어 곡선을 표현하는 클래스
Definition FLBezierQuarticCurve.h:24
CFLPoint< int32_t > flpCenter
Definition FLCircle.h:36
double deltaDeg
Definition FLCircle.h:72
EArcClosingMethod eArcClosingMethod
Definition FLCircle.h:86
double startDeg
Definition FLCircle.h:63
다각형을 표현하는 클래스
Definition FLComplexRegion.h:27
큐빅 곡선을 표현하는 클래스
Definition FLCubicSpline.h:23
원 또는 호 형태의 도넛 모양을 표현하는 클래스
Definition FLDoughnut.h:26
virtual const CResult Set(const CFLEllipse< int64_t > *pEllipse) override
파라미터 설정 함수
virtual const CResult Scale(double f64PivotX, double f64PivotY, double f64RatioX, double f64RatioY) override
CFLDoughnut< double > operator*(const float &value) const
곱 연산
CFLDoughnut< double > operator-(const float &value) const
중심 이동 연산자
CFLDoughnut< double > operator*(const double &value) const
곱 연산
bool operator!=(const CFLDoughnut< int64_t > &doughnut) const
비교 연산자
const CFLDoughnut< T > & operator=(const CFLDoughnut< int32_t > &doughnut)
대입 연산자
CFLDoughnut< double > operator-(const CFLLine< int64_t > &line) const
중심 이동 연산자
CFLDoughnut(Base::TRect< int64_t > *pRect)
초기화 생성자
CFLDoughnut< double > operator-(const CFLLine< int32_t > &line) const
중심 이동 연산자
CFLDoughnut< double > operator/(const int64_t &value) const
나눗셈 연산
const CFLDoughnut< T > & operator-=(const double &value)
중심 이동 연산자
int32_t innerRadius
Definition FLDoughnut.h:32
CFLDoughnut(double x, double y, double f64Radius, double f64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther)
초기화 생성자
CFLDoughnut(const CFLCircle< double > &circle)
복사 생성자
CFLDoughnut(Base::TRect< float > &rect)
초기화 생성자
const CFLDoughnut< T > & operator+=(const int64_t &value)
중심 이동 연산자
const CFLDoughnut< T > & operator-=(const CFLPoint< double > &point)
중심 이동 연산자
const CFLDoughnut< T > & operator=(const CFLRect< float > &rect)
대입 연산자
virtual const CResult Set(const CFLEllipse< double > *pEllipse) override
파라미터 설정 함수
virtual const CResult Set(const CFLEllipse< int32_t > &ellipse) override
파라미터 설정 함수
friend CFLDoughnut< double > operator+(const int32_t &value, const CFLDoughnut< T > &doughnut)
중심 이동 연산자
Definition FLDoughnut.h:2574
virtual const CResult Set(const CFLQuad< int64_t > *pQuad) override
파라미터 설정 함수
const CFLDoughnut< T > & operator-=(const float &value)
중심 이동 연산자
virtual bool IsCollision(const CFLQuad< double > *pQuad) const override
virtual const CResult Set(const CFLFigureText< double > &flft) override
파라미터 설정 함수
CFLDoughnut< double > operator-(const CFLPoint< int32_t > &point) const
중심 이동 연산자
CFLDoughnut< double > operator+(const CFLPoint< float > &point) const
중심 이동 연산자
virtual const CResult Set(const Base::TRect< double > &rect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther)
파라미터 설정 함수
CFLDoughnut(int32_t x, int32_t y, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther)
초기화 생성자
CFLDoughnut< double > operator*(const int32_t &value) const
곱 연산
virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLFigureArray &flfaResult) const override
설정한 길이만큼 이동하는 점 정보를 얻어옵니다
const CFLDoughnut< T > & operator-=(const Base::TPoint< int32_t > &point)
중심 이동 연산자
virtual const CResult Set(const Base::TRect< int32_t > &rect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther)
파라미터 설정 함수
virtual const CResult Set(const CFLDoughnut< int64_t > &doughnut) override
파라미터 설정 함수
virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLFigureArray *pFlfaResult) const override
설정한 길이만큼 이동하는 점 정보를 얻어옵니다
virtual const CResult Set(const CFLDoughnut< float > *pDoughnut) override
파라미터 설정 함수
virtual const CResult Set(const CFLLine< int64_t > &line) override
파라미터 설정 함수
virtual const CResult Set(const CFLDoughnut< float > &doughnut) override
파라미터 설정 함수
virtual const CResult Set(float x, float y, float f32Radius, float f32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther) sealed
파라미터 설정 함수
virtual const CResult Set(const CFLRoundRect< float > &flrr, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
파라미터 설정 함수
virtual const CResult Set(const CFLFigureText< int64_t > *pFlft) override
파라미터 설정 함수
virtual const CResult Set(const CFLPoint< int32_t > *pFlpCenter, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther) sealed
파라미터 설정 함수
virtual const CResult Set(const CFLPoint< int64_t > *pFlpCenter, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther) sealed
파라미터 설정 함수
CFLDoughnut< double > operator+(const double &value) const
중심 이동 연산자
CFLDoughnut< double > operator+(const CFLPoint< int64_t > &point) const
중심 이동 연산자
virtual const CResult GetRasterContour(CFLFigureArray *pFlfaResult, bool bExcludeSingleDelta=false) const override
Contour의 Raster 점 정보를 얻어옵니다
const CFLDoughnut< T > & operator=(const CFLDoughnut< int32_t > *pDoughnut)
대입 연산자
CFLDoughnut(const CFLCircle< int32_t > &circle)
복사 생성자
const CFLDoughnut< T > & operator-=(const Base::TPoint< int64_t > &point)
중심 이동 연산자
CFLDoughnut< double > operator+(const Base::TPoint< int64_t > &point) const
중심 이동 연산자
const CFLDoughnut< T > & operator+=(const double &value)
중심 이동 연산자
virtual const CResult Set(const CFLFigureText< double > *pFlft) override
파라미터 설정 함수
virtual const CResult Set(const CFLComplexRegion &complexRegion) override
파라미터 설정 함수
virtual const CResult GetRasterRegion(CFLFigureArray *pFlfaResult, const CFLRect< int64_t > *pFlrROI=nullptr) const override
virtual const CResult Set(const CFLRoundRect< double > *pFlrr, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
파라미터 설정 함수
virtual const CResult Set(const CFLPointArray &pointArray) override
파라미터 설정 함수
virtual const CResult Set(const CFLFigure &flf) override
virtual bool IsFigureValid() const override
virtual const CResult GetIntersection(const CFLQuad< double > *pQuad, CFLFigureArray *pFlfaResult) const override
virtual double GetArea() const override
CFLDoughnut< double > operator+(const int32_t &value) const
중심 이동 연산자
CFLDoughnut(int64_t x, int64_t y, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther)
초기화 생성자
virtual const CResult Set(const CFLPoint< double > &point) override
파라미터 설정 함수
virtual const CResult GetPointsOfMinimumDistance(const CFLFigure *pFlfTarget, CFLPointArray *pFlpaResult) const override
대상 Figure와 서로 가장 가까운 위치를 반환합니다.
const CFLDoughnut< T > & operator-=(const int64_t &value)
중심 이동 연산자
CFLDoughnut(const CFLCircle< double > *pCircle)
복사 생성자
virtual bool IsInsideOut() sealed
내부의 원의 반지름이 외부 반지름보다 더 큰지 확인하는 함수
CFLDoughnut< double > operator+(const CFLLine< float > &line) const
중심 이동 연산자
virtual const CResult Set(const CFLLine< float > *pLine) override
파라미터 설정 함수
CFLDoughnut(const CFLPoint< int32_t > &flpCenter, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther)
초기화 생성자
friend CFLDoughnut< double > operator/(const int64_t &value, const CFLDoughnut< T > &doughnut)
나눗셈 연산
Definition FLDoughnut.h:2840
CFLDoughnut< double > operator-(const int32_t &value) const
중심 이동 연산자
virtual bool IsCollision(const CFLBezierQuadraticCurve *pFlbc2) const override
virtual const CResult Set(const CFLRect< int64_t > &rect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
파라미터 설정 함수
virtual const CResult GetIntersection(const CFLLine< double > *pLine, CFLFigureArray *pFlfaResult) const override
virtual const CResult GetRasterRegion(Base::CFLArray< Base::TRect< int64_t > > *pFlaResult, const CFLRect< int64_t > *pFlrROI=nullptr) const override
virtual const CResult Set(const CFLPoint< int32_t > &point) override
파라미터 설정 함수
const CFLDoughnut< T > & operator/=(const int64_t &value)
나눗셈 연산
CFLDoughnut< double > operator+(const float &value) const
중심 이동 연산자
virtual const CResult GetIntersection(const CFLBezierQuadraticCurve *pFlbc2, CFLFigureArray *pFlfaResult) const override
friend CFLDoughnut< double > operator/(const float &value, const CFLDoughnut< T > &doughnut)
나눗셈 연산
Definition FLDoughnut.h:2862
virtual const CResult Set(const CFLRoundRect< float > *pFlrr, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
파라미터 설정 함수
CFLDoughnut(const CFLDoughnut< float > &doughnut)
복사 생성자
virtual const CResult Set(const CFLCircle< int64_t > &circle) override
파라미터 설정 함수
bool operator!=(const CFLDoughnut< float > &doughnut) const
비교 연산자
const CFLDoughnut< T > & operator+=(const float &value)
중심 이동 연산자
CFLDoughnut< double > operator+(const Base::TPoint< float > &point) const
중심 이동 연산자
virtual const CResult Set(const CFLEllipse< int64_t > &ellipse) override
파라미터 설정 함수
virtual bool IsCollision(const CFLDoughnut< double > *pDoughnut) const override
CFLDoughnut< double > operator-(const CFLPoint< double > &point) const
중심 이동 연산자
virtual const CResult Set(const CFLBezierQuadraticCurve *pFlbc2) override
파라미터 설정 함수
virtual const CResult Set(const CFLCircle< float > *pCircle) override
파라미터 설정 함수
virtual bool IsCollision(const CFLBezierCubicCurve *pFlbc3) const override
const CFLDoughnut< T > & operator=(const CFLRect< int64_t > *pRect)
대입 연산자
virtual const CResult Set(int32_t x, int32_t y, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther) sealed
파라미터 설정 함수
const CFLDoughnut< T > & operator=(const CFLRect< double > *pRect)
대입 연산자
virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLFigureArray &flfaResult) const override
설정한 길이만큼 직선으로 이동하는 점 정보를 얻어옵니다
const CFLDoughnut< T > & operator+=(const CFLLine< float > &line)
중심 이동 연산자
virtual const CResult Set(const CFLRect< int32_t > &rect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
파라미터 설정 함수
virtual bool IsCollision(const CFLLine< double > *pLine) const override
const CFLDoughnut< T > & operator-=(const CFLPoint< int64_t > &point)
중심 이동 연산자
virtual bool IsCollision(const CFLEllipse< double > *pEll) const override
friend CFLDoughnut< double > operator*(const int32_t &value, const CFLDoughnut< T > &doughnut)
곱 연산
Definition FLDoughnut.h:2738
virtual const CResult Set(const Base::TRect< int64_t > &rect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther)
파라미터 설정 함수
const CFLDoughnut< T > & operator+=(const Base::TPoint< float > &point)
중심 이동 연산자
virtual const CResult GetRasterRegion(Base::CFLArray< Base::TPoint3< int32_t > > *pFlaResult, const CFLRect< int64_t > *pFlrROI=nullptr) const override
friend CFLDoughnut< double > operator+(const int64_t &value, const CFLDoughnut< T > &doughnut)
중심 이동 연산자
Definition FLDoughnut.h:2594
virtual bool IsCollision(const CFLRoundRect< double > *pFlrr) const override
CFLDoughnut< double > operator-(const Base::TPoint< int32_t > &point) const
중심 이동 연산자
virtual const CResult Multiply(int32_t i32Mul)
virtual const CResult Set(const CFLLine< int64_t > *pLine) override
파라미터 설정 함수
virtual const CResult Set(const CFLQuad< double > &quad) override
파라미터 설정 함수
virtual const CResult SetInnerRadius(float innerRadius) sealed
내부 원의 반지름을 설정하는 함수
CFLDoughnut(const CFLDoughnut< double > *pDoughnut)
복사 생성자
virtual const CResult Set(const CFLLine< double > *pLine) override
파라미터 설정 함수
CFLDoughnut(Base::TRect< float > *pRect)
초기화 생성자
CFLDoughnut< double > operator+(const CFLLine< int32_t > &line) const
중심 이동 연산자
virtual bool IsCollision(const CFLCubicSpline *pFlcs) const override
virtual const CResult Set(double x, double y, double f64Radius, double f64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther) sealed
파라미터 설정 함수
virtual const CResult Set(const CFLPoint< float > *pPoint) override
파라미터 설정 함수
CFLDoughnut< double > operator-(const int64_t &value) const
중심 이동 연산자
const CFLDoughnut< T > & operator=(const CFLRect< int32_t > &rect)
대입 연산자
virtual double GetLength() const override
virtual uint64_t GetVertexCountRecursive(EIncludingRegionType eType=EIncludingRegionType_All) const override
FigureArray 내부의 모든 정점의 개수를 출력합니다.
virtual const CResult GetIntersection(const CFLEllipse< double > *pEll, CFLFigureArray *pFlfaResult) const override
CFLDoughnut(Base::TRect< int32_t > *pRect)
초기화 생성자
const CFLDoughnut< T > & operator*=(const float &value)
곱 연산
CFLDoughnut(const CFLCircle< int32_t > *pCircle)
복사 생성자
bool operator!=(const CFLDoughnut< int32_t > &doughnut) const
비교 연산자
virtual const CResult Set(const CFLQuad< float > *pQuad) override
파라미터 설정 함수
const CFLDoughnut< T > & operator=(Base::TRect< double > *pRect)
대입 연산자
virtual const CResult Set(const Base::TRect< int64_t > *pRect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther)
파라미터 설정 함수
const CFLDoughnut< T > & operator*=(const int32_t &value)
곱 연산
virtual const CResult Set(const CFLComplexRegion *pComplexRegion) override
파라미터 설정 함수
bool operator==(const CFLDoughnut< float > &doughnut) const
비교 연산자
const CFLDoughnut< T > & operator+=(const CFLPoint< int32_t > &point)
중심 이동 연산자
virtual const CResult Set(const CFLBezierQuadraticCurve &flbc2) override
파라미터 설정 함수
virtual EFigureDeclType GetDeclType() const override
CFLDoughnut< double > operator-(const CFLPoint< int64_t > &point) const
중심 이동 연산자
virtual const CResult Set(const Base::TRect< int32_t > *pRect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther)
파라미터 설정 함수
virtual const CResult Set(const CFLPoint< float > &flpCenter, float f32Radius, float f32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther) sealed
파라미터 설정 함수
CFLDoughnut(const CFLCircle< float > &circle)
복사 생성자
virtual const CResult Set(const CFLLine< double > &line) override
파라미터 설정 함수
virtual const CResult Inflate(double left, double top, double right, double bottom) override
CFLDoughnut< double > operator+(const CFLPoint< double > &point) const
중심 이동 연산자
virtual const CResult GetIntersection(const CFLBezierQuarticCurve *pFlbc4, CFLFigureArray *pFlfaResult) const override
const CFLDoughnut< T > & operator-=(const CFLLine< int64_t > &line)
중심 이동 연산자
virtual const CResult Set(const CFLFigureText< float > *pFlft) override
파라미터 설정 함수
virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLPointArray *pFlpaResult) const override
설정한 길이만큼 직선으로 이동하는 점 정보를 얻어옵니다
virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLFigureArray *pFlfaResult) const override
설정한 길이만큼 직선으로 이동하는 점 정보를 얻어옵니다
CFLDoughnut(const CFLDoughnut< int64_t > *pDoughnut)
복사 생성자
friend CFLDoughnut< double > operator+(const float &value, const CFLDoughnut< T > &doughnut)
중심 이동 연산자
Definition FLDoughnut.h:2614
virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLPointArray *pFlpaResult) const override
설정한 길이만큼 이동하는 점 정보를 얻어옵니다
virtual const CResult GetIntersection(const CFLBezierCubicCurve *pFlbc3, CFLFigureArray *pFlfaResult) const override
virtual const CResult Set(const CFLCircle< float > &circle) override
파라미터 설정 함수
virtual const CResult Set(const CFLPoint< float > *pFlpCenter, float f32Radius, float f32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther) sealed
파라미터 설정 함수
virtual bool IsCollision(const CFLFigureArray *pFlfa) const override
CFLDoughnut< double > operator*(const int64_t &value) const
곱 연산
const CFLDoughnut< T > & operator/=(const double &value)
나눗셈 연산
virtual const CResult Set(const CFLPoint< float > &point) override
파라미터 설정 함수
bool operator==(const CFLDoughnut< double > &doughnut) const
비교 연산자
virtual const CResult GetIntersection(const CFLRect< double > *pRect, CFLFigureArray *pFlfaResult) const override
virtual const CResult Set(const CFLRoundRect< int64_t > &flrr, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
파라미터 설정 함수
friend CFLDoughnut< double > operator+(const double &value, const CFLDoughnut< T > &doughnut)
중심 이동 연산자
Definition FLDoughnut.h:2634
const CFLDoughnut< T > & operator=(const Base::TRect< int64_t > &rect)
대입 연산자
CFLDoughnut< double > operator-(const Base::TPoint< double > &point) const
중심 이동 연산자
const CFLDoughnut< T > & operator=(const CFLDoughnut< float > &doughnut)
대입 연산자
virtual const CResult GetPointsOfMaximumDistance(const CFLFigure *pFlfTarget, CFLPointArray *pFlpaResult) const override
대상 Figure와 서로 가장 먼 위치를 반환합니다.
CFLDoughnut(Base::TRect< int64_t > &rect)
초기화 생성자
virtual const CResult Set(const CFLRoundRect< int64_t > *pFlrr, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
파라미터 설정 함수
virtual const CResult Set(const CFLQuad< double > *pQuad) override
파라미터 설정 함수
virtual const CResult Set(const CFLLine< int32_t > *pLine) override
파라미터 설정 함수
virtual bool IsCollision(const CFLPoint< double > *pPoint) const override
virtual const CResult Set(const CFLFigureText< int32_t > *pFlft) override
파라미터 설정 함수
virtual const CResult Set(const CFLRoundRect< int32_t > &flrr, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
파라미터 설정 함수
CFLDoughnut< double > operator-(const CFLPoint< float > &point) const
중심 이동 연산자
CFLDoughnut< double > operator-(const Base::TPoint< float > &point) const
중심 이동 연산자
virtual const CResult Set(const CFLRoundRect< double > &flrr, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
파라미터 설정 함수
const CFLDoughnut< T > & operator-=(const int32_t &value)
중심 이동 연산자
virtual const CResult GetRasterContour(Base::CFLArray< Base::TPoint< int32_t > > *pFlaResult, bool bExcludeSingleDelta=false) const override
Contour의 Raster 점 정보를 얻어옵니다
virtual bool IsCollision(const CFLRect< double > *pRect) const override
virtual const CResult MakeFigureValid() override
유효하지 않은 Figure를 유효한 Figure로 만듦. (예를 들어, 좌우, 상하가 뒤집힌 사각형을 원래대로 복원)
virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLPointArray &flpaResult) const override
설정한 길이만큼 이동하는 점 정보를 얻어옵니다
virtual const CResult Set(const CFLPoint< double > &flpCenter, double f64Radius, double f64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther) sealed
파라미터 설정 함수
const CFLDoughnut< T > & operator=(const Base::TRect< float > &rect)
대입 연산자
virtual const CResult SetInnerRadius(int64_t innerRadius) sealed
내부 원의 반지름을 설정하는 함수
CFLDoughnut(const CFLFigure *pFlf)
복사 생성자
virtual const CResult Set(const CFLFigureText< int64_t > &flft) override
파라미터 설정 함수
virtual const CResult GetIntersection(const CFLRoundRect< double > *pFlrr, CFLFigureArray *pFlfaResult) const override
virtual const CResult Set(const CFLQuad< int32_t > &quad) override
파라미터 설정 함수
CFLDoughnut(const CFLFigure &flf)
복사 생성자
virtual const CResult Set(const Base::TRect< double > *pRect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther)
파라미터 설정 함수
virtual const CResult Set(const CFLEllipse< float > *pEllipse) override
파라미터 설정 함수
virtual const CResult Set(const CFLBezierQuarticCurve *pFlbc4) override
파라미터 설정 함수
CFLDoughnut(const CFLPoint< double > *pFlpCenter, double f64Radius, double f64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther)
초기화 생성자
CFLDoughnut< double > operator+(const Base::TPoint< int32_t > &point) const
중심 이동 연산자
virtual const CResult Set(const CFLRect< float > &rect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
파라미터 설정 함수
CFLDoughnut(const CFLPoint< int64_t > &flpCenter, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther)
초기화 생성자
CFLDoughnut< double > operator+(const CFLPoint< int32_t > &point) const
중심 이동 연산자
const CFLDoughnut< T > & operator=(const CFLDoughnut< float > *pDoughnut)
대입 연산자
const CFLDoughnut< T > & operator=(const CFLRect< int32_t > *pRect)
대입 연산자
const CFLDoughnut< T > & operator+=(const CFLLine< int32_t > &line)
중심 이동 연산자
virtual const CResult Set(const CFLPoint< int64_t > &flpCenter, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther) sealed
파라미터 설정 함수
friend CFLDoughnut< double > operator-(const int32_t &value, const CFLDoughnut< T > &doughnut)
중심 이동 연산자
Definition FLDoughnut.h:2654
const CFLDoughnut< T > & operator+=(const int32_t &value)
중심 이동 연산자
CFLDoughnut(const CFLCircle< int64_t > &circle)
복사 생성자
virtual const CResult Set(const CFLBezierCubicCurve &flbc3) override
파라미터 설정 함수
const CFLDoughnut< T > & operator-=(const CFLLine< double > &line)
중심 이동 연산자
virtual const CResult Set(const CFLPoint< int32_t > &flpCenter, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther) sealed
파라미터 설정 함수
CFLDoughnut(const CFLDoughnut< int64_t > &doughnut)
복사 생성자
virtual const CResult Set(const CFLFigureText< float > &flft) override
파라미터 설정 함수
virtual const CResult Set(const CFLBezierCubicCurve *pFlbc3) override
파라미터 설정 함수
const CFLDoughnut< T > & operator=(const Base::TRect< int32_t > &rect)
대입 연산자
const CFLDoughnut< T > & operator+=(const Base::TPoint< double > &point)
중심 이동 연산자
virtual const CResult GetIntersection(const CFLFigureArray *pFlfaOperand, CFLFigureArray *pFlfaResult) const override
const CFLDoughnut< T > & operator=(const CFLDoughnut< double > &doughnut)
대입 연산자
virtual const CResult Set(const CFLRect< int64_t > *pRect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
파라미터 설정 함수
virtual const CResult Set(const CFLCircle< double > &circle) override
파라미터 설정 함수
const CFLDoughnut< T > & operator=(const CFLDoughnut< int64_t > *pDoughnut)
대입 연산자
const CFLDoughnut< T > & operator=(const CFLDoughnut< double > *pDoughnut)
대입 연산자
virtual const CResult Set(const CFLEllipse< double > &ellipse) override
파라미터 설정 함수
virtual const CResult GetVertexCount(CFLFigureArray *pFlfaResult, EIncludingRegionType eType=EIncludingRegionType_All, bool bRecursive=true) const override
도형의 정점의 개수를 반환합니다
virtual const CResult Set(const CFLPoint< int64_t > &point) override
파라미터 설정 함수
const CFLDoughnut< T > & operator-=(const CFLLine< int32_t > &line)
중심 이동 연산자
virtual const CResult GetRasterRegion(Base::CFLArray< Base::TRect< double > > *pFlaResult, const CFLRect< int64_t > *pFlrROI=nullptr) const override
virtual T GetInnerRadius() const sealed
내부 원의 반지름을 얻는 함수
CFLDoughnut< double > operator/(const float &value) const
나눗셈 연산
friend CFLDoughnut< double > operator-(const float &value, const CFLDoughnut< T > &doughnut)
중심 이동 연산자
Definition FLDoughnut.h:2696
virtual bool IsSpecEqual(const CFLFigure *pFlfRhs, EFigureSpecCompareType eSpecType=EFigureSpecCompareType_Coordinates) const override
CFLDoughnut(Base::TRect< double > &rect)
초기화 생성자
virtual const CResult Set(const CFLQuad< float > &quad) override
파라미터 설정 함수
const CFLDoughnut< T > & operator-=(const CFLPoint< float > &point)
중심 이동 연산자
CFLDoughnut< double > operator/(const int32_t &value) const
나눗셈 연산
virtual const CResult Set(const CFLPoint< int64_t > *pPoint) override
파라미터 설정 함수
virtual const CResult Set(const CFLPoint< double > *pFlpCenter, double f64Radius, double f64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther) sealed
파라미터 설정 함수
virtual bool IsCollision(const CFLRegion *pFlrg) const override
virtual const CResult Set(const CFLPoint< int32_t > *pPoint) override
파라미터 설정 함수
bool operator==(const CFLDoughnut< int32_t > &doughnut) const
비교 연산자
friend CFLDoughnut< double > operator*(const double &value, const CFLDoughnut< T > &doughnut)
곱 연산
Definition FLDoughnut.h:2798
const CFLDoughnut< T > & operator+=(const CFLLine< double > &line)
중심 이동 연산자
virtual const CResult Set(const CFLCircle< double > *pCircle) override
파라미터 설정 함수
const CFLDoughnut< T > & operator-=(const Base::TPoint< float > &point)
중심 이동 연산자
CFLDoughnut(Base::TRect< int32_t > &rect)
초기화 생성자
const CFLDoughnut< T > & operator-=(const CFLLine< float > &line)
중심 이동 연산자
CFLDoughnut< double > operator-(const CFLLine< double > &line) const
중심 이동 연산자
CFLDoughnut(const CFLPoint< float > *pFlpCenter, float f32Radius, float f32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther)
초기화 생성자
virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLPointArray &flpaResult) const override
설정한 길이만큼 직선으로 이동하는 점 정보를 얻어옵니다
friend CFLDoughnut< double > operator/(const double &value, const CFLDoughnut< T > &doughnut)
나눗셈 연산
Definition FLDoughnut.h:2884
virtual const CResult Set(const CFLRect< double > &rect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
파라미터 설정 함수
virtual const CResult Set(const CFLFigureText< int32_t > &flft) override
파라미터 설정 함수
virtual const CResult Set(const CFLLine< float > &line) override
파라미터 설정 함수
virtual const CResult Set(const CFLCircle< int32_t > &circle) override
파라미터 설정 함수
const CFLDoughnut< T > & operator=(Base::TRect< int64_t > *pRect)
대입 연산자
CFLDoughnut(const CFLDoughnut< float > *pDoughnut)
복사 생성자
virtual bool IsCollision(const CFLBezierQuarticCurve *pFlbc4) const override
virtual const CResult GetIntersection(const CFLComplexRegion *pFlcr, CFLFigureArray *pFlfaResult) const override
virtual const CResult Set(const CFLEllipse< float > &ellipse) override
파라미터 설정 함수
virtual const CResult GetIntersection(const CFLCubicSpline *pFlcs, CFLFigureArray *pFlfaResult) const override
CFLDoughnut(const CFLDoughnut< int32_t > *pDoughnut)
복사 생성자
virtual const CResult GetIntersection(const CFLCircle< double > *pCir, CFLFigureArray *pFlfaResult) const override
friend CFLDoughnut< double > operator-(const int64_t &value, const CFLDoughnut< T > &doughnut)
중심 이동 연산자
Definition FLDoughnut.h:2675
CFLDoughnut(const CFLDoughnut< double > &doughnut)
복사 생성자
const CFLDoughnut< T > & operator=(const CFLRect< double > &rect)
대입 연산자
virtual const CResult GetMinimumEnclosingRectangle(CFLQuad< double > *pQuad) const override
최소 둘레의 직사각형을 얻어옵니다
const CFLDoughnut< T > & operator/=(const int32_t &value)
나눗셈 연산
virtual const CResult Set(const CFLDoughnut< double > &doughnut) override
파라미터 설정 함수
virtual const CResult GetVertexCount(CFLFigureArray &flfaResult, EIncludingRegionType eType=EIncludingRegionType_All, bool bRecursive=true) const override
도형의 정점의 개수를 반환합니다
const CFLDoughnut< T > & operator+=(const CFLPoint< int64_t > &point)
중심 이동 연산자
bool operator==(const CFLDoughnut< int64_t > &doughnut) const
비교 연산자
virtual const CResult MakeArc(double f64StartDegree, double f64DeltaDegree)
도넛을 원호 형태로 만듭니다.
CFLDoughnut(const CFLPoint< int64_t > *pFlpCenter, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther)
초기화 생성자
const CFLDoughnut< T > & operator=(Base::TRect< int32_t > *pRect)
대입 연산자
CFLDoughnut< double > operator+(const int64_t &value) const
중심 이동 연산자
virtual const CResult Set(const CFLQuad< int32_t > *pQuad) override
파라미터 설정 함수
virtual const CResult GetRasterRegion(Base::CFLArray< Base::TRect< int32_t > > *pFlaResult, const CFLRect< int64_t > *pFlrROI=nullptr) const override
virtual const CResult Set(const CFLRoundRect< int32_t > *pFlrr, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
파라미터 설정 함수
virtual const CResult GetBoundaryRect(double &left, double &top, double &right, double &bottom) const override
virtual const CResult Set(const CFLRegion *pRegion) override
파라미터 설정 함수
CFLDoughnut(const CFLPoint< double > &flpCenter, double f64Radius, double f64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther)
초기화 생성자
CFLDoughnut< double > operator+(const Base::TPoint< double > &point) const
중심 이동 연산자
virtual bool IsCollision(const CFLCircle< double > *pRect) const override
const CFLDoughnut< T > & operator+=(const CFLPoint< float > &point)
중심 이동 연산자
virtual const CResult Set(const CFLRect< double > *pRect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
파라미터 설정 함수
CFLDoughnut< double > operator-(const CFLLine< float > &line) const
중심 이동 연산자
const CFLDoughnut< T > & operator*=(const double &value)
곱 연산
virtual const CResult Set(const CFLRect< int32_t > *pRect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
파라미터 설정 함수
virtual const CResult Set(const Base::TRect< float > *pRect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther)
파라미터 설정 함수
virtual const CResult Set(const CFLQuad< int64_t > &quad) override
파라미터 설정 함수
virtual const CResult Swap(CFLFigure *pFlfRight) override
CFLDoughnut(Base::TRect< double > *pRect)
초기화 생성자
virtual const CResult Set(const CFLDoughnut< int64_t > *pDoughnut) override
파라미터 설정 함수
virtual bool IsCollision(const CFLPointArray *pFlpa) const override
friend CFLDoughnut< double > operator*(const int64_t &value, const CFLDoughnut< T > &doughnut)
곱 연산
Definition FLDoughnut.h:2758
virtual const CResult Set(const CFLPoint< double > *pPoint) override
파라미터 설정 함수
CFLDoughnut(const CFLPoint< float > &flpCenter, float f32Radius, float f32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther)
초기화 생성자
const CFLDoughnut< T > & operator=(const CFLRect< int64_t > &rect)
대입 연산자
CFLDoughnut< double > operator+(const CFLLine< int64_t > &line) const
중심 이동 연산자
virtual const CResult MakeFigureInvalid() override
Figure를 유효하지 않은 Figure로 만듦. (예를 들어, 점의 좌표를 Invalid한 x, y로 설정)
CFLDoughnut(const CFLCircle< float > *pCircle)
복사 생성자
virtual const CResult Set(const CFLFigure *pFlf) override
virtual const CResult Set(const Base::TRect< float > &rect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther)
파라미터 설정 함수
friend CFLDoughnut< double > operator/(const int32_t &value, const CFLDoughnut< T > &doughnut)
나눗셈 연산
Definition FLDoughnut.h:2818
virtual const CResult SetInnerRadius(double innerRadius) sealed
내부 원의 반지름을 설정하는 함수
CFLDoughnut< double > operator/(const double &value) const
나눗셈 연산
CFLDoughnut(const CFLCircle< int64_t > *pCircle)
복사 생성자
virtual const CResult Set(const CFLDoughnut< int32_t > &doughnut) override
파라미터 설정 함수
virtual const CResult GetRasterContour(CFLPointArray *pFlpaResult, bool bExcludeSingleDelta=false) const override
Contour의 Raster 점 정보를 얻어옵니다
const CFLDoughnut< T > & operator+=(const CFLPoint< double > &point)
중심 이동 연산자
virtual const CResult GetIntersection(const CFLDoughnut< double > *pDoughnut, CFLFigureArray *pFlfaResult) const override
const CFLDoughnut< T > & operator+=(const Base::TPoint< int32_t > &point)
중심 이동 연산자
friend CFLDoughnut< double > operator*(const float &value, const CFLDoughnut< T > &doughnut)
곱 연산
Definition FLDoughnut.h:2778
virtual const CResult GetRasterRegion(Base::CFLArray< Base::TRect< float > > *pFlaResult, const CFLRect< int64_t > *pFlrROI=nullptr) const override
CFLDoughnut(const CFLDoughnut< int32_t > &doughnut)
복사 생성자
virtual const CResult Set(int64_t x, int64_t y, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther) sealed
파라미터 설정 함수
CFLDoughnut< double > operator-(const double &value) const
중심 이동 연산자
virtual const CResult Set(const CFLEllipse< int32_t > *pEllipse) override
파라미터 설정 함수
CFLDoughnut(const CFLPoint< int32_t > *pFlpCenter, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther)
초기화 생성자
const CFLDoughnut< T > & operator-=(const Base::TPoint< double > &point)
중심 이동 연산자
virtual const CResult Set(const CFLDoughnut< int32_t > *pDoughnut) override
파라미터 설정 함수
CFLDoughnut< double > operator-(const Base::TPoint< int64_t > &point) const
중심 이동 연산자
virtual const CResult Set(const CFLCubicSpline &cubicSpline) override
파라미터 설정 함수
virtual const CResult Set(const CFLDoughnut< double > *pDoughnut) override
파라미터 설정 함수
virtual double GetPerimeter() const override
friend CFLDoughnut< double > operator-(const double &value, const CFLDoughnut< T > &doughnut)
중심 이동 연산자
Definition FLDoughnut.h:2717
virtual const CResult Set(const CFLRect< float > *pRect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
파라미터 설정 함수
const CFLDoughnut< T > & operator=(const Base::TRect< double > &rect)
대입 연산자
CFLDoughnut(float x, float y, float f32Radius, float f32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther)
초기화 생성자
const CFLDoughnut< T > & operator/=(const float &value)
나눗셈 연산
virtual const CResult Set(const CFLPointArray *pPointArray) override
파라미터 설정 함수
virtual const CResult MakeFullDoughnut()
도넛을 완전한 형태로 만듭니다. (start degree : 0, delta degree : 360, arc closing method : each other)
virtual const CResult SetInnerRadius(int32_t innerRadius) sealed
내부 원의 반지름을 설정하는 함수
virtual const CResult Set(const CFLLine< int32_t > &line) override
파라미터 설정 함수
const CFLDoughnut< T > & operator-=(const CFLPoint< int32_t > &point)
중심 이동 연산자
const CFLDoughnut< T > & operator*=(const int64_t &value)
곱 연산
CFLDoughnut< double > operator+(const CFLLine< double > &line) const
중심 이동 연산자
virtual const CResult Set(const CFLCircle< int32_t > *pCircle) override
파라미터 설정 함수
const CFLDoughnut< T > & operator+=(const CFLLine< int64_t > &line)
중심 이동 연산자
virtual const CResult Set(const CFLCubicSpline *pCubicSpline) override
파라미터 설정 함수
virtual const CResult Set(const CFLBezierQuarticCurve &flbc4) override
파라미터 설정 함수
virtual const CResult Set(const CFLCircle< int64_t > *pCircle) override
파라미터 설정 함수
virtual const CResult Set(const CFLRegion &region) override
파라미터 설정 함수
const CFLDoughnut< T > & operator=(const CFLDoughnut< int64_t > &doughnut)
대입 연산자
const CFLDoughnut< T > & operator+=(const Base::TPoint< int64_t > &point)
중심 이동 연산자
bool operator!=(const CFLDoughnut< double > &doughnut) const
비교 연산자
virtual const CResult GetIntersection(const CFLRegion *pFlrg, CFLFigureArray *pFlfaResult) const override
const CFLDoughnut< T > & operator=(const CFLRect< float > *pRect)
대입 연산자
virtual bool IsCollision(const CFLComplexRegion *pFlcr) const override
const CFLDoughnut< T > & operator=(Base::TRect< float > *pRect)
대입 연산자
타원을 표현하는 클래스
Definition FLEllipse.h:25
도형 배열을 표현하는 클래스
Definition FLFigureArray.h:26
도형을 표현하는 클래스의 기저 클래스
Definition FLFigure.h:27
virtual const CResult Rotate(double f64Angle, int32_t i32PivotX, int32_t i32PivotY)
virtual const CResult GetRasterRegion(CFLFigureArray &flfa, const CFLPoint< int64_t > *pFlpImageSize) const
virtual const CResult GetPointsOfMinimumDistance(const CFLFigure &flfTarget, CFLPointArray *pFlpaResult) const
대상 Figure와 서로 가장 가까운 위치를 반환합니다.
virtual bool IsSpecEqual(const CFLFigure &flfRhs, EFigureSpecCompareType eSpecType=EFigureSpecCompareType_Coordinates) const
virtual const CResult Scale(int32_t i32PivotX, int32_t i32PivotY, double f64RatioX, double f64RatioY)
virtual const CResult Multiply(int32_t i32Mul)
virtual CFLPoint< double > GetCenter() const
virtual const CResult GetRegionOfUnion(const CFLFigure &figure, CFLFigureArray *pFlfaResult) const
두 객체의 합집합을 수행
virtual double GetMinimumDistance(const CFLFigure &flfTarget) const
대상 Figure와 서로 가장 가까운 위치의 거리를 반환합니다.
virtual const CResult Offset(int32_t val)
virtual const CResult Flip(EFigureFlipDirection eDirection, int32_t i32PivotX, int32_t i32PivotY)
virtual const CResult GetRegionOfSubtraction(const CFLFigure &figure, CFLFigureArray *pFlfaResult) const
두 객체의 차집합을 수행
virtual CFLQuad< double > GetMinimumEnclosingRectangle() const
최소 둘레의 직사각형을 얻어옵니다
virtual const CResult GetRegionOfExclusiveOr(const CFLFigure &figure, CFLFigureArray *pFlfaResult) const
두 객체의 배타적 논리합을 수행
virtual CFLRect< double > GetBoundaryRect() const
virtual const CResult Extend(int32_t i32HalfSize)
virtual const CResult Swap(CFLFigure &flfRight)
virtual CFLPoint< double > GetCenterOfGravity() const
virtual const CResult Inflate(int32_t i32HalfSize)
입력된 크기만큼 각 축 방향으로 늘리는 함수
virtual const CResult GetIntersection(const CFLFigure &figure, CFLFigureArray *pFlfaResult) const
virtual bool IsCollision(const CFLFigure &figure) const
virtual double GetMaximumDistance(const CFLFigure &flfTarget) const
대상 Figure와 서로 가장 먼 위치의 거리를 반환 합니다.
virtual const CResult GetPointsOfMaximumDistance(const CFLFigure &flfTarget, CFLPointArray *pFlpaResult) const
대상 Figure와 서로 가장 먼 위치를 반환합니다.
virtual const CResult GetRegionOfIntersection(const CFLFigure &figure, CFLFigureArray *pFlfaResult) const
두 객체의 교집합을 수행
그리기에 필요한 정보들을 표현하는 클래스
Definition FLFigureText.h:26
직선을 표현하는 클래스
Definition FLLine.h:25
점 배열을 표현하는 클래스
Definition FLPointArray.h:26
점을 표현하는 클래스
Definition FLPoint.h:24
사변형을 표현하는 클래스
Definition FLQuad.h:24
직사각형을 표현하는 클래스
Definition FLRect.h:24
영역을 표현하는 클래스
Definition FLRegion.h:26
모서리가 둥근 직사각형을 표현하는 클래스
Definition FLRoundRect.h:24
Definition AlgorithmBase.h:16
EIncludingRegionType
Definition DefinitionsFigure.h:2756
@ EIncludingRegionType_All
Definition DefinitionsFigure.h:2761
EFigureDeclType
도형의 타입
Definition DefinitionsFigure.h:33
EFigureSpecCompareType
Definition DefinitionsFigure.h:3491
@ EFigureSpecCompareType_Coordinates
Definition DefinitionsFigure.h:3496
EArcClosingMethod
원호의 끝점을 처리하는 방법
Definition DefinitionsFigure.h:2524
@ EArcClosingMethod_EachOther
원호 끝을 서로 잇습니다.
Definition DefinitionsFigure.h:2539