FLImaging 7.8.25.3
FLPolyline3.h
1#pragma once
2
8
9#include "FLPointArray3.h"
10
12namespace FLImaging
13{
15 namespace Foundation
16 {
22 template<typename T>
23 class FL_EXPORT CFLPolyline3 : public CFLPointArray3<T>
24 {
25 public:
31
36 virtual ~CFLPolyline3();
37
48
59
70
81
94
107
121 virtual const CResult Set(const CFLPolyline3<float>& rhs) sealed;
122
136 virtual const CResult Set(const CFLPolyline3<double>& rhs) sealed;
137
151 virtual const CResult Set(const CFLPolyline3<float>* pRhs) sealed;
152
166 virtual const CResult Set(const CFLPolyline3<double>* pRhs) sealed;
167
168 virtual const CResult Set(const CFLFigure& flf) override;
169 virtual const CResult Set(const CFLFigure* pFlf) override;
170
171 virtual void Clear() override;
172
173 virtual EFigureDeclType GetDeclType() const override;
174 virtual EFigureTemplateType GetTemplateType() const override;
175
177 virtual bool IsSpecEqual(const CFLFigure* pFlfRhs, EFigureSpecCompareType eSpecType = EFigureSpecCompareType_Coordinates) const override;
178
179 using CFLFigure::Swap;
180 virtual const CResult Swap(CFLFigure* pFlfRight) override;
181
182 virtual double GetLength() const override;
183
184 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLFigureArray& flfaResult) const override;
185 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLFigureArray* pFlfaResult) const override;
186
204 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLPointArray3<T>& flpaResult) const sealed;
205
223 virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLPointArray3<T>* pFlpaResult) const sealed;
224
236 bool operator==(const CFLPolyline3<float>& flpl) const;
237
249 bool operator==(const CFLPolyline3<double>& flpl) const;
250
262 bool operator!=(const CFLPolyline3<float>& flpl) const;
263
275 bool operator!=(const CFLPolyline3<double>& flpl) const;
276
289
302
314 const CFLPolyline3<T>& operator+=(const double& value);
315
330
345
360
375
387 const CFLPolyline3<T>& operator-=(const double& value);
388
403
418
433
448
460 const CFLPolyline3<T>& operator*=(const double& value);
461
476
491
506
521
533 const CFLPolyline3<T>& operator/=(const double& value);
534
549
564
579
594
606 CFLPolyline3<T> operator+(const double& value) const;
607
622
637
652
667
679 CFLPolyline3<T> operator-(const double& value) const;
680
695
710
725
740
752 CFLPolyline3<T> operator*(const double& value) const;
753
768
783
798
813
825 CFLPolyline3<T> operator/(const double& value) const;
826
841
856
871
886
897
911 friend CFLPolyline3<T> operator+(const double& value, const CFLPolyline3<T>& flpl)
912 {
913 CFLPolyline3<T> t(flpl);
914 t += value;
915 return t;
916 }
917
931 friend CFLPolyline3<T> operator-(const double& value, const CFLPolyline3<T>& flpl)
932 {
933 CFLPolyline3<T> t(flpl);
934 t *= -1.;
935 t += value;
936 return t;
937 }
938
952 friend CFLPolyline3<T> operator*(const double& value, const CFLPolyline3<T>& flpl)
953 {
954 CFLPolyline3<T> t(flpl);
955 t *= value;
956 return t;
957 }
958
959
960 private:
962
963 SupportToDuplicateObject(CFLPolyline3<T>, *this);
964 DeclareGetClassType();
965 };
966
967 typedef CFLPolyline3<float> CFLPolyline3F;
968 typedef CFLPolyline3<double> CFLPolyline3D;
969 }
970}
Simplified class representing a 3-D point.
Definition TPoint3.h:37
FLImaging module execution result object.
Definition ResultsDef.h:1704
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 a 3D point.
Definition FLPoint3.h:40
A class representing a polyline 3d.
Definition FLPolyline3.h:24
CFLPolyline3< T > operator+(const Base::TPoint3< double > &tpPoint) const
Offset operator.
const CFLPolyline3< T > & operator*=(const Base::TPoint3< float > &tpPoint)
An operator that multiplies the x,y,z values of center.
virtual bool IsSpecEqual(const CFLFigure *pFlfRhs, EFigureSpecCompareType eSpecType=EFigureSpecCompareType_Coordinates) const override
CFLPolyline3< T > operator/(const double &value) const
An operator that divides the x,y and z values of center by a parameter.
CFLPolyline3< T > operator+(const CFLPoint3< double > &flpPoint) const
Offset operator.
friend CFLPolyline3< T > operator-(const double &value, const CFLPolyline3< T > &flpl)
Offset operator.
Definition FLPolyline3.h:931
CFLPolyline3< T > operator*(const Base::TPoint3< float > &tpPoint) const
An operator that multiplies the x,y and z values of center by a parameter.
const CFLPolyline3< T > & operator/=(const CFLPoint3< float > &flpPoint)
An operator that divides the x,y,z values of center.
bool operator!=(const CFLPolyline3< float > &flpl) const
Comparison operator.
const CFLPolyline3< T > & operator*=(const Base::TPoint3< double > &tpPoint)
An operator that multiplies the x,y,z values of center.
const CFLPolyline3< T > & operator+=(const Base::TPoint3< double > &tpPoint)
Offset operator.
CFLPolyline3< T > operator*(const CFLPoint3< float > &flpPoint) const
An operator that multiplies the x,y and z values of center by a parameter.
const CFLPolyline3< T > & operator+=(const double &value)
Offset operator.
virtual const CResult Set(const CFLPolyline3< float > *pRhs) sealed
Parameter setting function.
CFLPolyline3< T > operator*(const double &value) const
An operator that multiplies the x,y and z values of center by a parameter.
CFLPolyline3< T > operator*(const Base::TPoint3< double > &tpPoint) const
An operator that multiplies the x,y and z values of center by a parameter.
CFLPolyline3< T > operator+(const Base::TPoint3< float > &tpPoint) const
Offset operator.
const CFLPolyline3< T > & operator*=(const double &value)
An operator that multiplies the x,y,z values of center.
CFLPolyline3< T > operator+(const double &value) const
Offset operator.
const CFLPolyline3< T > & operator*=(const CFLPoint3< double > &flpPoint)
An operator that multiplies the x,y,z values of center.
CFLPolyline3(const CFLPolyline3< double > &rhs)
copy constructor
virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLPointArray3< T > &flpaResult) const sealed
Get point information moving by the set length.
CFLPolyline3(const CFLPolyline3< float > *pRhs)
copy constructor
bool operator!=(const CFLPolyline3< double > &flpl) const
Comparison operator.
const CFLPolyline3< T > & operator/=(const CFLPoint3< double > &flpPoint)
An operator that divides the x,y,z values of center.
const CFLPolyline3< T > & operator=(const CFLPolyline3< double > &rhs)
Assignment operator.
CFLPolyline3< T > operator-(const double &value) const
Offset operator.
virtual EFigureTemplateType GetTemplateType() const override
const CFLPolyline3< T > & operator-=(const double &value)
Offset operator.
virtual double GetLength() const override
const CFLPolyline3< T > & operator+=(const Base::TPoint3< float > &tpPoint)
Offset operator.
virtual const CResult Set(const CFLPolyline3< float > &rhs) sealed
Parameter setting function.
friend CFLPolyline3< T > operator+(const double &value, const CFLPolyline3< T > &flpl)
Offset operator.
Definition FLPolyline3.h:911
const CFLPolyline3< T > & operator+=(const CFLPoint3< float > &flpPoint)
Offset operator.
CFLPolyline3< T > operator-() const
An operator that returns a point with the signs of x, y and z values inverted.
const CFLPolyline3< T > & operator-=(const Base::TPoint3< float > &tpPoint)
Offset operator.
friend CFLPolyline3< T > operator*(const double &value, const CFLPolyline3< T > &flpl)
An operator that multiplies the x, y, and z values of center.
Definition FLPolyline3.h:952
virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLFigureArray &flfaResult) const override
Get point information moving by the set length.
virtual const CResult Set(const CFLPolyline3< double > *pRhs) sealed
Parameter setting function.
CFLPolyline3< T > operator/(const CFLPoint3< double > &flpPoint) const
An operator that divides the x,y and z values of center by a parameter.
const CFLPolyline3< T > & operator=(const CFLPolyline3< float > &rhs)
Assignment operator.
virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLFigureArray *pFlfaResult) const override
Get point information moving by the set length.
const CFLPolyline3< T > & operator/=(const Base::TPoint3< float > &tpPoint)
An operator that divides the x,y,z values of center.
const CFLPolyline3< T > & operator-=(const Base::TPoint3< double > &tpPoint)
Offset operator.
const CFLPolyline3< T > & operator+=(const CFLPoint3< double > &flpPoint)
Offset operator.
CFLPolyline3< T > operator+(const CFLPoint3< float > &flpPoint) const
Offset operator.
CFLPolyline3(const CFLFigure &flf)
Initializer.
virtual const CResult Set(const CFLFigure &flf) override
bool operator==(const CFLPolyline3< double > &flpl) const
Comparison operator.
CFLPolyline3< T > operator-(const Base::TPoint3< float > &tpPoint) const
Offset operator.
CFLPolyline3< T > operator/(const CFLPoint3< float > &flpPoint) const
An operator that divides the x,y and z values of center by a parameter.
const CFLPolyline3< T > & operator-=(const CFLPoint3< float > &flpPoint)
Offset operator.
CFLPolyline3< T > operator-(const CFLPoint3< double > &flpPoint) const
Offset operator.
virtual const CResult Set(const CFLFigure *pFlf) override
CFLPolyline3< T > operator-(const Base::TPoint3< double > &tpPoint) const
Offset operator.
const CFLPolyline3< T > & operator/=(const Base::TPoint3< double > &tpPoint)
An operator that divides the x,y,z values of center.
const CFLPolyline3< T > & operator*=(const CFLPoint3< float > &flpPoint)
An operator that multiplies the x,y,z values of center.
virtual EFigureDeclType GetDeclType() const override
virtual const CResult Swap(CFLFigure *pFlfRight) override
const CFLPolyline3< T > & operator/=(const double &value)
An operator that divides the x,y,z values of center.
CFLPolyline3< T > operator-(const CFLPoint3< float > &flpPoint) const
Offset operator.
CFLPolyline3< T > operator*(const CFLPoint3< double > &flpPoint) const
An operator that multiplies the x,y and z values of center by a parameter.
CFLPolyline3(const CFLFigure *pFlf)
Initializer.
CFLPolyline3< T > operator/(const Base::TPoint3< float > &tpPoint) const
An operator that divides the x,y and z values of center by a parameter.
CFLPolyline3(const CFLPolyline3< double > *pRhs)
copy constructor
CFLPolyline3(const CFLPolyline3< float > &rhs)
copy constructor
bool operator==(const CFLPolyline3< float > &flpl) const
Comparison operator.
virtual const CResult Set(const CFLPolyline3< double > &rhs) sealed
Parameter setting function.
CFLPolyline3< T > operator/(const Base::TPoint3< double > &tpPoint) const
An operator that divides the x,y and z values of center by a parameter.
virtual const CResult GetSamplingPointsOnSegment(double f64SamplingDistance, CFLPointArray3< T > *pFlpaResult) const sealed
Get point information moving by the set length.
virtual void Clear() override
Clear an object's variable.
const CFLPolyline3< T > & operator-=(const CFLPoint3< double > &flpPoint)
Offset operator.
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