fbxsdk/core/math/fbxdualquaternion.h Source File

fbxdualquaternion.h
Go to the documentation of this file.
1 /****************************************************************************************
2 
3  Copyright (C) 2015 Autodesk, Inc.
4  All rights reserved.
5 
6  Use of this software is subject to the terms of the Autodesk license agreement
7  provided at the time of installation or download, or which otherwise accompanies
8  this software in either electronic or hard copy form.
9 
10 ****************************************************************************************/
11 
13 #ifndef _FBXSDK_CORE_MATH_DUAL_QUATERNION_H_
14 #define _FBXSDK_CORE_MATH_DUAL_QUATERNION_H_
15 
16 #include <fbxsdk/fbxsdk_def.h>
17 
19 
20 #include <fbxsdk/fbxsdk_nsbegin.h>
21 
28 {
29 public:
36 
41  FbxDualQuaternion(const FbxQuaternion& pV1, const FbxQuaternion& pV2);
42 
47 
52  FbxDualQuaternion(const FbxQuaternion& pRotation, const FbxVector4& pTranslation);
53 
64  FbxDualQuaternion(double pX1, double pY1, double pZ1, double pW1, double pX2, double pY2, double pZ2, double pW2);
65 
69 
77  FbxDualQuaternion& operator=(const FbxDualQuaternion& pDualQuaternion);
78 
89  void Set(double pX1, double pY1, double pZ1, double pW1, double pX2, double pY2, double pZ2, double pW2);
90 
94  FbxQuaternion& GetFirstQuaternion();
95 
99  FbxQuaternion& GetSecondQuaternion();
100 
104  const FbxQuaternion& GetFirstQuaternion() const;
105 
109  const FbxQuaternion& GetSecondQuaternion() const;
110 
114  FbxQuaternion GetRotation() const;
115 
121  FbxVector4 GetTranslation() const;
123 
133  FbxDualQuaternion operator+(double pValue) const;
134 
140  FbxDualQuaternion operator-(double pValue) const;
141 
147  FbxDualQuaternion operator*(double pValue) const;
148 
154  FbxDualQuaternion operator/(double pValue) const;
155 
161  FbxDualQuaternion& operator+=(double pValue);
162 
168  FbxDualQuaternion& operator-=(double pValue);
169 
175  FbxDualQuaternion& operator*=(double pValue);
176 
182  FbxDualQuaternion& operator/=(double pValue);
184 
192  FbxDualQuaternion operator-() const;
193 
199  FbxDualQuaternion operator+(const FbxDualQuaternion& pDualQuaternion) const;
200 
206  FbxDualQuaternion operator-(const FbxDualQuaternion& pDualQuaternion) const;
207 
213  FbxDualQuaternion operator*(const FbxDualQuaternion& pDualQuaternion) const;
214 
220  FbxDualQuaternion operator/(const FbxDualQuaternion& pDualQuaternion) const;
221 
227  FbxDualQuaternion& operator+=(const FbxDualQuaternion& pDualQuaternion);
228 
234  FbxDualQuaternion& operator-=(const FbxDualQuaternion& pDualQuaternion);
235 
241  FbxDualQuaternion& operator*=(const FbxDualQuaternion& pDualQuaternion);
242 
248  FbxDualQuaternion& operator/=(const FbxDualQuaternion& pDualQuaternion);
249 
255  FbxDualQuaternion operator*(const FbxVector4 pVector) const;
256 
261  FbxDualQuaternion Product(const FbxDualQuaternion& pDualQuaternion) const;
262 
265  void Normalize();
266 
270  void Inverse();
271 
275  FbxVector4 Deform(FbxVector4& pPoint);
277 
285  void Conjugate();
286 
289  void Dual();
290 
293  void DualConjugate();
295 
304  bool operator==(const FbxDualQuaternion & pV) const;
305 
310  bool operator!=(const FbxDualQuaternion & pV) const;
312 
313 /*****************************************************************************************************************************
314 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
315 *****************************************************************************************************************************/
316 #ifndef DOXYGEN_SHOULD_SKIP_THIS
317 private:
318  FbxQuaternion mQ1;
319  FbxQuaternion mQ2;
320 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
321 };
322 
323 #include <fbxsdk/fbxsdk_nsend.h>
324 
325 #endif /* _FBXSDK_CORE_MATH_DUAL_QUATERNION_H_ */
FbxString operator+(const FbxString &pString1, const FbxString &pString2)
FbxString concatenation.
FBX SDK environment definition.
FBX SDK dual quaternion class to represent rigid transformation, which is combined by two quaternions...
FBX SDK quaternion class.
Definition: fbxquaternion.h:27
A four double mathematic vector class.
Definition: fbxvector4.h:25
#define FBXSDK_DLL
Definition: fbxarch.h:173