FLImaging 7.8.25.3
FLLine3.h
1#pragma once
2
8
9#include "FLFigure3.h"
10#include "FLPoint3.h"
11
13namespace FLImaging
14{
16 namespace Foundation
17 {
18 template<typename T>
19 class FL_EXPORT CFLPointArray3;
20
26 template<typename T>
27 class FL_EXPORT CFLLine3 : public CFLFigure3
28 {
29 public:
35
41
46 virtual ~CFLLine3();
47
58
69
80
91
104
117
130
143
156
169
182
195
209 CFLLine3(const CFLPoint3<float>& flp0, const CFLPoint3<float>& flp1);
210
225
239 CFLLine3(const CFLPoint3<float>* pFlp0, const CFLPoint3<float>* pFlp1);
240
254 CFLLine3(const CFLPoint3<double>* pFlp0, const CFLPoint3<double>* pFlp1);
255
270
285
300
315
336 CFLLine3(double x0, double y0, double z0, double x1, double y1, double z1);
337
358 CFLLine3(float x0, float y0, float z0, float x1, float y1, float z1);
359
380 CFLLine3(int64_t x0, int64_t y0, int64_t z0, int64_t x1, int64_t y1, int64_t z1);
381
402 CFLLine3(int32_t x0, int32_t y0, int32_t z0, int32_t x1, int32_t y1, int32_t z1);
403
416
429
442
455
467 CFLLine3(const CFLFigure& flf);
468
480 CFLLine3(const CFLFigure* pFlf);
481
495 virtual const CResult Set(const CFLLine3<float>& rhs);
496
510 virtual const CResult Set(const CFLLine3<double>& rhs);
511
525 virtual const CResult Set(const CFLLine3<float>* pRhs);
526
540 virtual const CResult Set(const CFLLine3<double>* pRhs);
541
557 virtual const CResult Set(const Base::TLine3<float>& rhs);
558
574 virtual const CResult Set(const Base::TLine3<double>& rhs);
575
591 virtual const CResult Set(const Base::TLine3<float>* pRhs);
592
608 virtual const CResult Set(const Base::TLine3<double>* pRhs);
609
625 virtual const CResult Set(const Base::TLine<float>& rhs);
626
642 virtual const CResult Set(const Base::TLine<double>& rhs);
643
659 virtual const CResult Set(const Base::TLine<float>* pRhs);
660
676 virtual const CResult Set(const Base::TLine<double>* pRhs);
677
695 virtual const CResult Set(const CFLPoint3<float>& flp0, const CFLPoint3<float>& flp1);
696
714 virtual const CResult Set(const CFLPoint3<double>& flp0, const CFLPoint3<double>& flp1);
715
733 virtual const CResult Set(const CFLPoint3<float>* pFlp0, const CFLPoint3<float>* pFlp1);
734
752 virtual const CResult Set(const CFLPoint3<double>* pFlp0, const CFLPoint3<double>* pFlp1);
753
771 virtual const CResult Set(const Base::TPoint3<float>& tp0, const Base::TPoint3<float>& tp1);
772
790 virtual const CResult Set(const Base::TPoint3<double>& tp0, const Base::TPoint3<double>& tp1);
791
809 virtual const CResult Set(const Base::TPoint3<float>* pTp0, const Base::TPoint3<float>* pTp1);
810
828 virtual const CResult Set(const Base::TPoint3<double>* pTp0, const Base::TPoint3<double>* pTp1);
829
853 virtual const CResult Set(double x0, double y0, double z0, double x1, double y1, double z1);
854
878 virtual const CResult Set(float x0, float y0, float z0, float x1, float y1, float z1);
879
903 virtual const CResult Set(int64_t x0, int64_t y0, int64_t z0, int64_t x1, int64_t y1, int64_t z1);
904
928 virtual const CResult Set(int32_t x0, int32_t y0, int32_t z0, int32_t x1, int32_t y1, int32_t z1);
929
945 virtual const CResult Set(const CFLPointArray3<double>& flpa3);
946
962 virtual const CResult Set(const CFLPointArray3<float>& flpa3);
963
979 virtual const CResult Set(const CFLPointArray3<double>* pFlpa3);
980
996 virtual const CResult Set(const CFLPointArray3<float>* pFlpa3);
997
998 virtual const CResult Set(const CFLFigure& flf) override;
999 virtual const CResult Set(const CFLFigure* pFlf) override;
1000
1024 virtual const CResult Fit(const Base::CFLArray<Base::TPoint3<double>>& flaPoints, int64_t i64OutlierThresholdCount = 0, double f64OutlierThreshold = 3., Base::CFLArray<int64_t>* pFlaOutlierIndices = nullptr);
1025
1049 virtual const CResult Fit(const Base::CFLArray<Base::TPoint3<float>>& flaPoints, int64_t i64OutlierThresholdCount = 0, double f64OutlierThreshold = 3., Base::CFLArray<int64_t>* pFlaOutlierIndices = nullptr);
1050
1074 virtual const CResult Fit(const Base::CFLArray<Base::TPoint3<double>>* pFlaPoints, int64_t i64OutlierThresholdCount = 0, double f64OutlierThreshold = 3., Base::CFLArray<int64_t>* pFlaOutlierIndices = nullptr);
1075
1099 virtual const CResult Fit(const Base::CFLArray<Base::TPoint3<float>>* pFlaPoints, int64_t i64OutlierThresholdCount = 0, double f64OutlierThreshold = 3., Base::CFLArray<int64_t>* pFlaOutlierIndices = nullptr);
1100
1124 virtual const CResult Fit(const CFLPointArray3<double>& flpaPoints, int64_t i64OutlierThresholdCount = 0, double f64OutlierThreshold = 3., Base::CFLArray<int64_t>* pFlaOutlierIndices = nullptr);
1125
1149 virtual const CResult Fit(const CFLPointArray3<float>& flpaPoints, int64_t i64OutlierThresholdCount = 0, double f64OutlierThreshold = 3., Base::CFLArray<int64_t>* pFlaOutlierIndices = nullptr);
1150
1174 virtual const CResult Fit(const CFLPointArray3<double>* pFlpaPoints, int64_t i64OutlierThresholdCount = 0, double f64OutlierThreshold = 3., Base::CFLArray<int64_t>* pFlaOutlierIndices = nullptr);
1175
1199 virtual const CResult Fit(const CFLPointArray3<float>* pFlpaPoints, int64_t i64OutlierThresholdCount = 0, double f64OutlierThreshold = 3., Base::CFLArray<int64_t>* pFlaOutlierIndices = nullptr);
1200
1201 virtual void Clear() override;
1202
1203 virtual EFigureDeclType GetDeclType() const override;
1204 virtual EFigureTemplateType GetTemplateType() const override;
1205
1207 virtual bool IsSpecEqual(const CFLFigure* pFlfRhs, EFigureSpecCompareType eSpecType = EFigureSpecCompareType_Coordinates) const override;
1208
1209 using CFLFigure::Swap;
1210 virtual const CResult Swap(CFLFigure* pFlfRight) override;
1211
1212 virtual double GetLength() const override;
1213
1214 using CFLFigure3::Offset;
1215 virtual const CResult Offset(double x, double y, double z) override;
1216
1218 virtual const CResult Multiply(double x, double y, double z) override;
1219
1220 virtual CFLPoint3<double> GetCenter3D() const override;
1221
1223 virtual const CResult GetCenterOfGravity(double& x, double& y, double& z) const override;
1224
1226 virtual const CResult GetCenterOfVertices(double& x, double& y, double& z) const override;
1227
1228 using CFLFigure3::Rotate;
1229 virtual const CResult Rotate(const CFLGeometry3DQuaternion<float>* pQuat, const CFLPoint3<float>* pFlp3Pivot = nullptr) override;
1230 virtual const CResult Rotate(const CFLGeometry3DQuaternion<double>* pQuat, const CFLPoint3<double>* pFlp3Pivot = nullptr) override;
1231
1232 using CFLFigure3::Scale;
1233 virtual const CResult Scale(double f64PivotX, double f64PivotY, double f64PivotZ, double f64ScaleX, double f64ScaleY, double f64ScaleZ) override;
1234
1236 virtual const CResult Transform(const CMatrix<float>* pMatTransform) override;
1237 virtual const CResult Transform(const CMatrix<double>* pMatTransform) override;
1238
1240 virtual const CResult GetBoundingBox(double& f64MinX, double& f64MinY, double& f64MinZ, double& f64MaxX, double& f64MaxY, double& f64MaxZ) const override;
1241 virtual const CResult GetBoundingBox(float& f32MinX, float& f32MinY, float& f32MinZ, float& f32MaxX, float& f32MaxY, float& f32MaxZ) const override;
1242
1255
1256 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLFigureArray& flfaResult) const override;
1257 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLFigureArray* pFlfaResult) const override;
1258
1276 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLPointArray3<T>& flpaResult) const;
1277
1295 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLPointArray3<T>* pFlpaResult) const;
1296
1309 virtual CFLPoint3<T> GetPointOnLine(double f64T) const;
1310
1328 virtual const CResult GetPositionOnLine(double f64X, double f64Y, double f64Z, double& f64T) const;
1329
1345 virtual const CResult GetPositionOnLine(const CFLPoint3<T>& flp, double& f64T) const;
1346
1362 virtual const CResult GetPositionOnLine(const CFLPoint3<T>* pFlp, double& f64T) const;
1363
1377 virtual double GetPositionOnLine(double f64X, double f64Y, double f64Z) const;
1378
1390 virtual double GetPositionOnLine(const CFLPoint3<T>& flp) const;
1391
1403 virtual double GetPositionOnLine(const CFLPoint3<T>* pFlp) const;
1404
1405
1417 bool operator==(const CFLLine3<float>& flsp) const;
1418
1430 bool operator==(const CFLLine3<double>& flsp) const;
1431
1443 bool operator!=(const CFLLine3<float>& flsp) const;
1444
1456 bool operator!=(const CFLLine3<double>& flsp) const;
1457
1470
1483
1495 const CFLLine3<T>& operator+=(const double& value);
1496
1510 const CFLLine3<T>& operator+=(const CFLPoint3<float>& flpPoint);
1511
1526
1541
1556
1568 const CFLLine3<T>& operator-=(const double& value);
1569
1583 const CFLLine3<T>& operator-=(const CFLPoint3<float>& flpPoint);
1584
1599
1614
1629
1641 const CFLLine3<T>& operator*=(const double& value);
1642
1656 const CFLLine3<T>& operator*=(const CFLPoint3<float>& flpPoint);
1657
1672
1687
1702
1714 const CFLLine3<T>& operator/=(const double& value);
1715
1729 const CFLLine3<T>& operator/=(const CFLPoint3<float>& flpPoint);
1730
1745
1760
1775
1787 CFLLine3<T> operator+(const double& value) const;
1788
1803
1818
1833
1848
1860 CFLLine3<T> operator-(const double& value) const;
1861
1876
1891
1906
1921
1933 CFLLine3<T> operator*(const double& value) const;
1934
1949
1964
1979
1994
2006 CFLLine3<T> operator/(const double& value) const;
2007
2022
2037
2052
2067
2078
2092 friend CFLLine3<T> operator+(const double& value, const CFLLine3<T>& fll)
2093 {
2094 CFLLine3<T> t(fll);
2095 t += value;
2096 return t;
2097 }
2098
2112 friend CFLLine3<T> operator-(const double& value, const CFLLine3<T>& fll)
2113 {
2114 CFLLine3<T> t(fll);
2115 t *= -1.;
2116 t += value;
2117 return t;
2118 }
2119
2133 friend CFLLine3<T> operator*(const double& value, const CFLLine3<T>& fll)
2134 {
2135 CFLLine3<T> t(fll);
2136 t *= value;
2137 return t;
2138 }
2139
2153 friend CFLLine3<T> operator/(const double& value, const CFLLine3<T>& fll)
2154 {
2155 CFLLine3<T> t(fll);
2156 t.flpPoints[0] = value / fll.flpPoints[0];
2157 t.flpPoints[1] = value / fll.flpPoints[1];
2158 return t;
2159 }
2160
2161
2162 private:
2164
2165 protected:
2166 virtual CFLPoint<double> GetCenterOfGravity() const override;
2167
2168 SupportToDuplicateObject(CFLLine3<T>, *this);
2169 DeclareGetClassType();
2170 };
2171
2172 typedef CFLLine3<float> CFLLine3F;
2173 typedef CFLLine3<double> CFLLine3D;
2174 }
2175}
Template type array class.
Definition FLArray.h:71
Simplified class representing a 3D line.
Definition TLine3.h:38
Simplified class representing a line.
Definition TLine.h:38
Simplified class representing a 3-D point.
Definition TPoint3.h:37
FLImaging module execution result object.
Definition ResultsDef.h:1704
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 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 representing array of figure.
Definition FLFigureArray.h:27
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 GetSamplingVectorOnSegment(double f64SamplingDistance, CFLFigureArray &flfaResult) const
Get point information moving by the set length.
virtual const CResult Swap(CFLFigure &flfRight)
A class representing quaternion.
Definition FLGeometry3DQuaternion.h:30
A class representing a line 3d.
Definition FLLine3.h:28
virtual const CResult Set(const CFLFigure &flf) override
virtual const CResult Set(const Base::TLine3< double > &rhs)
Parameter setting function.
CFLLine3< T > operator+(const CFLPoint3< double > &flpPoint) const
Offset operator.
CFLLine3< T > operator-(const double &value) const
Offset operator.
CFLLine3(const Base::TLine< double > &rhs)
copy constructor
friend CFLLine3< T > operator/(const double &value, const CFLLine3< T > &fll)
An operator that divides the x, y, z values of center into parameters.
Definition FLLine3.h:2153
virtual const CResult Set(const Base::TLine< float > *pRhs)
Parameter setting function.
virtual const CResult Set(const CFLPointArray3< double > &flpa3)
Parameter setting function.
virtual const CResult Rotate(const CFLGeometry3DQuaternion< float > *pQuat, const CFLPoint3< float > *pFlp3Pivot=nullptr) override
virtual const CResult Set(const CFLLine3< float > &rhs)
Parameter setting function.
virtual double GetPositionOnLine(const CFLPoint3< T > &flp) const
virtual const CResult Set(const CFLPointArray3< float > &flpa3)
Parameter setting function.
const CFLLine3< T > & operator/=(const double &value)
An operator that divides the x,y,z values of center.
CFLLine3(const Base::TPoint3< float > &tp0, const Base::TPoint3< float > &tp1)
Initializer.
CFLLine3(const CFLPointArray3< float > &flpa3)
Initializer.
CFLLine3(double x0, double y0, double z0, double x1, double y1, double z1)
Initializer.
const CFLLine3< T > & operator-=(const double &value)
Offset operator.
virtual bool IsSpecEqual(const CFLFigure *pFlfRhs, EFigureSpecCompareType eSpecType=EFigureSpecCompareType_Coordinates) const override
virtual EFigureTemplateType GetTemplateType() const override
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 line with the shape most similar to the points.
const CFLLine3< T > & operator+=(const CFLPoint3< double > &flpPoint)
Offset operator.
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 line with the shape most similar to the points.
CFLLine3(const Base::TPoint3< float > *pTp0, const Base::TPoint3< float > *pTp1)
Initializer.
const CFLLine3< T > & operator/=(const Base::TPoint3< double > &tpPoint)
An operator that divides the x,y,z values of center.
const CFLLine3< T > & operator/=(const CFLPoint3< double > &flpPoint)
An operator that divides the x,y,z values of center.
virtual const CResult Swap(CFLFigure *pFlfRight) override
virtual double GetPositionOnLine(double f64X, double f64Y, double f64Z) const
virtual const CResult Set(const Base::TPoint3< float > &tp0, const Base::TPoint3< float > &tp1)
Parameter setting function.
CFLLine3(const Base::TLine< float > &rhs)
copy constructor
CFLLine3< T > operator+(const Base::TPoint3< float > &tpPoint) const
Offset operator.
CFLLine3(const CFLPoint3< float > *pFlp0, const CFLPoint3< float > *pFlp1)
Initializer.
virtual void Clear() override
Clear an object's variable.
virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLPointArray3< T > &flpaResult) const
Get point information moving by the set length.
CFLLine3< T > operator-(const CFLPoint3< float > &flpPoint) const
Offset operator.
virtual const CResult Set(const CFLPoint3< float > *pFlp0, const CFLPoint3< float > *pFlp1)
Parameter setting function.
virtual CFLPoint3< T > GetPointOnLine(double f64T) const
Returns the point according to the T value on the straight line.
virtual const CResult Set(const Base::TPoint3< double > &tp0, const Base::TPoint3< double > &tp1)
Parameter setting function.
virtual const CResult Set(const Base::TPoint3< float > *pTp0, const Base::TPoint3< float > *pTp1)
Parameter setting function.
CFLLine3(const Base::TLine< double > *pRhs)
copy constructor
const CFLLine3< T > & operator*=(const double &value)
An operator that multiplies the x,y,z values of center.
virtual const CResult Set(const CFLPointArray3< float > *pFlpa3)
Parameter setting function.
CFLPoint3< float > flpPoints[2]
Definition FLLine3.h:34
const CFLLine3< T > & operator=(const CFLLine3< float > &rhs)
Assignment operator.
virtual const CResult Offset(double x, double y, double z) override
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 line with the shape most similar to the points.
CFLLine3(const Base::TLine3< float > *pRhs)
copy constructor
const CFLLine3< T > & operator+=(const CFLPoint3< float > &flpPoint)
Offset operator.
bool operator!=(const CFLLine3< float > &flsp) const
Comparison operator.
CFLLine3< T > operator-(const CFLPoint3< double > &flpPoint) const
Offset operator.
virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLPointArray3< T > *pFlpaResult) const
Get point information moving by the set length.
const CFLLine3< T > & operator*=(const Base::TPoint3< float > &tpPoint)
An operator that multiplies the x,y,z values of center.
virtual const CResult Set(const Base::TLine< double > &rhs)
Parameter setting function.
CFLLine3< T > operator*(const double &value) const
An operator that multiplies the x,y and z values of center by a parameter.
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 line with the shape most similar to the points.
virtual const CResult Set(const Base::TPoint3< double > *pTp0, const Base::TPoint3< double > *pTp1)
Parameter setting function.
CFLLine3< T > operator+(const Base::TPoint3< double > &tpPoint) const
Offset operator.
CFLLine3(const CFLLine3< float > *pRhs)
copy constructor
const CFLLine3< T > & operator*=(const CFLPoint3< float > &flpPoint)
An operator that multiplies the x,y,z values of center.
virtual const CResult Set(float x0, float y0, float z0, float x1, float y1, float z1)
Parameter setting function.
virtual const CResult GetPositionOnLine(const CFLPoint3< T > &flp, double &f64T) const
CFLLine3< T > operator-(const Base::TPoint3< double > &tpPoint) const
Offset operator.
CFLLine3< T > operator/(const CFLPoint3< double > &flpPoint) const
An operator that divides the x,y and z values of center by a parameter.
CFLLine3(int32_t x0, int32_t y0, int32_t z0, int32_t x1, int32_t y1, int32_t z1)
Initializer.
virtual const CResult Scale(double f64PivotX, double f64PivotY, double f64PivotZ, double f64ScaleX, double f64ScaleY, double f64ScaleZ) override
virtual const CResult Set(double x0, double y0, double z0, double x1, double y1, double z1)
Parameter setting function.
virtual const CResult GetBoundingBox(double &f64MinX, double &f64MinY, double &f64MinZ, double &f64MaxX, double &f64MaxY, double &f64MaxZ) const override
Returns the bounding box (AABB).
CFLLine3(const Base::TLine3< double > *pRhs)
copy constructor
CFLLine3(const CFLPoint3< double > &flp0, const CFLPoint3< double > &flp1)
Initializer.
virtual const CResult Set(const CFLLine3< double > &rhs)
Parameter setting function.
CFLLine3< T > operator*(const Base::TPoint3< float > &tpPoint) const
An operator that multiplies the x,y and z values of center 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).
friend CFLLine3< T > operator*(const double &value, const CFLLine3< T > &fll)
An operator that multiplies the x, y, and z values of center.
Definition FLLine3.h:2133
CFLLine3< T > operator-(const Base::TPoint3< float > &tpPoint) const
Offset operator.
CFLLine3(const CFLFigure *pFlf)
Initializer.
CFLLine3(const CFLLine3< float > &rhs)
copy constructor
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 line with the shape most similar to the points.
const CFLLine3< T > & operator-=(const Base::TPoint3< double > &tpPoint)
Offset operator.
friend CFLLine3< T > operator+(const double &value, const CFLLine3< T > &fll)
Offset operator.
Definition FLLine3.h:2092
virtual const CResult Rotate(const CFLGeometry3DQuaternion< double > *pQuat, const CFLPoint3< double > *pFlp3Pivot=nullptr) override
CFLLine3< T > operator/(const Base::TPoint3< double > &tpPoint) const
An operator that divides the x,y and z values of center by a parameter.
const CFLLine3< T > & operator/=(const Base::TPoint3< float > &tpPoint)
An operator that divides the x,y,z values of center.
virtual const CResult GetCenterOfGravity(double &x, double &y, double &z) const override
Get the center of gravity (geometric center) of the 3D object.
CFLLine3< T > operator+(const CFLPoint3< float > &flpPoint) const
Offset operator.
friend CFLLine3< T > operator-(const double &value, const CFLLine3< T > &fll)
Offset operator.
Definition FLLine3.h:2112
virtual const CResult Set(const CFLPointArray3< double > *pFlpa3)
Parameter setting function.
virtual const CResult Set(const Base::TLine3< float > &rhs)
Parameter setting function.
CFLLine3< T > operator*(const CFLPoint3< double > &flpPoint) const
An operator that multiplies the x,y and z values of center by a parameter.
bool operator!=(const CFLLine3< double > &flsp) const
Comparison operator.
virtual EFigureDeclType GetDeclType() const override
CFLLine3< T > operator-() const
An operator that returns a point with the signs of x, y and z values inverted.
const CFLLine3< T > & operator*=(const CFLPoint3< double > &flpPoint)
An operator that multiplies the x,y,z values of center.
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 line with the shape most similar to the points.
virtual const CResult Set(const Base::TLine< float > &rhs)
Parameter setting function.
virtual const CResult Set(const CFLPoint3< float > &flp0, const CFLPoint3< float > &flp1)
Parameter setting function.
CFLLine3(int64_t x0, int64_t y0, int64_t z0, int64_t x1, int64_t y1, int64_t z1)
Initializer.
CFLLine3(const CFLPointArray3< float > *pFlpa3)
Initializer.
virtual CFLPoint3< double > GetCenter3D() const override
CFLLine3(const CFLLine3< double > *pRhs)
copy constructor
const CFLLine3< T > & operator-=(const Base::TPoint3< float > &tpPoint)
Offset operator.
const CFLLine3< T > & operator=(const CFLLine3< double > &rhs)
Assignment operator.
virtual CFLPoint< double > GetCenterOfGravity() const override
CFLLine3(const Base::TLine< float > *pRhs)
copy constructor
virtual const CResult Multiply(double x, double y, double z) override
CFLLine3(const CFLLine3< double > &rhs)
copy constructor
virtual const CResult Set(const CFLPoint3< double > &flp0, const CFLPoint3< double > &flp1)
Parameter setting function.
CFLLine3(const Base::TLine3< double > &rhs)
copy constructor
const CFLLine3< T > & operator/=(const CFLPoint3< float > &flpPoint)
An operator that divides the x,y,z values of center.
CFLLine3(float x0, float y0, float z0, float x1, float y1, float z1)
Initializer.
virtual const CResult Transform(const CMatrix< float > *pMatTransform) override
Transforms the object.
virtual const CResult Set(const CFLPoint3< double > *pFlp0, const CFLPoint3< double > *pFlp1)
Parameter setting function.
const CFLLine3< T > & operator+=(const double &value)
Offset operator.
virtual const CResult Set(const Base::TLine< double > *pRhs)
Parameter setting function.
CFLLine3(const CFLFigure &flf)
Initializer.
CFLLine3(const Base::TPoint3< double > *pTp0, const Base::TPoint3< double > *pTp1)
Initializer.
virtual double GetPositionOnLine(const CFLPoint3< T > *pFlp) const
bool operator==(const CFLLine3< double > &flsp) const
Comparison operator.
CFLLine3(const CFLPoint3< double > *pFlp0, const CFLPoint3< double > *pFlp1)
Initializer.
virtual const CResult GetPositionOnLine(const CFLPoint3< T > *pFlp, double &f64T) const
virtual const CResult Set(const CFLFigure *pFlf) override
virtual double GetLength() const override
CFLLine3< T > operator/(const double &value) const
An operator that divides the x,y and z values of center by a parameter.
virtual const CResult GetCenterOfVertices(double &x, double &y, double &z) const override
CFLLine3< T > operator*(const CFLPoint3< float > &flpPoint) const
An operator that multiplies the x,y and z values of center by a parameter.
const CFLLine3< T > & operator-=(const CFLPoint3< double > &flpPoint)
Offset operator.
const CFLLine3< T > & operator-=(const CFLPoint3< float > &flpPoint)
Offset operator.
virtual const CResult Set(const Base::TLine3< float > *pRhs)
Parameter setting function.
const CFLLine3< T > & operator*=(const Base::TPoint3< double > &tpPoint)
An operator that multiplies the x,y,z values of center.
virtual const CResult Set(int32_t x0, int32_t y0, int32_t z0, int32_t x1, int32_t y1, int32_t z1)
Parameter setting function.
const CFLLine3< T > & operator+=(const Base::TPoint3< float > &tpPoint)
Offset operator.
CFLLine3< T > operator/(const Base::TPoint3< float > &tpPoint) const
An operator that divides the x,y and z values of center by a parameter.
virtual const CResult Set(const CFLLine3< float > *pRhs)
Parameter setting function.
virtual const CResult GetPositionOnLine(double f64X, double f64Y, double f64Z, double &f64T) const
CFLLine3(const Base::TLine3< float > &rhs)
copy constructor
virtual const CResult Set(int64_t x0, int64_t y0, int64_t z0, int64_t x1, int64_t y1, int64_t z1)
Parameter setting function.
virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLFigureArray &flfaResult) const override
Get point information moving by the set length.
const CFLLine3< T > & operator+=(const Base::TPoint3< double > &tpPoint)
Offset operator.
virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLFigureArray *pFlfaResult) const override
Get point information moving by the set length.
virtual CFLPoint3< T > GetUnitVector() const
Function to get the unit vector of a straight line.
CFLLine3(const CFLPointArray3< double > &flpa3)
Initializer.
CFLLine3(const CFLPointArray3< double > *pFlpa3)
Initializer.
bool operator==(const CFLLine3< float > &flsp) const
Comparison operator.
virtual const CResult Set(const Base::TLine3< double > *pRhs)
Parameter setting function.
virtual const CResult Set(const CFLLine3< double > *pRhs)
Parameter setting function.
CFLLine3(const Base::TPoint3< double > &tp0, const Base::TPoint3< double > &tp1)
Initializer.
CFLLine3< T > operator/(const CFLPoint3< float > &flpPoint) const
An operator that divides the x,y and z values of center by a parameter.
CFLLine3< T > operator*(const Base::TPoint3< double > &tpPoint) const
An operator that multiplies the x,y and z values of center by a parameter.
CFLLine3< T > operator+(const double &value) const
Offset operator.
virtual const CResult Transform(const CMatrix< double > *pMatTransform) override
Transforms the object.
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 line with the shape most similar to the points.
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 line with the shape most similar to the points.
CFLLine3(const CFLPoint3< float > &flp0, const CFLPoint3< float > &flp1)
Initializer.
A class representing a 3D point.
Definition FLPoint3.h:40
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