FLImaging 6.5.8.1
FLDoughnut.h
1#pragma once
2
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
122 virtual const CResult MakeFullDoughnut();
123
139 virtual const CResult MakeArc(double f64StartDegree, double f64DeltaDegree);
140
150 virtual bool IsInsideOut() sealed;
151
152 using CFLFigure::GetBoundaryRect;
153 virtual const CResult GetBoundaryRect(double& left, double& top, double& right, double& bottom) const override;
154
155 using CFLFigure::Inflate;
156 virtual const CResult Inflate(double left, double top, double right, double bottom) override;
157
158 using CFLFigure::Offset;
159
160 using CFLFigure::Multiply;
161
162 using CFLFigure::Scale;
163 virtual const CResult Scale(double f64PivotX, double f64PivotY, double f64RatioX, double f64RatioY) override;
164 using CFLFigure::Rotate;
165
166 using CFLFigure::GetCenter;
167
168 using CFLFigure::GetCenterOfGravity;
169
170 using CFLFigure::Flip;
171
172 using CFLFigure::Swap;
173 virtual const CResult Swap(CFLFigure* pFlfRight) override;
174
175 using CFLFigure::GetMinimumEnclosingRectangle;
176 virtual const CResult GetMinimumEnclosingRectangle(CFLQuad<double>* pQuad) const override;
177
178 using CFLFigure::Extend;
179
180 using CFLFigure::GetMinimumDistance;
181 using CFLFigure::GetMaximumDistance;
182
183 using CFLFigure::GetPointsOfMinimumDistance;
184 virtual const CResult GetPointsOfMinimumDistance(const CFLFigure* pFlfTarget, CFLPointArray* pFlpaResult) const override;
185
186 using CFLFigure::GetPointsOfMaximumDistance;
187 virtual const CResult GetPointsOfMaximumDistance(const CFLFigure* pFlfTarget, CFLPointArray* pFlpaResult) const override;
188
189
190 using CFLFigure::GetRasterRegion;
191 virtual const CResult GetRasterRegion(CFLFigureArray* pFlfaResult, const CFLRect<int64_t>* pFlrROI = nullptr) const override;
192 virtual const CResult GetRasterRegion(Base::CFLArray<Base::TRect<int32_t>>* pFlaResult, const CFLRect<int64_t>* pFlrROI = nullptr) const override;
193 virtual const CResult GetRasterRegion(Base::CFLArray<Base::TRect<int64_t>>* pFlaResult, const CFLRect<int64_t>* pFlrROI = nullptr) const override;
194 virtual const CResult GetRasterRegion(Base::CFLArray<Base::TRect<float>>* pFlaResult, const CFLRect<int64_t>* pFlrROI = nullptr) const override;
195 virtual const CResult GetRasterRegion(Base::CFLArray<Base::TRect<double>>* pFlaResult, const CFLRect<int64_t>* pFlrROI = nullptr) const override;
196 virtual const CResult GetRasterRegion(Base::CFLArray<Base::TPoint3<int32_t>>* pFlaResult, const CFLRect<int64_t>* pFlrROI = nullptr) const override;
197
198 using CFLFigure::IsCollision;
199 virtual bool IsCollision(const CFLPoint<double>* pPoint) const override;
200 virtual bool IsCollision(const CFLLine<double>* pLine) const override;
201 virtual bool IsCollision(const CFLRect<double>* pRect) const override;
202 virtual bool IsCollision(const CFLRoundRect<double>* pFlrr) const override;
203 virtual bool IsCollision(const CFLQuad<double>* pQuad) const override;
204 virtual bool IsCollision(const CFLCircle<double>* pRect) const override;
205 virtual bool IsCollision(const CFLEllipse<double>* pEll) const override;
206 virtual bool IsCollision(const CFLDoughnut<double>* pDoughnut) const override;
207 virtual bool IsCollision(const CFLCubicSpline* pFlcs) const override;
208 virtual bool IsCollision(const CFLBezierQuadraticCurve* pFlbc2) const override;
209 virtual bool IsCollision(const CFLBezierCubicCurve* pFlbc3) const override;
210 virtual bool IsCollision(const CFLBezierQuarticCurve* pFlbc4) const override;
211 virtual bool IsCollision(const CFLRegion* pFlrg) const override;
212 virtual bool IsCollision(const CFLComplexRegion* pFlcr) const override;
213 virtual bool IsCollision(const CFLFigureArray* pFlfa) const override;
214 virtual bool IsCollision(const CFLPointArray* pFlpa) const override;
215
216 using CFLFigure::GetIntersection;
217 virtual const CResult GetIntersection(const CFLLine<double>* pLine, CFLFigureArray* pFlfaResult) const override;
218 virtual const CResult GetIntersection(const CFLRect<double>* pRect, CFLFigureArray* pFlfaResult) const override;
219 virtual const CResult GetIntersection(const CFLRoundRect<double>* pFlrr, CFLFigureArray* pFlfaResult) const override;
220 virtual const CResult GetIntersection(const CFLQuad<double>* pQuad, CFLFigureArray* pFlfaResult) const override;
221 virtual const CResult GetIntersection(const CFLCircle<double>* pCir, CFLFigureArray* pFlfaResult) const override;
222 virtual const CResult GetIntersection(const CFLEllipse<double>* pEll, CFLFigureArray* pFlfaResult) const override;
223 virtual const CResult GetIntersection(const CFLDoughnut<double>* pDoughnut, CFLFigureArray* pFlfaResult) const override;
224 virtual const CResult GetIntersection(const CFLCubicSpline* pFlcs, CFLFigureArray* pFlfaResult) const override;
225 virtual const CResult GetIntersection(const CFLBezierQuadraticCurve* pFlbc2, CFLFigureArray* pFlfaResult) const override;
226 virtual const CResult GetIntersection(const CFLBezierCubicCurve* pFlbc3, CFLFigureArray* pFlfaResult) const override;
227 virtual const CResult GetIntersection(const CFLBezierQuarticCurve* pFlbc4, CFLFigureArray* pFlfaResult) const override;
228 virtual const CResult GetIntersection(const CFLRegion* pFlrg, CFLFigureArray* pFlfaResult) const override;
229 virtual const CResult GetIntersection(const CFLComplexRegion* pFlcr, CFLFigureArray* pFlfaResult) const override;
230 virtual const CResult GetIntersection(const CFLFigureArray* pFlfaOperand, CFLFigureArray* pFlfaResult) const override;
231
232 using CFLFigure::GetRegionOfIntersection;
233 using CFLFigure::GetRegionOfUnion;
234 using CFLFigure::GetRegionOfSubtraction;
235 using CFLFigure::GetRegionOfExclusiveOr;
236
237
238 virtual double GetArea() const override;
239 virtual double GetPerimeter() const override;
240 virtual double GetLength() const override;
241 virtual uint64_t GetVertexCountRecursive(EIncludingRegionType eType = EIncludingRegionType_All) const override;
242 virtual const CResult GetVertexCount(CFLFigureArray& flfaResult, EIncludingRegionType eType = EIncludingRegionType_All, bool bRecursive = true) const override;
243 virtual const CResult GetVertexCount(CFLFigureArray* pFlfaResult, EIncludingRegionType eType = EIncludingRegionType_All, bool bRecursive = true) const override;
244
245 virtual const CResult GetRasterContour(Base::CFLArray<Base::TPoint<int32_t>>* pFlaResult, bool bExcludeSingleDelta = false) const override;
246 virtual const CResult GetRasterContour(CFLFigureArray* pFlfaResult, bool bExcludeSingleDelta = false) const override;
247 virtual const CResult GetRasterContour(CFLPointArray* pFlpaResult, bool bExcludeSingleDelta = false) const override;
248
249 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLFigureArray& flfaResult) const override;
250 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLFigureArray* pFlfaResult) const override;
251
252 virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLFigureArray& flfaResult) const override;
253 virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLFigureArray* pFlfaResult) const override;
254
284 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;
285
315 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;
316
346 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;
347
377 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;
378
408 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;
409
439 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;
440
470 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;
471
501 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;
502
532 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;
533
563 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;
564
594 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;
595
625 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;
626
627
628 virtual const CResult Set(const CFLPoint<int32_t>& point) override;
629 virtual const CResult Set(const CFLPoint<int32_t>* pPoint) override;
630 virtual const CResult Set(const CFLPoint<int64_t>& point) override;
631 virtual const CResult Set(const CFLPoint<int64_t>* pPoint) override;
632 virtual const CResult Set(const CFLPoint<float>& point) override;
633 virtual const CResult Set(const CFLPoint<float>* pPoint) override;
634 virtual const CResult Set(const CFLPoint<double>& point) override;
635 virtual const CResult Set(const CFLPoint<double>* pPoint) override;
636
637 virtual const CResult Set(const CFLFigureText<int32_t>& flft) override;
638 virtual const CResult Set(const CFLFigureText<int32_t>* pFlft) override;
639 virtual const CResult Set(const CFLFigureText<int64_t>& flft) override;
640 virtual const CResult Set(const CFLFigureText<int64_t>* pFlft) override;
641 virtual const CResult Set(const CFLFigureText<float>& flft) override;
642 virtual const CResult Set(const CFLFigureText<float>* pFlft) override;
643 virtual const CResult Set(const CFLFigureText<double>& flft) override;
644 virtual const CResult Set(const CFLFigureText<double>* pFlft) override;
645
646 virtual const CResult Set(const CFLLine<int32_t>& line) override;
647 virtual const CResult Set(const CFLLine<int32_t>* pLine) override;
648 virtual const CResult Set(const CFLLine<int64_t>& line) override;
649 virtual const CResult Set(const CFLLine<int64_t>* pLine) override;
650 virtual const CResult Set(const CFLLine<float>& line) override;
651 virtual const CResult Set(const CFLLine<float>* pLine) override;
652 virtual const CResult Set(const CFLLine<double>& line) override;
653 virtual const CResult Set(const CFLLine<double>* pLine) override;
654
655 virtual const CResult Set(const CFLRect<int32_t>& rect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
656 virtual const CResult Set(const CFLRect<int32_t>* pRect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
657 virtual const CResult Set(const CFLRect<int64_t>& rect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
658 virtual const CResult Set(const CFLRect<int64_t>* pRect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
659 virtual const CResult Set(const CFLRect<float>& rect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
660 virtual const CResult Set(const CFLRect<float>* pRect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
661 virtual const CResult Set(const CFLRect<double>& rect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
662 virtual const CResult Set(const CFLRect<double>* pRect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
663
664 virtual const CResult Set(const CFLRoundRect<int32_t>& flrr, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
665 virtual const CResult Set(const CFLRoundRect<int32_t>* pFlrr, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
666 virtual const CResult Set(const CFLRoundRect<int64_t>& flrr, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
667 virtual const CResult Set(const CFLRoundRect<int64_t>* pFlrr, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
668 virtual const CResult Set(const CFLRoundRect<float>& flrr, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
669 virtual const CResult Set(const CFLRoundRect<float>* pFlrr, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
670 virtual const CResult Set(const CFLRoundRect<double>& flrr, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
671 virtual const CResult Set(const CFLRoundRect<double>* pFlrr, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther) override;
672
673 virtual const CResult Set(const CFLQuad<int32_t>& quad) override;
674 virtual const CResult Set(const CFLQuad<int32_t>* pQuad) override;
675 virtual const CResult Set(const CFLQuad<int64_t>& quad) override;
676 virtual const CResult Set(const CFLQuad<int64_t>* pQuad) override;
677 virtual const CResult Set(const CFLQuad<float>& quad) override;
678 virtual const CResult Set(const CFLQuad<float>* pQuad) override;
679 virtual const CResult Set(const CFLQuad<double>& quad) override;
680 virtual const CResult Set(const CFLQuad<double>* pQuad) override;
681
682 virtual const CResult Set(const CFLCircle<int32_t>& circle) override;
683 virtual const CResult Set(const CFLCircle<int32_t>* pCircle) override;
684 virtual const CResult Set(const CFLCircle<int64_t>& circle) override;
685 virtual const CResult Set(const CFLCircle<int64_t>* pCircle) override;
686 virtual const CResult Set(const CFLCircle<float>& circle) override;
687 virtual const CResult Set(const CFLCircle<float>* pCircle) override;
688 virtual const CResult Set(const CFLCircle<double>& circle) override;
689 virtual const CResult Set(const CFLCircle<double>* pCircle) override;
690
691 virtual const CResult Set(const CFLEllipse<int32_t>& ellipse) override;
692 virtual const CResult Set(const CFLEllipse<int32_t>* pEllipse) override;
693 virtual const CResult Set(const CFLEllipse<int64_t>& ellipse) override;
694 virtual const CResult Set(const CFLEllipse<int64_t>* pEllipse) override;
695 virtual const CResult Set(const CFLEllipse<float>& ellipse) override;
696 virtual const CResult Set(const CFLEllipse<float>* pEllipse) override;
697 virtual const CResult Set(const CFLEllipse<double>& ellipse) override;
698 virtual const CResult Set(const CFLEllipse<double>* pEllipse) override;
699
700 virtual const CResult Set(const CFLDoughnut<int32_t>& doughnut) override;
701 virtual const CResult Set(const CFLDoughnut<int32_t>* pDoughnut) override;
702 virtual const CResult Set(const CFLDoughnut<int64_t>& doughnut) override;
703 virtual const CResult Set(const CFLDoughnut<int64_t>* pDoughnut) override;
704 virtual const CResult Set(const CFLDoughnut<float>& doughnut) override;
705 virtual const CResult Set(const CFLDoughnut<float>* pDoughnut) override;
706 virtual const CResult Set(const CFLDoughnut<double>& doughnut) override;
707 virtual const CResult Set(const CFLDoughnut<double>* pDoughnut) override;
708
709 virtual const CResult Set(const CFLCubicSpline& cubicSpline) override;
710 virtual const CResult Set(const CFLCubicSpline* pCubicSpline) override;
711
712 virtual const CResult Set(const CFLBezierQuadraticCurve& flbc2) override;
713 virtual const CResult Set(const CFLBezierQuadraticCurve* pFlbc2) override;
714
715 virtual const CResult Set(const CFLBezierCubicCurve& flbc3) override;
716 virtual const CResult Set(const CFLBezierCubicCurve* pFlbc3) override;
717
718 virtual const CResult Set(const CFLBezierQuarticCurve& flbc4) override;
719 virtual const CResult Set(const CFLBezierQuarticCurve* pFlbc4) override;
720
721 virtual const CResult Set(const CFLRegion& region) override;
722 virtual const CResult Set(const CFLRegion* pRegion) override;
723
724 virtual const CResult Set(const CFLComplexRegion& complexRegion) override;
725 virtual const CResult Set(const CFLComplexRegion* pComplexRegion) override;
726
727 virtual const CResult Set(const CFLPointArray& pointArray) override;
728 virtual const CResult Set(const CFLPointArray* pPointArray) override;
729
753 virtual const CResult Set(const Base::TRect<int32_t>& rect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther);
754
778 virtual const CResult Set(const Base::TRect<int32_t>* pRect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther);
779
803 virtual const CResult Set(const Base::TRect<int64_t>& rect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther);
804
828 virtual const CResult Set(const Base::TRect<int64_t>* pRect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther);
829
853 virtual const CResult Set(const Base::TRect<float>& rect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther);
854
878 virtual const CResult Set(const Base::TRect<float>* pRect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther);
879
903 virtual const CResult Set(const Base::TRect<double>& rect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther);
904
928 virtual const CResult Set(const Base::TRect<double>* pRect, double startDeg = 0., double deltaDeg = 360., EArcClosingMethod eACM = EArcClosingMethod_EachOther);
929
930 virtual const CResult Set(const CFLFigure& flf) override;
931 virtual const CResult Set(const CFLFigure* pFlf) override;
932
933
934
940
945 virtual ~CFLDoughnut();
946
948 // Assignment operator
949
964
979
994
1009
1024
1039
1054
1069
1084
1099
1114
1129
1144
1159
1174
1189
1202
1215
1228
1241
1254
1267
1280
1294
1295
1297 // Comparison operator
1298
1310 bool operator==(const CFLDoughnut<int32_t>& doughnut) const;
1311
1323 bool operator==(const CFLDoughnut<int64_t>& doughnut) const;
1324
1336 bool operator==(const CFLDoughnut<float>& doughnut) const;
1337
1349 bool operator==(const CFLDoughnut<double>& doughnut) const;
1350
1362 bool operator!=(const CFLDoughnut<int32_t>& doughnut) const;
1363
1375 bool operator!=(const CFLDoughnut<int64_t>& doughnut) const;
1376
1388 bool operator!=(const CFLDoughnut<float>& doughnut) const;
1389
1401 bool operator!=(const CFLDoughnut<double>& doughnut) const;
1403
1404
1406 // Arithmetic and assignment operator
1407
1419 const CFLDoughnut<T>& operator+=(const int32_t& value);
1420
1432 const CFLDoughnut<T>& operator+=(const int64_t& value);
1433
1445 const CFLDoughnut<T>& operator+=(const float& value);
1446
1458 const CFLDoughnut<T>& operator+=(const double& value);
1459
1474
1489
1504
1519
1534
1549
1564
1579
1594
1609
1624
1639
1651 const CFLDoughnut<T>& operator-=(const int32_t& value);
1652
1664 const CFLDoughnut<T>& operator-=(const int64_t& value);
1665
1677 const CFLDoughnut<T>& operator-=(const float& value);
1678
1690 const CFLDoughnut<T>& operator-=(const double& value);
1691
1706
1721
1736
1751
1766
1781
1796
1811
1826
1841
1856
1871
1883 const CFLDoughnut<T>& operator*=(const int32_t& value);
1884
1896 const CFLDoughnut<T>& operator*=(const int64_t& value);
1897
1909 const CFLDoughnut<T>& operator*=(const float& value);
1910
1922 const CFLDoughnut<T>& operator*=(const double& value);
1923
1935 const CFLDoughnut<T>& operator/=(const int32_t& value);
1936
1948 const CFLDoughnut<T>& operator/=(const int64_t& value);
1949
1961 const CFLDoughnut<T>& operator/=(const float& value);
1962
1974 const CFLDoughnut<T>& operator/=(const double& value);
1976
1977
1979 // Arithmetic operator
1980
1992 CFLDoughnut<double> operator+(const int32_t& value) const;
1993
2005 CFLDoughnut<double> operator+(const int64_t& value) const;
2006
2018 CFLDoughnut<double> operator+(const float& value) const;
2019
2031 CFLDoughnut<double> operator+(const double& value) const;
2032
2047
2062
2077
2092
2107
2122
2137
2152
2167
2182
2197
2212
2224 CFLDoughnut<double> operator-(const int32_t& value) const;
2225
2237 CFLDoughnut<double> operator-(const int64_t& value) const;
2238
2250 CFLDoughnut<double> operator-(const float& value) const;
2251
2263 CFLDoughnut<double> operator-(const double& value) const;
2264
2279
2294
2309
2324
2339
2354
2369
2384
2399
2414
2429
2444
2456 CFLDoughnut<double> operator*(const int32_t& value) const;
2457
2469 CFLDoughnut<double> operator*(const int64_t& value) const;
2470
2482 CFLDoughnut<double> operator*(const float& value) const;
2483
2495 CFLDoughnut<double> operator*(const double& value) const;
2496
2508 CFLDoughnut<double> operator/(const int32_t& value) const;
2509
2521 CFLDoughnut<double> operator/(const int64_t& value) const;
2522
2534 CFLDoughnut<double> operator/(const float& value) const;
2535
2547 CFLDoughnut<double> operator/(const double& value) const;
2549
2550 //Friend operator
2552 // Arithmetic operator
2553
2567 friend CFLDoughnut<double> operator+(const int32_t& value, const CFLDoughnut<T>& doughnut)
2568 {
2569 CFLDoughnut<double> t(doughnut);
2570 t += value;
2571 return t;
2572 }
2573
2587 friend CFLDoughnut<double> operator+(const int64_t& value, const CFLDoughnut<T>& doughnut)
2588 {
2589 CFLDoughnut<double> t(doughnut);
2590 t += value;
2591 return t;
2592 }
2593
2607 friend CFLDoughnut<double> operator+(const float& value, const CFLDoughnut<T>& doughnut)
2608 {
2609 CFLDoughnut<double> t(doughnut);
2610 t += value;
2611 return t;
2612 }
2613
2627 friend CFLDoughnut<double> operator+(const double& value, const CFLDoughnut<T>& doughnut)
2628 {
2629 CFLDoughnut<double> t(doughnut);
2630 t += value;
2631 return t;
2632 }
2633
2647 friend CFLDoughnut<double> operator-(const int32_t& value, const CFLDoughnut<T>& doughnut)
2648 {
2649 CFLDoughnut<double> t(doughnut);
2650 t *= -1.;
2651 t += value;
2652 return t;
2653 }
2654
2668 friend CFLDoughnut<double> operator-(const int64_t& value, const CFLDoughnut<T>& doughnut)
2669 {
2670 CFLDoughnut<double> t(doughnut);
2671 t *= -1.;
2672 t += value;
2673 return t;
2674 }
2675
2689 friend CFLDoughnut<double> operator-(const float& value, const CFLDoughnut<T>& doughnut)
2690 {
2691 CFLDoughnut<double> t(doughnut);
2692 t *= -1.;
2693 t += value;
2694 return t;
2695 }
2696
2710 friend CFLDoughnut<double> operator-(const double& value, const CFLDoughnut<T>& doughnut)
2711 {
2712 CFLDoughnut<double> t(doughnut);
2713 t *= -1.;
2714 t += value;
2715 return t;
2716 }
2717
2731 friend CFLDoughnut<double> operator*(const int32_t& value, const CFLDoughnut<T>& doughnut)
2732 {
2733 CFLDoughnut<double> t(doughnut);
2734 t *= value;
2735 return t;
2736 }
2737
2751 friend CFLDoughnut<double> operator*(const int64_t& value, const CFLDoughnut<T>& doughnut)
2752 {
2753 CFLDoughnut<double> t(doughnut);
2754 t *= value;
2755 return t;
2756 }
2757
2771 friend CFLDoughnut<double> operator*(const float& value, const CFLDoughnut<T>& doughnut)
2772 {
2773 CFLDoughnut<double> t(doughnut);
2774 t *= value;
2775 return t;
2776 }
2777
2791 friend CFLDoughnut<double> operator*(const double& value, const CFLDoughnut<T>& doughnut)
2792 {
2793 CFLDoughnut<double> t(doughnut);
2794 t *= value;
2795 return t;
2796 }
2797
2811 friend CFLDoughnut<double> operator/(const int32_t& value, const CFLDoughnut<T>& doughnut)
2812 {
2813 CFLDoughnut<double> t(doughnut);
2814 t.flpCenter.x = value;
2815 t.flpCenter.y = value;
2816 t.Multiply((double)doughnut.flpCenter.x ? 1. / (double)doughnut.flpCenter.x : 1.);
2817 return t;
2818 }
2819
2833 friend CFLDoughnut<double> operator/(const int64_t& value, const CFLDoughnut<T>& doughnut)
2834 {
2835 CFLDoughnut<double> t(doughnut);
2836 t.flpCenter.x = value;
2837 t.flpCenter.y = value;
2838 t.Multiply((double)doughnut.flpCenter.x ? 1. / (double)doughnut.flpCenter.x : 1.);
2839 return t;
2840 }
2841
2855 friend CFLDoughnut<double> operator/(const float& value, const CFLDoughnut<T>& doughnut)
2856 {
2857 CFLDoughnut<double> t(doughnut);
2858 t.flpCenter.x = value;
2859 t.flpCenter.y = value;
2860 t.Multiply((double)doughnut.flpCenter.x ? 1. / (double)doughnut.flpCenter.x : 1.);
2861 return t;
2862 }
2863
2877 friend CFLDoughnut<double> operator/(const double& value, const CFLDoughnut<T>& doughnut)
2878 {
2879 CFLDoughnut<double> t(doughnut);
2880 t.flpCenter.x = value;
2881 t.flpCenter.y = value;
2882 t.Multiply((double)doughnut.flpCenter.x ? 1. / (double)doughnut.flpCenter.x : 1.);
2883 return t;
2884 }
2886
2887
2903 CFLFigureArray operator& (const CFLFigure& flf) const;
2904
2920 CFLFigureArray operator| (const CFLFigure& flf) const;
2921
2937 CFLFigureArray operator^ (const CFLFigure& flf) const;
2938
2954 CFLFigureArray operator- (const CFLRect<int32_t>& flr) const;
2955
2971 CFLFigureArray operator- (const CFLRect<int64_t>& flr) const;
2972
2988 CFLFigureArray operator- (const CFLRect<float>& flr) const;
2989
3005 CFLFigureArray operator- (const CFLRect<double>& flr) const;
3006
3022 CFLFigureArray operator- (const CFLQuad<int32_t>& flq) const;
3023
3039 CFLFigureArray operator- (const CFLQuad<int64_t>& flq) const;
3040
3056 CFLFigureArray operator- (const CFLQuad<float>& flq) const;
3057
3073 CFLFigureArray operator- (const CFLQuad<double>& flq) const;
3074
3090 CFLFigureArray operator- (const CFLCircle<int32_t>& flc) const;
3091
3107 CFLFigureArray operator- (const CFLCircle<int64_t>& flc) const;
3108
3124 CFLFigureArray operator- (const CFLCircle<float>& flc) const;
3125
3141 CFLFigureArray operator- (const CFLCircle<double>& flc) const;
3142
3158 CFLFigureArray operator- (const CFLEllipse<int32_t>& fle) const;
3159
3175 CFLFigureArray operator- (const CFLEllipse<int64_t>& fle) const;
3176
3192 CFLFigureArray operator- (const CFLEllipse<float>& fle) const;
3193
3209 CFLFigureArray operator- (const CFLEllipse<double>& fle) const;
3210
3224 CFLFigureArray operator- (const CFLDoughnut<int32_t>& fld) const;
3225
3239 CFLFigureArray operator- (const CFLDoughnut<int64_t>& fld) const;
3240
3254 CFLFigureArray operator- (const CFLDoughnut<float>& fld) const;
3255
3269 CFLFigureArray operator- (const CFLDoughnut<double>& fld) const;
3270
3286 CFLFigureArray operator- (const CFLComplexRegion& flcr) const;
3287
3288 operator Base::TPoint<int32_t>() const;
3289 operator Base::TRect<int32_t>() const;
3290
3316 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);
3317
3343 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);
3344
3370 CFLDoughnut(float x, float y, float f32Radius, float f32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther);
3371
3397 CFLDoughnut(double x, double y, double f64Radius, double f64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther);
3398
3424 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);
3425
3451 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);
3452
3478 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);
3479
3505 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);
3506
3532 CFLDoughnut(const CFLPoint<float>& flpCenter, float f32Radius, float f32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther);
3533
3559 CFLDoughnut(const CFLPoint<float>* pFlpCenter, float f32Radius, float f32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther);
3560
3586 CFLDoughnut(const CFLPoint<double>& flpCenter, double f64Radius, double f64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther);
3587
3613 CFLDoughnut(const CFLPoint<double>* pFlpCenter, double f64Radius, double f64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., EArcClosingMethod eArcClosingMethod = EArcClosingMethod_EachOther);
3614
3627
3640
3653
3666
3679
3692
3705
3718
3729
3740
3751
3762
3773
3784
3795
3806
3819
3832
3845
3858
3871
3884
3897
3910
3923
3936
3937
3938 SupportToDuplicateObject(CFLDoughnut<T>, *this);
3939 DeclareGetClassType();
3940
3941 private:
3942 virtual const CResult MakeFullCircle() override;
3943 virtual const CResult MakeArc(double f64StartDegree, double f64DeltaDegree, EArcClosingMethod eMethod) override;
3944 };
3945
3950 }
3951}
3952
Template type array class.
Definition RangeTree.h:19
Simplified class representing a 3-D point.
Definition TPoint3.h:37
Simplified class representing a point.
Definition TPoint.h:37
Simplified class representing a rectangle.
Definition TRect.h:37
FLImaging module execution result object.
Definition ResultsDef.h:1514
A class representing bezier cubic curve.
Definition FLBezierCubicCurve.h:24
A class representing bezier quadratic curve.
Definition FLBezierQuadraticCurve.h:24
A class representing bezier quartic curve.
Definition FLBezierQuarticCurve.h:24
A class representing circle.
Definition FLCircle.h:25
CFLPoint< T > flpCenter
Center of circle.
Definition FLCircle.h:36
A class representing a polygon.
Definition FLComplexRegion.h:27
A class representing cubic spline.
Definition FLCubicSpline.h:23
A class representing a doughnut shape of a circle or an arc.
Definition FLDoughnut.h:26
virtual const CResult Set(const CFLEllipse< int64_t > *pEllipse) override
Parameter setting function.
virtual const CResult Scale(double f64PivotX, double f64PivotY, double f64RatioX, double f64RatioY) override
CFLDoughnut< double > operator*(const float &value) const
multiplication operator
CFLDoughnut< double > operator-(const float &value) const
Offset operator.
CFLDoughnut< double > operator*(const double &value) const
multiplication operator
bool operator!=(const CFLDoughnut< int64_t > &doughnut) const
Comparison operator.
const CFLDoughnut< T > & operator=(const CFLDoughnut< int32_t > &doughnut)
assignment operator
CFLDoughnut< double > operator-(const CFLLine< int64_t > &line) const
Offset operator.
CFLDoughnut(Base::TRect< int64_t > *pRect)
initialization constructor
CFLDoughnut< double > operator-(const CFLLine< int32_t > &line) const
Offset operator.
CFLDoughnut< double > operator/(const int64_t &value) const
division operator
const CFLDoughnut< T > & operator-=(const double &value)
Offset operator.
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)
initialization constructor
CFLDoughnut(const CFLCircle< double > &circle)
copy constructor
CFLDoughnut(Base::TRect< float > &rect)
initialization constructor
const CFLDoughnut< T > & operator+=(const int64_t &value)
Offset operator.
const CFLDoughnut< T > & operator-=(const CFLPoint< double > &point)
Offset operator.
const CFLDoughnut< T > & operator=(const CFLRect< float > &rect)
assignment operator
virtual const CResult Set(const CFLEllipse< double > *pEllipse) override
Parameter setting function.
virtual const CResult Set(const CFLEllipse< int32_t > &ellipse) override
Parameter setting function.
friend CFLDoughnut< double > operator+(const int32_t &value, const CFLDoughnut< T > &doughnut)
Offset operator.
Definition FLDoughnut.h:2567
virtual const CResult Set(const CFLQuad< int64_t > *pQuad) override
Parameter setting function.
const CFLDoughnut< T > & operator-=(const float &value)
Offset operator.
virtual bool IsCollision(const CFLQuad< double > *pQuad) const override
virtual const CResult Set(const CFLFigureText< double > &flft) override
Parameter setting function.
CFLDoughnut< double > operator-(const CFLPoint< int32_t > &point) const
Offset operator.
CFLDoughnut< double > operator+(const CFLPoint< float > &point) const
Offset operator.
virtual const CResult Set(const Base::TRect< double > &rect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther)
Parameter setting function.
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)
initialization constructor
CFLDoughnut< double > operator*(const int32_t &value) const
multiplication operator
virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLFigureArray &flfaResult) const override
Get point information moving by the set length.
const CFLDoughnut< T > & operator-=(const Base::TPoint< int32_t > &point)
Offset operator.
virtual const CResult Set(const Base::TRect< int32_t > &rect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther)
Parameter setting function.
virtual const CResult Set(const CFLDoughnut< int64_t > &doughnut) override
Parameter setting function.
virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLFigureArray *pFlfaResult) const override
Get point information moving by the set length.
virtual const CResult Set(const CFLDoughnut< float > *pDoughnut) override
Parameter setting function.
virtual const CResult Set(const CFLLine< int64_t > &line) override
Parameter setting function.
virtual const CResult Set(const CFLDoughnut< float > &doughnut) override
Parameter setting function.
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
Parameter setting function.
virtual const CResult Set(const CFLRoundRect< float > &flrr, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
Parameter setting function.
virtual const CResult Set(const CFLFigureText< int64_t > *pFlft) override
Parameter setting function.
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
Parameter setting function.
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
Parameter setting function.
CFLDoughnut< double > operator+(const double &value) const
Offset operator.
CFLDoughnut< double > operator+(const CFLPoint< int64_t > &point) const
Offset operator.
virtual const CResult GetRasterContour(CFLFigureArray *pFlfaResult, bool bExcludeSingleDelta=false) const override
Get contour's raster point information.
const CFLDoughnut< T > & operator=(const CFLDoughnut< int32_t > *pDoughnut)
assignment operator
CFLDoughnut(const CFLCircle< int32_t > &circle)
copy constructor
const CFLDoughnut< T > & operator-=(const Base::TPoint< int64_t > &point)
Offset operator.
CFLDoughnut< double > operator+(const Base::TPoint< int64_t > &point) const
Offset operator.
const CFLDoughnut< T > & operator+=(const double &value)
Offset operator.
virtual const CResult Set(const CFLFigureText< double > *pFlft) override
Parameter setting function.
virtual const CResult Set(const CFLComplexRegion &complexRegion) override
Parameter setting function.
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
Parameter setting function.
virtual const CResult Set(const CFLPointArray &pointArray) override
Parameter setting function.
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
Offset operator.
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)
initialization constructor
virtual const CResult Set(const CFLPoint< double > &point) override
Parameter setting function.
virtual const CResult GetPointsOfMinimumDistance(const CFLFigure *pFlfTarget, CFLPointArray *pFlpaResult) const override
Get the position closest to the target figure.
const CFLDoughnut< T > & operator-=(const int64_t &value)
Offset operator.
CFLDoughnut(const CFLCircle< double > *pCircle)
copy constructor
virtual bool IsInsideOut() sealed
A function that checks if the radius of an inner circle is greater than the outer radius.
CFLDoughnut< double > operator+(const CFLLine< float > &line) const
Offset operator.
virtual const CResult Set(const CFLLine< float > *pLine) override
Parameter setting function.
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)
initialization constructor
friend CFLDoughnut< double > operator/(const int64_t &value, const CFLDoughnut< T > &doughnut)
division operator
Definition FLDoughnut.h:2833
CFLDoughnut< double > operator-(const int32_t &value) const
Offset operator.
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
Parameter setting function.
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
Parameter setting function.
const CFLDoughnut< T > & operator/=(const int64_t &value)
division operator
CFLDoughnut< double > operator+(const float &value) const
Offset operator.
virtual const CResult GetIntersection(const CFLBezierQuadraticCurve *pFlbc2, CFLFigureArray *pFlfaResult) const override
friend CFLDoughnut< double > operator/(const float &value, const CFLDoughnut< T > &doughnut)
division operator
Definition FLDoughnut.h:2855
virtual const CResult Set(const CFLRoundRect< float > *pFlrr, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
Parameter setting function.
CFLDoughnut(const CFLDoughnut< float > &doughnut)
copy constructor
virtual const CResult Set(const CFLCircle< int64_t > &circle) override
Parameter setting function.
bool operator!=(const CFLDoughnut< float > &doughnut) const
Comparison operator.
const CFLDoughnut< T > & operator+=(const float &value)
Offset operator.
CFLDoughnut< double > operator+(const Base::TPoint< float > &point) const
Offset operator.
virtual const CResult Set(const CFLEllipse< int64_t > &ellipse) override
Parameter setting function.
virtual bool IsCollision(const CFLDoughnut< double > *pDoughnut) const override
CFLDoughnut< double > operator-(const CFLPoint< double > &point) const
Offset operator.
virtual const CResult Set(const CFLBezierQuadraticCurve *pFlbc2) override
Parameter setting function.
virtual const CResult Set(const CFLCircle< float > *pCircle) override
Parameter setting function.
virtual bool IsCollision(const CFLBezierCubicCurve *pFlbc3) const override
const CFLDoughnut< T > & operator=(const CFLRect< int64_t > *pRect)
assignment operator
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
Parameter setting function.
const CFLDoughnut< T > & operator=(const CFLRect< double > *pRect)
assignment operator
virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLFigureArray &flfaResult) const override
Get point information moving by the set length.
const CFLDoughnut< T > & operator+=(const CFLLine< float > &line)
Offset operator.
virtual const CResult Set(const CFLRect< int32_t > &rect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
Parameter setting function.
virtual bool IsCollision(const CFLLine< double > *pLine) const override
const CFLDoughnut< T > & operator-=(const CFLPoint< int64_t > &point)
Offset operator.
virtual bool IsCollision(const CFLEllipse< double > *pEll) const override
friend CFLDoughnut< double > operator*(const int32_t &value, const CFLDoughnut< T > &doughnut)
multiplication operator
Definition FLDoughnut.h:2731
virtual const CResult Set(const Base::TRect< int64_t > &rect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther)
Parameter setting function.
const CFLDoughnut< T > & operator+=(const Base::TPoint< float > &point)
Offset operator.
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)
Offset operator.
Definition FLDoughnut.h:2587
virtual bool IsCollision(const CFLRoundRect< double > *pFlrr) const override
CFLDoughnut< double > operator-(const Base::TPoint< int32_t > &point) const
Offset operator.
virtual const CResult Multiply(int32_t i32Mul)
virtual const CResult Set(const CFLLine< int64_t > *pLine) override
Parameter setting function.
virtual const CResult Set(const CFLQuad< double > &quad) override
Parameter setting function.
virtual const CResult SetInnerRadius(float innerRadius) sealed
Function to set radius of inner circle.
CFLDoughnut(const CFLDoughnut< double > *pDoughnut)
copy constructor
virtual const CResult Set(const CFLLine< double > *pLine) override
Parameter setting function.
CFLDoughnut(Base::TRect< float > *pRect)
initialization constructor
CFLDoughnut< double > operator+(const CFLLine< int32_t > &line) const
Offset operator.
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
Parameter setting function.
virtual const CResult Set(const CFLPoint< float > *pPoint) override
Parameter setting function.
CFLDoughnut< double > operator-(const int64_t &value) const
Offset operator.
const CFLDoughnut< T > & operator=(const CFLRect< int32_t > &rect)
assignment operator
virtual double GetLength() const override
virtual uint64_t GetVertexCountRecursive(EIncludingRegionType eType=EIncludingRegionType_All) const override
FigureArray Get the number of all vertices inside.
virtual const CResult GetIntersection(const CFLEllipse< double > *pEll, CFLFigureArray *pFlfaResult) const override
CFLDoughnut(Base::TRect< int32_t > *pRect)
initialization constructor
const CFLDoughnut< T > & operator*=(const float &value)
multiplication operator
CFLDoughnut(const CFLCircle< int32_t > *pCircle)
copy constructor
bool operator!=(const CFLDoughnut< int32_t > &doughnut) const
Comparison operator.
virtual const CResult Set(const CFLQuad< float > *pQuad) override
Parameter setting function.
const CFLDoughnut< T > & operator=(Base::TRect< double > *pRect)
assignment operator
virtual const CResult Set(const Base::TRect< int64_t > *pRect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther)
Parameter setting function.
const CFLDoughnut< T > & operator*=(const int32_t &value)
multiplication operator
virtual const CResult Set(const CFLComplexRegion *pComplexRegion) override
Parameter setting function.
bool operator==(const CFLDoughnut< float > &doughnut) const
Comparison operator.
const CFLDoughnut< T > & operator+=(const CFLPoint< int32_t > &point)
Offset operator.
virtual const CResult Set(const CFLBezierQuadraticCurve &flbc2) override
Parameter setting function.
virtual EFigureDeclType GetDeclType() const override
CFLDoughnut< double > operator-(const CFLPoint< int64_t > &point) const
Offset operator.
virtual const CResult Set(const Base::TRect< int32_t > *pRect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther)
Parameter setting function.
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
Parameter setting function.
CFLDoughnut(const CFLCircle< float > &circle)
copy constructor
virtual const CResult Set(const CFLLine< double > &line) override
Parameter setting function.
virtual const CResult Inflate(double left, double top, double right, double bottom) override
CFLDoughnut< double > operator+(const CFLPoint< double > &point) const
Offset operator.
virtual const CResult GetIntersection(const CFLBezierQuarticCurve *pFlbc4, CFLFigureArray *pFlfaResult) const override
const CFLDoughnut< T > & operator-=(const CFLLine< int64_t > &line)
Offset operator.
virtual const CResult Set(const CFLFigureText< float > *pFlft) override
Parameter setting function.
virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLFigureArray *pFlfaResult) const override
Get point information moving by the set length.
CFLDoughnut(const CFLDoughnut< int64_t > *pDoughnut)
copy constructor
friend CFLDoughnut< double > operator+(const float &value, const CFLDoughnut< T > &doughnut)
Offset operator.
Definition FLDoughnut.h:2607
virtual const CResult GetIntersection(const CFLBezierCubicCurve *pFlbc3, CFLFigureArray *pFlfaResult) const override
virtual const CResult Set(const CFLCircle< float > &circle) override
Parameter setting function.
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
Parameter setting function.
virtual bool IsCollision(const CFLFigureArray *pFlfa) const override
CFLDoughnut< double > operator*(const int64_t &value) const
multiplication operator
const CFLDoughnut< T > & operator/=(const double &value)
division operator
virtual const CResult Set(const CFLPoint< float > &point) override
Parameter setting function.
bool operator==(const CFLDoughnut< double > &doughnut) const
Comparison operator.
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
Parameter setting function.
friend CFLDoughnut< double > operator+(const double &value, const CFLDoughnut< T > &doughnut)
Offset operator.
Definition FLDoughnut.h:2627
const CFLDoughnut< T > & operator=(const Base::TRect< int64_t > &rect)
assignment operator
CFLDoughnut< double > operator-(const Base::TPoint< double > &point) const
Offset operator.
const CFLDoughnut< T > & operator=(const CFLDoughnut< float > &doughnut)
assignment operator
virtual const CResult GetPointsOfMaximumDistance(const CFLFigure *pFlfTarget, CFLPointArray *pFlpaResult) const override
Get the location farthest away from the target figure.
CFLDoughnut(Base::TRect< int64_t > &rect)
initialization constructor
virtual const CResult Set(const CFLRoundRect< int64_t > *pFlrr, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
Parameter setting function.
virtual const CResult Set(const CFLQuad< double > *pQuad) override
Parameter setting function.
virtual const CResult Set(const CFLLine< int32_t > *pLine) override
Parameter setting function.
virtual bool IsCollision(const CFLPoint< double > *pPoint) const override
virtual const CResult Set(const CFLFigureText< int32_t > *pFlft) override
Parameter setting function.
virtual const CResult Set(const CFLRoundRect< int32_t > &flrr, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
Parameter setting function.
CFLDoughnut< double > operator-(const CFLPoint< float > &point) const
Offset operator.
CFLDoughnut< double > operator-(const Base::TPoint< float > &point) const
Offset operator.
virtual const CResult Set(const CFLRoundRect< double > &flrr, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
Parameter setting function.
const CFLDoughnut< T > & operator-=(const int32_t &value)
Offset operator.
virtual const CResult GetRasterContour(Base::CFLArray< Base::TPoint< int32_t > > *pFlaResult, bool bExcludeSingleDelta=false) const override
Get contour's raster point information.
virtual bool IsCollision(const CFLRect< double > *pRect) const override
virtual const CResult MakeFigureValid() override
Turn an invalid figure into a valid figure. (For example, restore the left and right,...
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
Parameter setting function.
const CFLDoughnut< T > & operator=(const Base::TRect< float > &rect)
assignment operator
virtual const CResult SetInnerRadius(int64_t innerRadius) sealed
Function to set radius of inner circle.
CFLDoughnut(const CFLFigure *pFlf)
copy constructor
virtual const CResult Set(const CFLFigureText< int64_t > &flft) override
Parameter setting function.
virtual const CResult GetIntersection(const CFLRoundRect< double > *pFlrr, CFLFigureArray *pFlfaResult) const override
virtual const CResult Set(const CFLQuad< int32_t > &quad) override
Parameter setting function.
CFLDoughnut(const CFLFigure &flf)
copy constructor
virtual const CResult Set(const Base::TRect< double > *pRect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther)
Parameter setting function.
virtual const CResult Set(const CFLEllipse< float > *pEllipse) override
Parameter setting function.
virtual const CResult Set(const CFLBezierQuarticCurve *pFlbc4) override
Parameter setting function.
CFLDoughnut(const CFLPoint< double > *pFlpCenter, double f64Radius, double f64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther)
initialization constructor
CFLDoughnut< double > operator+(const Base::TPoint< int32_t > &point) const
Offset operator.
virtual const CResult Set(const CFLRect< float > &rect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
Parameter setting function.
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)
initialization constructor
CFLDoughnut< double > operator+(const CFLPoint< int32_t > &point) const
Offset operator.
const CFLDoughnut< T > & operator=(const CFLDoughnut< float > *pDoughnut)
assignment operator
const CFLDoughnut< T > & operator=(const CFLRect< int32_t > *pRect)
assignment operator
const CFLDoughnut< T > & operator+=(const CFLLine< int32_t > &line)
Offset operator.
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
Parameter setting function.
friend CFLDoughnut< double > operator-(const int32_t &value, const CFLDoughnut< T > &doughnut)
Offset operator.
Definition FLDoughnut.h:2647
const CFLDoughnut< T > & operator+=(const int32_t &value)
Offset operator.
CFLDoughnut(const CFLCircle< int64_t > &circle)
copy constructor
virtual const CResult Set(const CFLBezierCubicCurve &flbc3) override
Parameter setting function.
const CFLDoughnut< T > & operator-=(const CFLLine< double > &line)
Offset operator.
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
Parameter setting function.
CFLDoughnut(const CFLDoughnut< int64_t > &doughnut)
copy constructor
virtual const CResult Set(const CFLFigureText< float > &flft) override
Parameter setting function.
virtual const CResult Set(const CFLBezierCubicCurve *pFlbc3) override
Parameter setting function.
const CFLDoughnut< T > & operator=(const Base::TRect< int32_t > &rect)
assignment operator
const CFLDoughnut< T > & operator+=(const Base::TPoint< double > &point)
Offset operator.
virtual const CResult GetIntersection(const CFLFigureArray *pFlfaOperand, CFLFigureArray *pFlfaResult) const override
const CFLDoughnut< T > & operator=(const CFLDoughnut< double > &doughnut)
assignment operator
virtual const CResult Set(const CFLRect< int64_t > *pRect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
Parameter setting function.
virtual const CResult Set(const CFLCircle< double > &circle) override
Parameter setting function.
const CFLDoughnut< T > & operator=(const CFLDoughnut< int64_t > *pDoughnut)
assignment operator
const CFLDoughnut< T > & operator=(const CFLDoughnut< double > *pDoughnut)
assignment operator
virtual const CResult Set(const CFLEllipse< double > &ellipse) override
Parameter setting function.
virtual const CResult GetVertexCount(CFLFigureArray *pFlfaResult, EIncludingRegionType eType=EIncludingRegionType_All, bool bRecursive=true) const override
Get the number of vertices in the figure.
virtual const CResult Set(const CFLPoint< int64_t > &point) override
Parameter setting function.
const CFLDoughnut< T > & operator-=(const CFLLine< int32_t > &line)
Offset operator.
virtual const CResult GetRasterRegion(Base::CFLArray< Base::TRect< double > > *pFlaResult, const CFLRect< int64_t > *pFlrROI=nullptr) const override
virtual T GetInnerRadius() const sealed
Function to get radius of inner circle.
CFLDoughnut< double > operator/(const float &value) const
division operator
friend CFLDoughnut< double > operator-(const float &value, const CFLDoughnut< T > &doughnut)
Offset operator.
Definition FLDoughnut.h:2689
CFLDoughnut(Base::TRect< double > &rect)
initialization constructor
virtual const CResult Set(const CFLQuad< float > &quad) override
Parameter setting function.
const CFLDoughnut< T > & operator-=(const CFLPoint< float > &point)
Offset operator.
CFLDoughnut< double > operator/(const int32_t &value) const
division operator
virtual const CResult Set(const CFLPoint< int64_t > *pPoint) override
Parameter setting function.
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
Parameter setting function.
virtual bool IsCollision(const CFLRegion *pFlrg) const override
virtual const CResult Set(const CFLPoint< int32_t > *pPoint) override
Parameter setting function.
bool operator==(const CFLDoughnut< int32_t > &doughnut) const
Comparison operator.
friend CFLDoughnut< double > operator*(const double &value, const CFLDoughnut< T > &doughnut)
multiplication operator
Definition FLDoughnut.h:2791
const CFLDoughnut< T > & operator+=(const CFLLine< double > &line)
Offset operator.
virtual const CResult Set(const CFLCircle< double > *pCircle) override
Parameter setting function.
const CFLDoughnut< T > & operator-=(const Base::TPoint< float > &point)
Offset operator.
CFLDoughnut(Base::TRect< int32_t > &rect)
initialization constructor
const CFLDoughnut< T > & operator-=(const CFLLine< float > &line)
Offset operator.
CFLDoughnut< double > operator-(const CFLLine< double > &line) const
Offset operator.
CFLDoughnut(const CFLPoint< float > *pFlpCenter, float f32Radius, float f32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther)
initialization constructor
friend CFLDoughnut< double > operator/(const double &value, const CFLDoughnut< T > &doughnut)
division operator
Definition FLDoughnut.h:2877
virtual const CResult Set(const CFLRect< double > &rect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
Parameter setting function.
virtual const CResult Set(const CFLFigureText< int32_t > &flft) override
Parameter setting function.
virtual const CResult Set(const CFLLine< float > &line) override
Parameter setting function.
virtual const CResult Set(const CFLCircle< int32_t > &circle) override
Parameter setting function.
const CFLDoughnut< T > & operator=(Base::TRect< int64_t > *pRect)
assignment operator
CFLDoughnut(const CFLDoughnut< float > *pDoughnut)
copy constructor
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
Parameter setting function.
virtual const CResult GetIntersection(const CFLCubicSpline *pFlcs, CFLFigureArray *pFlfaResult) const override
CFLDoughnut(const CFLDoughnut< int32_t > *pDoughnut)
copy constructor
virtual const CResult GetIntersection(const CFLCircle< double > *pCir, CFLFigureArray *pFlfaResult) const override
friend CFLDoughnut< double > operator-(const int64_t &value, const CFLDoughnut< T > &doughnut)
Offset operator.
Definition FLDoughnut.h:2668
CFLDoughnut(const CFLDoughnut< double > &doughnut)
copy constructor
const CFLDoughnut< T > & operator=(const CFLRect< double > &rect)
assignment operator
virtual const CResult GetMinimumEnclosingRectangle(CFLQuad< double > *pQuad) const override
Get a minimum enclosing rectangle.
const CFLDoughnut< T > & operator/=(const int32_t &value)
division operator
virtual const CResult Set(const CFLDoughnut< double > &doughnut) override
Parameter setting function.
virtual const CResult GetVertexCount(CFLFigureArray &flfaResult, EIncludingRegionType eType=EIncludingRegionType_All, bool bRecursive=true) const override
Get the number of vertices in the figure.
const CFLDoughnut< T > & operator+=(const CFLPoint< int64_t > &point)
Offset operator.
bool operator==(const CFLDoughnut< int64_t > &doughnut) const
Comparison operator.
virtual const CResult MakeArc(double f64StartDegree, double f64DeltaDegree)
make the doughnut into an arc shape.
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)
initialization constructor
const CFLDoughnut< T > & operator=(Base::TRect< int32_t > *pRect)
assignment operator
CFLDoughnut< double > operator+(const int64_t &value) const
Offset operator.
virtual const CResult Set(const CFLQuad< int32_t > *pQuad) override
Parameter setting function.
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
Parameter setting function.
virtual const CResult GetBoundaryRect(double &left, double &top, double &right, double &bottom) const override
virtual const CResult Set(const CFLRegion *pRegion) override
Parameter setting function.
CFLDoughnut(const CFLPoint< double > &flpCenter, double f64Radius, double f64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther)
initialization constructor
CFLDoughnut< double > operator+(const Base::TPoint< double > &point) const
Offset operator.
virtual bool IsCollision(const CFLCircle< double > *pRect) const override
const CFLDoughnut< T > & operator+=(const CFLPoint< float > &point)
Offset operator.
virtual const CResult Set(const CFLRect< double > *pRect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
Parameter setting function.
CFLDoughnut< double > operator-(const CFLLine< float > &line) const
Offset operator.
const CFLDoughnut< T > & operator*=(const double &value)
multiplication operator
virtual const CResult Set(const CFLRect< int32_t > *pRect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
Parameter setting function.
virtual const CResult Set(const Base::TRect< float > *pRect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther)
Parameter setting function.
virtual const CResult Set(const CFLQuad< int64_t > &quad) override
Parameter setting function.
virtual const CResult Swap(CFLFigure *pFlfRight) override
CFLDoughnut(Base::TRect< double > *pRect)
initialization constructor
virtual const CResult Set(const CFLDoughnut< int64_t > *pDoughnut) override
Parameter setting function.
virtual bool IsCollision(const CFLPointArray *pFlpa) const override
friend CFLDoughnut< double > operator*(const int64_t &value, const CFLDoughnut< T > &doughnut)
multiplication operator
Definition FLDoughnut.h:2751
virtual const CResult Set(const CFLPoint< double > *pPoint) override
Parameter setting function.
CFLDoughnut(const CFLPoint< float > &flpCenter, float f32Radius, float f32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther)
initialization constructor
const CFLDoughnut< T > & operator=(const CFLRect< int64_t > &rect)
assignment operator
CFLDoughnut< double > operator+(const CFLLine< int64_t > &line) const
Offset operator.
virtual const CResult MakeFigureInvalid() override
Make the figure invalid. (For example, set the coordinates of the point to invalid x,...
CFLDoughnut(const CFLCircle< float > *pCircle)
copy constructor
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)
Parameter setting function.
friend CFLDoughnut< double > operator/(const int32_t &value, const CFLDoughnut< T > &doughnut)
division operator
Definition FLDoughnut.h:2811
virtual const CResult SetInnerRadius(double innerRadius) sealed
Function to set radius of inner circle.
CFLDoughnut< double > operator/(const double &value) const
division operator
CFLDoughnut(const CFLCircle< int64_t > *pCircle)
copy constructor
virtual const CResult Set(const CFLDoughnut< int32_t > &doughnut) override
Parameter setting function.
virtual const CResult GetRasterContour(CFLPointArray *pFlpaResult, bool bExcludeSingleDelta=false) const override
Get contour's raster point information.
const CFLDoughnut< T > & operator+=(const CFLPoint< double > &point)
Offset operator.
virtual const CResult GetIntersection(const CFLDoughnut< double > *pDoughnut, CFLFigureArray *pFlfaResult) const override
const CFLDoughnut< T > & operator+=(const Base::TPoint< int32_t > &point)
Offset operator.
friend CFLDoughnut< double > operator*(const float &value, const CFLDoughnut< T > &doughnut)
multiplication operator
Definition FLDoughnut.h:2771
virtual const CResult GetRasterRegion(Base::CFLArray< Base::TRect< float > > *pFlaResult, const CFLRect< int64_t > *pFlrROI=nullptr) const override
CFLDoughnut(const CFLDoughnut< int32_t > &doughnut)
copy constructor
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
Parameter setting function.
CFLDoughnut< double > operator-(const double &value) const
Offset operator.
virtual const CResult Set(const CFLEllipse< int32_t > *pEllipse) override
Parameter setting function.
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)
initialization constructor
const CFLDoughnut< T > & operator-=(const Base::TPoint< double > &point)
Offset operator.
virtual const CResult Set(const CFLDoughnut< int32_t > *pDoughnut) override
Parameter setting function.
CFLDoughnut< double > operator-(const Base::TPoint< int64_t > &point) const
Offset operator.
virtual const CResult Set(const CFLCubicSpline &cubicSpline) override
Parameter setting function.
virtual const CResult Set(const CFLDoughnut< double > *pDoughnut) override
Parameter setting function.
virtual double GetPerimeter() const override
friend CFLDoughnut< double > operator-(const double &value, const CFLDoughnut< T > &doughnut)
Offset operator.
Definition FLDoughnut.h:2710
virtual const CResult Set(const CFLRect< float > *pRect, double startDeg=0., double deltaDeg=360., EArcClosingMethod eACM=EArcClosingMethod_EachOther) override
Parameter setting function.
const CFLDoughnut< T > & operator=(const Base::TRect< double > &rect)
assignment operator
CFLDoughnut(float x, float y, float f32Radius, float f32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., EArcClosingMethod eArcClosingMethod=EArcClosingMethod_EachOther)
initialization constructor
const CFLDoughnut< T > & operator/=(const float &value)
division operator
virtual const CResult Set(const CFLPointArray *pPointArray) override
Parameter setting function.
virtual const CResult MakeFullDoughnut()
Make the doughnut a complete shape. (start degree : 0, delta degree : 360, arc closing method : each ...
virtual const CResult SetInnerRadius(int32_t innerRadius) sealed
Function to set radius of inner circle.
virtual const CResult Set(const CFLLine< int32_t > &line) override
Parameter setting function.
const CFLDoughnut< T > & operator-=(const CFLPoint< int32_t > &point)
Offset operator.
const CFLDoughnut< T > & operator*=(const int64_t &value)
multiplication operator
CFLDoughnut< double > operator+(const CFLLine< double > &line) const
Offset operator.
virtual const CResult Set(const CFLCircle< int32_t > *pCircle) override
Parameter setting function.
const CFLDoughnut< T > & operator+=(const CFLLine< int64_t > &line)
Offset operator.
virtual const CResult Set(const CFLCubicSpline *pCubicSpline) override
Parameter setting function.
virtual const CResult Set(const CFLBezierQuarticCurve &flbc4) override
Parameter setting function.
virtual const CResult Set(const CFLCircle< int64_t > *pCircle) override
Parameter setting function.
virtual const CResult Set(const CFLRegion &region) override
Parameter setting function.
const CFLDoughnut< T > & operator=(const CFLDoughnut< int64_t > &doughnut)
assignment operator
const CFLDoughnut< T > & operator+=(const Base::TPoint< int64_t > &point)
Offset operator.
bool operator!=(const CFLDoughnut< double > &doughnut) const
Comparison operator.
virtual const CResult GetIntersection(const CFLRegion *pFlrg, CFLFigureArray *pFlfaResult) const override
const CFLDoughnut< T > & operator=(const CFLRect< float > *pRect)
assignment operator
virtual bool IsCollision(const CFLComplexRegion *pFlcr) const override
const CFLDoughnut< T > & operator=(Base::TRect< float > *pRect)
assignment operator
A class representing ellipse.
Definition FLEllipse.h:25
A base class representing array of figure.
Definition FLFigureArray.h:26
A base class of classes representing figures.
Definition FLFigure.h:27
A class that expresses information necessary for drawing.
Definition FLFigureText.h:26
A class representing a line.
Definition FLLine.h:25
A base class representing array of figure.
Definition FLPointArray.h:26
A class representing a point.
Definition FLPoint.h:24
A class representing a quadrangle.
Definition FLQuad.h:24
A class representing a rectangle.
Definition FLRect.h:24
A class representing region.
Definition FLRegion.h:26
A class representing a round rectangle.
Definition FLRoundRect.h:24
EIncludingRegionType
Definition DefinitionsFigure.h:2723
EFigureDeclType
Declare type of figure.
Definition DefinitionsFigure.h:33
EArcClosingMethod
Arc closing method.
Definition DefinitionsFigure.h:2491