FLImaging 7.4.14.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 CMatrix;
19
20 template<typename Ty>
21 class FL_EXPORT CMatrixFor3D;
22
23 template<typename Ty>
24 class FL_EXPORT CMatrixFor3DTransform;
25
26 template<typename Ty>
27 class FL_EXPORT CFLGeometry3DAxis;
28
29 template<typename Ty>
30 class FL_EXPORT CFLGeometry3DCoordinateSystemRH;
31
37 template<typename Ty>
38 class FL_EXPORT CFLPoint3 : public CFLPoint<Ty>
39 {
40 public:
45 Ty z;
46
52
57 virtual ~CFLPoint3();
58
70 virtual void Get(Ty& tX, Ty& tY, Ty& tZ) const;
71
79 virtual double GetMagnitude() const;
80
88 virtual double GetSquareMagnitude() const;
89
105 virtual const CResult Offset(double x, double y, double z);
106
122 virtual const CResult Offset(float x, float y, float z);
123
139 virtual const CResult Offset(int32_t x, int32_t y, int32_t z);
140
156 virtual const CResult Offset(int64_t x, int64_t y, int64_t z);
157
169 virtual const CResult Offset(const CFLPoint3<double>& flp3);
170
182 virtual const CResult Offset(const CFLPoint3<float>& flp3);
183
195 virtual const CResult Offset(const CFLPoint3<double>* pFlp3);
196
208 virtual const CResult Offset(const CFLPoint3<float>* pFlp3);
209
221 virtual const CResult Add(const CFLPoint3<Ty>& rhs);
222
238 virtual const CResult Add(Ty tX, Ty tY, Ty tZ);
239
251 virtual const CResult Subtract(const CFLPoint3<Ty>& rhs);
252
268 virtual const CResult Subtract(Ty tX, Ty tY, Ty tZ);
269
285 virtual const CResult Multiply(double f64MulX, double f64MulY, double f64MulZ);
286
302 virtual const CResult Multiply(float f32MulX, float f32MulY, float f32MulZ);
303
319 virtual const CResult Multiply(int32_t i32MulX, int32_t i32MulY, int32_t i32MulZ);
320
336 virtual const CResult Multiply(int64_t i64MulX, int64_t i64MulY, int64_t i64MulZ);
337
349 virtual const CResult Multiply(const CFLPoint3<double>& flp3);
350
362 virtual const CResult Multiply(const CFLPoint3<float>& flp3);
363
375 virtual const CResult Multiply(const CFLPoint3<double>* pFlp3);
376
388 virtual const CResult Multiply(const CFLPoint3<float>* pFlp3);
389
401 virtual const CResult Multiply(double f64Scalar);
402
414 virtual const CResult Multiply(float f32Scalar);
415
427 virtual const CResult Multiply(int32_t i32Scalar);
428
440 virtual const CResult Multiply(int64_t i64Scalar);
441
442 operator CFLPoint<float>()
443 {
444 return CFLPoint<float>(this);
445 }
446
447 operator CFLPoint<double>()
448 {
449 return CFLPoint<double>(this);
450 }
451
466
481
496
511
526
541
556
571
583 virtual const CResult Divide(double f64Scalar);
584
596 virtual const CResult Divide(float f32Scalar);
597
609 virtual const CResult Divide(int32_t i32Scalar);
610
622 virtual const CResult Divide(int64_t i64Scalar);
623
639 virtual const CResult Cross(float f32X, float f32Y, float f32Z);
640
656 virtual const CResult Cross(double f64X, double f64Y, double f64Z);
657
673 virtual const CResult Cross(int32_t i32X, int32_t i32Y, int32_t i32Z);
674
690 virtual const CResult Cross(int64_t i64X, int64_t i64Y, int64_t i64Z);
691
703 virtual const CResult Cross(const CFLPoint3<float>& rhs);
704
716 virtual const CResult Cross(const CFLPoint3<double>& rhs);
717
729 virtual const CResult Cross(const CFLPoint3<float>* pRhs);
730
742 virtual const CResult Cross(const CFLPoint3<double>* pRhs);
743
757 virtual double Dot(float f32X, float f32Y, float f32Z) const;
758
772 virtual double Dot(double f64X, double f64Y, double f64Z) const;
773
787 virtual double Dot(int32_t i32X, int32_t i32Y, int32_t i32Z) const;
788
802 virtual double Dot(int64_t i64X, int64_t i64Y, int64_t i64Z) const;
803
813 virtual double Dot(const CFLPoint3<float>& rhs) const;
814
824 virtual double Dot(const CFLPoint3<double>& rhs) const;
825
835 virtual double Dot(const CFLPoint3<float>* pRhs) const;
836
846 virtual double Dot(const CFLPoint3<double>* pRhs) const;
847
869 virtual const CResult Scale(double f64PivotX, double f64PivotY, double f64PivotZ, double f64RatioX, double f64RatioY, double f64RatioZ);
870
892 virtual const CResult Scale(float f32PivotX, float f32PivotY, float f32PivotZ, float f32RatioX, float f32RatioY, float f32RatioZ);
893
911 virtual const CResult Scale(const CFLPoint3<double>& flp3Pivot, double f64RatioX, double f64RatioY, double f64RatioZ);
912
930 virtual const CResult Scale(const CFLPoint3<float>& flp3Pivot, float f32RatioX, float f32RatioY, float f32RatioZ);
931
949 virtual const CResult Scale(const CFLPoint3<double>* pFlp3Pivot, double f64RatioX, double f64RatioY, double f64RatioZ);
950
968 virtual const CResult Scale(const CFLPoint3<float>* pFlp3Pivot, float f32RatioX, float f32RatioY, float f32RatioZ);
969
983 virtual const CResult Scale(const CFLPoint3<double>& flp3Pivot, double f64Ratio);
984
998 virtual const CResult Scale(const CFLPoint3<float>& flp3Pivot, float f32Ratio);
999
1013 virtual const CResult Scale(const CFLPoint3<double>* pFlp3Pivot, double f64Ratio);
1014
1028 virtual const CResult Scale(const CFLPoint3<float>* pFlp3Pivot, float f32Ratio);
1029
1045 virtual const CResult Reflect(double pivotX, double pivotY, double pivotZ);
1046
1062 virtual const CResult Reflect(float pivotX, float pivotY, float pivotZ);
1063
1079 virtual const CResult Reflect(int32_t pivotX, int32_t pivotY, int32_t pivotZ);
1080
1096 virtual const CResult Reflect(int64_t pivotX, int64_t pivotY, int64_t pivotZ);
1097
1109 virtual const CResult Reflect(const CFLPoint3<double>& flp3Pivot);
1110
1122 virtual const CResult Reflect(const CFLPoint3<float>& flp3Pivot);
1123
1135 virtual const CResult Reflect(const CFLPoint3<double>* pFlp3Pivot);
1136
1148 virtual const CResult Reflect(const CFLPoint3<float>* pFlp3Pivot);
1149
1163 virtual const CResult Reflect(const CFLGeometry3DAxis<double>& axis3Pivot);
1164
1178 virtual const CResult Reflect(const CFLGeometry3DAxis<float>& axis3Pivot);
1179
1193 virtual const CResult Reflect(const CFLGeometry3DAxis<double>* pAxis3Pivot);
1194
1208 virtual const CResult Reflect(const CFLGeometry3DAxis<float>* pAxis3Pivot);
1209
1223 virtual const CResult Reflect(const CFLGeometry3DCoordinateSystemRH<double>& coordSysRHPlane);
1224
1238 virtual const CResult Reflect(const CFLGeometry3DCoordinateSystemRH<float>& coordSysRHPlane);
1239
1253 virtual const CResult Reflect(const CFLGeometry3DCoordinateSystemRH<double>* pCoordSysRHPlane);
1254
1268 virtual const CResult Reflect(const CFLGeometry3DCoordinateSystemRH<float>* pCoordSysRHPlane);
1269
1285 virtual const CResult Rotate(const CFLGeometry3DAxis<double>& axis, double f64Angle);
1286
1302 virtual const CResult Rotate(const CFLGeometry3DAxis<float>& axis, double f64Angle);
1303
1319 virtual const CResult Rotate(const CFLGeometry3DAxis<double>* pAxis, double f64Angle);
1320
1336 virtual const CResult Rotate(const CFLGeometry3DAxis<float>* pAxis, double f64Angle);
1337
1351 virtual const CResult Transform(const CMatrixFor3DTransform<double>& transform);
1352
1366 virtual const CResult Transform(const CMatrixFor3DTransform<float>& transform);
1367
1381 virtual const CResult Transform(const CMatrixFor3DTransform<double>* pTransform);
1382
1396 virtual const CResult Transform(const CMatrixFor3DTransform<float>* pTransform);
1397
1411 virtual const CResult MatMul(const CMatrixFor3D<float>& mat3D);
1412
1426 virtual const CResult MatMul(const CMatrixFor3D<double>& mat3D);
1427
1441 virtual const CResult MatMul(const CMatrixFor3D<float>* pMat3D);
1442
1456 virtual const CResult MatMul(const CMatrixFor3D<double>* pMat3D);
1457
1471 virtual const CResult MatMul(const CMatrix<float>& mat4x4);
1472
1486 virtual const CResult MatMul(const CMatrix<double>& mat4x4);
1487
1501 virtual const CResult MatMul(const CMatrix<float>* pMat4x4);
1502
1516 virtual const CResult MatMul(const CMatrix<double>* pMat4x4);
1517
1529 virtual double GetDistance(const CFLPoint3<double>& flp3) const;
1530
1542 virtual double GetDistance(const CFLPoint3<float>& flp3) const;
1543
1555 virtual double GetDistance(const CFLPoint3<double>* pFlp3) const;
1556
1568 virtual double GetDistance(const CFLPoint3<float>* pFlp3) const;
1569
1581 virtual const CResult Normalize();
1582
1593
1606
1618 virtual CFLPoint3<double> GetUnitVector(const CFLPoint3<double>* pFlp3Target) const;
1619
1637 virtual const CResult SetLinearInterpolation(const CFLPoint3<Ty>& flp3Start, const CFLPoint3<Ty>& flp3End, double f64T);
1638
1639 virtual void Clear() override;
1640
1641 virtual EFigureDeclType GetDeclType() const override;
1642
1643 virtual bool IsValid() const override;
1644 virtual bool IsFigureValid() const override;
1645
1646 virtual const CResult MakeFigureInvalid() override;
1647
1649 virtual bool IsSpecEqual(const CFLFigure* pFlfRhs, EFigureSpecCompareType eSpecType = EFigureSpecCompareType_Coordinates) const override;
1650
1661
1672
1684 bool operator==(const CFLPoint3<double>& flp3) const;
1685
1697 bool operator!=(const CFLPoint3<double>& flp3) const;
1698
1710 const CFLPoint3<Ty>& operator+=(const double& value);
1711
1724
1736 const CFLPoint3<Ty>& operator-=(const double& value);
1737
1750
1762 const CFLPoint3<Ty>& operator*=(const double& value);
1763
1775 const CFLPoint3<Ty>& operator*=(const float& value);
1776
1788 const CFLPoint3<Ty>& operator*=(const int32_t& value);
1789
1801 const CFLPoint3<Ty>& operator*=(const int64_t& value);
1802
1815
1827 const CFLPoint3<Ty>& operator/=(const double& value);
1828
1841
1853 CFLPoint3<double> operator+(const double& value) const;
1854
1867
1879 CFLPoint3<double> operator-(const double& value) const;
1880
1893
1905 CFLPoint3<double> operator*(const double& value) const;
1906
1919
1931 CFLPoint3<double> operator/(const double& value) const;
1932
1945
1957
1958 //Friend operator
1960 // Arithmetic operator
1961
1975 friend CFLPoint3<double> operator+(const int32_t& value, const CFLPoint3<Ty>& point)
1976 {
1977 CFLPoint3<double> t(point);
1978 t += value;
1979 return t;
1980 }
1981
1995 friend CFLPoint3<double> operator+(const int64_t& value, const CFLPoint3<Ty>& point)
1996 {
1997 CFLPoint3<double> t(point);
1998 t += value;
1999 return t;
2000 }
2001
2015 friend CFLPoint3<double> operator+(const float& value, const CFLPoint3<Ty>& point)
2016 {
2017 CFLPoint3<double> t(point);
2018 t += value;
2019 return t;
2020 }
2021
2035 friend CFLPoint3<double> operator+(const double& value, const CFLPoint3<Ty>& point)
2036 {
2037 CFLPoint3<double> t(point);
2038 t += value;
2039 return t;
2040 }
2041
2055 friend CFLPoint3<double> operator-(const int32_t& value, const CFLPoint3<Ty>& point)
2056 {
2057 CFLPoint3<double> t(point);
2058 t *= -1.;
2059 t += value;
2060 return t;
2061 }
2062
2076 friend CFLPoint3<double> operator-(const int64_t& value, const CFLPoint3<Ty>& point)
2077 {
2078 CFLPoint3<double> t(point);
2079 t *= -1.;
2080 t += value;
2081 return t;
2082 }
2083
2097 friend CFLPoint3<double> operator-(const float& value, const CFLPoint3<Ty>& point)
2098 {
2099 CFLPoint3<double> t(point);
2100 t *= -1.;
2101 t += value;
2102 return t;
2103 }
2104
2118 friend CFLPoint3<double> operator-(const double& value, const CFLPoint3<Ty>& point)
2119 {
2120 CFLPoint3<double> t(point);
2121 t *= -1.;
2122 t += value;
2123 return t;
2124 }
2125
2139 friend CFLPoint3<double> operator*(const int32_t& value, const CFLPoint3<Ty>& point)
2140 {
2141 CFLPoint3<double> t(point);
2142 t *= value;
2143 return t;
2144 }
2145
2159 friend CFLPoint3<double> operator*(const int64_t& value, const CFLPoint3<Ty>& point)
2160 {
2161 CFLPoint3<double> t(point);
2162 t *= value;
2163 return t;
2164 }
2165
2179 friend CFLPoint3<double> operator*(const float& value, const CFLPoint3<Ty>& point)
2180 {
2181 CFLPoint3<double> t(point);
2182 t *= value;
2183 return t;
2184 }
2185
2199 friend CFLPoint3<double> operator*(const double& value, const CFLPoint3<Ty>& point)
2200 {
2201 CFLPoint3<double> t(point);
2202 t *= value;
2203 return t;
2204 }
2205
2219 friend CFLPoint3<double> operator/(const int32_t& value, const CFLPoint3<Ty>& point)
2220 {
2221 CFLPoint3<double> t((double)value / (double)point.x, (double)value / (double)point.y, (double)value / (double)point.z);
2222 return t;
2223 }
2224
2238 friend CFLPoint3<double> operator/(const int64_t& value, const CFLPoint3<Ty>& point)
2239 {
2240 CFLPoint3<double> t((double)value / (double)point.x, (double)value / (double)point.y, (double)value / (double)point.z);
2241 return t;
2242 }
2243
2257 friend CFLPoint3<double> operator/(const float& value, const CFLPoint3<Ty>& point)
2258 {
2259 CFLPoint3<double> t((double)value / (double)point.x, (double)value / (double)point.y, (double)value / (double)point.z);
2260 return t;
2261 }
2262
2276 friend CFLPoint3<double> operator/(const double& value, const CFLPoint3<Ty>& point)
2277 {
2278 CFLPoint3<double> t((double)value / (double)point.x, (double)value / (double)point.y, (double)value / (double)point.z);
2279 return t;
2280 }
2282
2294 virtual const CResult Assign(const CFLPoint3<Ty>& flp3);
2295
2309 virtual const CResult Assign(const Base::TPoint3<Ty>& tp3);
2310
2312 // Set
2313
2314 virtual const CResult Set(const CFLFigure& flf) override;
2315 virtual const CResult Set(const CFLFigure* pFlf) override;
2316
2332 virtual const CResult Set(double x, double y, double z);
2333
2349 virtual const CResult Set(float x, float y, float z);
2350
2366 virtual const CResult Set(int32_t x, int32_t y, int32_t z);
2367
2383 virtual const CResult Set(int64_t x, int64_t y, int64_t z);
2384
2400 virtual const CResult Set(const CFLPoint<double>& flp, double z = 0.);
2401
2417 virtual const CResult Set(const CFLPoint<float>& flp, float z = 0.);
2418
2434 virtual const CResult Set(const CFLPoint<int32_t>& flp, int32_t z = 0.);
2435
2451 virtual const CResult Set(const CFLPoint<int64_t>& flp, int64_t z = 0.);
2452
2468 virtual const CResult Set(const CFLPoint<double>* pFlp, double z = 0.);
2469
2485 virtual const CResult Set(const CFLPoint<float>* pFlp, float z = 0.);
2486
2502 virtual const CResult Set(const CFLPoint<int32_t>* pFlp, int32_t z = 0.);
2503
2519 virtual const CResult Set(const CFLPoint<int64_t>* pFlp, int64_t z = 0.);
2520
2532 virtual const CResult Set(const CFLPoint3<double>& flp3);
2533
2545 virtual const CResult Set(const CFLPoint3<float>& flp3);
2546
2558 virtual const CResult Set(const CFLPoint3<double>* pFlp3);
2559
2571 virtual const CResult Set(const CFLPoint3<float>* pFlp3);
2572
2586 virtual const CResult Set(const Base::TPoint3<double>& tp3);
2587
2601 virtual const CResult Set(const Base::TPoint3<float>& tp3);
2602
2616 virtual const CResult Set(const Base::TPoint3<double>* pTp3);
2617
2631 virtual const CResult Set(const Base::TPoint3<float>* pTp3);
2632
2642 virtual const CResult Set(const CFLGeometry3DVector<double>& vec3);
2643
2653 virtual const CResult Set(const CFLGeometry3DVector<float>& vec3);
2654
2655
2665 virtual const CResult Set(const CFLGeometry3DVector<double>* pVec3);
2666
2676 virtual const CResult Set(const CFLGeometry3DVector<float>* pVec3);
2677
2678
2688 virtual const CResult Set(const CFLGeometry3DDirection<double>& dir);
2689
2699 virtual const CResult Set(const CFLGeometry3DDirection<float>& dir);
2700
2701
2711 virtual const CResult Set(const CFLGeometry3DDirection<double>* pDir);
2712
2722 virtual const CResult Set(const CFLGeometry3DDirection<float>* pDir);
2723
2724
2725
2727 // Constructor
2728
2741
2753 CFLPoint3(const CFLFigure* pFlf);
2754
2766 CFLPoint3(double x, double y, double z);
2767
2779 CFLPoint3(float x, float y, float z);
2780
2792 CFLPoint3(int32_t x, int32_t y, int32_t z);
2793
2805 CFLPoint3(int64_t x, int64_t y, int64_t z);
2806
2818 CFLPoint3(const CFLPoint<double>& flp, double z = 0.);
2819
2831 CFLPoint3(const CFLPoint<float>& flp, float z = 0.);
2832
2844 CFLPoint3(const CFLPoint<int32_t>& flp, int32_t z = 0.);
2845
2857 CFLPoint3(const CFLPoint<int64_t>& flp, int64_t z = 0.);
2858
2870 CFLPoint3(const CFLPoint<double>* pFlp, double z = 0.);
2871
2883 CFLPoint3(const CFLPoint<float>* pFlp, float z = 0.);
2884
2896 CFLPoint3(const CFLPoint<int32_t>* pFlp, int32_t z = 0.);
2897
2909 CFLPoint3(const CFLPoint<int64_t>* pFlp, int64_t z = 0.);
2910
2919
2928
2937
2946
2957
2968
2979
2990
3001
3012
3023
3034
3035
3046
3057
3058
3069
3080
3081 SupportToDuplicateObject(CFLPoint3<Ty>, *this);
3082 DeclareGetClassType();
3083
3084
3085 private:
3086 using CFLPoint<Ty>::GetDistance;
3087 };
3088
3089 typedef CFLPoint3<float> CFLPoint3F;
3090 typedef CFLPoint3<double> CFLPoint3D;
3091 }
3092}
Simplified class representing a 3-D point.
Definition TPoint3.h:37
FLImaging module execution result object.
Definition ResultsDef.h:1676
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:39
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 Set(const CFLFigure *pFlf) override
virtual const CResult Set(const CFLFigure &flf) override
friend CFLPoint3< double > operator/(const int64_t &value, const CFLPoint3< Ty > &point)
Offset operator[offset].
Definition FLPoint3.h:2238
virtual const CResult Reflect(const CFLGeometry3DCoordinateSystemRH< double > &coordSysRHPlane)
virtual const CResult Reflect(const CFLGeometry3DAxis< float > *pAxis3Pivot)
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
friend CFLPoint3< double > operator+(const double &value, const CFLPoint3< Ty > &point)
Offset operator[offset].
Definition FLPoint3.h:2035
virtual const CResult Cross(const CFLPoint3< float > &rhs)
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.
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:45
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 Reflect(const CFLGeometry3DAxis< double > *pAxis3Pivot)
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)
virtual const CResult Reflect(const CFLGeometry3DCoordinateSystemRH< double > *pCoordSysRHPlane)
friend CFLPoint3< double > operator+(const float &value, const CFLPoint3< Ty > &point)
Offset operator[offset].
Definition FLPoint3.h:2015
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 Reflect(float pivotX, float pivotY, float pivotZ)
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 MatMul(const CMatrix< double > &mat4x4)
virtual const CResult Subtract(const CFLPoint3< Ty > &rhs)
virtual const CResult Reflect(const CFLPoint3< double > *pFlp3Pivot)
virtual const CResult Cross(float f32X, float f32Y, float f32Z)
virtual const CResult Set(const CFLPoint< int64_t > *pFlp, int64_t z=0.)
CFLPoint3< Ty > operator-() const
An operator that returns a point with the signs of x, y and z values inverted.
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)
friend CFLPoint3< double > operator*(const int32_t &value, const CFLPoint3< Ty > &point)
Offset operator[offset].
Definition FLPoint3.h:2139
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].
friend CFLPoint3< double > operator-(const double &value, const CFLPoint3< Ty > &point)
Offset operator[offset].
Definition FLPoint3.h:2118
virtual void Clear() override
Clear an object's variable.
bool operator==(const CFLPoint3< double > &flp3) const
Comparison operator.
virtual const CResult Multiply(const CFLPoint3< double > &flp3)
virtual const CResult Reflect(double pivotX, double pivotY, double pivotZ)
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 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 Reflect(const CFLGeometry3DCoordinateSystemRH< float > &coordSysRHPlane)
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 Reflect(int64_t pivotX, int64_t pivotY, int64_t pivotZ)
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 Reflect(const CFLPoint3< double > &flp3Pivot)
virtual const CResult Cross(const CFLPoint3< double > &rhs)
friend CFLPoint3< double > operator-(const int64_t &value, const CFLPoint3< Ty > &point)
Offset operator[offset].
Definition FLPoint3.h:2076
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 MatMul(const CMatrix< double > *pMat4x4)
virtual const CResult Multiply(int64_t i64MulX, int64_t i64MulY, int64_t i64MulZ)
virtual const CResult Reflect(int32_t pivotX, int32_t pivotY, int32_t pivotZ)
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
friend CFLPoint3< double > operator*(const double &value, const CFLPoint3< Ty > &point)
Offset operator[offset].
Definition FLPoint3.h:2199
virtual const CResult Reflect(const CFLGeometry3DCoordinateSystemRH< float > *pCoordSysRHPlane)
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)
friend CFLPoint3< double > operator/(const int32_t &value, const CFLPoint3< Ty > &point)
Offset operator[offset].
Definition FLPoint3.h:2219
virtual const CResult Reflect(const CFLPoint3< float > &flp3Pivot)
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 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 MatMul(const CMatrix< float > *pMat4x4)
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)
CFLPoint3(const CFLFigure &flf)
initialization constructor
friend CFLPoint3< double > operator/(const double &value, const CFLPoint3< Ty > &point)
Offset operator[offset].
Definition FLPoint3.h:2276
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 const CResult Reflect(const CFLPoint3< float > *pFlp3Pivot)
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 const CResult Reflect(const CFLGeometry3DAxis< double > &axis3Pivot)
virtual double Dot(const CFLPoint3< float > &rhs) const
virtual const CResult MatMul(const CMatrix< float > &mat4x4)
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)
friend CFLPoint3< double > operator/(const float &value, const CFLPoint3< Ty > &point)
Offset operator[offset].
Definition FLPoint3.h:2257
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)
friend CFLPoint3< double > operator+(const int64_t &value, const CFLPoint3< Ty > &point)
Offset operator[offset].
Definition FLPoint3.h:1995
virtual const CResult Set(const CFLPoint< double > &flp, double z=0.)
virtual double GetMagnitude() const
CFLPoint3(const Base::TPoint3< double > &tp3)
friend CFLPoint3< double > operator*(const float &value, const CFLPoint3< Ty > &point)
Offset operator[offset].
Definition FLPoint3.h:2179
friend CFLPoint3< double > operator-(const float &value, const CFLPoint3< Ty > &point)
Offset operator[offset].
Definition FLPoint3.h:2097
virtual const CResult Multiply(int64_t i64Scalar)
virtual const CResult Cross(const CFLPoint3< double > *pRhs)
friend CFLPoint3< double > operator+(const int32_t &value, const CFLPoint3< Ty > &point)
Offset operator[offset].
Definition FLPoint3.h:1975
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.
friend CFLPoint3< double > operator-(const int32_t &value, const CFLPoint3< Ty > &point)
Offset operator[offset].
Definition FLPoint3.h:2055
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)
friend CFLPoint3< double > operator*(const int64_t &value, const CFLPoint3< Ty > &point)
Offset operator[offset].
Definition FLPoint3.h:2159
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 Reflect(const CFLGeometry3DAxis< float > &axis3Pivot)
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:31
A matrix class for 3D transform.
Definition MatrixFor3DTransform.h:35
A class representing matrix.
Definition Matrix.h:79
Definition AlgorithmBase.h:16
EFigureDeclType
Declare type of figure.
Definition DefinitionsFigure.h:33
EFigureSpecCompareType
Definition DefinitionsFigure.h:3513
@ EFigureSpecCompareType_Coordinates
Definition DefinitionsFigure.h:3518