FLImaging 7.9.7.9
FLImagingFoundation/FLQuad3.h
1#pragma once
2
8
9#include "FLFigure3.h"
10#include "FLPoint3.h"
11
13namespace FLImaging
14{
16 namespace Foundation
17 {
23 template<typename T>
24 class FL_EXPORT CFLQuad3 : public CFLFigure3
25 {
26 public:
32
38
43 virtual ~CFLQuad3();
44
76 CFLQuad3(int32_t x0, int32_t y0, int32_t z0, int32_t x1, int32_t y1, int32_t z1, int32_t x2, int32_t y2, int32_t z2, int32_t x3, int32_t y3, int32_t z3);
77
109 CFLQuad3(int64_t x0, int64_t y0, int64_t z0, int64_t x1, int64_t y1, int64_t z1, int64_t x2, int64_t y2, int64_t z2, int64_t x3, int64_t y3, int64_t z3);
110
142 CFLQuad3(float x0, float y0, float z0, float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3);
143
175 CFLQuad3(double x0, double y0, double z0, double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3);
176
194 CFLQuad3(const Base::TPoint3<float>& tpPoint0, const Base::TPoint3<float>& tpPoint1, const Base::TPoint3<float>& tpPoint2, const Base::TPoint3<float>& tpPoint3);
195
213 CFLQuad3(const Base::TPoint3<double>& tpPoint0, const Base::TPoint3<double>& tpPoint1, const Base::TPoint3<double>& tpPoint2, const Base::TPoint3<double>& tpPoint3);
214
232 CFLQuad3(const Base::TPoint3<float>* pTpPoint0, const Base::TPoint3<float>* pTpPoint1, const Base::TPoint3<float>* pTpPoint2, const Base::TPoint3<float>* pTpPoint3);
233
251 CFLQuad3(const Base::TPoint3<double>* pTpPoint0, const Base::TPoint3<double>* pTpPoint1, const Base::TPoint3<double>* pTpPoint2, const Base::TPoint3<double>* pTpPoint3);
252
270 CFLQuad3(const CFLPoint3<float>& flpPoint0, const CFLPoint3<float>& flpPoint1, const CFLPoint3<float>& flpPoint2, const CFLPoint3<float>& flpPoint3);
271
289 CFLQuad3(const CFLPoint3<double>& flpPoint0, const CFLPoint3<double>& flpPoint1, const CFLPoint3<double>& flpPoint2, const CFLPoint3<double>& flpPoint3);
290
308 CFLQuad3(const CFLPoint3<float>* pFlpPoint0, const CFLPoint3<float>* pFlpPoint1, const CFLPoint3<float>* pFlpPoint2, const CFLPoint3<float>* pFlpPoint3);
309
327 CFLQuad3(const CFLPoint3<double>* pFlpPoint0, const CFLPoint3<double>* pFlpPoint1, const CFLPoint3<double>* pFlpPoint2, const CFLPoint3<double>* pFlpPoint3);
328
341
354
367
380
390 CFLQuad3(const CFLQuad3<float>& flqQuad);
391
401 CFLQuad3(const CFLQuad3<double>& flqQuad);
402
412 CFLQuad3(const CFLQuad3<float>* pFlqQuad);
413
423 CFLQuad3(const CFLQuad3<double>* pFlqQuad);
424
437
450
463
476
488 CFLQuad3(const CFLQuad<float>& flqQuad);
489
501 CFLQuad3(const CFLQuad<double>& flqQuad);
502
514 CFLQuad3(const CFLQuad<float>* pFlqQuad);
515
527 CFLQuad3(const CFLQuad<double>* pFlqQuad);
528
540 CFLQuad3(const CFLFigure& flf);
541
553 CFLQuad3(const CFLFigure* pFlf);
554
569
584
596 const CFLQuad3<T>& operator=(const CFLQuad3<float>& flqQuad);
597
609 const CFLQuad3<T>& operator=(const CFLQuad3<double>& flqQuad);
610
625
640
654 const CFLQuad3<T>& operator=(const CFLQuad<float>& flqQuad);
655
669 const CFLQuad3<T>& operator=(const CFLQuad<double>& flqQuad);
670
682 const CFLQuad3<T>& operator+=(const double& value);
683
697 const CFLQuad3<T>& operator+=(const CFLPoint3<float>& flpPoint);
698
712 const CFLQuad3<T>& operator+=(const CFLPoint3<double>& flpPoint);
713
728
743
755 const CFLQuad3<T>& operator-=(const double& value);
756
770 const CFLQuad3<T>& operator-=(const CFLPoint3<float>& flpPoint);
771
785 const CFLQuad3<T>& operator-=(const CFLPoint3<double>& flpPoint);
786
801
816
828 const CFLQuad3<T>& operator*=(const double& value);
829
843 const CFLQuad3<T>& operator*=(const CFLPoint3<float>& flpPoint);
844
858 const CFLQuad3<T>& operator*=(const CFLPoint3<double>& flpPoint);
859
874
889
901 const CFLQuad3<T>& operator/=(const double& value);
902
916 const CFLQuad3<T>& operator/=(const CFLPoint3<float>& flpPoint);
917
931 const CFLQuad3<T>& operator/=(const CFLPoint3<double>& flpPoint);
932
947
962
974 CFLQuad3<T> operator+(const double& value) const;
975
990
1005
1020
1035
1047 CFLQuad3<T> operator-(const double& value) const;
1048
1063
1078
1093
1108
1120 CFLQuad3<T> operator*(const double& value) const;
1121
1136
1151
1166
1181
1193 CFLQuad3<T> operator/(const double& value) const;
1194
1209
1224
1239
1254
1265
1279 friend CFLQuad3<T> operator+(const double& value, const CFLQuad3<T>& quad)
1280 {
1281 CFLQuad3<T> t(quad);
1282 t += value;
1283 return t;
1284 }
1285
1299 friend CFLQuad3<T> operator-(const double& value, const CFLQuad3<T>& quad)
1300 {
1301 CFLQuad3<T> t(quad);
1302 t *= -1.;
1303 t += value;
1304 return t;
1305 }
1306
1320 friend CFLQuad3<T> operator*(const double& value, const CFLQuad3<T>& quad)
1321 {
1322 CFLQuad3<T> t(quad);
1323 t *= value;
1324 return t;
1325 }
1326
1340 friend CFLQuad3<T> operator/(const double& value, const CFLQuad3<T>& quad)
1341 {
1342 CFLQuad3<T> t;
1343
1344 t.flpPoints[0].x = (T)(value / quad.flpPoints[0].x);
1345 t.flpPoints[0].y = (T)(value / quad.flpPoints[0].y);
1346 t.flpPoints[0].z = (T)(value / quad.flpPoints[0].z);
1347 t.flpPoints[1].x = (T)(value / quad.flpPoints[1].x);
1348 t.flpPoints[1].y = (T)(value / quad.flpPoints[1].y);
1349 t.flpPoints[1].z = (T)(value / quad.flpPoints[1].z);
1350 t.flpPoints[2].x = (T)(value / quad.flpPoints[2].x);
1351 t.flpPoints[2].y = (T)(value / quad.flpPoints[2].y);
1352 t.flpPoints[2].z = (T)(value / quad.flpPoints[2].z);
1353 t.flpPoints[3].x = (T)(value / quad.flpPoints[3].x);
1354 t.flpPoints[3].y = (T)(value / quad.flpPoints[3].y);
1355 t.flpPoints[3].z = (T)(value / quad.flpPoints[3].z);
1356
1357 return t;
1358 }
1359
1395 virtual const CResult Set(int32_t x0, int32_t y0, int32_t z0, int32_t x1, int32_t y1, int32_t z1, int32_t x2, int32_t y2, int32_t z2, int32_t x3, int32_t y3, int32_t z3);
1396
1432 virtual const CResult Set(int64_t x0, int64_t y0, int64_t z0, int64_t x1, int64_t y1, int64_t z1, int64_t x2, int64_t y2, int64_t z2, int64_t x3, int64_t y3, int64_t z3);
1433
1469 virtual const CResult Set(float x0, float y0, float z0, float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3);
1470
1506 virtual const CResult Set(double x0, double y0, double z0, double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3);
1507
1529 virtual const CResult Set(const Base::TPoint3<float>& tpPoint0, const Base::TPoint3<float>& tpPoint1, const Base::TPoint3<float>& tpPoint2, const Base::TPoint3<float>& tpPoint3);
1530
1552 virtual const CResult Set(const Base::TPoint3<double>& tpPoint0, const Base::TPoint3<double>& tpPoint1, const Base::TPoint3<double>& tpPoint2, const Base::TPoint3<double>& tpPoint3);
1553
1575 virtual const CResult Set(const Base::TPoint3<float>* pTpPoint0, const Base::TPoint3<float>* pTpPoint1, const Base::TPoint3<float>* pTpPoint2, const Base::TPoint3<float>* pTpPoint3);
1576
1598 virtual const CResult Set(const Base::TPoint3<double>* pTpPoint0, const Base::TPoint3<double>* pTpPoint1, const Base::TPoint3<double>* pTpPoint2, const Base::TPoint3<double>* pTpPoint3);
1599
1621 virtual const CResult Set(const CFLPoint3<float>& flpPoint0, const CFLPoint3<float>& flpPoint1, const CFLPoint3<float>& flpPoint2, const CFLPoint3<float>& flpPoint3);
1622
1644 virtual const CResult Set(const CFLPoint3<double>& flpPoint0, const CFLPoint3<double>& flpPoint1, const CFLPoint3<double>& flpPoint2, const CFLPoint3<double>& flpPoint3);
1645
1667 virtual const CResult Set(const CFLPoint3<float>* pFlpPoint0, const CFLPoint3<float>* pFlpPoint1, const CFLPoint3<float>* pFlpPoint2, const CFLPoint3<float>* pFlpPoint3);
1668
1690 virtual const CResult Set(const CFLPoint3<double>* pFlpPoint0, const CFLPoint3<double>* pFlpPoint1, const CFLPoint3<double>* pFlpPoint2, const CFLPoint3<double>* pFlpPoint3);
1691
1707 virtual const CResult Set(const Base::TQuad3<float>& tqQuad);
1708
1724 virtual const CResult Set(const Base::TQuad3<double>& tqQuad);
1725
1741 virtual const CResult Set(const Base::TQuad3<float>* pTqQuad);
1742
1758 virtual const CResult Set(const Base::TQuad3<double>* pTqQuad);
1759
1773 virtual const CResult Set(const CFLQuad3<float>& flqQuad);
1774
1788 virtual const CResult Set(const CFLQuad3<double>& flqQuad);
1789
1803 virtual const CResult Set(const CFLQuad3<float>* pFlqQuad);
1804
1818 virtual const CResult Set(const CFLQuad3<double>* pFlqQuad);
1819
1835 virtual const CResult Set(const Base::TQuad<float>& tqQuad);
1836
1852 virtual const CResult Set(const Base::TQuad<double>& tqQuad);
1853
1869 virtual const CResult Set(const Base::TQuad<float>* pTqQuad);
1870
1886 virtual const CResult Set(const Base::TQuad<double>* pTqQuad);
1887
1903 virtual const CResult Set(const CFLQuad<float>& flqQuad);
1904
1920 virtual const CResult Set(const CFLQuad<double>& flqQuad);
1921
1937 virtual const CResult Set(const CFLQuad<float>* pFlqQuad);
1938
1954 virtual const CResult Set(const CFLQuad<double>* pFlqQuad);
1955
1956 virtual const CResult Set(const CFLFigure& flf) override;
1957 virtual const CResult Set(const CFLFigure* pFlf) override;
1958
1959 virtual void Clear() override;
1960
1961 virtual EFigureDeclType GetDeclType() const override;
1962 virtual EFigureTemplateType GetTemplateType() const override;
1963
1964 virtual bool IsValid() const override;
1965 virtual bool IsFigureValid() const override;
1966
1967 virtual const CResult MakeFigureInvalid() override;
1968
1970 virtual bool IsSpecEqual(const CFLFigure* pFlfRhs, EFigureSpecCompareType eSpecType = EFigureSpecCompareType_Coordinates) const override;
1971
1972 using CFLFigure::Swap;
1973 virtual const CResult Swap(CFLFigure* pFlfRight) override;
1974
1976 virtual const CResult GetCenterOfGravity(double& x, double& y, double& z) const override;
1977
1979 virtual const CResult GetCenterOfVertices(double& x, double& y, double& z) const override;
1980
1981 using CFLFigure3::Offset;
1982 virtual const CResult Offset(double x, double y, double z) override;
1983
1985 virtual const CResult Multiply(double x, double y, double z) override;
1986
1987 using CFLFigure3::Rotate;
1988 virtual const CResult Rotate(const CFLGeometry3DQuaternion<float>* pQuat, const CFLPoint3<float>* pFlp3Pivot = nullptr) override;
1989 virtual const CResult Rotate(const CFLGeometry3DQuaternion<double>* pQuat, const CFLPoint3<double>* pFlp3Pivot = nullptr) override;
1990
1991 using CFLFigure3::Scale;
1992 virtual const CResult Scale(double f64PivotX, double f64PivotY, double f64PivotZ, double f64ScaleX, double f64ScaleY, double f64ScaleZ) override;
1993
1995 virtual const CResult Transform(const CMatrix<float>* pMatTransform) override;
1996 virtual const CResult Transform(const CMatrix<double>* pMatTransform) override;
1997
1999 virtual const CResult GetBoundingBox(double& f64MinX, double& f64MinY, double& f64MinZ, double& f64MaxX, double& f64MaxY, double& f64MaxZ) const override;
2000 virtual const CResult GetBoundingBox(float& f32MinX, float& f32MinY, float& f32MinZ, float& f32MaxX, float& f32MaxY, float& f32MaxZ) const override;
2001
2002 virtual const CResult ReverseSequence() override;
2003
2017 virtual const CResult ChangeOriginIndex(int64_t i64IndexToBeOrigin);
2018
2019
2020 protected:
2021 virtual CFLPoint<double> GetCenterOfGravity() const override;
2022
2023 SupportToDuplicateObject(CFLQuad3<T>, *this);
2024 DeclareGetClassType();
2025 };
2026
2027 typedef CFLQuad3<float> CFLQuad3F;
2028 typedef CFLQuad3<double> CFLQuad3D;
2029 }
2030}
Simplified class representing a 3-D point.
Definition FLImagingBase/TPoint3.h:37
Simplified class representing a quadrangle.
Definition FLImagingBase/TQuad3.h:38
Simplified class representing a quadrangle.
Definition FLImagingBase/TQuad.h:34
FLImaging module execution result object.
Definition FLImagingBase/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)
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
Ty z
Definition FLImagingFoundation/FLPoint3.h:58
Ty x
Definition FLImagingFoundation/FLPoint3.h:46
Ty y
Definition FLImagingFoundation/FLPoint3.h:52
A class representing a point.
Definition FLImagingFoundation/FLPoint.h:24
A class representing a 3D quadrangle.
Definition FLImagingFoundation/FLQuad3.h:25
friend CFLQuad3< T > operator*(const double &value, const CFLQuad3< T > &quad)
An operator that multiplies the x, y, and z values of each vertex of a quadrilateral by a parameter.
Definition FLImagingFoundation/FLQuad3.h:1320
CFLQuad3< T > operator+(const CFLPoint3< double > &flpPoint) const
Offset operator.
CFLQuad3(const CFLPoint3< double > &flpPoint0, const CFLPoint3< double > &flpPoint1, const CFLPoint3< double > &flpPoint2, const CFLPoint3< double > &flpPoint3)
initialization constructor
CFLQuad3< T > operator-(const Base::TPoint3< float > &tpPoint) const
Offset operator.
CFLQuad3(const CFLQuad3< float > *pFlqQuad)
copy constructor
const CFLQuad3< T > & operator/=(const Base::TPoint3< double > &tpPoint)
An operator that divides the x,y,z values of each vertex of a quadrilateral by a parameter.
const CFLQuad3< T > & operator-=(const double &value)
Offset operator.
CFLQuad3(const Base::TQuad3< float > *pTqQuad)
With initialization constructor, initialize CFLQuad3 with each vertex of TQuad3.
const CFLQuad3< T > & operator=(const Base::TQuad3< float > &tqQuad)
assignment operator
virtual const CResult Set(int64_t x0, int64_t y0, int64_t z0, int64_t x1, int64_t y1, int64_t z1, int64_t x2, int64_t y2, int64_t z2, int64_t x3, int64_t y3, int64_t z3)
Parameter setting function.
CFLQuad3< T > operator-(const CFLPoint3< double > &flpPoint) const
Offset operator.
CFLQuad3< T > operator+(const Base::TPoint3< double > &tpPoint) const
Offset operator.
virtual const CResult Set(const Base::TQuad< double > &tqQuad)
As a parameter setting function, set CFLQuad3 with each vertex (z = 0) of TQuad.
const CFLQuad3< T > & operator=(const Base::TQuad3< double > &tqQuad)
assignment operator
virtual EFigureDeclType GetDeclType() const override
CFLQuad3< T > operator+(const CFLPoint3< float > &flpPoint) const
Offset operator.
CFLPoint3< float > flpPoints[4]
Definition FLImagingFoundation/FLQuad3.h:31
virtual const CResult Set(const Base::TQuad3< float > &tqQuad)
As a parameter setting function, set CFLQuad3 to each vertex of TQuad3.
const CFLQuad3< T > & operator=(const Base::TQuad< float > &tqQuad)
assignment operator
virtual const CResult Set(const Base::TQuad< float > *pTqQuad)
As a parameter setting function, set CFLQuad3 with each vertex (z = 0) of TQuad.
virtual const CResult MakeFigureInvalid() override
Make the figure invalid. (For example, set the coordinates of the point to invalid x,...
CFLQuad3< T > operator-(const CFLPoint3< float > &flpPoint) const
Offset operator.
const CFLQuad3< T > & operator/=(const double &value)
An operator that divides the x,y,z values of each vertex of a quadrilateral by a parameter.
const CFLQuad3< T > & operator=(const CFLQuad< double > &flqQuad)
assignment operator
virtual const CResult Set(const CFLQuad< float > &flqQuad)
As a parameter setting function, set CFLQuad3 with each vertex (z = 0) of CFLQuad.
CFLQuad3< T > operator+(const double &value) const
Offset operator.
CFLQuad3(const Base::TQuad3< float > &tqQuad)
With initialization constructor, initialize CFLQuad3 with each vertex of TQuad3.
virtual const CResult ReverseSequence() override
Function to reverse the sequence.
virtual const CResult Offset(double x, double y, double z) override
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 const CResult Set(const Base::TQuad3< double > *pTqQuad)
As a parameter setting function, set CFLQuad3 to each vertex of TQuad3.
CFLQuad3(const Base::TQuad3< double > *pTqQuad)
With initialization constructor, initialize CFLQuad3 with each vertex of TQuad3.
virtual const CResult ChangeOriginIndex(int64_t i64IndexToBeOrigin)
Changes the starting vertex while preserving the shape.
friend CFLQuad3< T > operator-(const double &value, const CFLQuad3< T > &quad)
Offset operator.
Definition FLImagingFoundation/FLQuad3.h:1299
CFLQuad3(const Base::TQuad< float > &tqQuad)
Initialization constructor, initializing CFLQuad3 with each vertex of TQuad (z = 0).
CFLQuad3(const CFLQuad< float > *pFlqQuad)
Initialization constructor, initializing CFLQuad3 with each vertex of CFLQuad (z = 0).
CFLQuad3(const Base::TQuad< double > &tqQuad)
Initialization constructor, initializing CFLQuad3 with each vertex of TQuad (z = 0).
virtual void Clear() override
Clears all internal variables and resets all 3D vertex coordinates to 0.
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.
CFLQuad3(const CFLQuad3< double > &flqQuad)
copy constructor
CFLQuad3< T > operator+(const Base::TPoint3< float > &tpPoint) const
Offset operator.
CFLQuad3(const CFLPoint3< float > &flpPoint0, const CFLPoint3< float > &flpPoint1, const CFLPoint3< float > &flpPoint2, const CFLPoint3< float > &flpPoint3)
initialization constructor
CFLQuad3< T > operator*(const double &value) const
An operator that multiplies the x,y and z values of each vertex of the quadrilateral by a parameter.
virtual const CResult Set(const Base::TQuad< float > &tqQuad)
As a parameter setting function, set CFLQuad3 with each vertex (z = 0) of TQuad.
virtual const CResult Set(const Base::TQuad3< double > &tqQuad)
As a parameter setting function, set CFLQuad3 to each vertex of TQuad3.
CFLQuad3< T > operator*(const CFLPoint3< float > &flpPoint) const
An operator that multiplies the x,y and z values of each vertex of the quadrilateral by a parameter.
const CFLQuad3< T > & operator*=(const CFLPoint3< double > &flpPoint)
An operator that multiplies the x,y,z values of each vertex of a quadrilateral by a parameter.
virtual const CResult Set(const CFLPoint3< double > *pFlpPoint0, const CFLPoint3< double > *pFlpPoint1, const CFLPoint3< double > *pFlpPoint2, const CFLPoint3< double > *pFlpPoint3)
Parameter setting function.
const CFLQuad3< T > & operator-=(const CFLPoint3< double > &flpPoint)
Offset operator.
virtual const CResult Set(const CFLQuad3< double > &flqQuad)
Parameter setting function.
virtual const CResult Set(const CFLQuad3< float > &flqQuad)
Parameter setting function.
const CFLQuad3< T > & operator/=(const Base::TPoint3< float > &tpPoint)
An operator that divides the x,y,z values of each vertex of a quadrilateral by a parameter.
CFLQuad3(const CFLPoint3< float > *pFlpPoint0, const CFLPoint3< float > *pFlpPoint1, const CFLPoint3< float > *pFlpPoint2, const CFLPoint3< float > *pFlpPoint3)
initialization constructor
const CFLQuad3< T > & operator+=(const double &value)
Offset operator.
const CFLQuad3< T > & operator=(const Base::TQuad< double > &tqQuad)
assignment operator
virtual const CResult Set(const CFLPoint3< double > &flpPoint0, const CFLPoint3< double > &flpPoint1, const CFLPoint3< double > &flpPoint2, const CFLPoint3< double > &flpPoint3)
Parameter setting function.
CFLQuad3(const Base::TPoint3< double > &tpPoint0, const Base::TPoint3< double > &tpPoint1, const Base::TPoint3< double > &tpPoint2, const Base::TPoint3< double > &tpPoint3)
initialization constructor
virtual bool IsValid() const override
virtual const CResult Set(const Base::TPoint3< double > &tpPoint0, const Base::TPoint3< double > &tpPoint1, const Base::TPoint3< double > &tpPoint2, const Base::TPoint3< double > &tpPoint3)
Parameter setting function.
virtual const CResult Set(const Base::TPoint3< double > *pTpPoint0, const Base::TPoint3< double > *pTpPoint1, const Base::TPoint3< double > *pTpPoint2, const Base::TPoint3< double > *pTpPoint3)
Parameter setting function.
virtual const CResult Set(const CFLFigure &flf) override
CFLQuad3(float x0, float y0, float z0, float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3)
initialization constructor
const CFLQuad3< T > & operator=(const CFLQuad3< float > &flqQuad)
assignment operator
CFLQuad3< T > operator-(const Base::TPoint3< double > &tpPoint) const
Offset operator.
virtual const CResult Set(const Base::TQuad3< float > *pTqQuad)
As a parameter setting function, set CFLQuad3 to each vertex of TQuad3.
const CFLQuad3< T > & operator-=(const CFLPoint3< float > &flpPoint)
Offset operator.
virtual bool IsFigureValid() const override
const CFLQuad3< T > & operator-=(const Base::TPoint3< float > &tpPoint)
Offset operator.
CFLQuad3< T > operator*(const Base::TPoint3< float > &tpPoint) const
An operator that multiplies the x,y and z values of each vertex of the quadrilateral by a parameter.
const CFLQuad3< T > & operator*=(const double &value)
An operator that multiplies the x,y,z values of each vertex of a quadrilateral by a parameter.
const CFLQuad3< T > & operator*=(const Base::TPoint3< double > &tpPoint)
An operator that multiplies the x,y,z values of each vertex of a quadrilateral by a parameter.
const CFLQuad3< T > & operator/=(const CFLPoint3< float > &flpPoint)
An operator that divides the x,y,z values of each vertex of a quadrilateral by a parameter.
const CFLQuad3< T > & operator/=(const CFLPoint3< double > &flpPoint)
An operator that divides the x,y,z values of each vertex of a quadrilateral by a parameter.
CFLQuad3< T > operator*(const Base::TPoint3< double > &tpPoint) const
An operator that multiplies the x,y and z values of each vertex of the quadrilateral by a parameter.
virtual const CResult GetCenterOfVertices(double &x, double &y, double &z) const override
virtual const CResult Set(const CFLPoint3< float > &flpPoint0, const CFLPoint3< float > &flpPoint1, const CFLPoint3< float > &flpPoint2, const CFLPoint3< float > &flpPoint3)
Parameter setting function.
virtual const CResult Transform(const CMatrix< float > *pMatTransform) override
Transforms the object using a transformation matrix (4x4 or 3x3).
CFLQuad3(int64_t x0, int64_t y0, int64_t z0, int64_t x1, int64_t y1, int64_t z1, int64_t x2, int64_t y2, int64_t z2, int64_t x3, int64_t y3, int64_t z3)
initialization constructor
const CFLQuad3< T > & operator+=(const Base::TPoint3< float > &tpPoint)
Offset operator.
virtual const CResult Swap(CFLFigure *pFlfRight) override
CFLQuad3< T > operator/(const Base::TPoint3< double > &tpPoint) const
An operator that divides the x,y and z values of each vertex of the quadrilateral by a parameter.
const CFLQuad3< T > & operator+=(const CFLPoint3< double > &flpPoint)
Offset operator.
CFLQuad3(const CFLFigure *pFlf)
As an initialization constructor, call the Set() function for the DeclType of CFLFigure& flf .
CFLQuad3< T > operator*(const CFLPoint3< double > &flpPoint) const
An operator that multiplies the x,y and z values of each vertex of the quadrilateral by a parameter.
virtual const CResult Set(const CFLQuad< float > *pFlqQuad)
As a parameter setting function, set CFLQuad3 with each vertex (z = 0) of CFLQuad.
CFLQuad3(const CFLQuad< double > *pFlqQuad)
Initialization constructor, initializing CFLQuad3 with each vertex of CFLQuad (z = 0).
CFLQuad3(const CFLFigure &flf)
As an initialization constructor, call the Set() function for the DeclType of CFLFigure& flf .
const CFLQuad3< T > & operator+=(const Base::TPoint3< double > &tpPoint)
Offset operator.
virtual const CResult Set(int32_t x0, int32_t y0, int32_t z0, int32_t x1, int32_t y1, int32_t z1, int32_t x2, int32_t y2, int32_t z2, int32_t x3, int32_t y3, int32_t z3)
Parameter setting function.
CFLQuad3< T > operator/(const CFLPoint3< double > &flpPoint) const
An operator that divides the x,y and z values of each vertex of the quadrilateral by a parameter.
virtual const CResult Set(const Base::TPoint3< float > *pTpPoint0, const Base::TPoint3< float > *pTpPoint1, const Base::TPoint3< float > *pTpPoint2, const Base::TPoint3< float > *pTpPoint3)
Parameter setting function.
const CFLQuad3< T > & operator*=(const CFLPoint3< float > &flpPoint)
An operator that multiplies the x,y,z values of each vertex of a quadrilateral by a parameter.
virtual const CResult Set(const CFLQuad3< double > *pFlqQuad)
Parameter setting function.
CFLQuad3(const Base::TPoint3< double > *pTpPoint0, const Base::TPoint3< double > *pTpPoint1, const Base::TPoint3< double > *pTpPoint2, const Base::TPoint3< double > *pTpPoint3)
initialization constructor
virtual const CResult GetCenterOfGravity(double &x, double &y, double &z) const override
Get the center of gravity of the 3D object.
virtual const CResult Set(const Base::TQuad< double > *pTqQuad)
As a parameter setting function, set CFLQuad3 with each vertex (z = 0) of TQuad.
CFLQuad3(const CFLQuad3< float > &flqQuad)
copy constructor
CFLQuad3< T > operator/(const Base::TPoint3< float > &tpPoint) const
An operator that divides the x,y and z values of each vertex of the quadrilateral by a parameter.
CFLQuad3(const Base::TPoint3< float > &tpPoint0, const Base::TPoint3< float > &tpPoint1, const Base::TPoint3< float > &tpPoint2, const Base::TPoint3< float > &tpPoint3)
initialization constructor
CFLQuad3(const Base::TQuad3< double > &tqQuad)
With initialization constructor, initialize CFLQuad3 with each vertex of TQuad3.
CFLQuad3(const CFLQuad3< double > *pFlqQuad)
copy constructor
const CFLQuad3< T > & operator=(const CFLQuad< float > &flqQuad)
assignment operator
const CFLQuad3< T > & operator=(const CFLQuad3< double > &flqQuad)
assignment operator
virtual const CResult Set(const CFLPoint3< float > *pFlpPoint0, const CFLPoint3< float > *pFlpPoint1, const CFLPoint3< float > *pFlpPoint2, const CFLPoint3< float > *pFlpPoint3)
Parameter setting function.
CFLQuad3(const CFLQuad< double > &flqQuad)
Initialization constructor, initializing CFLQuad3 with each vertex of CFLQuad (z = 0).
CFLQuad3< T > operator-() const
An operator that returns a point with the signs of x, y and z values inverted.
CFLQuad3< T > operator/(const CFLPoint3< float > &flpPoint) const
An operator that divides the x,y and z values of each vertex of the quadrilateral by a parameter.
virtual const CResult Set(const CFLQuad< double > *pFlqQuad)
As a parameter setting function, set CFLQuad3 with each vertex (z = 0) of CFLQuad.
CFLQuad3< T > operator-(const double &value) const
Offset operator.
virtual const CResult Set(const CFLQuad3< float > *pFlqQuad)
Parameter setting function.
CFLQuad3(const Base::TQuad< double > *pTqQuad)
Initialization constructor, initializing CFLQuad3 with each vertex of TQuad (z = 0).
CFLQuad3(const CFLQuad< float > &flqQuad)
Initialization constructor, initializing CFLQuad3 with each vertex of CFLQuad (z = 0).
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 CFLQuad3< T > & operator+=(const CFLPoint3< float > &flpPoint)
Offset operator.
virtual EFigureTemplateType GetTemplateType() const override
virtual const CResult Multiply(double x, double y, double z) override
virtual bool IsSpecEqual(const CFLFigure *pFlfRhs, EFigureSpecCompareType eSpecType=EFigureSpecCompareType_Coordinates) const override
CFLQuad3(const Base::TQuad< float > *pTqQuad)
Initialization constructor, initializing CFLQuad3 with each vertex of TQuad (z = 0).
CFLQuad3(const Base::TPoint3< float > *pTpPoint0, const Base::TPoint3< float > *pTpPoint1, const Base::TPoint3< float > *pTpPoint2, const Base::TPoint3< float > *pTpPoint3)
initialization constructor
const CFLQuad3< T > & operator-=(const Base::TPoint3< double > &tpPoint)
Offset operator.
CFLQuad3(const CFLPoint3< double > *pFlpPoint0, const CFLPoint3< double > *pFlpPoint1, const CFLPoint3< double > *pFlpPoint2, const CFLPoint3< double > *pFlpPoint3)
initialization constructor
virtual const CResult GetBoundingBox(float &f32MinX, float &f32MinY, float &f32MinZ, float &f32MaxX, float &f32MaxY, float &f32MaxZ) const override
Returns the bounding box (AABB).
virtual const CResult Set(const CFLFigure *pFlf) override
friend CFLQuad3< T > operator+(const double &value, const CFLQuad3< T > &quad)
Offset operator.
Definition FLImagingFoundation/FLQuad3.h:1279
virtual const CResult Set(float x0, float y0, float z0, float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3)
Parameter setting function.
virtual const CResult Set(const Base::TPoint3< float > &tpPoint0, const Base::TPoint3< float > &tpPoint1, const Base::TPoint3< float > &tpPoint2, const Base::TPoint3< float > &tpPoint3)
Parameter setting function.
virtual const CResult Transform(const CMatrix< double > *pMatTransform) override
Transforms the object using a transformation matrix (4x4 or 3x3).
virtual CFLPoint< double > GetCenterOfGravity() const override
virtual const CResult Set(const CFLQuad< double > &flqQuad)
As a parameter setting function, set CFLQuad3 with each vertex (z = 0) of CFLQuad.
virtual const CResult Set(double x0, double y0, double z0, double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3)
Parameter setting function.
friend CFLQuad3< T > operator/(const double &value, const CFLQuad3< T > &quad)
An operator that divides the x, y, z values of each vertex of the quadrilateral into parameters.
Definition FLImagingFoundation/FLQuad3.h:1340
virtual const CResult GetBoundingBox(double &f64MinX, double &f64MinY, double &f64MinZ, double &f64MaxX, double &f64MaxY, double &f64MaxZ) const override
Returns the bounding box (AABB).
const CFLQuad3< T > & operator*=(const Base::TPoint3< float > &tpPoint)
An operator that multiplies the x,y,z values of each vertex of a quadrilateral by a parameter.
CFLQuad3< T > operator/(const double &value) const
An operator that divides the x,y and z values of each vertex of the quadrilateral by a parameter.
CFLQuad3(double x0, double y0, double z0, double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3)
initialization constructor
CFLQuad3(int32_t x0, int32_t y0, int32_t z0, int32_t x1, int32_t y1, int32_t z1, int32_t x2, int32_t y2, int32_t z2, int32_t x3, int32_t y3, int32_t z3)
initialization constructor
A class representing a quadrangle.
Definition FLImagingFoundation/FLQuad.h:24
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:423
EFigureSpecCompareType
Definition FLImagingFoundation/DefinitionsFigure.h:3579
@ EFigureSpecCompareType_Coordinates
Definition FLImagingFoundation/DefinitionsFigure.h:3584