Go to the
documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00013 #ifndef _FBXSDK_CORE_MATH_VECTOR_4_H_
00014 #define _FBXSDK_CORE_MATH_VECTOR_4_H_
00015
00016 #include <fbxsdk/fbxsdk_def.h>
00017
00018 #include <fbxsdk/fbxsdk_nsbegin.h>
00019
00020 class FbxQuaternion;
00021
00025 class FBXSDK_DLL FbxVector4 : public FbxDouble4
00026 {
00027 public:
00032
00033 FbxVector4();
00034
00038 FbxVector4(const FbxVector4& pVector4);
00039
00046 FbxVector4(double pX, double pY, double pZ, double pW=1.0);
00047
00051 FbxVector4(const double pValue[4]);
00052
00057 FbxVector4(const FbxDouble3& pValue);
00059
00068 FbxVector4& operator=(const FbxVector4& pVector4);
00069
00074 FbxVector4& operator=(const double* pValue);
00075
00081 FbxVector4& operator=(const FbxDouble3& pValue);
00082
00089 void Set(double pX, double pY, double pZ, double pW=1.0);
00091
00101 FbxVector4 operator+(double pValue) const;
00102
00108 FbxVector4 operator-(double pValue) const;
00109
00115 FbxVector4 operator*(double pValue) const;
00116
00122 FbxVector4 operator/(double pValue) const;
00123
00129 FbxVector4& operator+=(double pValue);
00130
00136 FbxVector4& operator-=(double pValue);
00137
00143 FbxVector4& operator*=(double pValue);
00144
00150 FbxVector4& operator/=(double pValue);
00152
00160 FbxVector4 operator-() const;
00161
00167 FbxVector4 operator+(const FbxVector4& pVector) const;
00168
00174 FbxVector4 operator-(const FbxVector4& pVector) const;
00175
00181 FbxVector4 operator*(const FbxVector4& pVector) const;
00182
00188 FbxVector4 operator/(const FbxVector4& pVector) const;
00189
00195 FbxVector4& operator+=(const FbxVector4& pVector);
00196
00202 FbxVector4& operator-=(const FbxVector4& pVector);
00203
00209 FbxVector4& operator*=(const FbxVector4& pVector);
00210
00216 FbxVector4& operator/=(const FbxVector4& pVector);
00217
00223 double DotProduct(const FbxVector4& pVector) const;
00224
00230 FbxVector4 CrossProduct(const FbxVector4& pVector) const;
00231
00240 static bool AxisAlignmentInEulerAngle(const FbxVector4& pAB, const FbxVector4& pA, const FbxVector4& pB, FbxVector4& pAngles);
00242
00251 bool operator==(const FbxVector4 & pVector) const;
00252
00257 bool operator!=(const FbxVector4 & pVector) const;
00259
00268 double Length() const;
00269
00274 double SquareLength() const;
00275
00281 double Distance(const FbxVector4& pVector) const;
00282
00286 void Normalize();
00287
00288
00292 void SetXYZ(const FbxQuaternion pQuat);
00294
00299
00300 operator double* ();
00301
00303 operator const double* () const;
00305
00309 bool IsZero(int pSize=4) const;
00310
00311
00312 void FixIncorrectValue();
00313
00314
00315
00316
00317 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00318 int Compare(const FbxVector4& pV, const double pThreshold=FBXSDK_TOLERANCE) const;
00319 #endif
00320 };
00321
00322 #include <fbxsdk/fbxsdk_nsend.h>
00323
00324 #endif