FLImaging 6.6.27.1
FLPoint4.h
1#pragma once
2
3#include "FLPoint3.h"
4
6namespace FLImaging
7{
9 namespace Foundation
10 {
11 template<typename Ty>
12 class FL_EXPORT CFLGeometry3DQuaternion;
13
14 template<typename Ty>
15 class FL_EXPORT CMatrix;
16
22 template<typename Ty>
23 class FL_EXPORT CFLPoint4 : public CFLPoint3<Ty>
24 {
25 public:
30 Ty w;
31
37
42 virtual ~CFLPoint4();
43
57 virtual void Get(Ty& tX, Ty& tY, Ty& tZ, Ty& tW) const;
58
66 virtual double GetMagnitude() const override;
67
75 virtual double GetSquareMagnitude() const override;
76
94 virtual const CResult Offset(double x, double y, double z, double w);
95
113 virtual const CResult Offset(float x, float y, float z, float w);
114
132 virtual const CResult Offset(int32_t x, int32_t y, int32_t z, int32_t w);
133
151 virtual const CResult Offset(int64_t x, int64_t y, int64_t z, int64_t w);
152
164 virtual const CResult Offset(const CFLPoint4<double>& flp4);
165
177 virtual const CResult Offset(const CFLPoint4<float>& flp4);
178
190 virtual const CResult Offset(const CFLPoint4<double>* pFlp4);
191
203 virtual const CResult Offset(const CFLPoint4<float>* pFlp4);
204
216 virtual const CResult Add(const CFLPoint4<Ty>& rhs);
217
235 virtual const CResult Add(Ty tX, Ty tY, Ty tZ, Ty tW);
236
248 virtual const CResult Subtract(const CFLPoint4<Ty>& rhs);
249
267 virtual const CResult Subtract(Ty tX, Ty tY, Ty tZ, Ty tW);
268
286 virtual const CResult Multiply(double f64MulX, double f64MulY, double f64MulZ, double f64MulW);
287
305 virtual const CResult Multiply(float f32MulX, float f32MulY, float f32MulZ, float f32MulW);
306
324 virtual const CResult Multiply(int32_t i32MulX, int32_t i32MulY, int32_t i32MulZ, int32_t i32MulW);
325
343 virtual const CResult Multiply(int64_t i64MulX, int64_t i64MulY, int64_t i64MulZ, int64_t i64MulW);
344
356 virtual const CResult Multiply(const CFLPoint4<double>& flp4);
357
369 virtual const CResult Multiply(const CFLPoint4<float>& flp4);
370
382 virtual const CResult Multiply(const CFLPoint4<double>* pFlp4);
383
395 virtual const CResult Multiply(const CFLPoint4<float>* pFlp4);
396
408 virtual const CResult Multiply(double f64Scalar);
409
421 virtual const CResult Multiply(float f32Scalar);
422
434 virtual const CResult Multiply(int32_t i32Scalar);
435
447 virtual const CResult Multiply(int64_t i64Scalar);
448
460 virtual const CResult Divide(double f64Scalar);
461
473 virtual const CResult Divide(float f32Scalar);
474
486 virtual const CResult Divide(int32_t i32Scalar);
487
499 virtual const CResult Divide(int64_t i64Scalar);
500
514 virtual const CResult MatMul(const CMatrix<float>& mat4x4);
515
529 virtual const CResult MatMul(const CMatrix<double>& mat4x4);
530
544 virtual const CResult MatMul(const CMatrix<float>* pMat4x4);
545
559 virtual const CResult MatMul(const CMatrix<double>* pMat4x4);
560
561
573 virtual const CResult Normalize();
574
585
597 virtual CFLPoint4<double> GetUnitVector(const CFLPoint4<double>& flp4Target) const;
598
610 virtual CFLPoint4<double> GetUnitVector(const CFLPoint4<double>* pFlp4Target) const;
611
612 virtual void Clear() override;
613
614 virtual EFigureDeclType GetDeclType() const override;
615
616 virtual bool IsValid() const override;
617 virtual bool IsFigureValid() const override;
618
619 virtual const CResult MakeFigureInvalid() override;
620
622 virtual bool IsSpecEqual(const CFLFigure* pFlfRhs, EFigureSpecCompareType eSpecType = EFigureSpecCompareType_Coordinates) const override;
623
633 virtual const CFLPoint4<Ty>& operator=(const CFLPoint4<Ty>& flp4);
634
646 virtual bool operator==(const CFLPoint4<float>& flp4) const;
647
659 virtual bool operator==(const CFLPoint4<double>& flp4) const;
660
672 virtual bool operator!=(const CFLPoint4<float>& flp4) const;
673
685 virtual bool operator!=(const CFLPoint4<double>& flp4) const;
686
698 virtual const CFLPoint4<Ty>& operator+=(const double& value);
699
711 virtual const CFLPoint4<Ty>& operator+=(const CFLPoint4<double>& flp4);
712
724 virtual const CFLPoint4<Ty>& operator-=(const double& value);
725
737 virtual const CFLPoint4<Ty>& operator-=(const CFLPoint4<double>& flp4);
738
750 virtual const CFLPoint4<Ty>& operator*=(const double& value);
751
763 virtual const CFLPoint4<Ty>& operator*=(const CFLPoint4<double>& flp4);
764
776 virtual const CFLPoint4<Ty>& operator/=(const double& value);
777
789 virtual const CFLPoint4<Ty>& operator/=(const CFLPoint4<double>& flp4);
790
802 virtual CFLPoint4<double> operator+(const double& value) const;
803
816
828 virtual CFLPoint4<double> operator-(const double& value) const;
829
842
854 CFLPoint4<double> operator*(const double& value) const;
855
868
880 virtual CFLPoint4<double> operator/(const double& value) const;
881
894
895
896 virtual const CResult Set(const CFLFigure& flf) override;
897 virtual const CResult Set(const CFLFigure* pFlf) override;
898
916 virtual const CResult Set(double x, double y, double z, double w);
917
935 virtual const CResult Set(float x, float y, float z, float w);
936
954 virtual const CResult Set(int32_t x, int32_t y, int32_t z, int32_t w);
955
973 virtual const CResult Set(int64_t x, int64_t y, int64_t z, int64_t w);
974
990 virtual const CResult Set(const CFLPoint3<double>& flp3, double w = 0.);
991
1007 virtual const CResult Set(const CFLPoint3<float>& flp3, float w = 0.);
1008
1009
1025 virtual const CResult Set(const CFLPoint3<double>* pFlp3, double w = 0.);
1026
1042 virtual const CResult Set(const CFLPoint3<float>* pFlp3, float w = 0.f);
1043
1055 virtual const CResult Set(const CFLPoint4<double>& flp4);
1056
1068 virtual const CResult Set(const CFLPoint4<float>& flp4);
1069
1081 virtual const CResult Set(const CFLPoint4<double>* pFlp4);
1082
1094 virtual const CResult Set(const CFLPoint4<float>* pFlp4);
1095
1109 virtual const CResult Set(const CFLGeometry3DQuaternion<double>& quat);
1110
1124 virtual const CResult Set(const CFLGeometry3DQuaternion<float>& quat);
1125
1139 virtual const CResult Set(const CFLGeometry3DQuaternion<double>* pQuat);
1140
1154 virtual const CResult Set(const CFLGeometry3DQuaternion<float>* pQuat);
1155
1156
1169
1181 CFLPoint4(const CFLFigure* pFlf);
1182
1196 CFLPoint4(double x, double y, double z, double w);
1197
1211 CFLPoint4(float x, float y, float z, float w);
1212
1226 CFLPoint4(int32_t x, int32_t y, int32_t z, int32_t w);
1227
1241 CFLPoint4(int64_t x, int64_t y, int64_t z, int64_t w);
1242
1254 CFLPoint4(const CFLPoint3<double>& flp3, double w = 0.);
1255
1267 CFLPoint4(const CFLPoint3<float>& flp3, float w = 0.f);
1268
1280 CFLPoint4(const CFLPoint3<double>* pFlp3, double w = 0.);
1281
1293 CFLPoint4(const CFLPoint3<float>* pFlp3, float w = 0.f);
1294
1305
1316
1317
1328
1339
1350
1361
1372
1383
1384 Base::ECPUInstructionType m_eCPUInstruction;
1385 SupportToDuplicateObject(CFLPoint4<Ty>, *this);
1386 DeclareGetClassType();
1387 };
1388
1389 typedef CFLPoint4<float> CFLPoint4F;
1390 typedef CFLPoint4<double> CFLPoint4D;
1391 }
1392}
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1596
도형을 표현하는 클래스의 기저 클래스
Definition FLFigure.h:27
virtual bool IsSpecEqual(const CFLFigure &flfRhs, EFigureSpecCompareType eSpecType=EFigureSpecCompareType_Coordinates) const
사원수를 표현하는 클래스
Definition FLGeometry3DQuaternion.h:25
float z
Definition FLPoint3.h:42
4개의 원소를 가진 점을 표현하는 클래스
Definition FLPoint4.h:24
virtual const CResult Set(const CFLGeometry3DQuaternion< double > *pQuat)
virtual double GetSquareMagnitude() const override
CFLPoint4(int32_t x, int32_t y, int32_t z, int32_t w)
virtual CFLPoint4< double > operator+(const double &value) const
이동 연산자[offset]
virtual const CResult Set(const CFLGeometry3DQuaternion< double > &quat)
CFLPoint4(const CFLGeometry3DQuaternion< float > &quat)
CFLPoint4(const CFLPoint3< float > &flp3, float w=0.f)
virtual const CResult Divide(float f32Scalar)
virtual const CFLPoint4< Ty > & operator+=(const double &value)
이동 연산자[offset]
virtual EFigureDeclType GetDeclType() const override
virtual const CResult Offset(double x, double y, double z, double w)
virtual const CResult Multiply(double f64MulX, double f64MulY, double f64MulZ, double f64MulW)
CFLPoint4(const CFLPoint4< float > *pFlp4)
CFLPoint4(const CFLPoint4< float > &flp4)
virtual const CResult Divide(int64_t i64Scalar)
virtual const CResult Offset(const CFLPoint4< float > *pFlp4)
virtual const CResult Multiply(float f32Scalar)
CFLPoint4(double x, double y, double z, double w)
CFLPoint4(const CFLGeometry3DQuaternion< float > *pQuat)
virtual const CResult Set(const CFLPoint4< double > &flp4)
CFLPoint4(float x, float y, float z, float w)
virtual const CResult MakeFigureInvalid() override
Figure를 유효하지 않은 Figure로 만듦. (예를 들어, 점의 좌표를 Invalid한 x, y로 설정)
CFLPoint4(const CFLPoint3< double > *pFlp3, double w=0.)
virtual const CFLPoint4< Ty > & operator+=(const CFLPoint4< double > &flp4)
이동 연산자[offset]
virtual const CResult Set(const CFLGeometry3DQuaternion< float > *pQuat)
virtual const CResult MatMul(const CMatrix< double > *pMat4x4)
CFLPoint4(const CFLPoint4< double > *pFlp4)
virtual bool IsValid() const override
virtual const CResult Subtract(Ty tX, Ty tY, Ty tZ, Ty tW)
virtual const CResult Set(const CFLPoint3< float > &flp3, float w=0.)
virtual const CResult Offset(int64_t x, int64_t y, int64_t z, int64_t w)
CFLPoint4(const CFLGeometry3DQuaternion< double > *pQuat)
virtual const CResult Set(const CFLPoint3< float > *pFlp3, float w=0.f)
CFLPoint4(const CFLPoint3< double > &flp3, double w=0.)
CFLPoint4(int64_t x, int64_t y, int64_t z, int64_t w)
virtual CFLPoint4< double > operator-(const CFLPoint4< double > &flp4) const
이동 연산자[offset]
virtual const CResult Subtract(const CFLPoint4< Ty > &rhs)
virtual double GetMagnitude() const override
virtual const CResult Set(const CFLGeometry3DQuaternion< float > &quat)
CFLPoint4(const CFLPoint3< float > *pFlp3, float w=0.f)
CFLPoint4(const CFLFigure &flf)
초기화 생성자
virtual const CResult Offset(int32_t x, int32_t y, int32_t z, int32_t w)
virtual const CResult Set(double x, double y, double z, double w)
virtual bool operator!=(const CFLPoint4< double > &flp4) const
비교 연산자
virtual const CResult Offset(float x, float y, float z, float w)
virtual const CResult Multiply(const CFLPoint4< double > &flp4)
virtual const CResult Normalize()
원점으로부터 현재 객체로 향하는 단위 벡터로 현재 객체를 설정하는 함수
virtual const CResult Set(const CFLPoint4< double > *pFlp4)
virtual const CResult Set(int64_t x, int64_t y, int64_t z, int64_t w)
CFLPoint4(const CFLFigure *pFlf)
초기화 생성자
virtual const CFLPoint4< Ty > & operator-=(const CFLPoint4< double > &flp4)
이동 연산자[offset]
virtual const CFLPoint4< Ty > & operator=(const CFLPoint4< Ty > &flp4)
virtual const CResult Divide(int32_t i32Scalar)
float w
Definition FLPoint4.h:30
virtual const CResult Set(int32_t x, int32_t y, int32_t z, int32_t w)
virtual const CResult Set(const CFLFigure &flf) override
virtual const CResult Offset(const CFLPoint4< double > &flp4)
virtual const CResult MatMul(const CMatrix< float > *pMat4x4)
CFLPoint4< double > operator*(const double &value) const
해당 객체의 x, y, z, w 값에 매개변수를 곱하는 연산자
CFLPoint4< double > operator*(const CFLPoint4< double > &flp4) const
해당 객체의 x, y, z, w 값에 매개변수를 곱하는 연산자
virtual bool operator==(const CFLPoint4< float > &flp4) const
비교 연산자
virtual const CResult Add(const CFLPoint4< Ty > &rhs)
virtual const CResult Set(float x, float y, float z, float w)
virtual CFLPoint4< double > operator/(const CFLPoint4< double > &flp4) const
해당 객체의 x, y, z, w 값을 매개변수로 나누는 연산자
virtual const CFLPoint4< Ty > & operator-=(const double &value)
이동 연산자[offset]
virtual const CFLPoint4< Ty > & operator*=(const CFLPoint4< double > &flp4)
해당 객체의 x, y, z, w 값에 매개변수를 곱하는 연산자
virtual CFLPoint4< double > operator+(const CFLPoint4< double > &flp4) const
이동 연산자[offset]
virtual bool operator==(const CFLPoint4< double > &flp4) const
비교 연산자
virtual const CResult Set(const CFLPoint3< double > *pFlp3, double w=0.)
virtual const CResult Multiply(int32_t i32Scalar)
virtual const CResult Multiply(int64_t i64Scalar)
virtual CFLPoint4< double > operator/(const double &value) const
해당 객체의 x, y, z, w 값을 매개변수로 나누는 연산자
virtual bool operator!=(const CFLPoint4< float > &flp4) const
비교 연산자
virtual CFLPoint4< double > GetUnitVector() const
원점으로부터 현재 객체로 향하는 단위 벡터를 얻는 함수
virtual const CResult Multiply(double f64Scalar)
CFLPoint4(const CFLPoint4< double > &flp4)
virtual const CResult Set(const CFLPoint3< double > &flp3, double w=0.)
virtual const CResult Offset(const CFLPoint4< double > *pFlp4)
virtual const CResult Multiply(const CFLPoint4< float > *pFlp4)
virtual const CResult Set(const CFLPoint4< float > &flp4)
virtual const CResult MatMul(const CMatrix< float > &mat4x4)
virtual const CResult Multiply(const CFLPoint4< float > &flp4)
virtual const CResult Multiply(int64_t i64MulX, int64_t i64MulY, int64_t i64MulZ, int64_t i64MulW)
virtual const CResult MatMul(const CMatrix< double > &mat4x4)
CFLPoint4(const CFLGeometry3DQuaternion< double > &quat)
virtual void Clear() override
객체의 변수를 초기화 합니다.
virtual const CResult Multiply(const CFLPoint4< double > *pFlp4)
virtual const CResult Set(const CFLPoint4< float > *pFlp4)
virtual const CResult Multiply(float f32MulX, float f32MulY, float f32MulZ, float f32MulW)
virtual CFLPoint4< double > operator-(const double &value) const
이동 연산자[offset]
virtual const CResult Divide(double f64Scalar)
virtual const CResult Set(const CFLFigure *pFlf) override
virtual const CFLPoint4< Ty > & operator/=(const double &value)
해당 객체의 x, y, z, w 값을 매개변수로 나누는 연산자
virtual bool IsFigureValid() const override
virtual const CFLPoint4< Ty > & operator/=(const CFLPoint4< double > &flp4)
해당 객체의 x, y, z, w 값을 매개변수로 나누는 연산자
virtual bool IsSpecEqual(const CFLFigure *pFlfRhs, EFigureSpecCompareType eSpecType=EFigureSpecCompareType_Coordinates) const override
virtual CFLPoint4< double > GetUnitVector(const CFLPoint4< double > *pFlp4Target) const
해당 객체로부터 매개변수 객체로 향하는 단위 벡터를 구하는 함수
virtual CFLPoint4< double > GetUnitVector(const CFLPoint4< double > &flp4Target) const
해당 객체로부터 매개변수 객체로 향하는 단위 벡터를 구하는 함수
virtual const CResult Offset(const CFLPoint4< float > &flp4)
virtual const CResult Multiply(int32_t i32MulX, int32_t i32MulY, int32_t i32MulZ, int32_t i32MulW)
virtual void Get(Ty &tX, Ty &tY, Ty &tZ, Ty &tW) const
virtual const CFLPoint4< Ty > & operator*=(const double &value)
해당 객체의 x, y, z, w 값에 매개변수를 곱하는 연산자
virtual const CResult Add(Ty tX, Ty tY, Ty tZ, Ty tW)
float y
Definition FLPoint.h:36
float x
Definition FLPoint.h:30
행렬을 표현하는 클래스
Definition Matrix.h:79
ECPUInstructionType
CPU 명령어 타입
Definition DefinitionsBase.h:2044
Definition AlgorithmBase.h:16
EFigureDeclType
도형의 타입
Definition DefinitionsFigure.h:33
EFigureSpecCompareType
Definition DefinitionsFigure.h:3491
@ EFigureSpecCompareType_Coordinates
Definition DefinitionsFigure.h:3496