FLImaging 7.10.21.1
FLImagingFoundation/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
246 virtual const CResult GetOutlinedFigure(double f64Thickness, CFLFigureArray* pFlfaResult) const override;
247
248 using CFLFigure::Swap;
249 virtual const CResult Swap(CFLFigure* pFlfRight) override;
250
252 virtual const CResult GetMinimumEnclosingRectangle(CFLQuad<double>* pQuad) const override;
253
254 using CFLFigure::Extend;
255
258
260 virtual const CResult GetPointsOfMinimumDistance(const CFLFigure* pFlfTarget, CFLPointArray* pFlpaResult) const override;
261
263 virtual const CResult GetPointsOfMaximumDistance(const CFLFigure* pFlfTarget, CFLPointArray* pFlpaResult) const override;
264
265
267 virtual const CResult GetRasterRegion(CFLFigureArray* pFlfaResult, const CFLRect<int64_t>* pFlrROI = nullptr, bool bConservativeRasterization = false) const override;
268 virtual const CResult GetRasterRegion(Base::CFLArray<Base::TRect<int32_t>>* pFlaResult, const CFLRect<int64_t>* pFlrROI = nullptr, bool bConservativeRasterization = false) const override;
269 virtual const CResult GetRasterRegion(Base::CFLArray<Base::TRect<int64_t>>* pFlaResult, const CFLRect<int64_t>* pFlrROI = nullptr, bool bConservativeRasterization = false) const override;
270 virtual const CResult GetRasterRegion(Base::CFLArray<Base::TRect<float>>* pFlaResult, const CFLRect<int64_t>* pFlrROI = nullptr, bool bConservativeRasterization = false) const override;
271 virtual const CResult GetRasterRegion(Base::CFLArray<Base::TRect<double>>* pFlaResult, const CFLRect<int64_t>* pFlrROI = nullptr, bool bConservativeRasterization = false) const override;
272 virtual const CResult GetRasterRegion(Base::CFLArray<Base::TPoint3<int32_t>>* pFlaResult, const CFLRect<int64_t>* pFlrROI = nullptr, bool bConservativeRasterization = false) const override;
273
275 virtual bool IsCollision(const CFLPoint<double>* pPoint) const override;
276 virtual bool IsCollision(const CFLLine<double>* pLine) const override;
277 virtual bool IsCollision(const CFLRect<double>* pRect) const override;
278 virtual bool IsCollision(const CFLRoundRect<double>* pFlrr) const override;
279 virtual bool IsCollision(const CFLQuad<double>* pQuad) const override;
280 virtual bool IsCollision(const CFLCircle<double>* pRect) const override;
281 virtual bool IsCollision(const CFLEllipse<double>* pEll) const override;
282 virtual bool IsCollision(const CFLDoughnut<double>* pDoughnut) const override;
283 virtual bool IsCollision(const CFLCubicSpline* pFlcs) const override;
284 virtual bool IsCollision(const CFLBezierQuadraticCurve* pFlbc2) const override;
285 virtual bool IsCollision(const CFLBezierCubicCurve* pFlbc3) const override;
286 virtual bool IsCollision(const CFLBezierQuarticCurve* pFlbc4) const override;
287 virtual bool IsCollision(const CFLRegion* pFlrg) const override;
288 virtual bool IsCollision(const CFLComplexRegion* pFlcr) const override;
289 virtual bool IsCollision(const CFLFigureArray* pFlfa) const override;
290 virtual bool IsCollision(const CFLPointArray* pFlpa) const override;
291
293 virtual const CResult GetIntersection(const CFLLine<double>* pLine, CFLFigureArray* pFlfaResult) const override;
294 virtual const CResult GetIntersection(const CFLRect<double>* pRect, CFLFigureArray* pFlfaResult) const override;
295 virtual const CResult GetIntersection(const CFLRoundRect<double>* pFlrr, CFLFigureArray* pFlfaResult) const override;
296 virtual const CResult GetIntersection(const CFLQuad<double>* pQuad, CFLFigureArray* pFlfaResult) const override;
297 virtual const CResult GetIntersection(const CFLCircle<double>* pCir, CFLFigureArray* pFlfaResult) const override;
298 virtual const CResult GetIntersection(const CFLEllipse<double>* pEll, CFLFigureArray* pFlfaResult) const override;
299 virtual const CResult GetIntersection(const CFLDoughnut<double>* pDoughnut, CFLFigureArray* pFlfaResult) const override;
300 virtual const CResult GetIntersection(const CFLCubicSpline* pFlcs, CFLFigureArray* pFlfaResult) const override;
301 virtual const CResult GetIntersection(const CFLBezierQuadraticCurve* pFlbc2, CFLFigureArray* pFlfaResult) const override;
302 virtual const CResult GetIntersection(const CFLBezierCubicCurve* pFlbc3, CFLFigureArray* pFlfaResult) const override;
303 virtual const CResult GetIntersection(const CFLBezierQuarticCurve* pFlbc4, CFLFigureArray* pFlfaResult) const override;
304 virtual const CResult GetIntersection(const CFLRegion* pFlrg, CFLFigureArray* pFlfaResult) const override;
305 virtual const CResult GetIntersection(const CFLComplexRegion* pFlcr, CFLFigureArray* pFlfaResult) const override;
306 virtual const CResult GetIntersection(const CFLFigureArray* pFlfaOperand, CFLFigureArray* pFlfaResult) const override;
307
312
313
314 virtual double GetArea() const override;
315 virtual double GetPerimeter() const override;
316 virtual double GetLength() const override;
318 virtual const CResult GetVertexCount(CFLFigureArray& flfaResult, EIncludingRegionType eType = EIncludingRegionType_All, bool bRecursive = true) const override;
319 virtual const CResult GetVertexCount(CFLFigureArray* pFlfaResult, EIncludingRegionType eType = EIncludingRegionType_All, bool bRecursive = true) const override;
320
321 virtual const CResult GetRasterContour(Base::CFLArray<Base::TPoint<int32_t>>* pFlaResult, bool bExcludeSingleDelta = false) const override;
322 virtual const CResult GetRasterContour(CFLFigureArray* pFlfaResult, bool bExcludeSingleDelta = false) const override;
323 virtual const CResult GetRasterContour(CFLPointArray* pFlpaResult, bool bExcludeSingleDelta = false) const override;
324
325 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLFigureArray& flfaResult) const override;
326 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLFigureArray* pFlfaResult) const override;
327 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLPointArray& flpaResult) const override;
328 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLPointArray* pFlpaResult) const override;
329
330 virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLFigureArray& flfaResult) const override;
331 virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLFigureArray* pFlfaResult) const override;
332 virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLPointArray& flpaResult) const override;
333 virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLPointArray* pFlpaResult) const override;
334
364 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;
365
395 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;
396
426 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;
427
457 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;
458
488 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;
489
519 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;
520
550 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;
551
581 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;
582
612 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;
613
643 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;
644
674 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;
675
705 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;
706
707
708 virtual const CResult Set(const CFLPoint<int32_t>& point) override;
709 virtual const CResult Set(const CFLPoint<int32_t>* pPoint) override;
710 virtual const CResult Set(const CFLPoint<int64_t>& point) override;
711 virtual const CResult Set(const CFLPoint<int64_t>* pPoint) override;
712 virtual const CResult Set(const CFLPoint<float>& point) override;
713 virtual const CResult Set(const CFLPoint<float>* pPoint) override;
714 virtual const CResult Set(const CFLPoint<double>& point) override;
715 virtual const CResult Set(const CFLPoint<double>* pPoint) override;
716
717 virtual const CResult Set(const CFLFigureText<int32_t>& flft) override;
718 virtual const CResult Set(const CFLFigureText<int32_t>* pFlft) override;
719 virtual const CResult Set(const CFLFigureText<int64_t>& flft) override;
720 virtual const CResult Set(const CFLFigureText<int64_t>* pFlft) override;
721 virtual const CResult Set(const CFLFigureText<float>& flft) override;
722 virtual const CResult Set(const CFLFigureText<float>* pFlft) override;
723 virtual const CResult Set(const CFLFigureText<double>& flft) override;
724 virtual const CResult Set(const CFLFigureText<double>* pFlft) override;
725
726 virtual const CResult Set(const CFLLine<int32_t>& line) override;
727 virtual const CResult Set(const CFLLine<int32_t>* pLine) override;
728 virtual const CResult Set(const CFLLine<int64_t>& line) override;
729 virtual const CResult Set(const CFLLine<int64_t>* pLine) override;
730 virtual const CResult Set(const CFLLine<float>& line) override;
731 virtual const CResult Set(const CFLLine<float>* pLine) override;
732 virtual const CResult Set(const CFLLine<double>& line) override;
733 virtual const CResult Set(const CFLLine<double>* pLine) override;
734
735 virtual const CResult Set(const CFLRect<int32_t>& rect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
736 virtual const CResult Set(const CFLRect<int32_t>* pRect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
737 virtual const CResult Set(const CFLRect<int64_t>& rect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
738 virtual const CResult Set(const CFLRect<int64_t>* pRect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
739 virtual const CResult Set(const CFLRect<float>& rect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
740 virtual const CResult Set(const CFLRect<float>* pRect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
741 virtual const CResult Set(const CFLRect<double>& rect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
742 virtual const CResult Set(const CFLRect<double>* pRect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
743
744 virtual const CResult Set(const CFLRoundRect<int32_t>& flrr, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
745 virtual const CResult Set(const CFLRoundRect<int32_t>* pFlrr, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
746 virtual const CResult Set(const CFLRoundRect<int64_t>& flrr, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
747 virtual const CResult Set(const CFLRoundRect<int64_t>* pFlrr, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
748 virtual const CResult Set(const CFLRoundRect<float>& flrr, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
749 virtual const CResult Set(const CFLRoundRect<float>* pFlrr, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
750 virtual const CResult Set(const CFLRoundRect<double>& flrr, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
751 virtual const CResult Set(const CFLRoundRect<double>* pFlrr, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment) override;
752
753 virtual const CResult Set(const CFLQuad<int32_t>& quad) override;
754 virtual const CResult Set(const CFLQuad<int32_t>* pQuad) override;
755 virtual const CResult Set(const CFLQuad<int64_t>& quad) override;
756 virtual const CResult Set(const CFLQuad<int64_t>* pQuad) override;
757 virtual const CResult Set(const CFLQuad<float>& quad) override;
758 virtual const CResult Set(const CFLQuad<float>* pQuad) override;
759 virtual const CResult Set(const CFLQuad<double>& quad) override;
760 virtual const CResult Set(const CFLQuad<double>* pQuad) override;
761
762 virtual const CResult Set(const CFLCircle<int32_t>& circle) override;
763 virtual const CResult Set(const CFLCircle<int32_t>* pCircle) override;
764 virtual const CResult Set(const CFLCircle<int64_t>& circle) override;
765 virtual const CResult Set(const CFLCircle<int64_t>* pCircle) override;
766 virtual const CResult Set(const CFLCircle<float>& circle) override;
767 virtual const CResult Set(const CFLCircle<float>* pCircle) override;
768 virtual const CResult Set(const CFLCircle<double>& circle) override;
769 virtual const CResult Set(const CFLCircle<double>* pCircle) override;
770
771 virtual const CResult Set(const CFLEllipse<int32_t>& ellipse) override;
772 virtual const CResult Set(const CFLEllipse<int32_t>* pEllipse) override;
773 virtual const CResult Set(const CFLEllipse<int64_t>& ellipse) override;
774 virtual const CResult Set(const CFLEllipse<int64_t>* pEllipse) override;
775 virtual const CResult Set(const CFLEllipse<float>& ellipse) override;
776 virtual const CResult Set(const CFLEllipse<float>* pEllipse) override;
777 virtual const CResult Set(const CFLEllipse<double>& ellipse) override;
778 virtual const CResult Set(const CFLEllipse<double>* pEllipse) override;
779
780 virtual const CResult Set(const CFLDoughnut<int32_t>& doughnut) override;
781 virtual const CResult Set(const CFLDoughnut<int32_t>* pDoughnut) override;
782 virtual const CResult Set(const CFLDoughnut<int64_t>& doughnut) override;
783 virtual const CResult Set(const CFLDoughnut<int64_t>* pDoughnut) override;
784 virtual const CResult Set(const CFLDoughnut<float>& doughnut) override;
785 virtual const CResult Set(const CFLDoughnut<float>* pDoughnut) override;
786 virtual const CResult Set(const CFLDoughnut<double>& doughnut) override;
787 virtual const CResult Set(const CFLDoughnut<double>* pDoughnut) override;
788
789 virtual const CResult Set(const CFLCubicSpline& cubicSpline) override;
790 virtual const CResult Set(const CFLCubicSpline* pCubicSpline) override;
791
792 virtual const CResult Set(const CFLBezierQuadraticCurve& flbc2) override;
793 virtual const CResult Set(const CFLBezierQuadraticCurve* pFlbc2) override;
794
795 virtual const CResult Set(const CFLBezierCubicCurve& flbc3) override;
796 virtual const CResult Set(const CFLBezierCubicCurve* pFlbc3) override;
797
798 virtual const CResult Set(const CFLBezierQuarticCurve& flbc4) override;
799 virtual const CResult Set(const CFLBezierQuarticCurve* pFlbc4) override;
800
801 virtual const CResult Set(const CFLRegion& region) override;
802 virtual const CResult Set(const CFLRegion* pRegion) override;
803
804 virtual const CResult Set(const CFLComplexRegion& complexRegion) override;
805 virtual const CResult Set(const CFLComplexRegion* pComplexRegion) override;
806
807 virtual const CResult Set(const CFLPointArray& pointArray) override;
808 virtual const CResult Set(const CFLPointArray* pPointArray) override;
809
833 virtual const CResult Set(const Base::TRect<int32_t>& rect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment);
834
858 virtual const CResult Set(const Base::TRect<int32_t>* pRect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment);
859
883 virtual const CResult Set(const Base::TRect<int64_t>& rect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment);
884
908 virtual const CResult Set(const Base::TRect<int64_t>* pRect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment);
909
933 virtual const CResult Set(const Base::TRect<float>& rect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment);
934
958 virtual const CResult Set(const Base::TRect<float>* pRect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment);
959
983 virtual const CResult Set(const Base::TRect<double>& rect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment);
984
1008 virtual const CResult Set(const Base::TRect<double>* pRect, double startDeg = 0., double deltaDeg = 360., ERadialShapeType eRST = ERadialShapeType_Segment);
1009
1010 virtual const CResult Set(const CFLFigure& flf) override;
1011 virtual const CResult Set(const CFLFigure* pFlf) override;
1012
1013
1014
1020
1025 virtual ~CFLDoughnut();
1026
1028 // Assignment operator
1029
1044
1059
1074
1089
1104
1119
1134
1149
1164
1179
1194
1209
1224
1239
1254
1269
1282
1295
1308
1321
1334
1347
1360
1374
1375
1377 // Comparison operator
1378
1390 bool operator==(const CFLDoughnut<int32_t>& doughnut) const;
1391
1403 bool operator==(const CFLDoughnut<int64_t>& doughnut) const;
1404
1416 bool operator==(const CFLDoughnut<float>& doughnut) const;
1417
1429 bool operator==(const CFLDoughnut<double>& doughnut) const;
1430
1442 bool operator!=(const CFLDoughnut<int32_t>& doughnut) const;
1443
1455 bool operator!=(const CFLDoughnut<int64_t>& doughnut) const;
1456
1468 bool operator!=(const CFLDoughnut<float>& doughnut) const;
1469
1481 bool operator!=(const CFLDoughnut<double>& doughnut) const;
1483
1484
1486 // Arithmetic and assignment operator
1487
1499 const CFLDoughnut<T>& operator+=(const int32_t& value);
1500
1512 const CFLDoughnut<T>& operator+=(const int64_t& value);
1513
1525 const CFLDoughnut<T>& operator+=(const float& value);
1526
1538 const CFLDoughnut<T>& operator+=(const double& value);
1539
1554
1569
1584
1599
1614
1629
1644
1659
1674
1689
1704
1719
1731 const CFLDoughnut<T>& operator-=(const int32_t& value);
1732
1744 const CFLDoughnut<T>& operator-=(const int64_t& value);
1745
1757 const CFLDoughnut<T>& operator-=(const float& value);
1758
1770 const CFLDoughnut<T>& operator-=(const double& value);
1771
1786
1801
1816
1831
1846
1861
1876
1891
1906
1921
1936
1951
1963 const CFLDoughnut<T>& operator*=(const int32_t& value);
1964
1976 const CFLDoughnut<T>& operator*=(const int64_t& value);
1977
1989 const CFLDoughnut<T>& operator*=(const float& value);
1990
2002 const CFLDoughnut<T>& operator*=(const double& value);
2003
2015 const CFLDoughnut<T>& operator/=(const int32_t& value);
2016
2028 const CFLDoughnut<T>& operator/=(const int64_t& value);
2029
2041 const CFLDoughnut<T>& operator/=(const float& value);
2042
2054 const CFLDoughnut<T>& operator/=(const double& value);
2056
2057
2059 // Arithmetic operator
2060
2072 CFLDoughnut<double> operator+(const int32_t& value) const;
2073
2085 CFLDoughnut<double> operator+(const int64_t& value) const;
2086
2098 CFLDoughnut<double> operator+(const float& value) const;
2099
2111 CFLDoughnut<double> operator+(const double& value) const;
2112
2127
2142
2157
2172
2187
2202
2217
2232
2247
2262
2277
2292
2304 CFLDoughnut<double> operator-(const int32_t& value) const;
2305
2317 CFLDoughnut<double> operator-(const int64_t& value) const;
2318
2330 CFLDoughnut<double> operator-(const float& value) const;
2331
2343 CFLDoughnut<double> operator-(const double& value) const;
2344
2359
2374
2389
2404
2419
2434
2449
2464
2479
2494
2509
2524
2536 CFLDoughnut<double> operator*(const int32_t& value) const;
2537
2549 CFLDoughnut<double> operator*(const int64_t& value) const;
2550
2562 CFLDoughnut<double> operator*(const float& value) const;
2563
2575 CFLDoughnut<double> operator*(const double& value) const;
2576
2588 CFLDoughnut<double> operator/(const int32_t& value) const;
2589
2601 CFLDoughnut<double> operator/(const int64_t& value) const;
2602
2614 CFLDoughnut<double> operator/(const float& value) const;
2615
2627 CFLDoughnut<double> operator/(const double& value) const;
2628
2640
2641 //Friend operator
2643 // Arithmetic operator
2644
2658 friend CFLDoughnut<double> operator+(const int32_t& value, const CFLDoughnut<T>& doughnut)
2659 {
2660 CFLDoughnut<double> t(doughnut);
2661 t += value;
2662 return t;
2663 }
2664
2678 friend CFLDoughnut<double> operator+(const int64_t& value, const CFLDoughnut<T>& doughnut)
2679 {
2680 CFLDoughnut<double> t(doughnut);
2681 t += value;
2682 return t;
2683 }
2684
2698 friend CFLDoughnut<double> operator+(const float& value, const CFLDoughnut<T>& doughnut)
2699 {
2700 CFLDoughnut<double> t(doughnut);
2701 t += value;
2702 return t;
2703 }
2704
2718 friend CFLDoughnut<double> operator+(const double& value, const CFLDoughnut<T>& doughnut)
2719 {
2720 CFLDoughnut<double> t(doughnut);
2721 t += value;
2722 return t;
2723 }
2724
2738 friend CFLDoughnut<double> operator-(const int32_t& value, const CFLDoughnut<T>& doughnut)
2739 {
2740 CFLDoughnut<double> t(doughnut);
2741 t *= -1.;
2742 t += value;
2743 return t;
2744 }
2745
2759 friend CFLDoughnut<double> operator-(const int64_t& value, const CFLDoughnut<T>& doughnut)
2760 {
2761 CFLDoughnut<double> t(doughnut);
2762 t *= -1.;
2763 t += value;
2764 return t;
2765 }
2766
2780 friend CFLDoughnut<double> operator-(const float& value, const CFLDoughnut<T>& doughnut)
2781 {
2782 CFLDoughnut<double> t(doughnut);
2783 t *= -1.;
2784 t += value;
2785 return t;
2786 }
2787
2801 friend CFLDoughnut<double> operator-(const double& value, const CFLDoughnut<T>& doughnut)
2802 {
2803 CFLDoughnut<double> t(doughnut);
2804 t *= -1.;
2805 t += value;
2806 return t;
2807 }
2808
2822 friend CFLDoughnut<double> operator*(const int32_t& value, const CFLDoughnut<T>& doughnut)
2823 {
2824 CFLDoughnut<double> t(doughnut);
2825 t *= value;
2826 return t;
2827 }
2828
2842 friend CFLDoughnut<double> operator*(const int64_t& value, const CFLDoughnut<T>& doughnut)
2843 {
2844 CFLDoughnut<double> t(doughnut);
2845 t *= value;
2846 return t;
2847 }
2848
2862 friend CFLDoughnut<double> operator*(const float& value, const CFLDoughnut<T>& doughnut)
2863 {
2864 CFLDoughnut<double> t(doughnut);
2865 t *= value;
2866 return t;
2867 }
2868
2882 friend CFLDoughnut<double> operator*(const double& value, const CFLDoughnut<T>& doughnut)
2883 {
2884 CFLDoughnut<double> t(doughnut);
2885 t *= value;
2886 return t;
2887 }
2888
2902 friend CFLDoughnut<double> operator/(const int32_t& value, const CFLDoughnut<T>& doughnut)
2903 {
2904 CFLDoughnut<double> t(doughnut);
2905 t.flpCenter.x = (double)value;
2906 t.flpCenter.y = (double)value;
2907 t.Multiply((double)doughnut.flpCenter.x ? 1. / (double)doughnut.flpCenter.x : 1.);
2908 return t;
2909 }
2910
2924 friend CFLDoughnut<double> operator/(const int64_t& value, const CFLDoughnut<T>& doughnut)
2925 {
2926 CFLDoughnut<double> t(doughnut);
2927 t.flpCenter.x = (double)value;
2928 t.flpCenter.y = (double)value;
2929 t.Multiply((double)doughnut.flpCenter.x ? 1. / (double)doughnut.flpCenter.x : 1.);
2930 return t;
2931 }
2932
2946 friend CFLDoughnut<double> operator/(const float& value, const CFLDoughnut<T>& doughnut)
2947 {
2948 CFLDoughnut<double> t(doughnut);
2949 t.flpCenter.x = (double)value;
2950 t.flpCenter.y = (double)value;
2951 t.Multiply((double)doughnut.flpCenter.x ? 1. / (double)doughnut.flpCenter.x : 1.);
2952 return t;
2953 }
2954
2968 friend CFLDoughnut<double> operator/(const double& value, const CFLDoughnut<T>& doughnut)
2969 {
2970 CFLDoughnut<double> t(doughnut);
2971 t.flpCenter.x = value;
2972 t.flpCenter.y = value;
2973 t.Multiply((double)doughnut.flpCenter.x ? 1. / (double)doughnut.flpCenter.x : 1.);
2974 return t;
2975 }
2977
2978
2994 CFLFigureArray operator& (const CFLFigure& flf) const;
2995
3011 CFLFigureArray operator| (const CFLFigure& flf) const;
3012
3028 CFLFigureArray operator^ (const CFLFigure& flf) const;
3029
3045 CFLFigureArray operator- (const CFLRect<int32_t>& flr) const;
3046
3062 CFLFigureArray operator- (const CFLRect<int64_t>& flr) const;
3063
3079 CFLFigureArray operator- (const CFLRect<float>& flr) const;
3080
3096 CFLFigureArray operator- (const CFLRect<double>& flr) const;
3097
3113 CFLFigureArray operator- (const CFLQuad<int32_t>& flq) const;
3114
3130 CFLFigureArray operator- (const CFLQuad<int64_t>& flq) const;
3131
3147 CFLFigureArray operator- (const CFLQuad<float>& flq) const;
3148
3164 CFLFigureArray operator- (const CFLQuad<double>& flq) const;
3165
3181 CFLFigureArray operator- (const CFLCircle<int32_t>& flc) const;
3182
3198 CFLFigureArray operator- (const CFLCircle<int64_t>& flc) const;
3199
3215 CFLFigureArray operator- (const CFLCircle<float>& flc) const;
3216
3232 CFLFigureArray operator- (const CFLCircle<double>& flc) const;
3233
3249 CFLFigureArray operator- (const CFLEllipse<int32_t>& fle) const;
3250
3266 CFLFigureArray operator- (const CFLEllipse<int64_t>& fle) const;
3267
3283 CFLFigureArray operator- (const CFLEllipse<float>& fle) const;
3284
3300 CFLFigureArray operator- (const CFLEllipse<double>& fle) const;
3301
3315 CFLFigureArray operator- (const CFLDoughnut<int32_t>& fld) const;
3316
3330 CFLFigureArray operator- (const CFLDoughnut<int64_t>& fld) const;
3331
3345 CFLFigureArray operator- (const CFLDoughnut<float>& fld) const;
3346
3360 CFLFigureArray operator- (const CFLDoughnut<double>& fld) const;
3361
3377 CFLFigureArray operator- (const CFLComplexRegion& flcr) const;
3378
3379 operator Base::TPoint<double>() const;
3380 operator Base::TRect<double>() const;
3381
3407 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);
3408
3434 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);
3435
3461 CFLDoughnut(float x, float y, float f32Radius, float f32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment);
3462
3488 CFLDoughnut(double x, double y, double f64Radius, double f64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment);
3489
3515 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);
3516
3542 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);
3543
3569 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);
3570
3596 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);
3597
3623 CFLDoughnut(const CFLPoint<float>& flpCenter, float f32Radius, float f32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment);
3624
3650 CFLDoughnut(const CFLPoint<float>* pFlpCenter, float f32Radius, float f32InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment);
3651
3677 CFLDoughnut(const CFLPoint<double>& flpCenter, double f64Radius, double f64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment);
3678
3704 CFLDoughnut(const CFLPoint<double>* pFlpCenter, double f64Radius, double f64InnerRadius, double f64Angle = 0., double f64StartDeg = 0., double f64DeltaDeg = 360., ERadialShapeType eRadialShapeType = ERadialShapeType_Segment);
3705
3718
3731
3744
3757
3770
3783
3796
3809
3820
3831
3842
3853
3864
3875
3886
3897
3910
3923
3936
3949
3962
3975
3988
4001
4014
4027
4028
4029 SupportToDuplicateObject(CFLDoughnut<T>, *this);
4030 DeclareGetClassType();
4031
4032 private:
4033 virtual const CResult MakeFullCircle() override;
4034 virtual const CResult MakePartialSweep(double f64StartDegree, double f64DeltaDegree, ERadialShapeType eMethod) override;
4035 };
4036
4037 typedef CFLDoughnut<int32_t> CFLDoughnutL;
4038 typedef CFLDoughnut<int64_t> CFLDoughnutLL;
4039 typedef CFLDoughnut<float> CFLDoughnutF;
4040 typedef CFLDoughnut<double> CFLDoughnutD;
4041 }
4042}
4043
Template type array class.
Definition FLArray.h:71
Simplified class representing a 3-D point.
Definition FLImagingBase/TPoint3.h:37
Simplified class representing a point.
Definition FLImagingBase/TPoint.h:37
Simplified class representing a rectangle.
Definition FLImagingBase/TRect.h:37
FLImaging module execution result object.
Definition FLImagingBase/ResultsDef.h:1712
A class representing bezier cubic curve.
Definition FLImagingFoundation/FLBezierCubicCurve.h:24
A class representing bezier quadratic curve.
Definition FLImagingFoundation/FLBezierQuadraticCurve.h:24
A class representing bezier quartic curve.
Definition FLImagingFoundation/FLBezierQuarticCurve.h:24
CFLPoint< int32_t > flpCenter
Definition FLImagingFoundation/FLCircle.h:36
double deltaDeg
Definition FLImagingFoundation/FLCircle.h:72
double startDeg
Definition FLImagingFoundation/FLCircle.h:63
ERadialShapeType eRadialShapeType
Definition FLImagingFoundation/FLCircle.h:86
A class representing a polygon.
Definition FLImagingFoundation/FLComplexRegion.h:28
A class representing cubic spline.
Definition FLImagingFoundation/FLCubicSpline.h:23
A class representing a doughnut shape of a circle or an arc.
Definition FLImagingFoundation/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< T > operator-() const
An operator that returns the result of multiplying the object by -1.
CFLDoughnut< double > operator-(const float &value) const
Offset operator.
CFLDoughnut< double > operator*(const double &value) const
multiplication operator
virtual CFLPoint< double > ConvertDegreeToPoint(int32_t deg, bool bOnInnerRadius) const
bool operator!=(const CFLDoughnut< int64_t > &doughnut) const
Comparison operator.
const CFLDoughnut< T > & operator=(const CFLDoughnut< int32_t > &doughnut)
assignment operator
virtual const CResult Set(const CFLRect< int64_t > *pRect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
Parameter setting function.
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.
virtual const CResult GetOutlinedFigure(double f64Thickness, CFLFigureArray *pFlfaResult) const override
Creates a new figure by expanding the outline of the current figure to the specified thickness.
CFLDoughnut< double > operator/(const int64_t &value) const
division operator
const CFLDoughnut< T > & operator-=(const double &value)
Offset operator.
int32_t innerRadius
Definition FLImagingFoundation/FLDoughnut.h:32
CFLDoughnut(const CFLCircle< double > &circle)
copy constructor
CFLDoughnut(Base::TRect< float > &rect)
initialization constructor
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)
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 FLImagingFoundation/FLDoughnut.h:2658
virtual const CResult GetRasterRegion(CFLFigureArray *pFlfaResult, const CFLRect< int64_t > *pFlrROI=nullptr, bool bConservativeRasterization=false) const override
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.
CFLDoughnut(const CFLPoint< double > &flpCenter, double f64Radius, double f64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment)
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 CFLDoughnut< int64_t > &doughnut) override
Parameter setting function.
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
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 CFLPoint< double > ConvertDegreeToPoint(float deg, bool bOnInnerRadius) const
Get the point of intersection on a circle through which a ray starting from the center of the circle ...
virtual const CResult Set(const CFLFigureText< int64_t > *pFlft) 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., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment) sealed
Parameter setting function.
virtual const CResult Set(const Base::TRect< int64_t > &rect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment)
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.
virtual const CResult GetRasterRegion(Base::CFLArray< Base::TRect< double > > *pFlaResult, const CFLRect< int64_t > *pFlrROI=nullptr, bool bConservativeRasterization=false) const override
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 CFLRect< double > &rect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
Parameter setting function.
CFLDoughnut(const CFLPoint< float > *pFlpCenter, float f32Radius, float f32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment)
initialization constructor
virtual const CResult Set(const CFLComplexRegion &complexRegion) 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.
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.
virtual const CResult Set(const Base::TRect< float > &rect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment)
Parameter setting function.
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 x, double y, double f64Radius, double f64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment)
initialization constructor
CFLDoughnut< double > operator+(const CFLLine< float > &line) const
Offset operator.
virtual const CResult Set(const CFLLine< float > *pLine) override
Parameter setting function.
friend CFLDoughnut< double > operator/(const int64_t &value, const CFLDoughnut< T > &doughnut)
division operator
Definition FLImagingFoundation/FLDoughnut.h:2924
CFLDoughnut< double > operator-(const int32_t &value) const
Offset operator.
virtual const CResult Set(const CFLRoundRect< int32_t > *pFlrr, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
Parameter setting function.
virtual bool IsCollision(const CFLBezierQuadraticCurve *pFlbc2) const override
virtual const CResult GetIntersection(const CFLLine< double > *pLine, CFLFigureArray *pFlfaResult) 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 FLImagingFoundation/FLDoughnut.h:2946
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.
virtual const CResult GetRasterRegion(Base::CFLArray< Base::TPoint3< int32_t > > *pFlaResult, const CFLRect< int64_t > *pFlrROI=nullptr, bool bConservativeRasterization=false) const override
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 CFLPoint< int32_t > *pFlpCenter, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment) sealed
Parameter setting function.
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
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 GetRasterRegion(Base::CFLArray< Base::TRect< int32_t > > *pFlaResult, const CFLRect< int64_t > *pFlrROI=nullptr, bool bConservativeRasterization=false) const override
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 FLImagingFoundation/FLDoughnut.h:2822
const CFLDoughnut< T > & operator+=(const Base::TPoint< float > &point)
Offset operator.
friend CFLDoughnut< double > operator+(const int64_t &value, const CFLDoughnut< T > &doughnut)
Offset operator.
Definition FLImagingFoundation/FLDoughnut.h:2678
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 CFLRoundRect< double > *pFlrr, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
Parameter setting function.
virtual const CResult Set(const CFLLine< double > *pLine) 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., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment)
initialization constructor
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(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 CFLPoint< int32_t > &flpCenter, int32_t i32Radius, int32_t i32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment) sealed
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 CFLPoint< double > ConvertDegreeToPoint(int64_t deg, bool bOnInnerRadius) const
Get the point of intersection on a circle through which a ray starting from the center of the circle ...
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
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, CFLPointArray *pFlpaResult) const override
Get point information moving by the set length.
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 FLImagingFoundation/FLDoughnut.h:2698
virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLPointArray *pFlpaResult) const override
Get point information moving by the set length.
virtual const CResult GetIntersection(const CFLBezierCubicCurve *pFlbc3, CFLFigureArray *pFlfaResult) const override
virtual const CResult Set(const CFLCircle< float > &circle) override
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 CFLPoint< int64_t > *pFlpCenter, int64_t i64Radius, int64_t i64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment) sealed
Parameter setting function.
friend CFLDoughnut< double > operator+(const double &value, const CFLDoughnut< T > &doughnut)
Offset operator.
Definition FLImagingFoundation/FLDoughnut.h:2718
const CFLDoughnut< T > & operator=(const Base::TRect< int64_t > &rect)
assignment operator
CFLDoughnut< double > operator-(const Base::TPoint< double > &point) const
Offset operator.
virtual const CResult Set(const Base::TRect< int64_t > *pRect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment)
Parameter setting function.
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 CFLRect< int32_t > &rect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) 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.
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 CFLRect< int32_t > *pRect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
Parameter setting function.
virtual const CResult Set(const CFLRoundRect< int64_t > *pFlrr, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) 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 const CResult MakePartialSweep(double f64StartDegree, double f64DeltaDegree)
make the doughnut into an arc shape.
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 GetSamplingPointsOnSegment(double f64SamplingDistance, CFLPointArray &flpaResult) const override
Get point information moving by the set length.
virtual const CResult Set(const CFLRoundRect< double > &flrr, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
Parameter setting function.
virtual const CResult Set(const CFLRect< float > *pRect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
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 CFLEllipse< float > *pEllipse) override
Parameter setting function.
virtual const CResult Set(const CFLBezierQuarticCurve *pFlbc4) override
Parameter setting function.
CFLDoughnut< double > operator+(const Base::TPoint< int32_t > &point) const
Offset operator.
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
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)
initialization constructor
const CFLDoughnut< T > & operator+=(const CFLLine< int32_t > &line)
Offset operator.
CFLDoughnut(const CFLPoint< float > &flpCenter, float f32Radius, float f32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment)
initialization constructor
friend CFLDoughnut< double > operator-(const int32_t &value, const CFLDoughnut< T > &doughnut)
Offset operator.
Definition FLImagingFoundation/FLDoughnut.h:2738
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< float > *pFlpCenter, float f32Radius, float f32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment) 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 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
Parameter setting function.
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 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< double > *pFlpCenter, double f64Radius, double f64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment) sealed
Parameter setting function.
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 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 FLImagingFoundation/FLDoughnut.h:2780
virtual bool IsSpecEqual(const CFLFigure *pFlfRhs, EFigureSpecCompareType eSpecType=EFigureSpecCompareType_Coordinates) const override
CFLDoughnut(Base::TRect< double > &rect)
initialization constructor
virtual const CResult Set(const CFLQuad< float > &quad) override
Parameter setting function.
virtual const CResult GetRasterRegion(Base::CFLArray< Base::TRect< int64_t > > *pFlaResult, const CFLRect< int64_t > *pFlrROI=nullptr, bool bConservativeRasterization=false) const override
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 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
Parameter setting function.
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 FLImagingFoundation/FLDoughnut.h:2882
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.
virtual const CResult GetSamplingVectorOnSegment(double f64SamplingDistance, CFLPointArray &flpaResult) const override
Get point information moving by the set length.
friend CFLDoughnut< double > operator/(const double &value, const CFLDoughnut< T > &doughnut)
division operator
Definition FLImagingFoundation/FLDoughnut.h:2968
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(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
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 const CResult GetRasterRegion(Base::CFLArray< Base::TRect< float > > *pFlaResult, const CFLRect< int64_t > *pFlrROI=nullptr, bool bConservativeRasterization=false) const override
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)
Parameter setting function.
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)
initialization constructor
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 FLImagingFoundation/FLDoughnut.h:2759
CFLDoughnut(const CFLDoughnut< double > &doughnut)
copy constructor
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)
initialization 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.
const CFLDoughnut< T > & operator=(Base::TRect< int32_t > *pRect)
assignment operator
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
Parameter setting function.
CFLDoughnut< double > operator+(const int64_t &value) const
Offset operator.
virtual const CResult Set(const CFLQuad< int32_t > *pQuad) override
Parameter setting function.
CFLDoughnut(const CFLPoint< double > *pFlpCenter, double f64Radius, double f64InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment)
initialization constructor
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< 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.
CFLDoughnut< double > operator-(const CFLLine< float > &line) const
Offset operator.
virtual const CResult Set(const CFLRect< int64_t > &rect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
Parameter setting function.
const CFLDoughnut< T > & operator*=(const double &value)
multiplication operator
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 const CResult Set(const CFLRect< double > *pRect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) 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 FLImagingFoundation/FLDoughnut.h:2842
virtual const CResult Set(const CFLPoint< double > *pPoint) override
Parameter setting function.
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 Base::TRect< int32_t > &rect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment)
Parameter setting function.
virtual const CResult Set(const CFLFigure *pFlf) override
friend CFLDoughnut< double > operator/(const int32_t &value, const CFLDoughnut< T > &doughnut)
division operator
Definition FLImagingFoundation/FLDoughnut.h:2902
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 CFLPoint< double > ConvertDegreeToPoint(double deg, bool bOnInnerRadius) const
Get the point of intersection on a circle through which a ray starting from the center of the circle ...
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 FLImagingFoundation/FLDoughnut.h:2862
virtual const CResult Set(const CFLRoundRect< int64_t > &flrr, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
Parameter setting function.
virtual const CResult Set(const Base::TRect< float > *pRect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment)
Parameter setting function.
CFLDoughnut(const CFLDoughnut< int32_t > &doughnut)
copy constructor
CFLDoughnut< double > operator-(const double &value) const
Offset operator.
virtual const CResult Set(const CFLEllipse< int32_t > *pEllipse) override
Parameter setting function.
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 FLImagingFoundation/FLDoughnut.h:2801
virtual const CResult Set(const Base::TRect< int32_t > *pRect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment)
Parameter setting function.
const CFLDoughnut< T > & operator=(const Base::TRect< double > &rect)
assignment operator
virtual const CResult Set(const CFLRoundRect< int32_t > &flrr, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
Parameter setting function.
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.
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.
CFLDoughnut(float x, float y, float f32Radius, float f32InnerRadius, double f64Angle=0., double f64StartDeg=0., double f64DeltaDeg=360., ERadialShapeType eRadialShapeType=ERadialShapeType_Segment)
initialization constructor
const CFLDoughnut< T > & operator*=(const int64_t &value)
multiplication operator
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)
initialization constructor
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 CFLRoundRect< float > &flrr, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) 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
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
Parameter setting function.
virtual const CResult Set(const CFLRect< float > &rect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment) override
Parameter setting function.
const CFLDoughnut< T > & operator=(Base::TRect< float > *pRect)
assignment operator
virtual const CResult Set(const Base::TRect< double > *pRect, double startDeg=0., double deltaDeg=360., ERadialShapeType eRST=ERadialShapeType_Segment)
Parameter setting function.
A class representing ellipse.
Definition FLImagingFoundation/FLEllipse.h:25
A base class representing array of figure.
Definition FLImagingFoundation/FLFigureArray.h:27
A base class of classes representing figures.
Definition FLImagingFoundation/FLFigure.h:27
virtual const CResult GetPointsOfMinimumDistance(const CFLFigure &flfTarget, CFLPointArray *pFlpaResult) const
Get the position closest to the target 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
Perform union of two objects.
virtual double GetMinimumDistance(const CFLFigure &flfTarget) const
Get the distance between the target figure and the closest position to each other.
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
Perform subtraction of two objects.
virtual CFLQuad< double > GetMinimumEnclosingRectangle() const
Get a minimum enclosing rectangle.
virtual const CResult GetRegionOfExclusiveOr(const CFLFigure &figure, CFLFigureArray *pFlfaResult) const
Perform exclusiveOR of two objects.
virtual CFLRect< double > GetBoundaryRect() const
virtual const CResult Extend(int32_t i32HalfSize)
virtual const CResult Swap(CFLFigure &flfRight)
virtual const CResult GetRasterRegion(CFLFigureArray &flfaResult, const CFLPoint< int64_t > *pFlpImageSize, bool bConservativeRasterization=false) const
virtual CFLPoint< double > GetCenterOfGravity() const
virtual const CResult Inflate(int32_t i32HalfSize)
A function that increases in each axis direction by the input size.
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
Get the distance between the target figure and the furthest position to each other.
virtual const CResult GetOutlinedFigure(double f64Thickness, CFLFigureArray &flfaResult) const
Creates a new figure by expanding the outline of the current figure to the specified thickness.
virtual const CResult GetPointsOfMaximumDistance(const CFLFigure &flfTarget, CFLPointArray *pFlpaResult) const
Get the location farthest away from the target figure.
virtual const CResult GetRegionOfIntersection(const CFLFigure &figure, CFLFigureArray *pFlfaResult) const
Perform intersection of two objects.
virtual const CResult Flip(EFigureFlipDirection eDirection)
A class that expresses information necessary for drawing.
Definition FLImagingFoundation/FLFigureText.h:26
A class representing a line.
Definition FLImagingFoundation/FLLine.h:25
A base class representing array of figure.
Definition FLImagingFoundation/FLPointArray.h:26
A class representing a point.
Definition FLImagingFoundation/FLPoint.h:24
A class representing a quadrangle.
Definition FLImagingFoundation/FLQuad.h:24
A class representing a rectangle.
Definition FLImagingFoundation/FLRect.h:24
A class representing region.
Definition FLImagingFoundation/FLRegion.h:26
A class representing a round rectangle.
Definition FLImagingFoundation/FLRoundRect.h:24
Definition FLImagingFoundation/AlgorithmBase.h:16
EIncludingRegionType
Definition FLImagingFoundation/DefinitionsFigure.h:2855
@ EIncludingRegionType_All
Definition FLImagingFoundation/DefinitionsFigure.h:2860
EFigureDeclType
Declare type of figure.
Definition FLImagingFoundation/DefinitionsFigure.h:33
EFigureSpecCompareType
Definition FLImagingFoundation/DefinitionsFigure.h:3590
@ EFigureSpecCompareType_Coordinates
Definition FLImagingFoundation/DefinitionsFigure.h:3595
ERadialShapeType
Radial shape type.
Definition FLImagingFoundation/DefinitionsFigure.h:2623
@ ERadialShapeType_Segment
The ends of the arc connect to each other.
Definition FLImagingFoundation/DefinitionsFigure.h:2638