FLImaging 7.8.25.3
FLFrustum3.h
1#pragma once
2
8
9#include "FLFigure3.h"
10#include "FLQuad3.h"
11#include "FLGeometry3DVector.h"
12
14namespace FLImaging
15{
17 namespace Foundation
18 {
24 template<typename T>
25 class FL_EXPORT CFLFrustum3 : public CFLFigure3
26 {
27 public:
33
40 {
46
52
58
64
70
76
82
88
94 };
95
102 {
108
114
120
126
132
138 };
139
145
150 virtual ~CFLFrustum3();
151
162
173
184
195
207 CFLFrustum3(const Base::TQuadrilateralSolid3<float>& tQuadrilateralSolid3);
208
220 CFLFrustum3(const Base::TQuadrilateralSolid3<float>* pTQuadrilateralSolid3);
221
234
246 CFLFrustum3(const Base::TQuadrilateralSolid3<double>* pTQuadrilateralSolid3);
247
261 CFLFrustum3(const CFLQuad3<float>& flqQuad0, const CFLQuad3<float>& flqQuad1);
262
276 CFLFrustum3(const CFLQuad3<double>& flqQuad0, const CFLQuad3<double>& flqQuad1);
277
291 CFLFrustum3(const CFLQuad3<float>* pFlqQuad0, const CFLQuad3<float>* pFlqQuad1);
292
306 CFLFrustum3(const CFLQuad3<double>* pFlqQuad0, const CFLQuad3<double>* pFlqQuad1);
307
320
332 CFLFrustum3(const CFLFigure* pFlf);
333
347 virtual const CResult Set(const CFLFrustum3<float>& flfr);
348
362 virtual const CResult Set(const CFLFrustum3<double>& flfr);
363
377 virtual const CResult Set(const CFLFrustum3<float>* pFlfr);
378
392 virtual const CResult Set(const CFLFrustum3<double>* pFlfr);
393
409 virtual const CResult Set(const Base::TQuadrilateralSolid3<float>& tQuadrilateralSolid3);
410
426 virtual const CResult Set(const Base::TQuadrilateralSolid3<double>& tQuadrilateralSolid3);
427
443 virtual const CResult Set(const Base::TQuadrilateralSolid3<float>* pTQuadrilateralSolid3);
444
460 virtual const CResult Set(const Base::TQuadrilateralSolid3<double>* pTQuadrilateralSolid3);
461
479 virtual const CResult Set(const CFLQuad3<float>& flqQuad0, const CFLQuad3<float>& flqQuad1);
480
498 virtual const CResult Set(const CFLQuad3<double>& flqQuad0, const CFLQuad3<double>& flqQuad1);
499
517 virtual const CResult Set(const CFLQuad3<float>* pFlqQuad0, const CFLQuad3<float>* pFlqQuad1);
518
536 virtual const CResult Set(const CFLQuad3<double>* pFlqQuad0, const CFLQuad3<double>* pFlqQuad1);
537
555 virtual const CResult SetVertex(EVertex eVertexPos, const Base::TPoint3<float>& tp3) sealed;
556
574 virtual const CResult SetVertex(EVertex eVertexPos, const Base::TPoint3<double>& tp3) sealed;
575
593 virtual const CResult SetVertex(EVertex eVertexPos, const Base::TPoint3<float>* pTp3) sealed;
594
612 virtual const CResult SetVertex(EVertex eVertexPos, const Base::TPoint3<double>* pTp3) sealed;
613
631 virtual const CResult SetVertex(EVertex eVertexPos, const Foundation::CFLPoint3<float>& flp3) sealed;
632
650 virtual const CResult SetVertex(EVertex eVertexPos, const Foundation::CFLPoint3<double>& flp3) sealed;
651
669 virtual const CResult SetVertex(EVertex eVertexPos, const Foundation::CFLPoint3<float>* pFlp3) sealed;
670
688 virtual const CResult SetVertex(EVertex eVertexPos, const Foundation::CFLPoint3<double>* pFlp3) sealed;
689
703 virtual const Foundation::CFLPoint3<T>* GetVertex(EVertex eVertexPos) const sealed;
704
718 virtual const CFLGeometry3DVector<T> GetEquationOfPlane(EPlane ePlane) const sealed;
719
733 virtual bool Contains(const Base::TPoint3<float>& tp3) const;
734
748 virtual bool Contains(const Base::TPoint3<double>& tp3) const;
749
763 virtual bool Contains(const Base::TPoint3<float>* pTp3) const;
764
778 virtual bool Contains(const Base::TPoint3<double>* pTp3) const;
779
793 virtual bool Contains(const Foundation::CFLPoint3<float>& flp3) const;
794
808 virtual bool Contains(const Foundation::CFLPoint3<double>& flp3) const;
809
823 virtual bool Contains(const Foundation::CFLPoint3<float>* pFlp3) const;
824
838 virtual bool Contains(const Foundation::CFLPoint3<double>* pFlp3) const;
839
861 virtual const CResult Contains(const Base::CFLArray<Base::TPoint3<float>>& flaVertices, Base::CFLArray<int32_t>& flaResult, bool bClearResult = true) const;
862
884 virtual const CResult Contains(const Base::CFLArray<Base::TPoint3<double>>& flaVertices, Base::CFLArray<int32_t>& flaResult, bool bClearResult = true) const;
885
907 virtual const CResult Contains(const Base::CFLArray<Base::TPoint3<float>>* pFlaVertices, Base::CFLArray<int32_t>& flaResult, bool bClearResult = true) const;
908
930 virtual const CResult Contains(const Base::CFLArray<Base::TPoint3<double>>* pFlaVertices, Base::CFLArray<int32_t>& flaResult, bool bClearResult = true) const;
931
955 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;
956
980 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;
981
1005 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;
1006
1030 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;
1031
1043 virtual bool IsCollision(const Base::TPoint3<float>& tp3Begin, const Base::TPoint3<float>& tp3End) const;
1044
1056 virtual bool IsCollision(const Base::TPoint3<double>& tp3Begin, const Base::TPoint3<double>& tp3End) const;
1057
1069 virtual bool IsCollision(const Base::TPoint3<float>* pTp3Begin, const Base::TPoint3<float>* pTp3End) const;
1070
1082 virtual bool IsCollision(const Base::TPoint3<double>* pTp3Begin, const Base::TPoint3<double>* pTp3End) const;
1083
1095 virtual bool IsCollision(const Foundation::CFLPoint3<float>& flp3Begin, const Foundation::CFLPoint3<float>& flp3End) const;
1096
1108 virtual bool IsCollision(const Foundation::CFLPoint3<double>& flp3Begin, const Foundation::CFLPoint3<double>& flp3End) const;
1109
1121 virtual bool IsCollision(const Foundation::CFLPoint3<float>* pFlp3Begin, const Foundation::CFLPoint3<float>* pFlp3End) const;
1122
1134 virtual bool IsCollision(const Foundation::CFLPoint3<double>* pFlp3Begin, const Foundation::CFLPoint3<double>* pFlp3End) const;
1135
1136
1137 virtual const CResult Set(const CFLFigure& flf) override;
1138 virtual const CResult Set(const CFLFigure* pFlf) override;
1139
1140 virtual void Clear() override;
1141
1142 virtual EFigureDeclType GetDeclType() const override;
1143 virtual EFigureTemplateType GetTemplateType() const override;
1144
1146 virtual bool IsSpecEqual(const CFLFigure* pFlfRhs, EFigureSpecCompareType eSpecType = EFigureSpecCompareType_Coordinates) const override;
1147
1148 using CFLFigure::Swap;
1149 virtual const CResult Swap(CFLFigure* pFlfRight) override;
1150
1151 virtual double GetVolume() const override;
1152
1154 virtual const CResult GetCenterOfGravity(double& x, double& y, double& z) const override;
1155
1157 virtual const CResult GetCenterOfVertices(double& x, double& y, double& z) const override;
1158
1159 using CFLFigure3::Offset;
1160 virtual const CResult Offset(double x, double y, double z) override;
1161
1163 virtual const CResult Multiply(double x, double y, double z) override;
1164
1165 using CFLFigure3::Rotate;
1166 virtual const CResult Rotate(const CFLGeometry3DQuaternion<float>* pQuat, const CFLPoint3<float>* pFlp3Pivot = nullptr) override;
1167 virtual const CResult Rotate(const CFLGeometry3DQuaternion<double>* pQuat, const CFLPoint3<double>* pFlp3Pivot = nullptr) override;
1168
1169 using CFLFigure3::Scale;
1170 virtual const CResult Scale(double f64PivotX, double f64PivotY, double f64PivotZ, double f64ScaleX, double f64ScaleY, double f64ScaleZ) override;
1171
1173 virtual const CResult Transform(const CMatrix<float>* pMatTransform) override;
1174 virtual const CResult Transform(const CMatrix<double>* pMatTransform) override;
1175
1177 virtual const CResult GetBoundingBox(double& f64MinX, double& f64MinY, double& f64MinZ, double& f64MaxX, double& f64MaxY, double& f64MaxZ) const override;
1178 virtual const CResult GetBoundingBox(float& f32MinX, float& f32MinY, float& f32MinZ, float& f32MaxX, float& f32MaxY, float& f32MaxZ) const override;
1179
1180
1193
1206
1221
1236
1248 const CFLFrustum3<T>& operator+=(const double& value);
1249
1264
1279
1294
1309
1321 const CFLFrustum3<T>& operator-=(const double& value);
1322
1337
1352
1367
1382
1394 const CFLFrustum3<T>& operator*=(const double& value);
1395
1410
1425
1440
1455
1467 const CFLFrustum3<T>& operator/=(const double& value);
1468
1483
1498
1513
1528
1540 CFLFrustum3<T> operator+(const double& value) const;
1541
1556
1571
1586
1601
1613 CFLFrustum3<T> operator-(const double& value) const;
1614
1629
1644
1659
1674
1686 CFLFrustum3<T> operator*(const double& value) const;
1687
1702
1717
1732
1747
1759 CFLFrustum3<T> operator/(const double& value) const;
1760
1775
1790
1805
1820
1831
1845 friend CFLFrustum3<T> operator+(const double& value, const CFLFrustum3<T>& flfr)
1846 {
1847 CFLFrustum3<T> t(flfr);
1848 t += value;
1849 return t;
1850 }
1851
1865 friend CFLFrustum3<T> operator-(const double& value, const CFLFrustum3<T>& flfr)
1866 {
1867 CFLFrustum3<T> t(flfr);
1868 t *= -1.;
1869 t += value;
1870 return t;
1871 }
1872
1886 friend CFLFrustum3<T> operator*(const double& value, const CFLFrustum3<T>& flfr)
1887 {
1888 CFLFrustum3<T> t(flfr);
1889 t *= value;
1890 return t;
1891 }
1892
1906 friend CFLFrustum3<T> operator/(const double& value, const CFLFrustum3<T>& flfr)
1907 {
1909 t.flqQuads[0] = value / flfr.flqQuads[0];
1910 t.flqQuads[1] = value / flfr.flqQuads[1];
1911 return t;
1912 }
1913
1914
1915 protected:
1916 virtual CFLPoint<double> GetCenterOfGravity() const override;
1917
1918 SupportToDuplicateObject(CFLFrustum3<T>, *this);
1919 DeclareGetClassType();
1920 };
1921
1922 typedef CFLFrustum3<float> CFLFrustum3F;
1923 typedef CFLFrustum3<double> CFLFrustum3D;
1924 }
1925}
Template type array class.
Definition FLArray.h:71
Simplified class representing a 3-D point.
Definition TPoint3.h:37
A simplified class that represents an irregular hexahedron formed by connecting corresponding vertice...
Definition TQuadrilateralSolid3.h:38
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 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 a frustum.
Definition FLFrustum3.h:26
virtual void Clear() override
Clear an object's variable.
virtual bool IsCollision(const Foundation::CFLPoint3< double > &flp3Begin, const Foundation::CFLPoint3< double > &flp3End) const
virtual const CResult Set(const CFLQuad3< float > *pFlqQuad0, const CFLQuad3< float > *pFlqQuad1)
Parameter setting function.
virtual bool Contains(const Foundation::CFLPoint3< float > *pFlp3) const
Returns whether the vertex is inside this object.
virtual bool IsCollision(const Base::TPoint3< double > &tp3Begin, const Base::TPoint3< double > &tp3End) const
virtual double GetVolume() const override
CFLFrustum3< T > operator+(const Base::TPoint3< float > &tpPoint) const
Offset operator.
CFLFrustum3< T > operator-() const
An operator that returns a point with the signs of x, y and z values inverted.
virtual const CResult SetVertex(EVertex eVertexPos, const Foundation::CFLPoint3< double > *pFlp3) sealed
const CFLFrustum3< T > & operator=(const Base::TQuadrilateralSolid3< float > &rhs)
Assignment operator.
virtual const CFLGeometry3DVector< T > GetEquationOfPlane(EPlane ePlane) const sealed
virtual const CResult Set(const Base::TQuadrilateralSolid3< float > *pTQuadrilateralSolid3)
Parameter setting function.
CFLFrustum3< T > operator-(const Base::TPoint3< float > &tpPoint) const
Offset operator.
virtual const CResult Set(const CFLFrustum3< float > *pFlfr)
Parameter setting function.
CFLFrustum3(const CFLFrustum3< double > &rhs)
copy constructor
const CFLFrustum3< T > & operator-=(const Base::TPoint3< double > &tpPoint)
Offset operator.
CFLFrustum3(const Base::TQuadrilateralSolid3< float > *pTQuadrilateralSolid3)
Initializer.
CFLFrustum3(const CFLFrustum3< float > *pRhs)
copy constructor
virtual const CResult Set(const CFLFrustum3< double > *pFlfr)
Parameter setting function.
CFLFrustum3< T > operator/(const double &value) const
An operator that divides the x,y and z values of each vertex by a parameter.
virtual const CResult Set(const CFLQuad3< double > &flqQuad0, const CFLQuad3< double > &flqQuad1)
Parameter setting function.
friend CFLFrustum3< T > operator+(const double &value, const CFLFrustum3< T > &flfr)
Offset operator.
Definition FLFrustum3.h:1845
virtual const CResult Swap(CFLFigure *pFlfRight) override
const CFLFrustum3< T > & operator*=(const double &value)
An operator that multiplies the x,y,z values of each vertex of a triangle by a parameter.
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 frustum.
CFLFrustum3< T > operator+(const CFLPoint3< float > &flpPoint) const
Offset operator.
friend CFLFrustum3< T > operator-(const double &value, const CFLFrustum3< T > &flfr)
Offset operator.
Definition FLFrustum3.h:1865
CFLFrustum3(const Base::TQuadrilateralSolid3< double > *pTQuadrilateralSolid3)
Initializer.
virtual bool IsSpecEqual(const CFLFigure *pFlfRhs, EFigureSpecCompareType eSpecType=EFigureSpecCompareType_Coordinates) const override
virtual bool IsCollision(const Foundation::CFLPoint3< double > *pFlp3Begin, const Foundation::CFLPoint3< double > *pFlp3End) const
virtual const CResult Scale(double f64PivotX, double f64PivotY, double f64PivotZ, double f64ScaleX, double f64ScaleY, double f64ScaleZ) override
virtual const CResult Set(const Base::TQuadrilateralSolid3< float > &tQuadrilateralSolid3)
Parameter setting function.
virtual const CResult Transform(const CMatrix< double > *pMatTransform) override
Transforms the object.
virtual const CResult Set(const Base::TQuadrilateralSolid3< double > &tQuadrilateralSolid3)
Parameter setting function.
virtual CFLPoint< double > GetCenterOfGravity() 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 frustum.
const CFLFrustum3< T > & operator+=(const CFLPoint3< double > &flpPoint)
Offset operator.
const CFLFrustum3< 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.
CFLFrustum3(const Base::TQuadrilateralSolid3< double > &tQuadrilateralSolid3)
Initializer.
virtual bool IsCollision(const Base::TPoint3< float > *pTp3Begin, const Base::TPoint3< float > *pTp3End) const
virtual const CResult SetVertex(EVertex eVertexPos, const Base::TPoint3< double > &tp3) sealed
virtual const CResult Set(const CFLQuad3< double > *pFlqQuad0, const CFLQuad3< double > *pFlqQuad1)
Parameter setting function.
virtual const CResult Offset(double x, double y, double z) override
CFLFrustum3(const CFLFigure *pFlf)
Initializer.
virtual bool IsCollision(const Base::TPoint3< double > *pTp3Begin, const Base::TPoint3< double > *pTp3End) const
virtual const CResult Set(const CFLQuad3< float > &flqQuad0, const CFLQuad3< float > &flqQuad1)
Parameter setting function.
EPlane
Definition FLFrustum3.h:102
@ EPlane_Top
Definition FLFrustum3.h:107
@ EPlane_Bottom
Definition FLFrustum3.h:113
@ EPlane_Far
Definition FLFrustum3.h:137
@ EPlane_Right
Definition FLFrustum3.h:125
@ EPlane_Left
Definition FLFrustum3.h:119
@ EPlane_Near
Definition FLFrustum3.h:131
CFLFrustum3(const CFLFrustum3< float > &rhs)
copy constructor
virtual EFigureTemplateType GetTemplateType() const 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 frustum.
virtual const CResult GetCenterOfGravity(double &x, double &y, double &z) const override
Get the center of gravity (geometric center) of the 3D object.
CFLFrustum3< T > operator+(const CFLPoint3< double > &flpPoint) const
Offset operator.
CFLFrustum3(const CFLQuad3< double > *pFlqQuad0, const CFLQuad3< double > *pFlqQuad1)
Initializer.
virtual const CResult Multiply(double x, double y, double z) override
const CFLFrustum3< T > & operator=(const CFLFrustum3< float > &rhs)
Assignment operator.
CFLFrustum3< T > operator*(const Base::TPoint3< double > &tpPoint) const
An operator that multiplies the x,y and z values of each vertex by a parameter.
friend CFLFrustum3< T > operator/(const double &value, const CFLFrustum3< T > &flfr)
An operator that divides the x, y, z values of each vertex into parameters.
Definition FLFrustum3.h:1906
virtual const CResult SetVertex(EVertex eVertexPos, const Base::TPoint3< float > *pTp3) sealed
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 frustum.
const CFLFrustum3< T > & operator-=(const Base::TPoint3< float > &tpPoint)
Offset operator.
virtual bool Contains(const Foundation::CFLPoint3< float > &flp3) const
Returns whether the vertex is inside this object.
virtual const CResult SetVertex(EVertex eVertexPos, const Foundation::CFLPoint3< float > &flp3) sealed
const CFLFrustum3< T > & operator*=(const CFLPoint3< double > &flpPoint)
An operator that multiplies 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
virtual const CResult SetVertex(EVertex eVertexPos, const Base::TPoint3< float > &tp3) sealed
CFLFrustum3< T > operator/(const Base::TPoint3< float > &tpPoint) const
An operator that divides the x,y and z values of each vertex by a parameter.
CFLFrustum3< T > operator/(const CFLPoint3< float > &flpPoint) const
An operator that divides the x,y and z values of each vertex by a parameter.
CFLFrustum3< T > operator*(const CFLPoint3< float > &flpPoint) const
An operator that multiplies the x,y and z values of each vertex by a parameter.
const CFLFrustum3< T > & operator-=(const CFLPoint3< float > &flpPoint)
Offset operator.
const CFLFrustum3< T > & operator/=(const CFLPoint3< float > &flpPoint)
An operator that divides the x,y,z values of each vertex of a triangle by a parameter.
CFLQuad3< float > flqQuads[2]
Definition FLFrustum3.h:32
virtual const CResult Set(const Base::TQuadrilateralSolid3< double > *pTQuadrilateralSolid3)
Parameter setting function.
virtual const CResult SetVertex(EVertex eVertexPos, const Foundation::CFLPoint3< double > &flp3) sealed
CFLFrustum3< T > operator-(const Base::TPoint3< double > &tpPoint) const
Offset operator.
CFLFrustum3< T > operator+(const Base::TPoint3< double > &tpPoint) const
Offset operator.
virtual const CResult Set(const CFLFrustum3< float > &flfr)
Parameter setting function.
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 frustum.
virtual const CResult GetBoundingBox(float &f32MinX, float &f32MinY, float &f32MinZ, float &f32MaxX, float &f32MaxY, float &f32MaxZ) const override
Returns the bounding box (AABB).
const CFLFrustum3< T > & operator-=(const double &value)
Offset operator.
CFLFrustum3< T > operator-(const CFLPoint3< double > &flpPoint) const
Offset operator.
virtual bool Contains(const Base::TPoint3< float > &tp3) const
Returns whether the vertex is inside this object.
friend CFLFrustum3< T > operator*(const double &value, const CFLFrustum3< T > &flfr)
An operator that multiplies the x, y, and z values of each vertex of a triangle by a parameter.
Definition FLFrustum3.h:1886
CFLFrustum3< T > operator-(const double &value) const
Offset operator.
virtual const CResult Rotate(const CFLGeometry3DQuaternion< float > *pQuat, const CFLPoint3< float > *pFlp3Pivot=nullptr) override
virtual const CResult GetBoundingBox(double &f64MinX, double &f64MinY, double &f64MinZ, double &f64MaxX, double &f64MaxY, double &f64MaxZ) const override
Returns the bounding box (AABB).
virtual bool Contains(const Foundation::CFLPoint3< double > &flp3) const
Returns whether the vertex is inside this object.
CFLFrustum3< 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 const Foundation::CFLPoint3< T > * GetVertex(EVertex eVertexPos) const sealed
const CFLFrustum3< T > & operator+=(const CFLPoint3< float > &flpPoint)
Offset operator.
virtual const CResult Set(const CFLFigure &flf) override
virtual const CResult Transform(const CMatrix< float > *pMatTransform) override
Transforms the object.
const CFLFrustum3< T > & operator/=(const CFLPoint3< double > &flpPoint)
An operator that divides the x,y,z values of each vertex of a triangle by a parameter.
const CFLFrustum3< T > & operator-=(const CFLPoint3< double > &flpPoint)
Offset operator.
const CFLFrustum3< T > & operator+=(const double &value)
Offset operator.
const CFLFrustum3< T > & operator+=(const Base::TPoint3< float > &tpPoint)
Offset operator.
CFLFrustum3< T > operator*(const double &value) const
An operator that multiplies the x,y and z values of each vertex by a parameter.
CFLFrustum3(const CFLQuad3< float > *pFlqQuad0, const CFLQuad3< float > *pFlqQuad1)
Initializer.
CFLFrustum3(const CFLQuad3< double > &flqQuad0, const CFLQuad3< double > &flqQuad1)
Initializer.
const CFLFrustum3< T > & operator=(const Base::TQuadrilateralSolid3< double > &rhs)
Assignment operator.
virtual bool IsCollision(const Base::TPoint3< float > &tp3Begin, const Base::TPoint3< float > &tp3End) const
CFLFrustum3< T > operator+(const double &value) const
Offset operator.
EVertex
Definition FLFrustum3.h:40
@ EVertex_Count
Definition FLFrustum3.h:93
@ EVertex_RightTopFar
Definition FLFrustum3.h:75
@ EVertex_LeftTopNear
Definition FLFrustum3.h:45
@ EVertex_LeftBottomFar
Definition FLFrustum3.h:87
@ EVertex_LeftTopFar
Definition FLFrustum3.h:69
@ EVertex_RightBottomFar
Definition FLFrustum3.h:81
@ EVertex_RightBottomNear
Definition FLFrustum3.h:57
@ EVertex_LeftBottomNear
Definition FLFrustum3.h:63
@ EVertex_RightTopNear
Definition FLFrustum3.h:51
virtual const CResult Set(const CFLFrustum3< double > &flfr)
Parameter setting function.
CFLFrustum3< T > operator*(const CFLPoint3< double > &flpPoint) const
An operator that multiplies the x,y and z values of each vertex by a parameter.
CFLFrustum3< T > operator-(const CFLPoint3< float > &flpPoint) const
Offset operator.
virtual EFigureDeclType GetDeclType() const override
virtual const CResult Set(const CFLFigure *pFlf) override
virtual bool IsCollision(const Foundation::CFLPoint3< float > *pFlp3Begin, const Foundation::CFLPoint3< float > *pFlp3End) const
CFLFrustum3(const CFLFigure &flf)
Initializer.
CFLFrustum3(const CFLFrustum3< double > *pRhs)
copy constructor
virtual const CResult GetCenterOfVertices(double &x, double &y, double &z) const override
virtual bool Contains(const Foundation::CFLPoint3< double > *pFlp3) const
Returns whether the vertex is inside this object.
const CFLFrustum3< T > & operator/=(const double &value)
An operator that divides the x,y,z values of each vertex of a triangle by a parameter.
virtual bool IsCollision(const Foundation::CFLPoint3< float > &flp3Begin, const Foundation::CFLPoint3< float > &flp3End) const
const CFLFrustum3< T > & operator*=(const CFLPoint3< float > &flpPoint)
An operator that multiplies the x,y,z values of each vertex of a triangle by a parameter.
CFLFrustum3< T > operator/(const Base::TPoint3< double > &tpPoint) const
An operator that divides the x,y and z values of each vertex by a parameter.
CFLFrustum3< T > operator/(const CFLPoint3< double > &flpPoint) const
An operator that divides the x,y and z values of each vertex by a parameter.
const CFLFrustum3< 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.
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 frustum.
const CFLFrustum3< 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 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 frustum.
virtual const CResult SetVertex(EVertex eVertexPos, const Base::TPoint3< double > *pTp3) sealed
virtual bool Contains(const Base::TPoint3< double > &tp3) const
Returns whether the vertex is inside this object.
CFLFrustum3(const Base::TQuadrilateralSolid3< float > &tQuadrilateralSolid3)
Initializer.
virtual const CResult SetVertex(EVertex eVertexPos, const Foundation::CFLPoint3< float > *pFlp3) sealed
const CFLFrustum3< 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 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 frustum.
virtual bool Contains(const Base::TPoint3< float > *pTp3) const
Returns whether the vertex is inside this object.
CFLFrustum3(const CFLQuad3< float > &flqQuad0, const CFLQuad3< float > &flqQuad1)
Initializer.
virtual bool Contains(const Base::TPoint3< double > *pTp3) const
Returns whether the vertex is inside this object.
const CFLFrustum3< T > & operator=(const CFLFrustum3< double > &rhs)
Assignment operator.
const CFLFrustum3< T > & operator+=(const Base::TPoint3< double > &tpPoint)
Offset operator.
A class representing quaternion.
Definition FLGeometry3DQuaternion.h:30
A class representing vector in 3D space which has direction and magnitude.
Definition FLGeometry3DVector.h:33
A class representing a 3D point.
Definition FLPoint3.h:40
A class representing a point.
Definition FLPoint.h:24
A class representing a 3D quadrangle.
Definition FLQuad3.h:25
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