FLImaging 7.4.28.2
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}
3차원 점을 표현하는 간략화된 클래스
Definition TPoint3.h:37
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1676
도형을 표현하는 클래스의 기저 클래스
Definition FLFigure.h:27
virtual bool IsSpecEqual(const CFLFigure &flfRhs, EFigureSpecCompareType eSpecType=EFigureSpecCompareType_Coordinates) const
원점과 방향으로 정의되는 3D 공간상의 축을 나타내는 클래스입니다.
Definition FLGeometry3DAxis.h:38
3D 공간에서 오른손 좌표계를 나타내는 클래스.
Definition FLGeometry3DCoordinateSystemRH.h:32
3D 공간 상의 방향 벡터를 표현하는 클래스
Definition FLGeometry3DDirection.h:32
3D 공간 상의 벡터를 표현하며, 방향과 크기를 내포하는 클래스
Definition FLGeometry3DVector.h:33
3차원 점을 표현하는 클래스
Definition FLPoint3.h:39
bool operator!=(const CFLPoint3< double > &flp3) const
비교 연산자
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)
점을 매개변수 값으로 나누는 연산자
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]
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]
CFLPoint3< double > operator*(const double &value) const
해당 객체의 x, y, z 값에 매개변수를 곱하는 연산자
const CFLPoint3< Ty > & operator*=(const CMatrixFor3D< float > &mat3D)
현재 객체에 3x3 행렬을 곱하는 함수. this = mat3D * this
CFLPoint3< Ty > operator*(const CMatrixFor3D< float > &mat3D) const
3x3 행렬을 곱하는 함수
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)
두 쿼터니언 사이를 선형 보간한 쿼터니언을 현재 객체에 저장합니다.
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]
Definition FLPoint3.h:2015
CFLPoint3< Ty > operator*(const CMatrixFor3D< double > *pMat3D) const
3x3 행렬을 곱하는 함수
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)
해당 객체의 x, y, z 값에 매개변수를 곱하는 연산자
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
해당 객체의 x, y, z 값의 부호를 반전시킨 객체를 반환하는 연산자
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)
해당 객체의 x, y, z 값을 매개변수로 나누는 연산자
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
매개변수의 객체와의 최단 거리를 출력
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]
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]
friend CFLPoint3< double > operator-(const double &value, const CFLPoint3< Ty > &point)
이동 연산자[offset]
Definition FLPoint3.h:2118
virtual void Clear() override
객체의 변수를 초기화 합니다.
bool operator==(const CFLPoint3< double > &flp3) const
비교 연산자
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()
원점으로부터 현재 객체로 향하는 단위 벡터로 현재 객체를 설정하는 함수
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]
CFLPoint3< double > operator-(const CFLPoint3< double > &flp3) const
이동 연산자[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
3x3 행렬을 곱하는 함수
virtual double GetDistance(const CFLPoint3< float > *pFlp3) const
매개변수의 객체와의 최단 거리를 출력
CFLPoint3(const CFLPoint< double > *pFlp, double z=0.)
virtual const CResult Set(const CFLPoint3< float > &flp3)
const CFLPoint3< Ty > & operator*=(const int64_t &value)
해당 객체의 x, y, z 값에 매개변수를 곱하는 연산자
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]
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
매개변수의 객체와의 최단 거리를 출력
virtual const CResult Cross(const CFLPoint3< float > *pRhs)
CFLPoint3< double > operator*(const CFLPoint3< double > &flp3) const
해당 객체의 x, y, z 값에 매개변수를 곱하는 연산자
virtual const CResult Multiply(const CFLPoint3< float > *pFlp3)
CFLPoint3(const CFLPoint3< float > &flp3)
CFLPoint3< double > operator/(const double &value) const
해당 객체의 x, y, z 값을 매개변수로 나누는 연산자
virtual const CResult MakeFigureInvalid() override
Figure를 유효하지 않은 Figure로 만듦. (예를 들어, 점의 좌표를 Invalid한 x, y로 설정)
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)
현재 객체에 3x3 행렬을 곱하는 함수. 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)
해당 객체의 x, y, z 값에 매개변수를 곱하는 연산자
virtual CFLPoint3< double > GetUnitVector(const CFLPoint3< double > *pFlp3Target) const
해당 객체로부터 매개변수 객체로 향하는 단위 벡터를 구하는 함수
CFLPoint3(const CFLPoint< float > *pFlp, float z=0.)
CFLPoint3< double > GetUnitVector() const
원점으로부터 현재 객체로 향하는 단위 벡터를 얻는 함수
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]
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]
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
3x3 행렬을 곱하는 함수
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]
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)
점을 매개변수 값으로 나누는 연산자
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)
해당 객체의 x, y, z 값에 매개변수를 곱하는 연산자
CFLPoint3(double x, double y, double z)
CFLPoint3(const CFLFigure &flf)
초기화 생성자
friend CFLPoint3< double > operator/(const double &value, const CFLPoint3< Ty > &point)
점을 매개변수 값으로 나누는 연산자
Definition FLPoint3.h:2276
const CFLPoint3< Ty > & operator*=(const CMatrixFor3D< double > *pMat3D)
현재 객체에 3x3 행렬을 곱하는 함수. this = pMat3D * this
const CFLPoint3< Ty > & operator/=(const double &value)
해당 객체의 x, y, z 값을 매개변수로 나누는 연산자
virtual const CResult Reflect(const CFLPoint3< float > *pFlp3Pivot)
virtual EFigureDeclType GetDeclType() const override
const CFLPoint3< Ty > & operator*=(const CMatrixFor3D< float > *pMat3D)
현재 객체에 3x3 행렬을 곱하는 함수. this = pMat3D * this
CFLPoint3< double > GetUnitVector(const CFLPoint3< double > &flp3Target) const
해당 객체로부터 매개변수 객체로 향하는 단위 벡터를 구하는 함수
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)
점을 매개변수 값으로 나누는 연산자
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]
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]
Definition FLPoint3.h:2179
friend CFLPoint3< double > operator-(const float &value, const CFLPoint3< Ty > &point)
이동 연산자[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]
Definition FLPoint3.h:1975
const CFLPoint3< Ty > & operator+=(const CFLPoint3< double > &flp3)
이동 연산자[offset]
CFLPoint3< double > operator/(const CFLPoint3< double > &flp3) const
해당 객체의 x, y, z 값을 매개변수로 나누는 연산자
friend CFLPoint3< double > operator-(const int32_t &value, const CFLPoint3< Ty > &point)
이동 연산자[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]
Definition FLPoint3.h:2159
virtual const CResult Scale(const CFLPoint3< float > &flp3Pivot, float f32Ratio)
virtual double GetDistance(const CFLPoint3< double > &flp3) const
매개변수의 객체와의 최단 거리를 출력
CFLPoint3(const CFLFigure *pFlf)
초기화 생성자
const CFLPoint3< Ty > & operator*=(const float &value)
해당 객체의 x, y, z 값에 매개변수를 곱하는 연산자
virtual const CResult Reflect(const CFLGeometry3DAxis< float > &axis3Pivot)
virtual const CResult Offset(const CFLPoint3< double > &flp3)
const CFLPoint3< Ty > & operator+=(const double &value)
이동 연산자[offset]
점을 표현하는 클래스
Definition FLPoint.h:24
float y
Definition FLPoint.h:36
float x
Definition FLPoint.h:30
3x3 행렬을 표현하는 클래스
Definition MatrixFor3D.h:31
3D 공간 상에서의 변환을 용이하게 하기 위한 목적의 행렬 클래스
Definition MatrixFor3DTransform.h:35
행렬을 표현하는 클래스
Definition Matrix.h:79
Definition AlgorithmBase.h:16
EFigureDeclType
도형의 타입
Definition DefinitionsFigure.h:33
EFigureSpecCompareType
Definition DefinitionsFigure.h:3546
@ EFigureSpecCompareType_Coordinates
Definition DefinitionsFigure.h:3551