FLImaging 7.10.21.1
FLImagingFoundation/FLCylinder3.h
1#pragma once
2
8
9#include "FLFigure3.h"
10#include "FLCircle3.h"
11
13namespace FLImaging
14{
16 namespace Foundation
17 {
23 template<typename T>
24 class FL_EXPORT CFLCylinder3 : public CFLFigure3
25 {
26 public:
32
38
44
49 virtual ~CFLCylinder3();
50
52
66
68
80 CFLCylinder3(const CFLFigure* pFlf);
82
84
97 CFLCylinder3(const CFLCircle3<float>& flcBase, double f64Height);
98 CFLCylinder3(const CFLCircle3<float>* pFlcBase, double f64Height);
99 CFLCylinder3(const CFLCircle3<double>& flcBase, double f64Height);
100 CFLCylinder3(const CFLCircle3<double>* pFlcBase, double f64Height);
102
104
117 virtual const CResult Set(const CFLCylinder3<float>& flcy);
118 virtual const CResult Set(const CFLCylinder3<float>* pFlcy);
119 virtual const CResult Set(const CFLCylinder3<double>& flcy);
120 virtual const CResult Set(const CFLCylinder3<double>* pFlcy);
122
123 virtual const CResult Set(const CFLFigure& flf) override;
124 virtual const CResult Set(const CFLFigure* pFlf) override;
125
127
144 virtual const CResult Set(const CFLCircle3<float>& flcBase, double f64Height);
145 virtual const CResult Set(const CFLCircle3<float>* pFlcBase, double f64Height);
146 virtual const CResult Set(const CFLCircle3<double>& flcBase, double f64Height);
147 virtual const CResult Set(const CFLCircle3<double>* pFlcBase, double f64Height);
149
161 virtual const CFLPoint3<T> GetTopCenter() const;
162
174 virtual const CFLPoint3<T> GetBottomCenter() const;
175
177
190 virtual bool Contains(const Base::TPoint3<float>& tp3) const;
191 virtual bool Contains(const Base::TPoint3<float>* pTp3) const;
192 virtual bool Contains(const Base::TPoint3<double>& tp3) const;
193 virtual bool Contains(const Base::TPoint3<double>* pTp3) const;
195
197
210 virtual bool Contains(const CFLPoint3<float>& flp3) const;
211 virtual bool Contains(const CFLPoint3<float>* pFlp3) const;
212 virtual bool Contains(const CFLPoint3<double>& flp3) const;
213 virtual bool Contains(const CFLPoint3<double>* pFlp3) const;
215
217
238 virtual const CResult Contains(const Base::CFLArray<Base::TPoint3<float>>& flaVertices, Base::CFLArray<int32_t>& flaResult, bool bClearResult = true) const;
239 virtual const CResult Contains(const Base::CFLArray<Base::TPoint3<double>>& flaVertices, Base::CFLArray<int32_t>& flaResult, bool bClearResult = true) const;
240 virtual const CResult Contains(const Base::CFLArray<Base::TPoint3<float>>* pFlaVertices, Base::CFLArray<int32_t>& flaResult, bool bClearResult = true) const;
241 virtual const CResult Contains(const Base::CFLArray<Base::TPoint3<double>>* pFlaVertices, Base::CFLArray<int32_t>& flaResult, bool bClearResult = true) const;
243
245
268 virtual const CResult Contains(const Base::CFLArray<Base::TPoint3<float>>& flaVertices, const Base::CFLArray<int32_t>& flaTargetIndex, Base::CFLArray<int32_t>& flaResult, bool bClearResult = true) const;
269 virtual const CResult Contains(const Base::CFLArray<Base::TPoint3<float>>* pFlaVertices, const Base::CFLArray<int32_t>& flaTargetIndex, Base::CFLArray<int32_t>& flaResult, bool bClearResult = true) const;
270 virtual const CResult Contains(const Base::CFLArray<Base::TPoint3<double>>& flaVertices, const Base::CFLArray<int32_t>& flaTargetIndex, Base::CFLArray<int32_t>& flaResult, bool bClearResult = true) const;
271 virtual const CResult Contains(const Base::CFLArray<Base::TPoint3<double>>* pFlaVertices, const Base::CFLArray<int32_t>& flaTargetIndex, Base::CFLArray<int32_t>& flaResult, bool bClearResult = true) const;
273
275
290 virtual bool IsCollision(const Base::TPoint3<float>& tp3Begin, const Base::TPoint3<float>& tp3End) const;
291 virtual bool IsCollision(const Base::TPoint3<float>* pTp3Begin, const Base::TPoint3<float>* pTp3End) const;
292 virtual bool IsCollision(const Base::TPoint3<double>& tp3Begin, const Base::TPoint3<double>& tp3End) const;
293 virtual bool IsCollision(const Base::TPoint3<double>* pTp3Begin, const Base::TPoint3<double>* pTp3End) const;
295
297
312 virtual bool IsCollision(const Foundation::CFLPoint3<float>& flp3Begin, const Foundation::CFLPoint3<float>& flp3End) const;
313 virtual bool IsCollision(const Foundation::CFLPoint3<float>* pFlp3Begin, const Foundation::CFLPoint3<float>* pFlp3End) const;
314 virtual bool IsCollision(const Foundation::CFLPoint3<double>& flp3Begin, const Foundation::CFLPoint3<double>& flp3End) const;
315 virtual bool IsCollision(const Foundation::CFLPoint3<double>* pFlp3Begin, const Foundation::CFLPoint3<double>* pFlp3End) const;
317
318 virtual void Clear() override;
319
320 virtual EFigureDeclType GetDeclType() const override;
321 virtual EFigureTemplateType GetTemplateType() const override;
322
324 virtual bool IsSpecEqual(const CFLFigure* pFlfRhs, EFigureSpecCompareType eSpecType = EFigureSpecCompareType_Coordinates) const override;
325
326 using CFLFigure::Swap;
327 virtual const CResult Swap(CFLFigure* pFlfRight) override;
328
329 virtual double GetArea() const override;
330 virtual double GetVolume() const override;
331 virtual double GetHeight() const override;
332
333 using CFLFigure3::Offset;
334 virtual const CResult Offset(double x, double y, double z) override;
335
337 virtual const CResult Multiply(double x, double y, double z) override;
338
340 virtual const CResult GetCenterOfGravity(double& x, double& y, double& z) const override;
341
343 virtual const CResult GetCenterOfVertices(double& x, double& y, double& z) const override;
344
346
360
372 const CFLCylinder3<T>& operator+=(const double& value);
373
375
391
393
409
421 const CFLCylinder3<T>& operator-=(const double& value);
422
424
440
442
458
470 const CFLCylinder3<T>& operator*=(const double& value);
471
473
489
491
507
519 const CFLCylinder3<T>& operator/=(const double& value);
520
522
538
540
556
568 CFLCylinder3<T> operator+(const double& value) const;
569
571
587
589
605
617 CFLCylinder3<T> operator-(const double& value) const;
618
620
636
638
654
666 CFLCylinder3<T> operator*(const double& value) const;
667
669
685
687
703
715 CFLCylinder3<T> operator/(const double& value) const;
716
718
734
736
752
763
777 friend CFLCylinder3<T> operator+(const double& value, const CFLCylinder3<T>& flcy)
778 {
779 CFLCylinder3<T> t(flcy);
780 t += value;
781 return t;
782 }
783
797 friend CFLCylinder3<T> operator-(const double& value, const CFLCylinder3<T>& flcy)
798 {
799 CFLCylinder3<T> t(flcy);
800 t *= -1.;
801 t += value;
802 return t;
803 }
804
818 friend CFLCylinder3<T> operator*(const double& value, const CFLCylinder3<T>& flcy)
819 {
820 CFLCylinder3<T> t(flcy);
821 t *= value;
822 return t;
823 }
824
838 friend CFLCylinder3<T> operator/(const double& value, const CFLCylinder3<T>& flcy)
839 {
840 CFLCylinder3<T> flcyResult(flcy);
841 flcyResult.flcBase.flpCenter = value / flcy.flcBase.flpCenter;
842 return flcyResult;
843 }
844
845 using CFLFigure3::Rotate;
846 virtual const CResult Rotate(const CFLGeometry3DQuaternion<float>* pQuat, const CFLPoint3<float>* pFlp3Pivot = nullptr) override;
847 virtual const CResult Rotate(const CFLGeometry3DQuaternion<double>* pQuat, const CFLPoint3<double>* pFlp3Pivot = nullptr) override;
848
849 using CFLFigure3::Scale;
850 virtual const CResult Scale(double f64PivotX, double f64PivotY, double f64PivotZ, double f64ScaleX, double f64ScaleY, double f64ScaleZ) override;
851
853 virtual const CResult Transform(const CMatrix<float>* pMatTransform) override;
854 virtual const CResult Transform(const CMatrix<double>* pMatTransform) override;
855
857 virtual const CResult GetBoundingBox(double& f64MinX, double& f64MinY, double& f64MinZ, double& f64MaxX, double& f64MaxY, double& f64MaxZ) const override;
858 virtual const CResult GetBoundingBox(float& f32MinX, float& f32MinY, float& f32MinZ, float& f32MaxX, float& f32MaxY, float& f32MaxZ) const override;
859
860
861 SupportToDuplicateObject(CFLCylinder3<T>, *this);
862 DeclareGetClassType();
863 };
864
865 typedef CFLCylinder3<float> CFLCylinder3F;
866 typedef CFLCylinder3<double> CFLCylinder3D;
867 }
868}
Template type array class.
Definition FLArray.h:71
Simplified class representing a 3-D point.
Definition FLImagingBase/TPoint3.h:37
FLImaging module execution result object.
Definition FLImagingBase/ResultsDef.h:1712
Represents a circle in 3D space.
Definition FLImagingFoundation/FLCircle3.h:26
A class representing a cylinder with circular cross-sections.
Definition FLImagingFoundation/FLCylinder3.h:25
virtual bool IsCollision(const Foundation::CFLPoint3< float > *pFlp3Begin, const Foundation::CFLPoint3< float > *pFlp3End) const
Check if a 3D line object collides with this object.
virtual bool IsCollision(const Base::TPoint3< double > *pTp3Begin, const Base::TPoint3< double > *pTp3End) const
Check if a 3D line object collides with this object.
const CFLCylinder3< T > & operator+=(const CFLPoint3< float > &flpPoint)
Offset operator.
const CFLCylinder3< T > & operator/=(const double &value)
An operator that divides the x,y,z values of each vertex of a triangle by a parameter.
virtual const CResult Rotate(const CFLGeometry3DQuaternion< float > *pQuat, const CFLPoint3< float > *pFlp3Pivot=nullptr) override
Rotate the object using quaternions. If the pivot point is nullptr, the object's AABB (Axis-Aligned B...
const CFLCylinder3< T > & operator+=(const double &value)
Offset operator.
virtual bool Contains(const CFLPoint3< float > &flp3) const
Returns whether the vertex is inside this object.
const CFLCylinder3< T > & operator*=(const CFLPoint3< double > &flpPoint)
An operator that multiplies the x,y,z values of each vertex of a triangle by a parameter.
CFLCircle3< float > flcBase
Definition FLImagingFoundation/FLCylinder3.h:31
virtual const CResult Contains(const Base::CFLArray< Base::TPoint3< float > > *pFlaVertices, Base::CFLArray< int32_t > &flaResult, bool bClearResult=true) const
Returns an array of indices of vertices located inside this cylinder.
virtual const CResult Set(const CFLFigure &flf) override
virtual const CResult Contains(const Base::CFLArray< Base::TPoint3< float > > *pFlaVertices, const Base::CFLArray< int32_t > &flaTargetIndex, Base::CFLArray< int32_t > &flaResult, bool bClearResult=true) const
Returns an array of indices of vertices located inside this cylinder.
CFLCylinder3< T > operator+(const Base::TPoint3< double > &tpPoint) const
Offset operator.
CFLCylinder3(const CFLCylinder3< double > &rhs)
copy constructor
virtual const CResult Contains(const Base::CFLArray< Base::TPoint3< float > > &flaVertices, const Base::CFLArray< int32_t > &flaTargetIndex, Base::CFLArray< int32_t > &flaResult, bool bClearResult=true) const
Returns an array of indices of vertices located inside this cylinder.
CFLCylinder3< T > operator*(const Base::TPoint3< float > &tpPoint) const
An operator that multiplies the x,y and z values of each vertex by a parameter.
virtual bool Contains(const Base::TPoint3< float > &tp3) const
Returns whether the vertex is inside this object.
virtual bool IsCollision(const Foundation::CFLPoint3< double > &flp3Begin, const Foundation::CFLPoint3< double > &flp3End) const
Check if a 3D line object collides with this object.
CFLCylinder3< T > operator-(const CFLPoint3< double > &flpPoint) const
Offset operator.
virtual EFigureDeclType GetDeclType() const override
CFLCylinder3(const CFLCircle3< double > &flcBase, double f64Height)
Initializer.
const CFLCylinder3< T > & operator-=(const Base::TPoint3< double > &tpPoint)
Offset operator.
friend CFLCylinder3< T > operator-(const double &value, const CFLCylinder3< T > &flcy)
Offset operator.
Definition FLImagingFoundation/FLCylinder3.h:797
CFLCylinder3< T > operator*(const Base::TPoint3< double > &tpPoint) const
An operator that multiplies the x,y and z values of each vertex by a parameter.
virtual bool IsCollision(const Base::TPoint3< float > &tp3Begin, const Base::TPoint3< float > &tp3End) const
Check if a 3D line object collides with this object.
CFLCylinder3< T > operator+(const Base::TPoint3< float > &tpPoint) const
Offset operator.
const CFLCylinder3< T > & operator=(const CFLCylinder3< double > &rhs)
Assignment operator.
CFLCylinder3(const CFLCylinder3< float > *pRhs)
copy constructor
CFLCylinder3< T > operator*(const double &value) const
An operator that multiplies the x,y and z values of each vertex by a parameter.
virtual const CResult Set(const CFLCircle3< double > &flcBase, double f64Height)
Parameter setting function.
const CFLCylinder3< T > & operator=(const CFLCylinder3< float > &rhs)
Assignment operator.
CFLCylinder3< T > operator/(const Base::TPoint3< double > &tpPoint) const
An operator that divides the x,y and z values of each vertex by a parameter.
CFLCylinder3< T > operator-(const Base::TPoint3< double > &tpPoint) const
Offset operator.
CFLCylinder3(const CFLFigure *pFlf)
Initializer.
const CFLCylinder3< T > & operator*=(const CFLPoint3< float > &flpPoint)
An operator that multiplies the x,y,z values of each vertex of a triangle by a parameter.
const CFLCylinder3< T > & operator/=(const Base::TPoint3< float > &tpPoint)
An operator that divides the x,y,z values of each vertex of a triangle by a parameter.
CFLCylinder3< T > operator/(const double &value) const
An operator that divides the x,y and z values of each vertex by a parameter.
CFLCylinder3< T > operator-(const CFLPoint3< float > &flpPoint) const
Offset operator.
virtual const CResult GetCenterOfVertices(double &x, double &y, double &z) const override
const CFLCylinder3< T > & operator+=(const Base::TPoint3< double > &tpPoint)
Offset operator.
CFLCylinder3< T > operator+(const double &value) const
Offset operator.
virtual bool Contains(const Base::TPoint3< double > &tp3) const
Returns whether the vertex is inside this object.
const CFLCylinder3< T > & operator-=(const CFLPoint3< double > &flpPoint)
Offset operator.
CFLCylinder3(const CFLCylinder3< double > *pRhs)
copy constructor
const CFLCylinder3< T > & operator+=(const Base::TPoint3< float > &tpPoint)
Offset operator.
virtual const CFLPoint3< T > GetBottomCenter() const
Get the bottom center point (base center) of the cylinder.
CFLCylinder3(const CFLCircle3< double > *pFlcBase, double f64Height)
Initializer.
virtual const CResult Contains(const Base::CFLArray< Base::TPoint3< double > > &flaVertices, const Base::CFLArray< int32_t > &flaTargetIndex, Base::CFLArray< int32_t > &flaResult, bool bClearResult=true) const
Returns an array of indices of vertices located inside this cylinder.
const CFLCylinder3< T > & operator*=(const Base::TPoint3< float > &tpPoint)
An operator that multiplies the x,y,z values of each vertex of a triangle by a parameter.
virtual const CResult Set(const CFLCylinder3< float > *pFlcy)
Parameter setting function.
friend CFLCylinder3< T > operator/(const double &value, const CFLCylinder3< T > &flcy)
An operator that divides the x, y, z values of each vertex into parameters.
Definition FLImagingFoundation/FLCylinder3.h:838
CFLCylinder3< T > operator*(const CFLPoint3< double > &flpPoint) const
An operator that multiplies the x,y and z values of each vertex by a parameter.
virtual const CResult Set(const CFLCircle3< double > *pFlcBase, double f64Height)
Parameter setting function.
virtual const CResult Contains(const Base::CFLArray< Base::TPoint3< float > > &flaVertices, Base::CFLArray< int32_t > &flaResult, bool bClearResult=true) const
Returns an array of indices of vertices located inside this cylinder.
virtual const CFLPoint3< T > GetTopCenter() const
Get the top center point of the cylinder.
virtual const CResult Contains(const Base::CFLArray< Base::TPoint3< double > > &flaVertices, Base::CFLArray< int32_t > &flaResult, bool bClearResult=true) const
Returns an array of indices of vertices located inside this cylinder.
virtual bool IsCollision(const Base::TPoint3< double > &tp3Begin, const Base::TPoint3< double > &tp3End) const
Check if a 3D line object collides with this object.
CFLCylinder3< T > operator-(const Base::TPoint3< float > &tpPoint) const
Offset operator.
CFLCylinder3< T > operator/(const Base::TPoint3< float > &tpPoint) const
An operator that divides the x,y and z values of each vertex by a parameter.
virtual bool Contains(const Base::TPoint3< double > *pTp3) const
Returns whether the vertex is inside this object.
virtual const CResult Set(const CFLCircle3< float > &flcBase, double f64Height)
Parameter setting function.
const CFLCylinder3< T > & operator-=(const Base::TPoint3< float > &tpPoint)
Offset operator.
virtual const CResult Set(const CFLFigure *pFlf) override
virtual const CResult Swap(CFLFigure *pFlfRight) override
virtual bool Contains(const CFLPoint3< float > *pFlp3) const
Returns whether the vertex is inside this object.
virtual const CResult Offset(double x, double y, double z) override
virtual void Clear() override
Clears all internal variables and resets all 3D vertex coordinates to 0.
virtual bool IsCollision(const Foundation::CFLPoint3< double > *pFlp3Begin, const Foundation::CFLPoint3< double > *pFlp3End) const
Check if a 3D line object collides with this object.
float tHeight
Definition FLImagingFoundation/FLCylinder3.h:37
const CFLCylinder3< T > & operator*=(const double &value)
An operator that multiplies the x,y,z values of each vertex of a triangle by a parameter.
friend CFLCylinder3< T > operator+(const double &value, const CFLCylinder3< T > &flcy)
Offset operator.
Definition FLImagingFoundation/FLCylinder3.h:777
virtual const CResult Set(const CFLCylinder3< double > &flcy)
Parameter setting function.
CFLCylinder3< T > operator+(const CFLPoint3< float > &flpPoint) const
Offset operator.
const CFLCylinder3< T > & operator*=(const Base::TPoint3< double > &tpPoint)
An operator that multiplies the x,y,z values of each vertex of a triangle by a parameter.
virtual const CResult Multiply(double x, double y, double z) override
virtual const CResult Contains(const Base::CFLArray< Base::TPoint3< double > > *pFlaVertices, const Base::CFLArray< int32_t > &flaTargetIndex, Base::CFLArray< int32_t > &flaResult, bool bClearResult=true) const
Returns an array of indices of vertices located inside this cylinder.
const CFLCylinder3< T > & operator/=(const Base::TPoint3< double > &tpPoint)
An operator that divides the x,y,z values of each vertex of a triangle by a parameter.
virtual bool IsSpecEqual(const CFLFigure *pFlfRhs, EFigureSpecCompareType eSpecType=EFigureSpecCompareType_Coordinates) const override
virtual const CResult GetCenterOfGravity(double &x, double &y, double &z) const override
Get the center of gravity of the 3D object.
virtual bool IsCollision(const Base::TPoint3< float > *pTp3Begin, const Base::TPoint3< float > *pTp3End) const
Check if a 3D line object collides with this object.
CFLCylinder3< T > operator*(const CFLPoint3< float > &flpPoint) const
An operator that multiplies the x,y and z values of each vertex by a parameter.
CFLCylinder3< T > operator/(const CFLPoint3< float > &flpPoint) const
An operator that divides the x,y and z values of each vertex by a parameter.
CFLCylinder3(const CFLCylinder3< float > &rhs)
copy constructor
CFLCylinder3< T > operator/(const CFLPoint3< double > &flpPoint) const
An operator that divides the x,y and z values of each vertex by a parameter.
const CFLCylinder3< T > & operator+=(const CFLPoint3< double > &flpPoint)
Offset operator.
virtual const CResult Set(const CFLCylinder3< double > *pFlcy)
Parameter setting function.
virtual double GetArea() const override
virtual const CResult Transform(const CMatrix< float > *pMatTransform) override
Transforms the object using a transformation matrix (4x4 or 3x3).
friend CFLCylinder3< T > operator*(const double &value, const CFLCylinder3< T > &flcy)
An operator that multiplies the x, y, and z values of each vertex of a triangle by a parameter.
Definition FLImagingFoundation/FLCylinder3.h:818
virtual const CResult Set(const CFLCircle3< float > *pFlcBase, double f64Height)
Parameter setting function.
const CFLCylinder3< T > & operator/=(const CFLPoint3< double > &flpPoint)
An operator that divides the x,y,z values of each vertex of a triangle by a parameter.
virtual const CResult Rotate(const CFLGeometry3DQuaternion< double > *pQuat, const CFLPoint3< double > *pFlp3Pivot=nullptr) override
Rotate the object using quaternions. If the pivot point is nullptr, the object's AABB (Axis-Aligned B...
virtual bool IsCollision(const Foundation::CFLPoint3< float > &flp3Begin, const Foundation::CFLPoint3< float > &flp3End) const
Check if a 3D line object collides with this object.
CFLCylinder3(const CFLCircle3< float > &flcBase, double f64Height)
Initializer.
virtual bool Contains(const CFLPoint3< double > *pFlp3) const
Returns whether the vertex is inside this object.
virtual bool Contains(const Base::TPoint3< float > *pTp3) const
Returns whether the vertex is inside this object.
virtual const CResult Scale(double f64PivotX, double f64PivotY, double f64PivotZ, double f64ScaleX, double f64ScaleY, double f64ScaleZ) override
Scale the object with a specified pivot point.
virtual double GetHeight() const override
const CFLCylinder3< T > & operator/=(const CFLPoint3< float > &flpPoint)
An operator that divides the x,y,z values of each vertex of a triangle by a parameter.
CFLCylinder3(const CFLCircle3< float > *pFlcBase, double f64Height)
Initializer.
const CFLCylinder3< T > & operator-=(const double &value)
Offset operator.
virtual const CResult GetBoundingBox(float &f32MinX, float &f32MinY, float &f32MinZ, float &f32MaxX, float &f32MaxY, float &f32MaxZ) const override
Returns the bounding box (AABB).
const CFLCylinder3< T > & operator-=(const CFLPoint3< float > &flpPoint)
Offset operator.
virtual double GetVolume() const override
virtual const CResult Contains(const Base::CFLArray< Base::TPoint3< double > > *pFlaVertices, Base::CFLArray< int32_t > &flaResult, bool bClearResult=true) const
Returns an array of indices of vertices located inside this cylinder.
virtual const CResult Set(const CFLCylinder3< float > &flcy)
Parameter setting function.
CFLCylinder3< T > operator-() const
An operator that returns a point with the signs of x, y and z values inverted.
CFLCylinder3(const CFLFigure &flf)
Initializer.
virtual const CResult GetBoundingBox(double &f64MinX, double &f64MinY, double &f64MinZ, double &f64MaxX, double &f64MaxY, double &f64MaxZ) const override
Returns the bounding box (AABB).
CFLCylinder3< T > operator+(const CFLPoint3< double > &flpPoint) const
Offset operator.
virtual EFigureTemplateType GetTemplateType() const override
virtual const CResult Transform(const CMatrix< double > *pMatTransform) override
Transforms the object using a transformation matrix (4x4 or 3x3).
virtual bool Contains(const CFLPoint3< double > &flp3) const
Returns whether the vertex is inside this object.
CFLCylinder3< T > operator-(const double &value) const
Offset operator.
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)
Apply a scale transformation to the object based on its AABB (Axis-Aligned Bounding Box) center.
virtual const CResult GetCenterOfGravity(double &x, double &y) const override
virtual const CResult Rotate(const CFLGeometry3DQuaternion< float > &quat, const CFLPoint3< float > &flp3Pivot)
Rotate the object using quaternions with a specified pivot point.
A base class of classes representing figures.
Definition FLImagingFoundation/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 FLImagingFoundation/FLGeometry3DQuaternion.h:30
A class representing a 3D point.
Definition FLImagingFoundation/FLPoint3.h:40
A class representing matrix.
Definition FLImagingFoundation/Matrix.h:79
Definition FLImagingFoundation/AlgorithmBase.h:16
EFigureDeclType
Declare type of figure.
Definition FLImagingFoundation/DefinitionsFigure.h:33
EFigureTemplateType
Template type of figure.
Definition FLImagingFoundation/DefinitionsFigure.h:434
EFigureSpecCompareType
Definition FLImagingFoundation/DefinitionsFigure.h:3590
@ EFigureSpecCompareType_Coordinates
Definition FLImagingFoundation/DefinitionsFigure.h:3595