FLImaging 6.7.1.3
FLPoint3.h
1#pragma once
2
3#include "FLPoint.h"
4
6namespace FLImaging
7{
9 namespace Foundation
10 {
11 template<typename Ty>
12 class FL_EXPORT CFLGeometry3DVector;
13
14 template<typename Ty>
15 class FL_EXPORT CFLGeometry3DDirection;
16
17 template<typename Ty>
18 class FL_EXPORT CMatrixFor3D;
19
20 template<typename Ty>
21 class FL_EXPORT CMatrixFor3DTransform;
22
23 template<typename Ty>
24 class FL_EXPORT CFLGeometry3DAxis;
25
26 template<typename Ty>
27 class FL_EXPORT CFLGeometry3DCoordinateSystemRH;
28
34 template<typename Ty>
35 class FL_EXPORT CFLPoint3 : public CFLPoint<Ty>
36 {
37 public:
42 Ty z;
43
49
54 virtual ~CFLPoint3();
55
67 virtual void Get(Ty& tX, Ty& tY, Ty& tZ) const;
68
76 virtual double GetMagnitude() const;
77
85 virtual double GetSquareMagnitude() const;
86
102 virtual const CResult Offset(double x, double y, double z);
103
119 virtual const CResult Offset(float x, float y, float z);
120
136 virtual const CResult Offset(int32_t x, int32_t y, int32_t z);
137
153 virtual const CResult Offset(int64_t x, int64_t y, int64_t z);
154
166 virtual const CResult Offset(const CFLPoint3<double>& flp3);
167
179 virtual const CResult Offset(const CFLPoint3<float>& flp3);
180
192 virtual const CResult Offset(const CFLPoint3<double>* pFlp3);
193
205 virtual const CResult Offset(const CFLPoint3<float>* pFlp3);
206
218 virtual const CResult Add(const CFLPoint3<Ty>& rhs);
219
235 virtual const CResult Add(Ty tX, Ty tY, Ty tZ);
236
248 virtual const CResult Subtract(const CFLPoint3<Ty>& rhs);
249
265 virtual const CResult Subtract(Ty tX, Ty tY, Ty tZ);
266
282 virtual const CResult Multiply(double f64MulX, double f64MulY, double f64MulZ);
283
299 virtual const CResult Multiply(float f32MulX, float f32MulY, float f32MulZ);
300
316 virtual const CResult Multiply(int32_t i32MulX, int32_t i32MulY, int32_t i32MulZ);
317
333 virtual const CResult Multiply(int64_t i64MulX, int64_t i64MulY, int64_t i64MulZ);
334
346 virtual const CResult Multiply(const CFLPoint3<double>& flp3);
347
359 virtual const CResult Multiply(const CFLPoint3<float>& flp3);
360
372 virtual const CResult Multiply(const CFLPoint3<double>* pFlp3);
373
385 virtual const CResult Multiply(const CFLPoint3<float>* pFlp3);
386
398 virtual const CResult Multiply(double f64Scalar);
399
411 virtual const CResult Multiply(float f32Scalar);
412
424 virtual const CResult Multiply(int32_t i32Scalar);
425
437 virtual const CResult Multiply(int64_t i64Scalar);
438
452 virtual const CResult MatMul(const CMatrixFor3D<float>& mat3D);
453
467 virtual const CResult MatMul(const CMatrixFor3D<double>& mat3D);
468
482 virtual const CResult MatMul(const CMatrixFor3D<float>* pMat3D);
483
497 virtual const CResult MatMul(const CMatrixFor3D<double>* pMat3D);
498
499 operator CFLPoint<float>()
500 {
501 return CFLPoint<float>(this);
502 }
503
504 operator CFLPoint<double>()
505 {
506 return CFLPoint<double>(this);
507 }
508
523
538
553
568
583
598
613
628
640 virtual const CResult Divide(double f64Scalar);
641
653 virtual const CResult Divide(float f32Scalar);
654
666 virtual const CResult Divide(int32_t i32Scalar);
667
679 virtual const CResult Divide(int64_t i64Scalar);
680
696 virtual const CResult Cross(float f32X, float f32Y, float f32Z);
697
713 virtual const CResult Cross(double f64X, double f64Y, double f64Z);
714
730 virtual const CResult Cross(int32_t i32X, int32_t i32Y, int32_t i32Z);
731
747 virtual const CResult Cross(int64_t i64X, int64_t i64Y, int64_t i64Z);
748
760 virtual const CResult Cross(const CFLPoint3<float>& rhs);
761
773 virtual const CResult Cross(const CFLPoint3<double>& rhs);
774
786 virtual const CResult Cross(const CFLPoint3<float>* pRhs);
787
799 virtual const CResult Cross(const CFLPoint3<double>* pRhs);
800
814 virtual double Dot(float f32X, float f32Y, float f32Z) const;
815
829 virtual double Dot(double f64X, double f64Y, double f64Z) const;
830
844 virtual double Dot(int32_t i32X, int32_t i32Y, int32_t i32Z) const;
845
859 virtual double Dot(int64_t i64X, int64_t i64Y, int64_t i64Z) const;
860
870 virtual double Dot(const CFLPoint3<float>& rhs) const;
871
881 virtual double Dot(const CFLPoint3<double>& rhs) const;
882
892 virtual double Dot(const CFLPoint3<float>* pRhs) const;
893
903 virtual double Dot(const CFLPoint3<double>* pRhs) const;
904
926 virtual const CResult Scale(double f64PivotX, double f64PivotY, double f64PivotZ, double f64RatioX, double f64RatioY, double f64RatioZ);
927
949 virtual const CResult Scale(float f32PivotX, float f32PivotY, float f32PivotZ, float f32RatioX, float f32RatioY, float f32RatioZ);
950
968 virtual const CResult Scale(const CFLPoint3<double>& flp3Pivot, double f64RatioX, double f64RatioY, double f64RatioZ);
969
987 virtual const CResult Scale(const CFLPoint3<float>& flp3Pivot, float f32RatioX, float f32RatioY, float f32RatioZ);
988
1006 virtual const CResult Scale(const CFLPoint3<double>* pFlp3Pivot, double f64RatioX, double f64RatioY, double f64RatioZ);
1007
1025 virtual const CResult Scale(const CFLPoint3<float>* pFlp3Pivot, float f32RatioX, float f32RatioY, float f32RatioZ);
1026
1040 virtual const CResult Scale(const CFLPoint3<double>& flp3Pivot, double f64Ratio);
1041
1055 virtual const CResult Scale(const CFLPoint3<float>& flp3Pivot, float f32Ratio);
1056
1070 virtual const CResult Scale(const CFLPoint3<double>* pFlp3Pivot, double f64Ratio);
1071
1085 virtual const CResult Scale(const CFLPoint3<float>* pFlp3Pivot, float f32Ratio);
1086
1102 virtual const CResult Mirror(double pivotX, double pivotY, double pivotZ);
1103
1119 virtual const CResult Mirror(float pivotX, float pivotY, float pivotZ);
1120
1136 virtual const CResult Mirror(int32_t pivotX, int32_t pivotY, int32_t pivotZ);
1137
1153 virtual const CResult Mirror(int64_t pivotX, int64_t pivotY, int64_t pivotZ);
1154
1166 virtual const CResult Mirror(const CFLPoint3<double>& flp3Pivot);
1167
1179 virtual const CResult Mirror(const CFLPoint3<float>& flp3Pivot);
1180
1192 virtual const CResult Mirror(const CFLPoint3<double>* pFlp3Pivot);
1193
1205 virtual const CResult Mirror(const CFLPoint3<float>* pFlp3Pivot);
1206
1220 virtual const CResult Mirror(const CFLGeometry3DAxis<double>& axis3Pivot);
1221
1235 virtual const CResult Mirror(const CFLGeometry3DAxis<float>& axis3Pivot);
1236
1250 virtual const CResult Mirror(const CFLGeometry3DAxis<double>* pAxis3Pivot);
1251
1265 virtual const CResult Mirror(const CFLGeometry3DAxis<float>* pAxis3Pivot);
1266
1280 virtual const CResult Mirror(const CFLGeometry3DCoordinateSystemRH<double>& coordSysRHPlane);
1281
1295 virtual const CResult Mirror(const CFLGeometry3DCoordinateSystemRH<float>& coordSysRHPlane);
1296
1310 virtual const CResult Mirror(const CFLGeometry3DCoordinateSystemRH<double>* pCoordSysRHPlane);
1311
1325 virtual const CResult Mirror(const CFLGeometry3DCoordinateSystemRH<float>* pCoordSysRHPlane);
1326
1342 virtual const CResult Rotate(const CFLGeometry3DAxis<double>& axis, double f64Angle);
1343
1359 virtual const CResult Rotate(const CFLGeometry3DAxis<float>& axis, double f64Angle);
1360
1376 virtual const CResult Rotate(const CFLGeometry3DAxis<double>* pAxis, double f64Angle);
1377
1393 virtual const CResult Rotate(const CFLGeometry3DAxis<float>* pAxis, double f64Angle);
1394
1408 virtual const CResult Transform(const CMatrixFor3DTransform<double>& transform);
1409
1423 virtual const CResult Transform(const CMatrixFor3DTransform<float>& transform);
1424
1438 virtual const CResult Transform(const CMatrixFor3DTransform<double>* pTransform);
1439
1453 virtual const CResult Transform(const CMatrixFor3DTransform<float>* pTransform);
1454
1466 virtual double GetDistance(const CFLPoint3<double>& flp3) const;
1467
1479 virtual double GetDistance(const CFLPoint3<float>& flp3) const;
1480
1492 virtual double GetDistance(const CFLPoint3<double>* pFlp3) const;
1493
1505 virtual double GetDistance(const CFLPoint3<float>* pFlp3) const;
1506
1518 virtual const CResult Normalize();
1519
1530
1543
1555 virtual CFLPoint3<double> GetUnitVector(const CFLPoint3<double>* pFlp3Target) const;
1556
1574 virtual const CResult SetLinearInterpolation(const CFLPoint3<Ty>& flp3Start, const CFLPoint3<Ty>& flp3End, double f64T);
1575
1576 virtual void Clear() override;
1577
1578 virtual EFigureDeclType GetDeclType() const override;
1579
1580 virtual bool IsValid() const override;
1581 virtual bool IsFigureValid() const override;
1582
1583 virtual const CResult MakeFigureInvalid() override;
1584
1586 virtual bool IsSpecEqual(const CFLFigure* pFlfRhs, EFigureSpecCompareType eSpecType = EFigureSpecCompareType_Coordinates) const override;
1587
1598
1609
1621 bool operator==(const CFLPoint3<double>& flp3) const;
1622
1634 bool operator!=(const CFLPoint3<double>& flp3) const;
1635
1647 const CFLPoint3<Ty>& operator+=(const double& value);
1648
1661
1673 const CFLPoint3<Ty>& operator-=(const double& value);
1674
1687
1699 const CFLPoint3<Ty>& operator*=(const double& value);
1700
1712 const CFLPoint3<Ty>& operator*=(const float& value);
1713
1725 const CFLPoint3<Ty>& operator*=(const int32_t& value);
1726
1738 const CFLPoint3<Ty>& operator*=(const int64_t& value);
1739
1752
1764 const CFLPoint3<Ty>& operator/=(const double& value);
1765
1778
1790 CFLPoint3<double> operator+(const double& value) const;
1791
1804
1816 CFLPoint3<double> operator-(const double& value) const;
1817
1830
1842 CFLPoint3<double> operator*(const double& value) const;
1843
1856
1868 CFLPoint3<double> operator/(const double& value) const;
1869
1882
1883
1895 virtual const CResult Assign(const CFLPoint3<Ty>& flp3);
1896
1910 virtual const CResult Assign(const Base::TPoint3<Ty>& tp3);
1911
1913 // Set
1914
1915 virtual const CResult Set(const CFLFigure& flf) override;
1916 virtual const CResult Set(const CFLFigure* pFlf) override;
1917
1933 virtual const CResult Set(double x, double y, double z);
1934
1950 virtual const CResult Set(float x, float y, float z);
1951
1967 virtual const CResult Set(int32_t x, int32_t y, int32_t z);
1968
1984 virtual const CResult Set(int64_t x, int64_t y, int64_t z);
1985
2001 virtual const CResult Set(const CFLPoint<double>& flp, double z = 0.);
2002
2018 virtual const CResult Set(const CFLPoint<float>& flp, float z = 0.);
2019
2035 virtual const CResult Set(const CFLPoint<int32_t>& flp, int32_t z = 0.);
2036
2052 virtual const CResult Set(const CFLPoint<int64_t>& flp, int64_t z = 0.);
2053
2069 virtual const CResult Set(const CFLPoint<double>* pFlp, double z = 0.);
2070
2086 virtual const CResult Set(const CFLPoint<float>* pFlp, float z = 0.);
2087
2103 virtual const CResult Set(const CFLPoint<int32_t>* pFlp, int32_t z = 0.);
2104
2120 virtual const CResult Set(const CFLPoint<int64_t>* pFlp, int64_t z = 0.);
2121
2133 virtual const CResult Set(const CFLPoint3<double>& flp3);
2134
2146 virtual const CResult Set(const CFLPoint3<float>& flp3);
2147
2159 virtual const CResult Set(const CFLPoint3<double>* pFlp3);
2160
2172 virtual const CResult Set(const CFLPoint3<float>* pFlp3);
2173
2187 virtual const CResult Set(const Base::TPoint3<double>& tp3);
2188
2202 virtual const CResult Set(const Base::TPoint3<float>& tp3);
2203
2217 virtual const CResult Set(const Base::TPoint3<double>* pTp3);
2218
2232 virtual const CResult Set(const Base::TPoint3<float>* pTp3);
2233
2243 virtual const CResult Set(const CFLGeometry3DVector<double>& vec3);
2244
2254 virtual const CResult Set(const CFLGeometry3DVector<float>& vec3);
2255
2256
2266 virtual const CResult Set(const CFLGeometry3DVector<double>* pVec3);
2267
2277 virtual const CResult Set(const CFLGeometry3DVector<float>* pVec3);
2278
2279
2289 virtual const CResult Set(const CFLGeometry3DDirection<double>& dir);
2290
2300 virtual const CResult Set(const CFLGeometry3DDirection<float>& dir);
2301
2302
2312 virtual const CResult Set(const CFLGeometry3DDirection<double>* pDir);
2313
2323 virtual const CResult Set(const CFLGeometry3DDirection<float>* pDir);
2324
2325
2326
2328 // Constructor
2329
2342
2354 CFLPoint3(const CFLFigure* pFlf);
2355
2367 CFLPoint3(double x, double y, double z);
2368
2380 CFLPoint3(float x, float y, float z);
2381
2393 CFLPoint3(int32_t x, int32_t y, int32_t z);
2394
2406 CFLPoint3(int64_t x, int64_t y, int64_t z);
2407
2419 CFLPoint3(const CFLPoint<double>& flp, double z = 0.);
2420
2432 CFLPoint3(const CFLPoint<float>& flp, float z = 0.);
2433
2445 CFLPoint3(const CFLPoint<int32_t>& flp, int32_t z = 0.);
2446
2458 CFLPoint3(const CFLPoint<int64_t>& flp, int64_t z = 0.);
2459
2471 CFLPoint3(const CFLPoint<double>* pFlp, double z = 0.);
2472
2484 CFLPoint3(const CFLPoint<float>* pFlp, float z = 0.);
2485
2497 CFLPoint3(const CFLPoint<int32_t>* pFlp, int32_t z = 0.);
2498
2510 CFLPoint3(const CFLPoint<int64_t>* pFlp, int64_t z = 0.);
2511
2520
2529
2538
2547
2558
2569
2580
2591
2602
2613
2624
2635
2636
2647
2658
2659
2670
2681
2682 SupportToDuplicateObject(CFLPoint3<Ty>, *this);
2683 DeclareGetClassType();
2684
2685
2686 private:
2687 using CFLPoint<Ty>::GetDistance;
2688 };
2689
2690 typedef CFLPoint3<float> CFLPoint3F;
2691 typedef CFLPoint3<double> CFLPoint3D;
2692 }
2693}
Simplified class representing a 3-D point.
Definition TPoint3.h:37
FLImaging module execution result object.
Definition ResultsDef.h:1596
A base class of classes representing figures.
Definition FLFigure.h:27
virtual bool IsSpecEqual(const CFLFigure &flfRhs, EFigureSpecCompareType eSpecType=EFigureSpecCompareType_Coordinates) const
A class that represents axis in 3D space.
Definition FLGeometry3DAxis.h:31
A class that represents right-handed coordinate system in 3D space.
Definition FLGeometry3DCoordinateSystemRH.h:32
A class representing unit vector in 3D space.
Definition FLGeometry3DDirection.h:32
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:36
bool operator!=(const CFLPoint3< double > &flp3) const
Comparison operator.
virtual bool IsSpecEqual(const CFLFigure *pFlfRhs, EFigureSpecCompareType eSpecType=EFigureSpecCompareType_Coordinates) const override
virtual const CResult Subtract(Ty tX, Ty tY, Ty tZ)
virtual const CResult Mirror(const CFLGeometry3DCoordinateSystemRH< float > *pCoordSysRHPlane)
virtual const CResult Set(const CFLFigure *pFlf) override
virtual const CResult Set(const CFLFigure &flf) override
virtual const CResult Set(int32_t x, int32_t y, int32_t z)
virtual const CResult Set(const CFLPoint3< float > *pFlp3)
CFLPoint3(float x, float y, float z)
virtual const CResult Offset(int32_t x, int32_t y, int32_t z)
virtual const CResult MatMul(const CMatrixFor3D< float > *pMat3D)
virtual double Dot(int64_t i64X, int64_t i64Y, int64_t i64Z) const
virtual const CResult Cross(const CFLPoint3< float > &rhs)
virtual const CResult Mirror(const CFLPoint3< float > *pFlp3Pivot)
CFLPoint3(const CFLGeometry3DDirection< float > &dir)
CFLPoint3(const CFLPoint3< double > &flp3)
virtual const CResult Set(const CFLGeometry3DVector< float > *pVec3)
CFLPoint3< double > operator-(const double &value) const
Offset operator[offset].
CFLPoint3< double > operator*(const double &value) const
An operator that multiplies the x and y values of the object by a parameter.
virtual const CResult Mirror(float pivotX, float pivotY, float pivotZ)
const CFLPoint3< Ty > & operator*=(const CMatrixFor3D< float > &mat3D)
An operator that multiplies multiplies a 3x3 matrix to this. this = mat3D * this
CFLPoint3< Ty > operator*(const CMatrixFor3D< float > &mat3D) const
An operator that multiplies multiplies a 3x3 matrix.
float z
Definition FLPoint3.h:42
virtual const CResult Multiply(int32_t i32Scalar)
virtual const CResult Set(const CFLPoint< double > *pFlp, double z=0.)
CFLPoint3(const CFLGeometry3DDirection< double > *pDir)
virtual const CResult SetLinearInterpolation(const CFLPoint3< Ty > &flp3Start, const CFLPoint3< Ty > &flp3End, double f64T)
Set this to the CFLPoint3 that is linearly interpolated between two CFLPoint3 objects.
CFLPoint3(const Base::TPoint3< float > &tp3)
virtual const CResult Set(const CFLGeometry3DDirection< float > &dir)
virtual const CResult Set(const CFLPoint3< double > *pFlp3)
virtual const CResult Transform(const CMatrixFor3DTransform< float > *pTransform)
virtual const CResult Offset(float x, float y, float z)
CFLPoint3< Ty > operator*(const CMatrixFor3D< double > *pMat3D) const
An operator that multiplies multiplies a 3x3 matrix.
virtual const CResult Multiply(double f64MulX, double f64MulY, double f64MulZ)
virtual const CResult Divide(int32_t i32Scalar)
const CFLPoint3< Ty > & operator=(const Base::TPoint3< Ty > &tp3)
CFLPoint3(const CFLGeometry3DDirection< double > &dir)
virtual const CResult Mirror(const CFLPoint3< double > &flp3Pivot)
virtual const CResult Offset(int64_t x, int64_t y, int64_t z)
const CFLPoint3< Ty > & operator*=(const CFLPoint3< double > &flp3)
An operator that multiplies the x and y values of the object by a parameter.
virtual const CResult Add(Ty tX, Ty tY, Ty tZ)
virtual const CResult Subtract(const CFLPoint3< Ty > &rhs)
virtual const CResult Cross(float f32X, float f32Y, float f32Z)
virtual const CResult Mirror(const CFLGeometry3DAxis< float > &axis3Pivot)
virtual const CResult Set(const CFLPoint< int64_t > *pFlp, int64_t z=0.)
virtual const CResult Set(const CFLPoint< float > *pFlp, float z=0.)
CFLPoint3(const CFLPoint3< float > *pFlp3)
virtual const CResult Offset(const CFLPoint3< float > *pFlp3)
virtual const CResult Set(const Base::TPoint3< float > *pTp3)
const CFLPoint3< Ty > & operator/=(const CFLPoint3< double > &flp3)
An operator that divides the x, y, z values of the object into parameters.
virtual const CResult Assign(const CFLPoint3< Ty > &flp3)
virtual const CResult Set(const CFLPoint< float > &flp, float z=0.)
virtual double GetDistance(const CFLPoint3< float > &flp3) const
Get the shortest distance to the parameter's object.
const CFLPoint3< Ty > & operator=(const CFLPoint3< Ty > &flp3)
virtual const CResult Rotate(const CFLGeometry3DAxis< float > &axis, double f64Angle)
virtual const CResult Mirror(const CFLGeometry3DAxis< double > &axis3Pivot)
virtual const CResult Mirror(const CFLGeometry3DAxis< double > *pAxis3Pivot)
virtual const CResult Scale(const CFLPoint3< float > *pFlp3Pivot, float f32RatioX, float f32RatioY, float f32RatioZ)
virtual const CResult MatMul(const CMatrixFor3D< float > &mat3D)
CFLPoint3(const CFLPoint< int64_t > *pFlp, int64_t z=0.)
CFLPoint3(const CFLPoint3< double > *pFlp3)
const CFLPoint3< Ty > & operator-=(const CFLPoint3< double > &flp3)
Offset operator[offset].
virtual void Clear() override
Clear an object's variable.
virtual const CResult Mirror(const CFLGeometry3DCoordinateSystemRH< double > &coordSysRHPlane)
bool operator==(const CFLPoint3< double > &flp3) const
Comparison operator.
virtual const CResult Multiply(const CFLPoint3< double > &flp3)
virtual const CResult Scale(const CFLPoint3< float > *pFlp3Pivot, float f32Ratio)
CFLPoint3(const CFLGeometry3DDirection< float > *pDir)
virtual const CResult Normalize()
Function to set this the unit vector from the origin to this
virtual const CResult Offset(const CFLPoint3< double > *pFlp3)
virtual const CResult Set(const CFLGeometry3DVector< double > *pVec3)
CFLPoint3(const CFLGeometry3DVector< float > &vec3)
virtual const CResult Divide(float f32Scalar)
virtual const CResult Set(const CFLGeometry3DDirection< double > *pDir)
CFLPoint3< double > operator+(const double &value) const
Offset operator[offset].
CFLPoint3< double > operator-(const CFLPoint3< double > &flp3) const
Offset operator[offset].
CFLPoint3(int64_t x, int64_t y, int64_t z)
virtual const CResult Multiply(float f32Scalar)
virtual const CResult Assign(const Base::TPoint3< Ty > &tp3)
virtual const CResult Set(const CFLPoint< int32_t > *pFlp, int32_t z=0.)
virtual bool IsValid() const override
CFLPoint3< Ty > operator*(const CMatrixFor3D< double > &mat3D) const
An operator that multiplies multiplies a 3x3 matrix.
virtual double GetDistance(const CFLPoint3< float > *pFlp3) const
Get the shortest distance to the parameter's object.
CFLPoint3(const CFLPoint< double > *pFlp, double z=0.)
virtual const CResult Set(const CFLPoint3< float > &flp3)
const CFLPoint3< Ty > & operator*=(const int64_t &value)
An operator that multiplies the x and y values of the object by a parameter.
virtual const CResult Cross(int32_t i32X, int32_t i32Y, int32_t i32Z)
CFLPoint3(const CFLPoint< int32_t > &flp, int32_t z=0.)
virtual double Dot(const CFLPoint3< double > *pRhs) const
virtual const CResult MatMul(const CMatrixFor3D< double > *pMat3D)
CFLPoint3(const CFLPoint< double > &flp, double z=0.)
virtual const CResult Scale(const CFLPoint3< double > &flp3Pivot, double f64Ratio)
virtual const CResult Set(const CFLPoint< int32_t > &flp, int32_t z=0.)
virtual void Get(Ty &tX, Ty &tY, Ty &tZ) const
virtual double Dot(int32_t i32X, int32_t i32Y, int32_t i32Z) const
virtual const CResult Mirror(const CFLGeometry3DCoordinateSystemRH< double > *pCoordSysRHPlane)
virtual double Dot(const CFLPoint3< float > *pRhs) const
virtual const CResult Set(const CFLGeometry3DVector< float > &vec3)
const CFLPoint3< Ty > & operator-=(const double &value)
Offset operator[offset].
virtual const CResult Set(double x, double y, double z)
virtual const CResult Set(float x, float y, float z)
virtual double GetDistance(const CFLPoint3< double > *pFlp3) const
Get the shortest distance to the parameter's object.
virtual const CResult Cross(const CFLPoint3< float > *pRhs)
CFLPoint3< double > operator*(const CFLPoint3< double > &flp3) const
An operator that multiplies the x and y values of the object by a parameter.
virtual const CResult Multiply(const CFLPoint3< float > *pFlp3)
CFLPoint3(const CFLPoint3< float > &flp3)
CFLPoint3< double > operator/(const double &value) const
An operator that divides the x, y, z values of the object into parameters.
virtual const CResult MakeFigureInvalid() override
Make the figure invalid. (For example, set the coordinates of the point to invalid x,...
virtual const CResult Scale(const CFLPoint3< double > &flp3Pivot, double f64RatioX, double f64RatioY, double f64RatioZ)
virtual const CResult Multiply(const CFLPoint3< float > &flp3)
virtual const CResult Rotate(const CFLGeometry3DAxis< float > *pAxis, double f64Angle)
virtual const CResult Multiply(double f64Scalar)
virtual const CResult Rotate(const CFLGeometry3DAxis< double > *pAxis, double f64Angle)
const CFLPoint3< Ty > & operator*=(const CMatrixFor3D< double > &mat3D)
An operator that multiplies multiplies a 3x3 matrix to this. this = mat3D * this
virtual const CResult Add(const CFLPoint3< Ty > &rhs)
virtual const CResult Mirror(const CFLGeometry3DCoordinateSystemRH< float > &coordSysRHPlane)
virtual const CResult Offset(double x, double y, double z)
virtual const CResult Scale(const CFLPoint3< double > *pFlp3Pivot, double f64Ratio)
virtual const CResult Set(const CFLPoint3< double > &flp3)
virtual double Dot(float f32X, float f32Y, float f32Z) const
virtual double Dot(double f64X, double f64Y, double f64Z) const
CFLPoint3(const CFLGeometry3DVector< float > *pVec3)
const CFLPoint3< Ty > & operator*=(const double &value)
An operator that multiplies the x and y values of the object by a parameter.
virtual CFLPoint3< double > GetUnitVector(const CFLPoint3< double > *pFlp3Target) const
A function that calculates the unit vector from that object to the parameter object.
CFLPoint3(const CFLPoint< float > *pFlp, float z=0.)
CFLPoint3< double > GetUnitVector() const
Function to get the unit vector from the origin to this
virtual const CResult Set(const CFLGeometry3DVector< double > &vec3)
CFLPoint3(const CFLPoint< int64_t > &flp, int64_t z=0.)
CFLPoint3< double > operator+(const CFLPoint3< double > &flp3) const
Offset operator[offset].
virtual const CResult Divide(int64_t i64Scalar)
virtual const CResult Scale(double f64PivotX, double f64PivotY, double f64PivotZ, double f64RatioX, double f64RatioY, double f64RatioZ)
virtual const CResult Set(const Base::TPoint3< float > &tp3)
virtual double GetSquareMagnitude() const
virtual const CResult Transform(const CMatrixFor3DTransform< float > &transform)
virtual const CResult Cross(const CFLPoint3< double > &rhs)
virtual const CResult Mirror(const CFLGeometry3DAxis< float > *pAxis3Pivot)
virtual const CResult Divide(double f64Scalar)
virtual const CResult Transform(const CMatrixFor3DTransform< double > *pTransform)
CFLPoint3< Ty > operator*(const CMatrixFor3D< float > *pMat3D) const
An operator that multiplies multiplies a 3x3 matrix.
virtual const CResult Multiply(int64_t i64MulX, int64_t i64MulY, int64_t i64MulZ)
virtual const CResult Scale(const CFLPoint3< float > &flp3Pivot, float f32RatioX, float f32RatioY, float f32RatioZ)
virtual const CResult MatMul(const CMatrixFor3D< double > &mat3D)
virtual const CResult Set(const CFLGeometry3DDirection< double > &dir)
virtual bool IsFigureValid() const override
virtual const CResult Mirror(double pivotX, double pivotY, double pivotZ)
virtual const CResult Set(const Base::TPoint3< double > *pTp3)
virtual const CResult Multiply(const CFLPoint3< double > *pFlp3)
virtual const CResult Cross(double f64X, double f64Y, double f64Z)
virtual const CResult Set(const CFLGeometry3DDirection< float > *pDir)
CFLPoint3(const CFLPoint< int32_t > *pFlp, int32_t z=0.)
virtual const CResult Set(const CFLPoint< int64_t > &flp, int64_t z=0.)
virtual const CResult Set(const Base::TPoint3< double > &tp3)
virtual const CResult Mirror(int64_t pivotX, int64_t pivotY, int64_t pivotZ)
virtual double Dot(const CFLPoint3< double > &rhs) const
CFLPoint3(const CFLPoint< float > &flp, float z=0.)
virtual const CResult Transform(const CMatrixFor3DTransform< double > &transform)
CFLPoint3(const Base::TPoint3< double > *pTp3)
virtual const CResult Offset(const CFLPoint3< float > &flp3)
virtual const CResult Mirror(const CFLPoint3< float > &flp3Pivot)
const CFLPoint3< Ty > & operator*=(const int32_t &value)
An operator that multiplies the x and y values of the object by a parameter.
CFLPoint3(double x, double y, double z)
virtual const CResult Mirror(const CFLPoint3< double > *pFlp3Pivot)
CFLPoint3(const CFLFigure &flf)
initialization constructor
const CFLPoint3< Ty > & operator*=(const CMatrixFor3D< double > *pMat3D)
An operator that multiplies multiplies a 3x3 matrix to this. this = pMat3D * this
const CFLPoint3< Ty > & operator/=(const double &value)
An operator that divides the x, y, z values of the object into parameters.
virtual EFigureDeclType GetDeclType() const override
const CFLPoint3< Ty > & operator*=(const CMatrixFor3D< float > *pMat3D)
An operator that multiplies multiplies a 3x3 matrix to this. this = pMat3D * this
CFLPoint3< double > GetUnitVector(const CFLPoint3< double > &flp3Target) const
A function that calculates the unit vector from that object to the parameter object.
virtual double Dot(const CFLPoint3< float > &rhs) const
virtual const CResult Cross(int64_t i64X, int64_t i64Y, int64_t i64Z)
virtual const CResult Scale(const CFLPoint3< double > *pFlp3Pivot, double f64RatioX, double f64RatioY, double f64RatioZ)
CFLPoint3(const CFLGeometry3DVector< double > *pVec3)
CFLPoint3(const Base::TPoint3< float > *pTp3)
virtual const CResult Set(int64_t x, int64_t y, int64_t z)
CFLPoint3(int32_t x, int32_t y, int32_t z)
virtual const CResult Set(const CFLPoint< double > &flp, double z=0.)
virtual double GetMagnitude() const
CFLPoint3(const Base::TPoint3< double > &tp3)
virtual const CResult Mirror(int32_t pivotX, int32_t pivotY, int32_t pivotZ)
virtual const CResult Multiply(int64_t i64Scalar)
virtual const CResult Cross(const CFLPoint3< double > *pRhs)
const CFLPoint3< Ty > & operator+=(const CFLPoint3< double > &flp3)
Offset operator[offset].
CFLPoint3< double > operator/(const CFLPoint3< double > &flp3) const
An operator that divides the x, y, z values of the object into parameters.
virtual const CResult Rotate(const CFLGeometry3DAxis< double > &axis, double f64Angle)
CFLPoint3(const CFLGeometry3DVector< double > &vec3)
virtual const CResult Multiply(float f32MulX, float f32MulY, float f32MulZ)
virtual const CResult Multiply(int32_t i32MulX, int32_t i32MulY, int32_t i32MulZ)
virtual const CResult Scale(float f32PivotX, float f32PivotY, float f32PivotZ, float f32RatioX, float f32RatioY, float f32RatioZ)
virtual const CResult Scale(const CFLPoint3< float > &flp3Pivot, float f32Ratio)
virtual double GetDistance(const CFLPoint3< double > &flp3) const
Get the shortest distance to the parameter's object.
CFLPoint3(const CFLFigure *pFlf)
initialization constructor
const CFLPoint3< Ty > & operator*=(const float &value)
An operator that multiplies the x and y values of the object by a parameter.
virtual const CResult Offset(const CFLPoint3< double > &flp3)
const CFLPoint3< Ty > & operator+=(const double &value)
Offset operator[offset].
A class representing a point.
Definition FLPoint.h:24
float y
Definition FLPoint.h:36
float x
Definition FLPoint.h:30
A class representing 3x3 matrix.
Definition MatrixFor3D.h:28
A matrix class for 3D transform.
Definition MatrixFor3DTransform.h:35
Definition AlgorithmBase.h:16
EFigureDeclType
Declare type of figure.
Definition DefinitionsFigure.h:33
EFigureSpecCompareType
Definition DefinitionsFigure.h:3491
@ EFigureSpecCompareType_Coordinates
Definition DefinitionsFigure.h:3496