FLImaging 7.8.25.3
FLCircle3.h
1#pragma once
2
8
9#include "FLFigure3.h"
10#include "FLPoint3.h"
11
13namespace FLImaging
14{
16 namespace Foundation
17 {
24 template<typename T>
25 class FL_EXPORT CFLCircle3 : public CFLFigure3
26 {
27 public:
33
39
48
54
59 virtual ~CFLCircle3();
60
74 CFLCircle3(const CFLPoint3<T>& flpCenter, double f64Radius, const CFLPoint3<T>& flpNormal);
75
89 CFLCircle3(const CFLPoint3<T>* pFlpCenter, double f64Radius, const CFLPoint3<T>* pFlpNormal);
90
101
112
123
134
147
160
173
186
199
211 CFLCircle3(const CFLFigure* pFlf);
212
227
242
257
272
285
298
310 const CFLCircle3<T>& operator+=(const double& value);
311
326
341
356
371
383 const CFLCircle3<T>& operator-=(const double& value);
384
399
414
429
444
456 const CFLCircle3<T>& operator*=(const double& value);
457
472
487
502
517
529 const CFLCircle3<T>& operator/=(const double& value);
530
545
560
575
590
602 CFLCircle3<T> operator+(const double& value) const;
603
618
633
648
663
675 CFLCircle3<T> operator-(const double& value) const;
676
691
706
721
736
748 CFLCircle3<T> operator*(const double& value) const;
749
764
779
794
809
821 CFLCircle3<T> operator/(const double& value) const;
822
837
852
867
882
893
894
895 //Friend operator
897 // Arithmetic operator
898
912 friend CFLCircle3<double> operator+(const int32_t& value, const CFLCircle3<T>& circle)
913 {
914 CFLCircle3<double> t(circle);
915 t += value;
916 return t;
917 }
918
932 friend CFLCircle3<double> operator+(const int64_t& value, const CFLCircle3<T>& circle)
933 {
934 CFLCircle3<double> t(circle);
935 t += value;
936 return t;
937 }
938
952 friend CFLCircle3<double> operator+(const float& value, const CFLCircle3<T>& circle)
953 {
954 CFLCircle3<double> t(circle);
955 t += value;
956 return t;
957 }
958
972 friend CFLCircle3<double> operator+(const double& value, const CFLCircle3<T>& circle)
973 {
974 CFLCircle3<double> t(circle);
975 t += value;
976 return t;
977 }
978
992 friend CFLCircle3<double> operator-(const int32_t& value, const CFLCircle3<T>& circle)
993 {
994 CFLCircle3<double> t(circle);
995 t *= -1.;
996 t += value;
997 return t;
998 }
999
1013 friend CFLCircle3<double> operator-(const int64_t& value, const CFLCircle3<T>& circle)
1014 {
1015 CFLCircle3<double> t(circle);
1016 t *= -1.;
1017 t += value;
1018 return t;
1019 }
1020
1034 friend CFLCircle3<double> operator-(const float& value, const CFLCircle3<T>& circle)
1035 {
1036 CFLCircle3<double> t(circle);
1037 t *= -1.;
1038 t += value;
1039 return t;
1040 }
1041
1055 friend CFLCircle3<double> operator-(const double& value, const CFLCircle3<T>& circle)
1056 {
1057 CFLCircle3<double> t(circle);
1058 t *= -1.;
1059 t += value;
1060 return t;
1061 }
1062
1076 friend CFLCircle3<double> operator*(const int32_t& value, const CFLCircle3<T>& circle)
1077 {
1078 CFLCircle3<double> t(circle);
1079 t *= value;
1080 return t;
1081 }
1082
1096 friend CFLCircle3<double> operator*(const int64_t& value, const CFLCircle3<T>& circle)
1097 {
1098 CFLCircle3<double> t(circle);
1099 t *= value;
1100 return t;
1101 }
1102
1116 friend CFLCircle3<double> operator*(const float& value, const CFLCircle3<T>& circle)
1117 {
1118 CFLCircle3<double> t(circle);
1119 t *= value;
1120 return t;
1121 }
1122
1136 friend CFLCircle3<double> operator*(const double& value, const CFLCircle3<T>& circle)
1137 {
1138 CFLCircle3<double> t(circle);
1139 t *= value;
1140 return t;
1141 }
1142
1156 friend CFLCircle3<double> operator/(const int32_t& value, const CFLCircle3<T>& circle)
1157 {
1158 CFLCircle3<double> t(circle);
1159 CFLPoint3<T> flp3CenterRhs = t.GetCenter3D();
1160 t.SetCenter((double)value, (double)value, (double)value);
1161 t.Multiply((double)flp3CenterRhs.x ? 1. / (double)flp3CenterRhs.x : 1.);
1162 return t;
1163 }
1164
1178 friend CFLCircle3<double> operator/(const int64_t& value, const CFLCircle3<T>& circle)
1179 {
1180 CFLCircle3<double> t(circle);
1181 CFLPoint3<T> flp3CenterRhs = t.GetCenter3D();
1182 t.SetCenter((double)value, (double)value, (double)value);
1183 t.Multiply((double)flp3CenterRhs.x ? 1. / (double)flp3CenterRhs.x : 1.);
1184 return t;
1185 }
1186
1200 friend CFLCircle3<double> operator/(const float& value, const CFLCircle3<T>& circle)
1201 {
1202 CFLCircle3<double> t(circle);
1203 CFLPoint3<T> flp3CenterRhs = t.GetCenter3D();
1204 t.SetCenter(value, value, value);
1205 t.Multiply((double)flp3CenterRhs.x ? 1. / (double)flp3CenterRhs.x : 1.);
1206 return t;
1207 }
1208
1222 friend CFLCircle3<double> operator/(const double& value, const CFLCircle3<T>& circle)
1223 {
1224 CFLCircle3<double> t(circle);
1225 CFLPoint3<T> flp3CenterRhs = t.GetCenter3D();
1226 t.SetCenter(value, value, value);
1227 t.Multiply((double)flp3CenterRhs.x ? 1. / (double)flp3CenterRhs.x : 1.);
1228 return t;
1229 }
1231
1249 virtual const CResult Set(const CFLPoint3<T>& flpCenter, double f64Radius, const CFLPoint3<T>& flpNormal);
1250
1268 virtual const CResult Set(const CFLPoint3<T>* pFlpCenter, double f64Radius, const CFLPoint3<T>* pFlpNormal);
1269
1285 virtual const CResult Set(const CFLCircle3<float>& flc3);
1286
1302 virtual const CResult Set(const CFLCircle3<double>& flc3);
1303
1319 virtual const CResult Set(const CFLCircle3<float>* pFlc3);
1320
1336 virtual const CResult Set(const CFLCircle3<double>* pFlc3);
1337
1353 virtual const CResult Set(const CFLPointArray3<float>& flpa3);
1354
1370 virtual const CResult Set(const CFLPointArray3<double>& flpa3);
1371
1387 virtual const CResult Set(const CFLPointArray3<float>* pFlpa3);
1388
1404 virtual const CResult Set(const CFLPointArray3<double>* pFlpa3);
1405
1421 virtual const CResult Set(const CFLFigure& flf) override;
1422
1438 virtual const CResult Set(const CFLFigure* pFlf) override;
1439
1457 virtual const CResult Set(const Base::CFLArray<Base::TPoint3<double>>& flaPoints);
1458
1476 virtual const CResult Set(const Base::CFLArray<Base::TPoint3<float>>& flaPoints);
1477
1495 virtual const CResult Set(const Base::CFLArray<Base::TPoint3<double>>* pFlaPoints);
1496
1514 virtual const CResult Set(const Base::CFLArray<Base::TPoint3<float>>* pFlaPoints);
1515
1539 virtual const CResult Fit(const Base::CFLArray<Base::TPoint3<double>>& flaPoints, int64_t i64OutlierThresholdCount = 0, double f64OutlierThreshold = 3., Base::CFLArray<int64_t>* pFlaOutlierIndices = nullptr);
1540
1564 virtual const CResult Fit(const Base::CFLArray<Base::TPoint3<float>>& flaPoints, int64_t i64OutlierThresholdCount = 0, double f64OutlierThreshold = 3., Base::CFLArray<int64_t>* pFlaOutlierIndices = nullptr);
1565
1589 virtual const CResult Fit(const Base::CFLArray<Base::TPoint3<double>>* pFlaPoints, int64_t i64OutlierThresholdCount = 0, double f64OutlierThreshold = 3., Base::CFLArray<int64_t>* pFlaOutlierIndices = nullptr);
1590
1614 virtual const CResult Fit(const Base::CFLArray<Base::TPoint3<float>>* pFlaPoints, int64_t i64OutlierThresholdCount = 0, double f64OutlierThreshold = 3., Base::CFLArray<int64_t>* pFlaOutlierIndices = nullptr);
1615
1639 virtual const CResult Fit(const CFLPointArray3<double>& flpaPoints, int64_t i64OutlierThresholdCount = 0, double f64OutlierThreshold = 3., Base::CFLArray<int64_t>* pFlaOutlierIndices = nullptr);
1640
1664 virtual const CResult Fit(const CFLPointArray3<float>& flpaPoints, int64_t i64OutlierThresholdCount = 0, double f64OutlierThreshold = 3., Base::CFLArray<int64_t>* pFlaOutlierIndices = nullptr);
1665
1689 virtual const CResult Fit(const CFLPointArray3<double>* pFlpaPoints, int64_t i64OutlierThresholdCount = 0, double f64OutlierThreshold = 3., Base::CFLArray<int64_t>* pFlaOutlierIndices = nullptr);
1690
1714 virtual const CResult Fit(const CFLPointArray3<float>* pFlpaPoints, int64_t i64OutlierThresholdCount = 0, double f64OutlierThreshold = 3., Base::CFLArray<int64_t>* pFlaOutlierIndices = nullptr);
1715
1723 virtual void Clear() override;
1724
1734 virtual EFigureDeclType GetDeclType() const override;
1735
1745 virtual EFigureTemplateType GetTemplateType() const override;
1746
1763 virtual bool IsSpecEqual(const CFLFigure* pFlfRhs, EFigureSpecCompareType eSpecType = EFigureSpecCompareType_Coordinates) const override;
1764
1765 using CFLFigure::Swap;
1781 virtual const CResult Swap(CFLFigure* pFlfRight) override;
1782
1783 virtual double GetArea() const override;
1784 virtual double GetPerimeter() const override;
1785
1786 using CFLFigure3::Offset;
1787 virtual const CResult Offset(double x, double y, double z) override;
1788
1790 virtual const CResult Multiply(double x, double y, double z) override;
1791
1792 virtual CFLPoint3<double> GetCenter3D() const override;
1793
1795 virtual const CResult GetCenter(double& x, double& y, double& z) const override;
1796
1797 virtual CFLPoint3<double> GetCenterOfGravity3D() const override;
1798
1800 virtual const CResult GetCenterOfGravity(double& x, double& y, double& z) const override;
1801
1803
1805 virtual const CResult GetCenterOfVertices(double& x, double& y, double& z) const override;
1806
1824 virtual const CResult SetCenter(double x, double y, double z);
1825
1843 virtual const CResult SetCenter(float x, float y, float z);
1844
1858 virtual const CResult SetRadius(T tRadius);
1859
1873 virtual const CResult GetRadius(T& tRadius) const;
1874
1884 virtual T GetRadius() const;
1885
1903 virtual const CResult SetNormalVector(T x, T y, T z);
1904
1921
1937 virtual const CResult SetNormalVector(const CFLPoint3<T>* pFlpNormal);
1938
1956 virtual const CResult GetNormalVector(T& x, T& y, T& z) const;
1957
1974
1990 virtual const CResult GetNormalVector(CFLPoint3<T>* pFlpNormal) const;
1991
1992 using CFLFigure3::Rotate;
1993 virtual const CResult Rotate(const CFLGeometry3DQuaternion<float>* pQuat, const CFLPoint3<float>* pFlp3Pivot = nullptr) override;
1994 virtual const CResult Rotate(const CFLGeometry3DQuaternion<double>* pQuat, const CFLPoint3<double>* pFlp3Pivot = nullptr) override;
1995
1996 using CFLFigure3::Scale;
1997 virtual const CResult Scale(double f64PivotX, double f64PivotY, double f64PivotZ, double f64ScaleX, double f64ScaleY, double f64ScaleZ) override;
1998
2000 virtual const CResult Transform(const CMatrix<float>* pMatTransform) override;
2001 virtual const CResult Transform(const CMatrix<double>* pMatTransform) override;
2002
2004 virtual const CResult GetBoundingBox(double& f64MinX, double& f64MinY, double& f64MinZ, double& f64MaxX, double& f64MaxY, double& f64MaxZ) const override;
2005 virtual const CResult GetBoundingBox(float& f32MinX, float& f32MinY, float& f32MinZ, float& f32MaxX, float& f32MaxY, float& f32MaxZ) const override;
2006
2007
2008 protected:
2009 virtual CFLPoint<double> GetCenter() const override;
2010 virtual CFLPoint<double> GetCenterOfGravity() const override;
2011
2012
2013 SupportToDuplicateObject(CFLCircle3<T>, *this);
2014 DeclareGetClassType();
2015 };
2016
2017 typedef CFLCircle3<float> CFLCircle3F;
2018 typedef CFLCircle3<double> CFLCircle3D;
2019 }
2020}
Template type array class.
Definition FLArray.h:71
Simplified class representing a 3-D point.
Definition TPoint3.h:37
FLImaging module execution result object.
Definition ResultsDef.h:1704
Represents a circle in 3D space.
Definition FLCircle3.h:26
virtual const CResult Fit(const Base::CFLArray< Base::TPoint3< double > > &flaPoints, int64_t i64OutlierThresholdCount=0, double f64OutlierThreshold=3., Base::CFLArray< int64_t > *pFlaOutlierIndices=nullptr)
A function that fits the circle with the shape most similar to the points.
virtual const CResult Set(const Base::CFLArray< Base::TPoint3< float > > *pFlaPoints)
Parameter setting function.
const CFLCircle3< T > & operator*=(const Base::TPoint3< float > &tpPoint)
An operator that multiplies the x,y,z values of the center point of the circle by a parameter.
const CFLCircle3< T > & operator-=(const Base::TPoint3< float > &tpPoint)
Offset operator.
virtual CFLPoint3< double > GetCenter3D() const override
virtual const CResult GetCenterOfGravity(double &x, double &y, double &z) const override
Get the center of gravity (geometric center) of the 3D object.
friend CFLCircle3< double > operator+(const double &value, const CFLCircle3< T > &circle)
Offset operator.
Definition FLCircle3.h:972
virtual const CResult SetNormalVector(const CFLPoint3< T > *pFlpNormal)
Sets the normal vector of the plane to which the circle belongs.
CFLCircle3(const CFLFigure &flf)
As an initialization constructor, call the Set() function for the DeclType of CFLFigure& flf .
virtual const CResult Set(const CFLFigure *pFlf) override
Sets this circle from a figure according to its declaration type.
CFLCircle3(const CFLPointArray3< double > &flpa3)
Initializer.
virtual void Clear() override
Clears the circle data to its default state.
virtual const CResult SetCenter(double x, double y, double z)
Sets the center coordinates of the circle.
virtual const CResult GetNormalVector(CFLPoint3< T > *pFlpNormal) const
Gets the normal vector of the plane to which the circle belongs.
const CFLCircle3< T > & operator-=(const Base::TPoint3< double > &tpPoint)
Offset operator.
virtual CFLPoint< double > GetCenter() const override
friend CFLCircle3< double > operator-(const float &value, const CFLCircle3< T > &circle)
Offset operator.
Definition FLCircle3.h:1034
const CFLCircle3< T > & operator-=(const CFLPoint3< float > &flpPoint)
Offset operator.
friend CFLCircle3< double > operator/(const float &value, const CFLCircle3< T > &circle)
division operation
Definition FLCircle3.h:1200
virtual const CResult GetNormalVector(T &x, T &y, T &z) const
Gets the normal vector of the plane to which the circle belongs.
virtual const CResult Set(const CFLPoint3< T > &flpCenter, double f64Radius, const CFLPoint3< T > &flpNormal)
Sets the radius, center point, and normal vector of the circle.
CFLCircle3< T > operator-(const double &value) const
Offset operator.
virtual const CResult Set(const CFLPoint3< T > *pFlpCenter, double f64Radius, const CFLPoint3< T > *pFlpNormal)
Sets the radius, center point, and normal vector of the circle.
CFLCircle3(const CFLPointArray3< double > *pFlpa3)
Initializer.
CFLCircle3< T > operator-(const CFLPoint3< double > &flpPoint) const
Offset operator.
const CFLCircle3< T > & operator-=(const double &value)
Offset operator.
CFLPoint3< float > flpNormal
Definition FLCircle3.h:38
CFLCircle3< T > operator+(const Base::TPoint3< float > &tpPoint) const
Offset operator.
const CFLCircle3< T > & operator=(const CFLCircle3< double > &flc3)
Assignment operator.
const CFLCircle3< T > & operator+=(const double &value)
Offset operator.
CFLCircle3< T > operator*(const CFLPoint3< double > &flpPoint) const
An operator that multiplies the x,y and z values of the center point of the circle by a parameter.
virtual const CResult SetNormalVector(T x, T y, T z)
Sets the normal vector of the plane to which the circle belongs.
virtual const CResult SetCenter(float x, float y, float z)
Sets the center coordinates of the circle.
CFLCircle3< T > operator+(const Base::TPoint3< double > &tpPoint) const
Offset operator.
CFLCircle3< T > operator/(const CFLPoint3< double > &flpPoint) const
An operator that divides the x,y and z values of the center point of the circle by a parameter.
CFLCircle3(const Base::CFLArray< Base::TPoint3< double > > &flaPoints)
Initializer.
friend CFLCircle3< double > operator/(const int32_t &value, const CFLCircle3< T > &circle)
division operation
Definition FLCircle3.h:1156
virtual const CResult Set(const CFLPointArray3< double > &flpa3)
Parameter setting function.
virtual const CResult SetRadius(T tRadius)
Function to set radius of circle.
CFLCircle3(const CFLCircle3< double > &flc3)
copy constructor
CFLCircle3< T > operator*(const CFLPoint3< float > &flpPoint) const
An operator that multiplies the x,y and z values of the center point of the circle by a parameter.
friend CFLCircle3< double > operator+(const int32_t &value, const CFLCircle3< T > &circle)
Offset operator.
Definition FLCircle3.h:912
const CFLCircle3< T > & operator+=(const CFLPoint3< float > &flpPoint)
Offset operator.
float radius
Definition FLCircle3.h:47
const CFLCircle3< T > & operator/=(const double &value)
An operator that divides the x,y,z values of the center point of the circle by a parameter.
virtual const CResult Transform(const CMatrix< double > *pMatTransform) override
Transforms the object.
friend CFLCircle3< double > operator+(const float &value, const CFLCircle3< T > &circle)
Offset operator.
Definition FLCircle3.h:952
virtual const CResult Set(const Base::CFLArray< Base::TPoint3< float > > &flaPoints)
Parameter setting function.
friend CFLCircle3< double > operator*(const float &value, const CFLCircle3< T > &circle)
product operation
Definition FLCircle3.h:1116
CFLCircle3(const CFLPoint3< T > *pFlpCenter, double f64Radius, const CFLPoint3< T > *pFlpNormal)
Constructs a circle with the given radius, center point, and normal vector.
CFLCircle3(const CFLCircle3< float > *pFlc3)
copy constructor
CFLCircle3< T > operator-(const Base::TPoint3< float > &tpPoint) const
Offset operator.
friend CFLCircle3< double > operator/(const int64_t &value, const CFLCircle3< T > &circle)
division operation
Definition FLCircle3.h:1178
CFLCircle3(const CFLCircle3< float > &flc3)
copy constructor
virtual const CResult Multiply(double x, double y, double z) override
const CFLCircle3< T > & operator/=(const Base::TPoint3< float > &tpPoint)
An operator that divides the x,y,z values of the center point of the circle by a parameter.
const CFLCircle3< T > & operator=(const CFLCircle3< float > &flc3)
Assignment operator.
friend CFLCircle3< double > operator-(const int64_t &value, const CFLCircle3< T > &circle)
Offset operator.
Definition FLCircle3.h:1013
const CFLCircle3< T > & operator/=(const CFLPoint3< float > &flpPoint)
An operator that divides the x,y,z values of the center point of the circle by a parameter.
virtual T GetRadius() const
Function to get the radius.
virtual const CResult Offset(double x, double y, double z) override
CFLCircle3< T > operator/(const double &value) const
An operator that divides the x,y and z values of the center point of the circle by a parameter.
virtual const CResult GetNormalVector(CFLPoint3< T > &flpNormal) const
Gets the normal vector of the plane to which the circle belongs.
virtual const CResult Fit(const Base::CFLArray< Base::TPoint3< float > > *pFlaPoints, int64_t i64OutlierThresholdCount=0, double f64OutlierThreshold=3., Base::CFLArray< int64_t > *pFlaOutlierIndices=nullptr)
A function that fits the circle with the shape most similar to the points.
friend CFLCircle3< double > operator/(const double &value, const CFLCircle3< T > &circle)
division operation
Definition FLCircle3.h:1222
CFLCircle3< T > operator*(const double &value) const
An operator that multiplies the x,y and z values of the center point of the circle by a parameter.
friend CFLCircle3< double > operator+(const int64_t &value, const CFLCircle3< T > &circle)
Offset operator.
Definition FLCircle3.h:932
friend CFLCircle3< double > operator*(const int32_t &value, const CFLCircle3< T > &circle)
product operation
Definition FLCircle3.h:1076
virtual bool IsSpecEqual(const CFLFigure *pFlfRhs, EFigureSpecCompareType eSpecType=EFigureSpecCompareType_Coordinates) const override
Compare the specification of this circle with another figure.
friend CFLCircle3< double > operator*(const double &value, const CFLCircle3< T > &circle)
product operation
Definition FLCircle3.h:1136
virtual const CResult SetNormalVector(const CFLPoint3< T > &flpNormal)
Sets the normal vector of the plane to which the circle belongs.
CFLPoint3< float > flpCenter
Definition FLCircle3.h:32
const CFLCircle3< T > & operator*=(const double &value)
An operator that multiplies the x,y,z values of the center point of the circle by a parameter.
virtual const CResult Scale(double f64PivotX, double f64PivotY, double f64PivotZ, double f64ScaleX, double f64ScaleY, double f64ScaleZ) override
virtual CFLPoint3< double > GetCenterOfGravity3D() const override
const CFLCircle3< T > & operator*=(const Base::TPoint3< double > &tpPoint)
An operator that multiplies the x,y,z values of the center point of the circle by a parameter.
virtual const CResult Fit(const CFLPointArray3< double > &flpaPoints, int64_t i64OutlierThresholdCount=0, double f64OutlierThreshold=3., Base::CFLArray< int64_t > *pFlaOutlierIndices=nullptr)
A function that fits the circle with the shape most similar to the points.
friend CFLCircle3< double > operator-(const int32_t &value, const CFLCircle3< T > &circle)
Offset operator.
Definition FLCircle3.h:992
CFLCircle3< T > operator/(const CFLPoint3< float > &flpPoint) const
An operator that divides the x,y and z values of the center point of the circle by a parameter.
friend CFLCircle3< double > operator-(const double &value, const CFLCircle3< T > &circle)
Offset operator.
Definition FLCircle3.h:1055
CFLCircle3< T > operator*(const Base::TPoint3< double > &tpPoint) const
An operator that multiplies the x,y and z values of the center point of the circle by a parameter.
friend CFLCircle3< double > operator*(const int64_t &value, const CFLCircle3< T > &circle)
product operation
Definition FLCircle3.h:1096
virtual const CResult Set(const CFLCircle3< float > &flc3)
Sets this circle to have the same radius and local coordinate system as another circle.
virtual const CResult Swap(CFLFigure *pFlfRight) override
Swap the data of this circle with another figure.
const CFLCircle3< T > & operator*=(const CFLPoint3< float > &flpPoint)
An operator that multiplies the x,y,z values of the center point of the circle by a parameter.
virtual const CResult GetCenterOfVertices(double &x, double &y, double &z) const override
virtual const CResult Set(const CFLCircle3< double > *pFlc3)
Sets this circle to have the same radius and local coordinate system as another circle.
const CFLCircle3< T > & operator*=(const CFLPoint3< double > &flpPoint)
An operator that multiplies the x,y,z values of the center point of the circle by a parameter.
CFLCircle3(const CFLPoint3< T > &flpCenter, double f64Radius, const CFLPoint3< T > &flpNormal)
Constructs a circle with the given radius, center point, and normal vector.
const CFLCircle3< T > & operator/=(const CFLPoint3< double > &flpPoint)
An operator that divides the x,y,z values of the center point of the circle by a parameter.
virtual CFLPoint3< double > GetCenterOfVertices3D() const override
CFLCircle3< T > operator+(const CFLPoint3< double > &flpPoint) const
Offset operator.
virtual const CResult Transform(const CMatrix< float > *pMatTransform) override
Transforms the object.
virtual CFLPoint< double > GetCenterOfGravity() const override
virtual const CResult GetCenter(double &x, double &y, double &z) const override
CFLCircle3< T > operator+(const CFLPoint3< float > &flpPoint) const
Offset operator.
virtual const CResult Rotate(const CFLGeometry3DQuaternion< double > *pQuat, const CFLPoint3< double > *pFlp3Pivot=nullptr) override
CFLCircle3(const Base::CFLArray< Base::TPoint3< float > > *pFlaPoints)
Initializer.
const CFLCircle3< T > & operator-=(const CFLPoint3< double > &flpPoint)
Offset operator.
const CFLCircle3< T > & operator+=(const Base::TPoint3< float > &tpPoint)
Offset operator.
CFLCircle3< T > operator*(const Base::TPoint3< float > &tpPoint) const
An operator that multiplies the x,y and z values of the center point of the circle by a parameter.
virtual const CResult GetBoundingBox(float &f32MinX, float &f32MinY, float &f32MinZ, float &f32MaxX, float &f32MaxY, float &f32MaxZ) const override
Returns the bounding box (AABB).
CFLCircle3< T > operator+(const double &value) const
Offset operator.
virtual const CResult Fit(const Base::CFLArray< Base::TPoint3< double > > *pFlaPoints, int64_t i64OutlierThresholdCount=0, double f64OutlierThreshold=3., Base::CFLArray< int64_t > *pFlaOutlierIndices=nullptr)
A function that fits the circle with the shape most similar to the points.
virtual const CResult Set(const CFLCircle3< double > &flc3)
Sets this circle to have the same radius and local coordinate system as another circle.
CFLCircle3(const Base::CFLArray< Base::TPoint3< double > > *pFlaPoints)
Initializer.
virtual double GetPerimeter() const override
virtual const CResult Fit(const CFLPointArray3< double > *pFlpaPoints, int64_t i64OutlierThresholdCount=0, double f64OutlierThreshold=3., Base::CFLArray< int64_t > *pFlaOutlierIndices=nullptr)
A function that fits the circle with the shape most similar to the points.
virtual const CResult Set(const CFLPointArray3< float > &flpa3)
Parameter setting function.
const CFLCircle3< T > & operator+=(const Base::TPoint3< double > &tpPoint)
Offset operator.
virtual const CResult Set(const CFLPointArray3< float > *pFlpa3)
Parameter setting function.
CFLCircle3(const CFLPointArray3< float > &flpa3)
Initializer.
virtual const CResult Fit(const CFLPointArray3< float > *pFlpaPoints, int64_t i64OutlierThresholdCount=0, double f64OutlierThreshold=3., Base::CFLArray< int64_t > *pFlaOutlierIndices=nullptr)
A function that fits the circle with the shape most similar to the points.
const CFLCircle3< T > & operator+=(const CFLPoint3< double > &flpPoint)
Offset operator.
CFLCircle3(const CFLFigure *pFlf)
As an initialization constructor, call the Set() function for the DeclType of CFLFigure& flf .
const CFLCircle3< T > & operator/=(const Base::TPoint3< double > &tpPoint)
An operator that divides the x,y,z values of the center point of the circle by a parameter.
virtual EFigureDeclType GetDeclType() const override
Get the figure declaration type.
virtual const CResult Rotate(const CFLGeometry3DQuaternion< float > *pQuat, const CFLPoint3< float > *pFlp3Pivot=nullptr) override
CFLCircle3< T > operator/(const Base::TPoint3< double > &tpPoint) const
An operator that divides the x,y and z values of the center point of the circle by a parameter.
CFLCircle3(const CFLCircle3< double > *pFlc3)
copy constructor
virtual const CResult Set(const CFLFigure &flf) override
Sets this circle from a figure according to its declaration type.
virtual const CResult Set(const CFLPointArray3< double > *pFlpa3)
Parameter setting function.
CFLCircle3< T > operator/(const Base::TPoint3< float > &tpPoint) const
An operator that divides the x,y and z values of the center point of the circle by a parameter.
virtual const CResult Set(const Base::CFLArray< Base::TPoint3< double > > &flaPoints)
Parameter setting function.
virtual const CResult Fit(const Base::CFLArray< Base::TPoint3< float > > &flaPoints, int64_t i64OutlierThresholdCount=0, double f64OutlierThreshold=3., Base::CFLArray< int64_t > *pFlaOutlierIndices=nullptr)
A function that fits the circle with the shape most similar to the points.
CFLCircle3< T > operator-(const Base::TPoint3< double > &tpPoint) const
Offset operator.
virtual const CResult GetBoundingBox(double &f64MinX, double &f64MinY, double &f64MinZ, double &f64MaxX, double &f64MaxY, double &f64MaxZ) const override
Returns the bounding box (AABB).
CFLCircle3< T > operator-() const
An operator that returns a point with the signs of x, y and z values inverted.
CFLCircle3< T > operator-(const CFLPoint3< float > &flpPoint) const
Offset operator.
CFLCircle3(const Base::CFLArray< Base::TPoint3< float > > &flaPoints)
Initializer.
virtual const CResult GetRadius(T &tRadius) const
Get radius.
CFLCircle3(const CFLPointArray3< float > *pFlpa3)
Initializer.
virtual double GetArea() const override
virtual const CResult Set(const CFLCircle3< float > *pFlc3)
Sets this circle to have the same radius and local coordinate system as another circle.
virtual const CResult Fit(const CFLPointArray3< float > &flpaPoints, int64_t i64OutlierThresholdCount=0, double f64OutlierThreshold=3., Base::CFLArray< int64_t > *pFlaOutlierIndices=nullptr)
A function that fits the circle with the shape most similar to the points.
virtual const CResult Set(const Base::CFLArray< Base::TPoint3< double > > *pFlaPoints)
Parameter setting function.
virtual EFigureTemplateType GetTemplateType() const override
Get the figure template type.
virtual const CResult Offset(double x, double y) override
virtual const CResult Transform(const CMatrixFor3DTransform< float > &matTransform)
Transform the object using a transformation matrix.
virtual const CResult GetCenterOfVertices(double &x, double &y, double &z) const
virtual const CResult Multiply(double x, double y) override
virtual const CResult GetCenter(double &x, double &y) const override
virtual const CResult GetBoundingBox(Base::TPoint3< float > &tp3Min, Base::TPoint3< float > &tp3Max) const
Returns the bounding box (AABB).
virtual const CResult Scale(double f64Scale)
virtual const CResult GetCenterOfGravity(double &x, double &y) const override
virtual const CResult Rotate(const CFLGeometry3DQuaternion< float > &quat, const CFLPoint3< float > &flp3Pivot)
A base class of classes representing figures.
Definition FLFigure.h:27
virtual bool IsSpecEqual(const CFLFigure &flfRhs, EFigureSpecCompareType eSpecType=EFigureSpecCompareType_Coordinates) const
virtual const CResult Swap(CFLFigure &flfRight)
A class representing quaternion.
Definition FLGeometry3DQuaternion.h:30
A class representing a 3D point.
Definition FLPoint3.h:40
Ty x
Definition FLPoint3.h:46
A base class representing array of 3d point.
Definition FLPointArray3.h:24
A class representing a point.
Definition FLPoint.h:24
A class representing matrix.
Definition Matrix.h:79
Definition AlgorithmBase.h:16
EFigureDeclType
Declare type of figure.
Definition DefinitionsFigure.h:33
EFigureTemplateType
Template type of figure.
Definition DefinitionsFigure.h:423
EFigureSpecCompareType
Definition DefinitionsFigure.h:3579
@ EFigureSpecCompareType_Coordinates
Definition DefinitionsFigure.h:3584