- Main Page
- Classes
- Files
- Directories

- File List
- File Members

# fbxdualquaternion.h

Go to the documentation of this file.

    00001 /****************************************************************************************
    00002
    00003    Copyright (C) 2013 Autodesk, Inc.
    00004    All rights reserved.
    00005
    00006    Use of this software is subject to the terms of the Autodesk license agreement
    00007    provided at the time of installation or download, or which otherwise accompanies
    00008    this software in either electronic or hard copy form.
    00009
    00010 ****************************************************************************************/
    00011
    00013 #ifndef _FBXSDK_CORE_MATH_DUAL_QUATERNION_H_
    00014 #define _FBXSDK_CORE_MATH_DUAL_QUATERNION_H_
    00015
    00016 #include <fbxsdk/fbxsdk_def.h>
    00017
    00018 #include <fbxsdk/core/math/fbxquaternion.h>
    00019
    00020 #include <fbxsdk/fbxsdk_nsbegin.h>
    00021
    00027 class FBXSDK_DLL FbxDualQuaternion
    00028 {
    00029 public:
    00034
    00035         FbxDualQuaternion();
    00036
    00041         FbxDualQuaternion(const FbxQuaternion& pV1, const FbxQuaternion& pV2);
    00042
    00046         FbxDualQuaternion(const FbxDualQuaternion& pV);
    00047
    00052         FbxDualQuaternion(const FbxQuaternion& pRotation, const FbxVector4& pTranslation);
    00053
    00064         FbxDualQuaternion(double pX1, double pY1, double pZ1, double pW1, double pX2, double pY2, double pZ2, double pW2);
    00065
    00067         ~FbxDualQuaternion();
    00069
    00077         FbxDualQuaternion& operator=(const FbxDualQuaternion& pDualQuaternion);
    00078
    00089         void Set(double pX1, double pY1, double pZ1, double pW1, double pX2, double pY2, double pZ2, double pW2);
    00090
    00094         FbxQuaternion& GetFirstQuaternion();
    00095
    00099         FbxQuaternion& GetSecondQuaternion();
    00100
    00104         const FbxQuaternion& GetFirstQuaternion() const;
    00105
    00109         const FbxQuaternion& GetSecondQuaternion() const;
    00110
    00114         FbxQuaternion GetRotation() const;
    00115
    00121         FbxVector4 GetTranslation() const;
    00123
    00133         FbxDualQuaternion operator+(double pValue) const;
    00134
    00140         FbxDualQuaternion operator-(double pValue) const;
    00141
    00147         FbxDualQuaternion operator*(double pValue) const;
    00148
    00154         FbxDualQuaternion operator/(double pValue) const;
    00155
    00161         FbxDualQuaternion& operator+=(double pValue);
    00162
    00168         FbxDualQuaternion& operator-=(double pValue);
    00169
    00175         FbxDualQuaternion& operator*=(double pValue);
    00176
    00182         FbxDualQuaternion& operator/=(double pValue);
    00184
    00192         FbxDualQuaternion operator-() const;
    00193
    00199         FbxDualQuaternion operator+(const FbxDualQuaternion& pDualQuaternion) const;
    00200
    00206         FbxDualQuaternion operator-(const FbxDualQuaternion& pDualQuaternion) const;
    00207
    00213         FbxDualQuaternion operator*(const FbxDualQuaternion& pDualQuaternion) const;
    00214
    00220         FbxDualQuaternion operator/(const FbxDualQuaternion& pDualQuaternion) const;
    00221
    00227         FbxDualQuaternion& operator+=(const FbxDualQuaternion& pDualQuaternion);
    00228
    00234         FbxDualQuaternion& operator-=(const FbxDualQuaternion& pDualQuaternion);
    00235
    00241         FbxDualQuaternion& operator*=(const FbxDualQuaternion& pDualQuaternion);
    00242
    00248         FbxDualQuaternion& operator/=(const FbxDualQuaternion& pDualQuaternion);
    00249
    00255         FbxDualQuaternion operator*(const FbxVector4 pVector) const;
    00256
    00261         FbxDualQuaternion Product(const FbxDualQuaternion& pDualQuaternion) const;
    00262
    00265         void Normalize();
    00266
    00270         void Inverse();
    00271
    00275         FbxVector4 Deform(FbxVector4& pPoint);
    00277
    00285         void Conjugate();
    00286
    00289         void Dual();
    00290
    00293         void DualConjugate();
    00295
    00304         bool operator==(const FbxDualQuaternion & pV) const;
    00305
    00310         bool operator!=(const FbxDualQuaternion & pV) const;
    00312
    00313 /*****************************************************************************************************************************
    00314 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
    00315 *****************************************************************************************************************************/
    00316 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00317 private:
    00318     FbxQuaternion mQ1;
    00319     FbxQuaternion mQ2;
    00320 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
    00321 };
    00322
    00323 #include <fbxsdk/fbxsdk_nsend.h>
    00324
    00325 #endif /* _FBXSDK_CORE_MATH_DUAL_QUATERNION_H_ */