FLImaging 7.4.28.2
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 MakePartialSweep(double f64StartDegree, double f64DeltaDegree);
143
153 virtual bool IsInsideOut() sealed;
154
156
172 virtual CFLPoint<double> ConvertDegreeToPoint(int32_t deg, bool bOnInnerRadius) const;
173
189 virtual CFLPoint<double> ConvertDegreeToPoint(int64_t deg, bool bOnInnerRadius) const;
190
206 virtual CFLPoint<double> ConvertDegreeToPoint(float deg, bool bOnInnerRadius) const;
207
223 virtual CFLPoint<double> ConvertDegreeToPoint(double deg, bool bOnInnerRadius) const;
224
226 virtual const CResult GetBoundaryRect(double& left, double& top, double& right, double& bottom) const override;
227
228 using CFLFigure::Inflate;
229 virtual const CResult Inflate(double left, double top, double right, double bottom) override;
230
231 using CFLFigure::Offset;
232
234
235 using CFLFigure::Scale;
236 virtual const CResult Scale(double f64PivotX, double f64PivotY, double f64RatioX, double f64RatioY) override;
237 using CFLFigure::Rotate;
238
240
242
243 using CFLFigure::Flip;
244
245 using CFLFigure::Swap;
246 virtual const CResult Swap(CFLFigure* pFlfRight) override;
247
249 virtual const CResult GetMinimumEnclosingRectangle(CFLQuad<double>* pQuad) const override;
250
251 using CFLFigure::Extend;
252
255
257 virtual const CResult GetPointsOfMinimumDistance(const CFLFigure* pFlfTarget, CFLPointArray* pFlpaResult) const override;
258
260 virtual const CResult GetPointsOfMaximumDistance(const CFLFigure* pFlfTarget, CFLPointArray* pFlpaResult) const override;
261
262
264 virtual const CResult GetRasterRegion(CFLFigureArray* pFlfaResult, const CFLRect<int64_t>* pFlrROI = nullptr) const override;
265 virtual const CResult GetRasterRegion(Base::CFLArray<Base::TRect<int32_t>>* pFlaResult, const CFLRect<int64_t>* pFlrROI = nullptr) const override;
266 virtual const CResult GetRasterRegion(Base::CFLArray<Base::TRect<int64_t>>* pFlaResult, const CFLRect<int64_t>* pFlrROI = nullptr) const override;
267 virtual const CResult GetRasterRegion(Base::CFLArray<Base::TRect<float>>* pFlaResult, const CFLRect<int64_t>* pFlrROI = nullptr) const override;
268 virtual const CResult GetRasterRegion(Base::CFLArray<Base::TRect<double>>* pFlaResult, const CFLRect<int64_t>* pFlrROI = nullptr) const override;
269 virtual const CResult GetRasterRegion(Base::CFLArray<Base::TPoint3<int32_t>>* pFlaResult, const CFLRect<int64_t>* pFlrROI = nullptr) const override;
270
272 virtual bool IsCollision(const CFLPoint<double>* pPoint) const override;
273 virtual bool IsCollision(const CFLLine<double>* pLine) const override;
274 virtual bool IsCollision(const CFLRect<double>* pRect) const override;
275 virtual bool IsCollision(const CFLRoundRect<double>* pFlrr) const override;
276 virtual bool IsCollision(const CFLQuad<double>* pQuad) const override;
277 virtual bool IsCollision(const CFLCircle<double>* pRect) const override;
278 virtual bool IsCollision(const CFLEllipse<double>* pEll) const override;
279 virtual bool IsCollision(const CFLDoughnut<double>* pDoughnut) const override;
280 virtual bool IsCollision(const CFLCubicSpline* pFlcs) const override;
281 virtual bool IsCollision(const CFLBezierQuadraticCurve* pFlbc2) const override;
282 virtual bool IsCollision(const CFLBezierCubicCurve* pFlbc3) const override;
283 virtual bool IsCollision(const CFLBezierQuarticCurve* pFlbc4) const override;
284 virtual bool IsCollision(const CFLRegion* pFlrg) const override;
285 virtual bool IsCollision(const CFLComplexRegion* pFlcr) const override;
286 virtual bool IsCollision(const CFLFigureArray* pFlfa) const override;
287 virtual bool IsCollision(const CFLPointArray* pFlpa) const override;
288
290 virtual const CResult GetIntersection(const CFLLine<double>* pLine, CFLFigureArray* pFlfaResult) const override;
291 virtual const CResult GetIntersection(const CFLRect<double>* pRect, CFLFigureArray* pFlfaResult) const override;
292 virtual const CResult GetIntersection(const CFLRoundRect<double>* pFlrr, CFLFigureArray* pFlfaResult) const override;
293 virtual const CResult GetIntersection(const CFLQuad<double>* pQuad, CFLFigureArray* pFlfaResult) const override;
294 virtual const CResult GetIntersection(const CFLCircle<double>* pCir, CFLFigureArray* pFlfaResult) const override;
295 virtual const CResult GetIntersection(const CFLEllipse<double>* pEll, CFLFigureArray* pFlfaResult) const override;
296 virtual const CResult GetIntersection(const CFLDoughnut<double>* pDoughnut, CFLFigureArray* pFlfaResult) const override;
297 virtual const CResult GetIntersection(const CFLCubicSpline* pFlcs, CFLFigureArray* pFlfaResult) const override;
298 virtual const CResult GetIntersection(const CFLBezierQuadraticCurve* pFlbc2, CFLFigureArray* pFlfaResult) const override;
299 virtual const CResult GetIntersection(const CFLBezierCubicCurve* pFlbc3, CFLFigureArray* pFlfaResult) const override;
300 virtual const CResult GetIntersection(const CFLBezierQuarticCurve* pFlbc4, CFLFigureArray* pFlfaResult) const override;
301 virtual const CResult GetIntersection(const CFLRegion* pFlrg, CFLFigureArray* pFlfaResult) const override;
302 virtual const CResult GetIntersection(const CFLComplexRegion* pFlcr, CFLFigureArray* pFlfaResult) const override;
303 virtual const CResult GetIntersection(const CFLFigureArray* pFlfaOperand, CFLFigureArray* pFlfaResult) const override;
304
309
310
311 virtual double GetArea() const override;
312 virtual double GetPerimeter() const override;
313 virtual double GetLength() const override;
315 virtual const CResult GetVertexCount(CFLFigureArray& flfaResult, EIncludingRegionType eType = EIncludingRegionType_All, bool bRecursive = true) const override;
316 virtual const CResult GetVertexCount(CFLFigureArray* pFlfaResult, EIncludingRegionType eType = EIncludingRegionType_All, bool bRecursive = true) const override;
317
318 virtual const CResult GetRasterContour(Base::CFLArray<Base::TPoint<int32_t>>* pFlaResult, bool bExcludeSingleDelta = false) const override;
319 virtual const CResult GetRasterContour(CFLFigureArray* pFlfaResult, bool bExcludeSingleDelta = false) const override;
320 virtual const CResult GetRasterContour(CFLPointArray* pFlpaResult, bool bExcludeSingleDelta = false) const override;
321
322 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLFigureArray& flfaResult) const override;
323 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLFigureArray* pFlfaResult) const override;
324 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLPointArray& flpaResult) const override;
325 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLPointArray* pFlpaResult) const override;
326
327 virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLFigureArray& flfaResult) const override;
328 virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLFigureArray* pFlfaResult) const override;
329 virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLPointArray& flpaResult) const override;
330 virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLPointArray* pFlpaResult) const override;
331
361 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., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment) sealed;
362
392 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., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment) sealed;
393
423 virtual const CResult Set(float x, float y, float f32Radius, float f32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment) sealed;
424
454 virtual const CResult Set(double x, double y, double f64Radius, double f64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment) sealed;
455
485 virtual const CResult Set(const CFLPoint<int32_t>& flpCenter, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment)sealed;
486
516 virtual const CResult Set(const CFLPoint<int32_t>* pFlpCenter, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment)sealed;
517
547 virtual const CResult Set(const CFLPoint<int64_t>& flpCenter, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment)sealed;
548
578 virtual const CResult Set(const CFLPoint<int64_t>* pFlpCenter, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment)sealed;
579
609 virtual const CResult Set(const CFLPoint<float>& flpCenter, float f32Radius, float f32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment)sealed;
610
640 virtual const CResult Set(const CFLPoint<float>* pFlpCenter, float f32Radius, float f32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment)sealed;
641
671 virtual const CResult Set(const CFLPoint<double>& flpCenter, double f64Radius, double f64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment)sealed;
672
702 virtual const CResult Set(const CFLPoint<double>* pFlpCenter, double f64Radius, double f64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment)sealed;
703
704
705 virtual const CResult Set(const CFLPoint<int32_t>& point) override;
706 virtual const CResult Set(const CFLPoint<int32_t>* pPoint) override;
707 virtual const CResult Set(const CFLPoint<int64_t>& point) override;
708 virtual const CResult Set(const CFLPoint<int64_t>* pPoint) override;
709 virtual const CResult Set(const CFLPoint<float>& point) override;
710 virtual const CResult Set(const CFLPoint<float>* pPoint) override;
711 virtual const CResult Set(const CFLPoint<double>& point) override;
712 virtual const CResult Set(const CFLPoint<double>* pPoint) override;
713
714 virtual const CResult Set(const CFLFigureText<int32_t>& flft) override;
715 virtual const CResult Set(const CFLFigureText<int32_t>* pFlft) override;
716 virtual const CResult Set(const CFLFigureText<int64_t>& flft) override;
717 virtual const CResult Set(const CFLFigureText<int64_t>* pFlft) override;
718 virtual const CResult Set(const CFLFigureText<float>& flft) override;
719 virtual const CResult Set(const CFLFigureText<float>* pFlft) override;
720 virtual const CResult Set(const CFLFigureText<double>& flft) override;
721 virtual const CResult Set(const CFLFigureText<double>* pFlft) override;
722
723 virtual const CResult Set(const CFLLine<int32_t>& line) override;
724 virtual const CResult Set(const CFLLine<int32_t>* pLine) override;
725 virtual const CResult Set(const CFLLine<int64_t>& line) override;
726 virtual const CResult Set(const CFLLine<int64_t>* pLine) override;
727 virtual const CResult Set(const CFLLine<float>& line) override;
728 virtual const CResult Set(const CFLLine<float>* pLine) override;
729 virtual const CResult Set(const CFLLine<double>& line) override;
730 virtual const CResult Set(const CFLLine<double>* pLine) override;
731
732 virtual const CResult Set(const CFLRect<int32_t>& rect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
733 virtual const CResult Set(const CFLRect<int32_t>* pRect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
734 virtual const CResult Set(const CFLRect<int64_t>& rect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
735 virtual const CResult Set(const CFLRect<int64_t>* pRect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
736 virtual const CResult Set(const CFLRect<float>& rect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
737 virtual const CResult Set(const CFLRect<float>* pRect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
738 virtual const CResult Set(const CFLRect<double>& rect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
739 virtual const CResult Set(const CFLRect<double>* pRect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
740
741 virtual const CResult Set(const CFLRoundRect<int32_t>& flrr, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
742 virtual const CResult Set(const CFLRoundRect<int32_t>* pFlrr, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
743 virtual const CResult Set(const CFLRoundRect<int64_t>& flrr, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
744 virtual const CResult Set(const CFLRoundRect<int64_t>* pFlrr, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
745 virtual const CResult Set(const CFLRoundRect<float>& flrr, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
746 virtual const CResult Set(const CFLRoundRect<float>* pFlrr, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
747 virtual const CResult Set(const CFLRoundRect<double>& flrr, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
748 virtual const CResult Set(const CFLRoundRect<double>* pFlrr, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
749
750 virtual const CResult Set(const CFLQuad<int32_t>& quad) override;
751 virtual const CResult Set(const CFLQuad<int32_t>* pQuad) override;
752 virtual const CResult Set(const CFLQuad<int64_t>& quad) override;
753 virtual const CResult Set(const CFLQuad<int64_t>* pQuad) override;
754 virtual const CResult Set(const CFLQuad<float>& quad) override;
755 virtual const CResult Set(const CFLQuad<float>* pQuad) override;
756 virtual const CResult Set(const CFLQuad<double>& quad) override;
757 virtual const CResult Set(const CFLQuad<double>* pQuad) override;
758
759 virtual const CResult Set(const CFLCircle<int32_t>& circle) override;
760 virtual const CResult Set(const CFLCircle<int32_t>* pCircle) override;
761 virtual const CResult Set(const CFLCircle<int64_t>& circle) override;
762 virtual const CResult Set(const CFLCircle<int64_t>* pCircle) override;
763 virtual const CResult Set(const CFLCircle<float>& circle) override;
764 virtual const CResult Set(const CFLCircle<float>* pCircle) override;
765 virtual const CResult Set(const CFLCircle<double>& circle) override;
766 virtual const CResult Set(const CFLCircle<double>* pCircle) override;
767
768 virtual const CResult Set(const CFLEllipse<int32_t>& ellipse) override;
769 virtual const CResult Set(const CFLEllipse<int32_t>* pEllipse) override;
770 virtual const CResult Set(const CFLEllipse<int64_t>& ellipse) override;
771 virtual const CResult Set(const CFLEllipse<int64_t>* pEllipse) override;
772 virtual const CResult Set(const CFLEllipse<float>& ellipse) override;
773 virtual const CResult Set(const CFLEllipse<float>* pEllipse) override;
774 virtual const CResult Set(const CFLEllipse<double>& ellipse) override;
775 virtual const CResult Set(const CFLEllipse<double>* pEllipse) override;
776
777 virtual const CResult Set(const CFLDoughnut<int32_t>& doughnut) override;
778 virtual const CResult Set(const CFLDoughnut<int32_t>* pDoughnut) override;
779 virtual const CResult Set(const CFLDoughnut<int64_t>& doughnut) override;
780 virtual const CResult Set(const CFLDoughnut<int64_t>* pDoughnut) override;
781 virtual const CResult Set(const CFLDoughnut<float>& doughnut) override;
782 virtual const CResult Set(const CFLDoughnut<float>* pDoughnut) override;
783 virtual const CResult Set(const CFLDoughnut<double>& doughnut) override;
784 virtual const CResult Set(const CFLDoughnut<double>* pDoughnut) override;
785
786 virtual const CResult Set(const CFLCubicSpline& cubicSpline) override;
787 virtual const CResult Set(const CFLCubicSpline* pCubicSpline) override;
788
789 virtual const CResult Set(const CFLBezierQuadraticCurve& flbc2) override;
790 virtual const CResult Set(const CFLBezierQuadraticCurve* pFlbc2) override;
791
792 virtual const CResult Set(const CFLBezierCubicCurve& flbc3) override;
793 virtual const CResult Set(const CFLBezierCubicCurve* pFlbc3) override;
794
795 virtual const CResult Set(const CFLBezierQuarticCurve& flbc4) override;
796 virtual const CResult Set(const CFLBezierQuarticCurve* pFlbc4) override;
797
798 virtual const CResult Set(const CFLRegion& region) override;
799 virtual const CResult Set(const CFLRegion* pRegion) override;
800
801 virtual const CResult Set(const CFLComplexRegion& complexRegion) override;
802 virtual const CResult Set(const CFLComplexRegion* pComplexRegion) override;
803
804 virtual const CResult Set(const CFLPointArray& pointArray) override;
805 virtual const CResult Set(const CFLPointArray* pPointArray) override;
806
830 virtual const CResult Set(const Base::TRect<int32_t>& rect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment);
831
855 virtual const CResult Set(const Base::TRect<int32_t>* pRect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment);
856
880 virtual const CResult Set(const Base::TRect<int64_t>& rect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment);
881
905 virtual const CResult Set(const Base::TRect<int64_t>* pRect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment);
906
930 virtual const CResult Set(const Base::TRect<float>& rect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment);
931
955 virtual const CResult Set(const Base::TRect<float>* pRect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment);
956
980 virtual const CResult Set(const Base::TRect<double>& rect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment);
981
1005 virtual const CResult Set(const Base::TRect<double>* pRect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment);
1006
1007 virtual const CResult Set(const CFLFigure& flf) override;
1008 virtual const CResult Set(const CFLFigure* pFlf) override;
1009
1010
1011
1017
1022 virtual ~CFLDoughnut();
1023
1025 // Assignment operator
1026
1041
1056
1071
1086
1101
1116
1131
1146
1161
1176
1191
1206
1221
1236
1251
1266
1279
1292
1305
1318
1331
1344
1357
1371
1372
1374 // Comparison operator
1375
1387 bool operator==(const CFLDoughnut<int32_t>& doughnut) const;
1388
1400 bool operator==(const CFLDoughnut<int64_t>& doughnut) const;
1401
1413 bool operator==(const CFLDoughnut<float>& doughnut) const;
1414
1426 bool operator==(const CFLDoughnut<double>& doughnut) const;
1427
1439 bool operator!=(const CFLDoughnut<int32_t>& doughnut) const;
1440
1452 bool operator!=(const CFLDoughnut<int64_t>& doughnut) const;
1453
1465 bool operator!=(const CFLDoughnut<float>& doughnut) const;
1466
1478 bool operator!=(const CFLDoughnut<double>& doughnut) const;
1480
1481
1483 // Arithmetic and assignment operator
1484
1496 const CFLDoughnut<T>& operator+=(const int32_t& value);
1497
1509 const CFLDoughnut<T>& operator+=(const int64_t& value);
1510
1522 const CFLDoughnut<T>& operator+=(const float& value);
1523
1535 const CFLDoughnut<T>& operator+=(const double& value);
1536
1551
1566
1581
1596
1611
1626
1641
1656
1671
1686
1701
1716
1728 const CFLDoughnut<T>& operator-=(const int32_t& value);
1729
1741 const CFLDoughnut<T>& operator-=(const int64_t& value);
1742
1754 const CFLDoughnut<T>& operator-=(const float& value);
1755
1767 const CFLDoughnut<T>& operator-=(const double& value);
1768
1783
1798
1813
1828
1843
1858
1873
1888
1903
1918
1933
1948
1960 const CFLDoughnut<T>& operator*=(const int32_t& value);
1961
1973 const CFLDoughnut<T>& operator*=(const int64_t& value);
1974
1986 const CFLDoughnut<T>& operator*=(const float& value);
1987
1999 const CFLDoughnut<T>& operator*=(const double& value);
2000
2012 const CFLDoughnut<T>& operator/=(const int32_t& value);
2013
2025 const CFLDoughnut<T>& operator/=(const int64_t& value);
2026
2038 const CFLDoughnut<T>& operator/=(const float& value);
2039
2051 const CFLDoughnut<T>& operator/=(const double& value);
2053
2054
2056 // Arithmetic operator
2057
2069 CFLDoughnut<double> operator+(const int32_t& value) const;
2070
2082 CFLDoughnut<double> operator+(const int64_t& value) const;
2083
2095 CFLDoughnut<double> operator+(const float& value) const;
2096
2108 CFLDoughnut<double> operator+(const double& value) const;
2109
2124
2139
2154
2169
2184
2199
2214
2229
2244
2259
2274
2289
2301 CFLDoughnut<double> operator-(const int32_t& value) const;
2302
2314 CFLDoughnut<double> operator-(const int64_t& value) const;
2315
2327 CFLDoughnut<double> operator-(const float& value) const;
2328
2340 CFLDoughnut<double> operator-(const double& value) const;
2341
2356
2371
2386
2401
2416
2431
2446
2461
2476
2491
2506
2521
2533 CFLDoughnut<double> operator*(const int32_t& value) const;
2534
2546 CFLDoughnut<double> operator*(const int64_t& value) const;
2547
2559 CFLDoughnut<double> operator*(const float& value) const;
2560
2572 CFLDoughnut<double> operator*(const double& value) const;
2573
2585 CFLDoughnut<double> operator/(const int32_t& value) const;
2586
2598 CFLDoughnut<double> operator/(const int64_t& value) const;
2599
2611 CFLDoughnut<double> operator/(const float& value) const;
2612
2624 CFLDoughnut<double> operator/(const double& value) const;
2625
2637
2638 //Friend operator
2640 // Arithmetic operator
2641
2655 friend CFLDoughnut<double> operator+(const int32_t& value, const CFLDoughnut<T>& doughnut)
2656 {
2657 CFLDoughnut<double> t(doughnut);
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 += value;
2679 return t;
2680 }
2681
2695 friend CFLDoughnut<double> operator+(const float& value, const CFLDoughnut<T>& doughnut)
2696 {
2697 CFLDoughnut<double> t(doughnut);
2698 t += value;
2699 return t;
2700 }
2701
2715 friend CFLDoughnut<double> operator+(const double& value, const CFLDoughnut<T>& doughnut)
2716 {
2717 CFLDoughnut<double> t(doughnut);
2718 t += value;
2719 return t;
2720 }
2721
2735 friend CFLDoughnut<double> operator-(const int32_t& value, const CFLDoughnut<T>& doughnut)
2736 {
2737 CFLDoughnut<double> t(doughnut);
2738 t *= -1.;
2739 t += value;
2740 return t;
2741 }
2742
2756 friend CFLDoughnut<double> operator-(const int64_t& value, const CFLDoughnut<T>& doughnut)
2757 {
2758 CFLDoughnut<double> t(doughnut);
2759 t *= -1.;
2760 t += value;
2761 return t;
2762 }
2763
2777 friend CFLDoughnut<double> operator-(const float& value, const CFLDoughnut<T>& doughnut)
2778 {
2779 CFLDoughnut<double> t(doughnut);
2780 t *= -1.;
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 *= -1.;
2802 t += value;
2803 return t;
2804 }
2805
2819 friend CFLDoughnut<double> operator*(const int32_t& value, const CFLDoughnut<T>& doughnut)
2820 {
2821 CFLDoughnut<double> t(doughnut);
2822 t *= value;
2823 return t;
2824 }
2825
2839 friend CFLDoughnut<double> operator*(const int64_t& value, const CFLDoughnut<T>& doughnut)
2840 {
2841 CFLDoughnut<double> t(doughnut);
2842 t *= value;
2843 return t;
2844 }
2845
2859 friend CFLDoughnut<double> operator*(const float& value, const CFLDoughnut<T>& doughnut)
2860 {
2861 CFLDoughnut<double> t(doughnut);
2862 t *= value;
2863 return t;
2864 }
2865
2879 friend CFLDoughnut<double> operator*(const double& value, const CFLDoughnut<T>& doughnut)
2880 {
2881 CFLDoughnut<double> t(doughnut);
2882 t *= value;
2883 return t;
2884 }
2885
2899 friend CFLDoughnut<double> operator/(const int32_t& value, const CFLDoughnut<T>& doughnut)
2900 {
2901 CFLDoughnut<double> t(doughnut);
2902 t.flpCenter.x = (double)value;
2903 t.flpCenter.y = (double)value;
2904 t.Multiply((double)doughnut.flpCenter.x ? 1. / (double)doughnut.flpCenter.x : 1.);
2905 return t;
2906 }
2907
2921 friend CFLDoughnut<double> operator/(const int64_t& value, const CFLDoughnut<T>& doughnut)
2922 {
2923 CFLDoughnut<double> t(doughnut);
2924 t.flpCenter.x = (double)value;
2925 t.flpCenter.y = (double)value;
2926 t.Multiply((double)doughnut.flpCenter.x ? 1. / (double)doughnut.flpCenter.x : 1.);
2927 return t;
2928 }
2929
2943 friend CFLDoughnut<double> operator/(const float& value, const CFLDoughnut<T>& doughnut)
2944 {
2945 CFLDoughnut<double> t(doughnut);
2946 t.flpCenter.x = (double)value;
2947 t.flpCenter.y = (double)value;
2948 t.Multiply((double)doughnut.flpCenter.x ? 1. / (double)doughnut.flpCenter.x : 1.);
2949 return t;
2950 }
2951
2965 friend CFLDoughnut<double> operator/(const double& value, const CFLDoughnut<T>& doughnut)
2966 {
2967 CFLDoughnut<double> t(doughnut);
2968 t.flpCenter.x = value;
2969 t.flpCenter.y = value;
2970 t.Multiply((double)doughnut.flpCenter.x ? 1. / (double)doughnut.flpCenter.x : 1.);
2971 return t;
2972 }
2974
2975
2991 CFLFigureArray operator& (const CFLFigure& flf) const;
2992
3008 CFLFigureArray operator| (const CFLFigure& flf) const;
3009
3025 CFLFigureArray operator^ (const CFLFigure& flf) const;
3026
3042 CFLFigureArray operator- (const CFLRect<int32_t>& flr) const;
3043
3059 CFLFigureArray operator- (const CFLRect<int64_t>& flr) const;
3060
3076 CFLFigureArray operator- (const CFLRect<float>& flr) const;
3077
3093 CFLFigureArray operator- (const CFLRect<double>& flr) const;
3094
3110 CFLFigureArray operator- (const CFLQuad<int32_t>& flq) const;
3111
3127 CFLFigureArray operator- (const CFLQuad<int64_t>& flq) const;
3128
3144 CFLFigureArray operator- (const CFLQuad<float>& flq) const;
3145
3161 CFLFigureArray operator- (const CFLQuad<double>& flq) const;
3162
3178 CFLFigureArray operator- (const CFLCircle<int32_t>& flc) const;
3179
3195 CFLFigureArray operator- (const CFLCircle<int64_t>& flc) const;
3196
3212 CFLFigureArray operator- (const CFLCircle<float>& flc) const;
3213
3229 CFLFigureArray operator- (const CFLCircle<double>& flc) const;
3230
3246 CFLFigureArray operator- (const CFLEllipse<int32_t>& fle) const;
3247
3263 CFLFigureArray operator- (const CFLEllipse<int64_t>& fle) const;
3264
3280 CFLFigureArray operator- (const CFLEllipse<float>& fle) const;
3281
3297 CFLFigureArray operator- (const CFLEllipse<double>& fle) const;
3298
3312 CFLFigureArray operator- (const CFLDoughnut<int32_t>& fld) const;
3313
3327 CFLFigureArray operator- (const CFLDoughnut<int64_t>& fld) const;
3328
3342 CFLFigureArray operator- (const CFLDoughnut<float>& fld) const;
3343
3357 CFLFigureArray operator- (const CFLDoughnut<double>& fld) const;
3358
3374 CFLFigureArray operator- (const CFLComplexRegion& flcr) const;
3375
3376 operator Base::TPoint<double>() const;
3377 operator Base::TRect<double>() const;
3378
3404 CFLDoughnut(int32_t x, int32_t y, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment);
3405
3431 CFLDoughnut(int64_t x, int64_t y, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment);
3432
3458 CFLDoughnut(float x, float y, float f32Radius, float f32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment);
3459
3485 CFLDoughnut(double x, double y, double f64Radius, double f64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment);
3486
3512 CFLDoughnut(const CFLPoint<int32_t>& flpCenter, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment);
3513
3539 CFLDoughnut(const CFLPoint<int32_t>* pFlpCenter, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment);
3540
3566 CFLDoughnut(const CFLPoint<int64_t>& flpCenter, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment);
3567
3593 CFLDoughnut(const CFLPoint<int64_t>* pFlpCenter, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment);
3594
3620 CFLDoughnut(const CFLPoint<float>& flpCenter, float f32Radius, float f32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment);
3621
3647 CFLDoughnut(const CFLPoint<float>* pFlpCenter, float f32Radius, float f32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment);
3648
3674 CFLDoughnut(const CFLPoint<double>& flpCenter, double f64Radius, double f64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment);
3675
3701 CFLDoughnut(const CFLPoint<double>* pFlpCenter, double f64Radius, double f64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment);
3702
3715
3728
3741
3754
3767
3780
3793
3806
3817
3828
3839
3850
3861
3872
3883
3894
3907
3920
3933
3946
3959
3972
3985
3998
4011
4024
4025
4026 SupportToDuplicateObject(CFLDoughnut<T>, *this);
4027 DeclareGetClassType();
4028
4029 private:
4030 virtual const CResult MakeFullCircle() override;
4031 virtual const CResult MakePartialSweep(double f64StartDegree, double f64DeltaDegree, ERadialShapeType eMethod) override;
4032 };
4033
4034 typedef CFLDoughnut<int32_t> CFLDoughnutL;
4035 typedef CFLDoughnut<int64_t> CFLDoughnutLL;
4036 typedef CFLDoughnut<float> CFLDoughnutF;
4037 typedef CFLDoughnut<double> CFLDoughnutD;
4038 }
4039}
4040
Template type 의 배열 클래스.
Definition FLArray.h:53
3차원 점을 표현하는 간략화된 클래스
Definition TPoint3.h:37
점을 표현하는 간략화된 클래스
Definition TPoint.h:37
직사각형을 표현하는 간략화된 클래스
Definition TRect.h:37
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1676
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
double startDeg
Definition FLCircle.h:63
ERadialShapeType eRadialShapeType
Definition FLCircle.h:86
다각형을 표현하는 클래스
Definition FLComplexRegion.h:28
큐빅 곡선을 표현하는 클래스
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< T > operator-() const
해당 객체에 -1을 곱한 결과를 반환하는 연산자
CFLDoughnut< double > operator-(const float &value) const
중심 이동 연산자
CFLDoughnut< double > operator*(const double &value) const
곱 연산
virtual CFLPoint< double > ConvertDegreeToPoint(int32_t deg, bool bOnInnerRadius) const
bool operator!=(const CFLDoughnut< int64_t > &doughnut) const
비교 연산자
const CFLDoughnut< T > & operator=(const CFLDoughnut< int32_t > &doughnut)
대입 연산자
virtual const CResult Set(const CFLRect< int64_t > *pRect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
파라미터 설정 함수
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(const CFLCircle< double > &circle)
복사 생성자
CFLDoughnut(Base::TRect< float > &rect)
초기화 생성자
CFLDoughnut(int64_t x, int64_t y, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment)
초기화 생성자
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:2655
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
중심 이동 연산자
CFLDoughnut(const CFLPoint< double > &flpCenter, double f64Radius, double f64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment)
초기화 생성자
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 CFLDoughnut< int64_t > &doughnut) override
파라미터 설정 함수
virtual const CResult Set(const CFLPoint< double > &flpCenter, double f64Radius, double f64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment) sealed
파라미터 설정 함수
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 CFLPoint< double > ConvertDegreeToPoint(float deg, bool bOnInnerRadius) const
원의 중심에서 시작하는 반직선이 지나는 원 위의 교점 출력
virtual const CResult Set(const CFLFigureText< int64_t > *pFlft) override
파라미터 설정 함수
virtual const CResult Set(float x, float y, float f32Radius, float f32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment) sealed
파라미터 설정 함수
virtual const CResult Set(const Base::TRect< int64_t > &rect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment)
파라미터 설정 함수
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 CFLRect< double > &rect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
파라미터 설정 함수
CFLDoughnut(const CFLPoint< float > *pFlpCenter, float f32Radius, float f32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment)
초기화 생성자
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 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
중심 이동 연산자
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)
중심 이동 연산자
virtual const CResult Set(const Base::TRect< float > &rect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment)
파라미터 설정 함수
CFLDoughnut(const CFLCircle< double > *pCircle)
복사 생성자
virtual bool IsInsideOut() sealed
내부의 원의 반지름이 외부 반지름보다 더 큰지 확인하는 함수
CFLDoughnut(double x, double y, double f64Radius, double f64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment)
초기화 생성자
CFLDoughnut< double > operator+(const CFLLine< float > &line) const
중심 이동 연산자
virtual const CResult Set(const CFLLine< float > *pLine) override
파라미터 설정 함수
friend CFLDoughnut< double > operator/(const int64_t &value, const CFLDoughnut< T > &doughnut)
나눗셈 연산
Definition FLDoughnut.h:2921
CFLDoughnut< double > operator-(const int32_t &value) const
중심 이동 연산자
virtual const CResult Set(const CFLRoundRect< int32_t > *pFlrr, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
파라미터 설정 함수
virtual bool IsCollision(const CFLBezierQuadraticCurve *pFlbc2) const 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:2943
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 CFLPoint< int32_t > *pFlpCenter, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment) sealed
파라미터 설정 함수
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)
대입 연산자
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 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:2819
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:2675
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 CFLRoundRect< double > *pFlrr, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
파라미터 설정 함수
virtual const CResult Set(const CFLLine< double > *pLine) override
파라미터 설정 함수
CFLDoughnut(const CFLPoint< int64_t > &flpCenter, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment)
초기화 생성자
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(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 CFLPoint< int32_t > &flpCenter, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment) sealed
파라미터 설정 함수
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 CFLPoint< double > ConvertDegreeToPoint(int64_t deg, bool bOnInnerRadius) const
원의 중심에서 시작하는 반직선이 지나는 원 위의 교점 출력
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., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment) 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:2695
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 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 CFLPoint< int64_t > *pFlpCenter, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment) sealed
파라미터 설정 함수
friend CFLDoughnut< double > operator+(const double &value, const CFLDoughnut< T > &doughnut)
중심 이동 연산자
Definition FLDoughnut.h:2715
const CFLDoughnut< T > & operator=(const Base::TRect< int64_t > &rect)
대입 연산자
CFLDoughnut< double > operator-(const Base::TPoint< double > &point) const
중심 이동 연산자
virtual const CResult Set(const Base::TRect< int64_t > *pRect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment)
파라미터 설정 함수
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 CFLRect< int32_t > &rect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) 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
파라미터 설정 함수
CFLDoughnut< double > operator-(const CFLPoint< float > &point) const
중심 이동 연산자
CFLDoughnut< double > operator-(const Base::TPoint< float > &point) const
중심 이동 연산자
virtual const CResult Set(const CFLRect< int32_t > *pRect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
파라미터 설정 함수
virtual const CResult Set(const CFLRoundRect< int64_t > *pFlrr, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) 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 const CResult MakePartialSweep(double f64StartDegree, double f64DeltaDegree)
도넛을 원호 형태로 만듭니다.
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 CFLRoundRect< double > &flrr, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
파라미터 설정 함수
virtual const CResult Set(const CFLRect< float > *pRect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
파라미터 설정 함수
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 CFLEllipse< float > *pEllipse) override
파라미터 설정 함수
virtual const CResult Set(const CFLBezierQuarticCurve *pFlbc4) override
파라미터 설정 함수
CFLDoughnut< double > operator+(const Base::TPoint< int32_t > &point) const
중심 이동 연산자
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)
대입 연산자
CFLDoughnut(const CFLPoint< int32_t > &flpCenter, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment)
초기화 생성자
const CFLDoughnut< T > & operator+=(const CFLLine< int32_t > &line)
중심 이동 연산자
CFLDoughnut(const CFLPoint< float > &flpCenter, float f32Radius, float f32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment)
초기화 생성자
friend CFLDoughnut< double > operator-(const int32_t &value, const CFLDoughnut< T > &doughnut)
중심 이동 연산자
Definition FLDoughnut.h:2735
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< float > *pFlpCenter, float f32Radius, float f32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment) 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 Set(const CFLPoint< int64_t > &flpCenter, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment) sealed
파라미터 설정 함수
virtual const CResult GetIntersection(const CFLFigureArray *pFlfaOperand, CFLFigureArray *pFlfaResult) const override
const CFLDoughnut< T > & operator=(const CFLDoughnut< double > &doughnut)
대입 연산자
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< double > *pFlpCenter, double f64Radius, double f64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment) sealed
파라미터 설정 함수
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:2777
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 bool IsCollision(const CFLRegion *pFlrg) const override
virtual const CResult Set(const CFLRoundRect< float > *pFlrr, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) 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:2879
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
중심 이동 연산자
virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLPointArray &flpaResult) const override
설정한 길이만큼 직선으로 이동하는 점 정보를 얻어옵니다
friend CFLDoughnut< double > operator/(const double &value, const CFLDoughnut< T > &doughnut)
나눗셈 연산
Definition FLDoughnut.h:2965
virtual const CResult Set(const CFLFigureText< int32_t > &flft) override
파라미터 설정 함수
virtual const CResult Set(const CFLLine< float > &line) override
파라미터 설정 함수
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., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment) sealed
파라미터 설정 함수
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 Base::TRect< double > &rect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment)
파라미터 설정 함수
CFLDoughnut(const CFLPoint< int32_t > *pFlpCenter, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment)
초기화 생성자
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:2756
CFLDoughnut(const CFLDoughnut< double > &doughnut)
복사 생성자
CFLDoughnut(const CFLPoint< int64_t > *pFlpCenter, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment)
초기화 생성자
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
비교 연산자
const CFLDoughnut< T > & operator=(Base::TRect< int32_t > *pRect)
대입 연산자
virtual const CResult Set(const CFLPoint< float > &flpCenter, float f32Radius, float f32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment) sealed
파라미터 설정 함수
CFLDoughnut< double > operator+(const int64_t &value) const
중심 이동 연산자
virtual const CResult Set(const CFLQuad< int32_t > *pQuad) override
파라미터 설정 함수
CFLDoughnut(const CFLPoint< double > *pFlpCenter, double f64Radius, double f64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment)
초기화 생성자
virtual const CResult GetRasterRegion(Base::CFLArray< Base::TRect< int32_t > > *pFlaResult, const CFLRect< int64_t > *pFlrROI=nullptr) const override
virtual const CResult GetBoundaryRect(double &left, double &top, double &right, double &bottom) const override
virtual const CResult Set(const CFLRegion *pRegion) override
파라미터 설정 함수
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)
중심 이동 연산자
CFLDoughnut< double > operator-(const CFLLine< float > &line) const
중심 이동 연산자
virtual const CResult Set(const CFLRect< int64_t > &rect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
파라미터 설정 함수
const CFLDoughnut< T > & operator*=(const double &value)
곱 연산
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 const CResult Set(const CFLRect< double > *pRect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
파라미터 설정 함수
virtual bool IsCollision(const CFLPointArray *pFlpa) const override
friend CFLDoughnut< double > operator*(const int64_t &value, const CFLDoughnut< T > &doughnut)
곱 연산
Definition FLDoughnut.h:2839
virtual const CResult Set(const CFLPoint< double > *pPoint) override
파라미터 설정 함수
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 Base::TRect< int32_t > &rect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment)
파라미터 설정 함수
virtual const CResult Set(const CFLFigure *pFlf) override
friend CFLDoughnut< double > operator/(const int32_t &value, const CFLDoughnut< T > &doughnut)
나눗셈 연산
Definition FLDoughnut.h:2899
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 CFLPoint< double > ConvertDegreeToPoint(double deg, bool bOnInnerRadius) const
원의 중심에서 시작하는 반직선이 지나는 원 위의 교점 출력
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:2859
virtual const CResult Set(const CFLRoundRect< int64_t > &flrr, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
파라미터 설정 함수
virtual const CResult Set(const Base::TRect< float > *pRect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment)
파라미터 설정 함수
virtual const CResult GetRasterRegion(Base::CFLArray< Base::TRect< float > > *pFlaResult, const CFLRect< int64_t > *pFlrROI=nullptr) const override
CFLDoughnut(const CFLDoughnut< int32_t > &doughnut)
복사 생성자
CFLDoughnut< double > operator-(const double &value) const
중심 이동 연산자
virtual const CResult Set(const CFLEllipse< int32_t > *pEllipse) override
파라미터 설정 함수
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:2798
virtual const CResult Set(const Base::TRect< int32_t > *pRect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment)
파라미터 설정 함수
const CFLDoughnut< T > & operator=(const Base::TRect< double > &rect)
대입 연산자
virtual const CResult Set(const CFLRoundRect< int32_t > &flrr, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
파라미터 설정 함수
const CFLDoughnut< T > & operator/=(const float &value)
나눗셈 연산
virtual const CResult Set(const CFLPointArray *pPointArray) override
파라미터 설정 함수
virtual const CResult MakeFullDoughnut()
도넛을 완전한 형태로 만듭니다.
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)
중심 이동 연산자
CFLDoughnut(float x, float y, float f32Radius, float f32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment)
초기화 생성자
const CFLDoughnut< T > & operator*=(const int64_t &value)
곱 연산
CFLDoughnut(int32_t x, int32_t y, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment)
초기화 생성자
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 CFLRoundRect< float > &flrr, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) 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
virtual const CResult Set(double x, double y, double f64Radius, double f64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment) sealed
파라미터 설정 함수
virtual const CResult Set(const CFLRect< float > &rect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
파라미터 설정 함수
const CFLDoughnut< T > & operator=(Base::TRect< float > *pRect)
대입 연산자
virtual const CResult Set(const Base::TRect< double > *pRect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment)
파라미터 설정 함수
타원을 표현하는 클래스
Definition FLEllipse.h:25
도형 배열을 표현하는 클래스
Definition FLFigureArray.h:27
도형을 표현하는 클래스의 기저 클래스
Definition FLFigure.h:27
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 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 Scale(double f64RatioX, double f64RatioY)
virtual const CResult Offset(int32_t val)
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 Rotate(double f64Angle)
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
두 객체의 교집합을 수행
virtual const CResult Flip(EFigureFlipDirection eDirection)
그리기에 필요한 정보들을 표현하는 클래스
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:2811
@ EIncludingRegionType_All
Definition DefinitionsFigure.h:2816
EFigureDeclType
도형의 타입
Definition DefinitionsFigure.h:33
EFigureSpecCompareType
Definition DefinitionsFigure.h:3546
@ EFigureSpecCompareType_Coordinates
Definition DefinitionsFigure.h:3551
ERadialShapeType
호 형상 정의 방식
Definition DefinitionsFigure.h:2579
@ ERadialShapeType_Segment
원호 끝을 서로 잇습니다.
Definition DefinitionsFigure.h:2594