FLImaging 6.5.8.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
630 virtual const CFLPoint4<Ty>& operator=(const CFLPoint4<Ty>& flp4);
631
643 virtual bool operator==(const CFLPoint4<float>& flp4) const;
644
656 virtual bool operator==(const CFLPoint4<double>& flp4) const;
657
669 virtual bool operator!=(const CFLPoint4<float>& flp4) const;
670
682 virtual bool operator!=(const CFLPoint4<double>& flp4) const;
683
695 virtual const CFLPoint4<Ty>& operator+=(const double& value);
696
708 virtual const CFLPoint4<Ty>& operator+=(const CFLPoint4<double>& flp4);
709
721 virtual const CFLPoint4<Ty>& operator-=(const double& value);
722
734 virtual const CFLPoint4<Ty>& operator-=(const CFLPoint4<double>& flp4);
735
747 virtual const CFLPoint4<Ty>& operator*=(const double& value);
748
760 virtual const CFLPoint4<Ty>& operator*=(const CFLPoint4<double>& flp4);
761
773 virtual const CFLPoint4<Ty>& operator/=(const double& value);
774
786 virtual const CFLPoint4<Ty>& operator/=(const CFLPoint4<double>& flp4);
787
799 virtual CFLPoint4<double> operator+(const double& value) const;
800
813
825 virtual CFLPoint4<double> operator-(const double& value) const;
826
839
851 CFLPoint4<double> operator*(const double& value) const;
852
865
877 virtual CFLPoint4<double> operator/(const double& value) const;
878
891
892
893 virtual const CResult Set(const CFLFigure& flf) override;
894 virtual const CResult Set(const CFLFigure* pFlf) override;
895
913 virtual const CResult Set(double x, double y, double z, double w);
914
932 virtual const CResult Set(float x, float y, float z, float w);
933
951 virtual const CResult Set(int32_t x, int32_t y, int32_t z, int32_t w);
952
970 virtual const CResult Set(int64_t x, int64_t y, int64_t z, int64_t w);
971
987 virtual const CResult Set(const CFLPoint3<double>& flp3, double w = 0.);
988
1004 virtual const CResult Set(const CFLPoint3<float>& flp3, float w = 0.);
1005
1006
1022 virtual const CResult Set(const CFLPoint3<double>* pFlp3, double w = 0.);
1023
1039 virtual const CResult Set(const CFLPoint3<float>* pFlp3, float w = 0.f);
1040
1052 virtual const CResult Set(const CFLPoint4<double>& flp4);
1053
1065 virtual const CResult Set(const CFLPoint4<float>& flp4);
1066
1078 virtual const CResult Set(const CFLPoint4<double>* pFlp4);
1079
1091 virtual const CResult Set(const CFLPoint4<float>* pFlp4);
1092
1106 virtual const CResult Set(const CFLGeometry3DQuaternion<double>& quat);
1107
1121 virtual const CResult Set(const CFLGeometry3DQuaternion<float>& quat);
1122
1136 virtual const CResult Set(const CFLGeometry3DQuaternion<double>* pQuat);
1137
1151 virtual const CResult Set(const CFLGeometry3DQuaternion<float>* pQuat);
1152
1153
1166
1178 CFLPoint4(const CFLFigure* pFlf);
1179
1193 CFLPoint4(double x, double y, double z, double w);
1194
1208 CFLPoint4(float x, float y, float z, float w);
1209
1223 CFLPoint4(int32_t x, int32_t y, int32_t z, int32_t w);
1224
1238 CFLPoint4(int64_t x, int64_t y, int64_t z, int64_t w);
1239
1251 CFLPoint4(const CFLPoint3<double>& flp3, double w = 0.);
1252
1264 CFLPoint4(const CFLPoint3<float>& flp3, float w = 0.f);
1265
1277 CFLPoint4(const CFLPoint3<double>* pFlp3, double w = 0.);
1278
1290 CFLPoint4(const CFLPoint3<float>* pFlp3, float w = 0.f);
1291
1302
1313
1314
1325
1336
1347
1358
1369
1380
1381 Base::ECPUInstructionType m_eCPUInstruction;
1382 SupportToDuplicateObject(CFLPoint4<Ty>, *this);
1383 DeclareGetClassType();
1384 };
1385
1388 }
1389}
FLImaging module execution result object.
Definition ResultsDef.h:1514
A base class of classes representing figures.
Definition FLFigure.h:27
A class representing quaternion.
Definition FLGeometry3DQuaternion.h:25
A class representing a 3D point.
Definition FLPoint3.h:36
A class representing a point with 4 elements.
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 operator[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 operator[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
Make the figure invalid. (For example, set the coordinates of the point to invalid x,...
CFLPoint4(const CFLPoint3< double > *pFlp3, double w=0.)
virtual const CFLPoint4< Ty > & operator+=(const CFLPoint4< double > &flp4)
Offset operator[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 operator[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)
initialization constructor
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
Comparison operator.
virtual const CResult Offset(float x, float y, float z, float w)
virtual const CResult Multiply(const CFLPoint4< double > &flp4)
virtual const CResult Normalize()
Function to set this the unit vector from the origin to this
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)
initialization constructor
virtual const CFLPoint4< Ty > & operator-=(const CFLPoint4< double > &flp4)
Offset operator[offset].
virtual const CFLPoint4< Ty > & operator=(const CFLPoint4< Ty > &flp4)
virtual const CResult Divide(int32_t i32Scalar)
Ty 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
An operator that multiplies the x and y values of the object by a parameter.
CFLPoint4< double > operator*(const CFLPoint4< double > &flp4) const
An operator that multiplies the x and y values of the object by a parameter.
virtual bool operator==(const CFLPoint4< float > &flp4) const
Comparison operator.
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
An operator that divides the x, y, z, w values of the object into parameters.
virtual const CFLPoint4< Ty > & operator-=(const double &value)
Offset operator[offset].
virtual const CFLPoint4< Ty > & operator*=(const CFLPoint4< double > &flp4)
An operator that multiplies the x and y values of the object by a parameter.
virtual CFLPoint4< double > operator+(const CFLPoint4< double > &flp4) const
Offset operator[offset].
virtual bool operator==(const CFLPoint4< double > &flp4) const
Comparison operator.
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
An operator that divides the x, y, z, w values of the object into parameters.
virtual bool operator!=(const CFLPoint4< float > &flp4) const
Comparison operator.
virtual CFLPoint4< double > GetUnitVector() const
Function to get the unit vector from the origin to this
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
Clear an object's variable.
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 operator[offset].
virtual const CResult Divide(double f64Scalar)
virtual const CResult Set(const CFLFigure *pFlf) override
virtual const CFLPoint4< Ty > & operator/=(const double &value)
An operator that divides the x, y, z, w values of the object into parameters.
virtual bool IsFigureValid() const override
virtual const CFLPoint4< Ty > & operator/=(const CFLPoint4< double > &flp4)
An operator that divides the x, y, z, w values of the object into parameters.
virtual CFLPoint4< double > GetUnitVector(const CFLPoint4< double > *pFlp4Target) const
A function that calculates the unit vector from that object to the parameter object.
virtual CFLPoint4< double > GetUnitVector(const CFLPoint4< double > &flp4Target) const
A function that calculates the unit vector from that object to the parameter object.
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)
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, Ty tW)
A class representing matrix.
Definition Matrix.h:79
ECPUInstructionType
CPU instruction type.
Definition DefinitionsBase.h:1924
EFigureDeclType
Declare type of figure.
Definition DefinitionsFigure.h:33