FbxDualQuaternion Class Reference

Search for all occurrences

Detailed Description

FBX SDK dual quaternion class to represent rigid transformation, which is combined by two quaternions.

A transformation is said to be rigid if it preserves relative distances and angles. That means rotation and translation.

Definition at line 27 of file fbxdualquaternion.h.

#include <fbxdualquaternion.h>

List of all members.

Constructors and Destructor

 FbxDualQuaternion ()
 Constructor.
 FbxDualQuaternion (const FbxQuaternion &pV1, const FbxQuaternion &pV2)
 Constructor.
 FbxDualQuaternion (const FbxDualQuaternion &pV)
 Copy constructor.
 FbxDualQuaternion (const FbxQuaternion &pRotation, const FbxVector4 &pTranslation)
 Constructor.
 FbxDualQuaternion (double pX1, double pY1, double pZ1, double pW1, double pX2, double pY2, double pZ2, double pW2)
 Constructor.
 ~FbxDualQuaternion ()
 Destructor.

Access

FbxDualQuaternionoperator= (const FbxDualQuaternion &pDualQuaternion)
 Assignment operation.
void Set (double pX1, double pY1, double pZ1, double pW1, double pX2, double pY2, double pZ2, double pW2)
 Set vector.
FbxQuaternionGetFirstQuaternion ()
 Get the first quaternion of the dual quaternion.
FbxQuaternionGetSecondQuaternion ()
 Get the second quaternion of the dual quaternion.
const FbxQuaternionGetFirstQuaternion () const
 Get the first quaternion of the dual quaternion.
const FbxQuaternionGetSecondQuaternion () const
 Get the second quaternion of the dual quaternion.
FbxQuaternion GetRotation () const
 Get the rotation part from the dual quaternion.
FbxVector4 GetTranslation () const
 Get the translation part from the dual quaternion.

Scalar Operations

FbxDualQuaternion operator+ (double pValue) const
 Add a value to all vector components.
FbxDualQuaternion operator- (double pValue) const
 Subtract a value from all vector components.
FbxDualQuaternion operator* (double pValue) const
 Multiply all vector components by a value.
FbxDualQuaternion operator/ (double pValue) const
 Divide all vector components by a value.
FbxDualQuaternionoperator+= (double pValue)
 Add a value to all vector components.
FbxDualQuaternionoperator-= (double pValue)
 Subtract a value from all vector components.
FbxDualQuaternionoperator*= (double pValue)
 Multiply a value to all vector elements.
FbxDualQuaternionoperator/= (double pValue)
 Divide all vector elements by a value.

Vector Operations

FbxDualQuaternion operator- () const
 Unary minus operator.
FbxDualQuaternion operator+ (const FbxDualQuaternion &pDualQuaternion) const
 Add two vectors together.
FbxDualQuaternion operator- (const FbxDualQuaternion &pDualQuaternion) const
 Subtract a quaternion from another quaternion.
FbxDualQuaternion operator* (const FbxDualQuaternion &pDualQuaternion) const
 Memberwise multiplication of two vectors.
FbxDualQuaternion operator/ (const FbxDualQuaternion &pDualQuaternion) const
 Memberwise division of a dual quaternion with another dual quaternion.
FbxDualQuaternionoperator+= (const FbxDualQuaternion &pDualQuaternion)
 Add two quaternions together.
FbxDualQuaternionoperator-= (const FbxDualQuaternion &pDualQuaternion)
 Subtract a dual quaternion from another vector.
FbxDualQuaternionoperator*= (const FbxDualQuaternion &pDualQuaternion)
 Memberwise multiplication of two quaternions.
FbxDualQuaternionoperator/= (const FbxDualQuaternion &pDualQuaternion)
 Memberwise division of a dual quaternion by another dual quaternion.
FbxDualQuaternion operator* (const FbxVector4 pVector) const
 Multiplication of a dual quaternion by a FbxVector4.
FbxDualQuaternion Product (const FbxDualQuaternion &pDualQuaternion) const
 Return dual quaternion product.
void Normalize ()
 Normalize the dual quaternion, length set to 1.
void Inverse ()
 Calculate the dual quaternion's inverse.
FbxVector4 Deform (FbxVector4 &pPoint)
 Deform a point by this dual quaternion.

Conjugate Operations

Dual quaternion has three types of conjugate.
void Conjugate ()
 Conjugate both quaternions of this dual quaternion.
void Dual ()
 Conjugate in dual space.
void DualConjugate ()
 Conjugate both quaternions of this dual quaternion in dual space.

Boolean Operations

bool operator== (const FbxDualQuaternion &pV) const
 Equivalence operator.
bool operator!= (const FbxDualQuaternion &pV) const
 Non equivalence operator.

Constructor & Destructor Documentation

Constructor.

FbxDualQuaternion ( const FbxQuaternion pV1,
const FbxQuaternion pV2 
)

Constructor.

Parameters:
pV1FbxQuaternion object.
pV2FbxQuaternion object.

Copy constructor.

Parameters:
pVFbxQuaternion object copied to this one.
FbxDualQuaternion ( const FbxQuaternion pRotation,
const FbxVector4 pTranslation 
)

Constructor.

Parameters:
pRotationThe rotation the dual quaternion is going to represent.
pTranslationThe translation the dual quaternion is going to represent.
FbxDualQuaternion ( double  pX1,
double  pY1,
double  pZ1,
double  pW1,
double  pX2,
double  pY2,
double  pZ2,
double  pW2 
)

Constructor.

Parameters:
pX1The X component of the first quaternion.
pY1The Y component of the first quaternion.
pZ1The Z component of the first quaternion.
pW1The W component of the first quaternion.
pX2The X component of the second quaternion.
pY2The Y component of the second quaternion.
pZ2The Z component of the second quaternion.
pW2The W component of the second quaternion.

Destructor.


Member Function Documentation

FbxDualQuaternion& operator= ( const FbxDualQuaternion pDualQuaternion)

Assignment operation.

Parameters:
pDualQuaternionFbxDualQuaternion object assigned to this one.
void Set ( double  pX1,
double  pY1,
double  pZ1,
double  pW1,
double  pX2,
double  pY2,
double  pZ2,
double  pW2 
)

Set vector.

Parameters:
pX1The X component of the first quaternion.
pY1The Y component of the first quaternion.
pZ1The Z component of the first quaternion.
pW1The W component of the first quaternion.
pX2The X component of the second quaternion.
pY2The Y component of the second quaternion.
pZ2The Z component of the second quaternion.
pW2The W component of the second quaternion.
FbxQuaternion& GetFirstQuaternion ( )

Get the first quaternion of the dual quaternion.

Returns:
The first quaternion of the dual quaternion.
FbxQuaternion& GetSecondQuaternion ( )

Get the second quaternion of the dual quaternion.

Returns:
The second quaternion of the dual quaternion.
const FbxQuaternion& GetFirstQuaternion ( ) const

Get the first quaternion of the dual quaternion.

Returns:
The first quaternion of the dual quaternion.
const FbxQuaternion& GetSecondQuaternion ( ) const

Get the second quaternion of the dual quaternion.

Returns:
The second quaternion of the dual quaternion.
FbxQuaternion GetRotation ( ) const

Get the rotation part from the dual quaternion.

Returns:
FbxQuaternion object to represent rotation.
FbxVector4 GetTranslation ( ) const

Get the translation part from the dual quaternion.

Returns:
FbxVector4 object to represent translation.
Remarks:
A dual quaternion can represent rotation first then translation or translation first then rotation. in most DCC,rotation first then translation, so we extract translation in this order.
FbxDualQuaternion operator+ ( double  pValue) const

Add a value to all vector components.

Parameters:
pValueThe value to add to each component of the vector.
Returns:
New vector.
Remarks:
The passed value is not checked.
FbxDualQuaternion operator- ( double  pValue) const

Subtract a value from all vector components.

Parameters:
pValueThe value to subtract from each component of the vector.
Returns:
New vector.
Remarks:
The passed value is not checked.
FbxDualQuaternion operator* ( double  pValue) const

Multiply all vector components by a value.

Parameters:
pValueThe value multiplying each component of the vector.
Returns:
New vector.
Remarks:
The passed value is not checked.
FbxDualQuaternion operator/ ( double  pValue) const

Divide all vector components by a value.

Parameters:
pValueThe value dividing each component of the vector.
Returns:
New vector.
Remarks:
The passed value is not checked.
FbxDualQuaternion& operator+= ( double  pValue)

Add a value to all vector components.

Parameters:
pValueThe value to add to each component of the vector.
Returns:
The result of adding pValue to each component of the vector, replacing this dual quaternion.
Remarks:
The passed value is not checked.
FbxDualQuaternion& operator-= ( double  pValue)

Subtract a value from all vector components.

Parameters:
pValueThe value to subtract from each component of the vector.
Returns:
The result of subtracting pValue from each component of the vector, replacing this dual quaternion.
Remarks:
The passed value is not checked.
FbxDualQuaternion& operator*= ( double  pValue)

Multiply a value to all vector elements.

Parameters:
pValueThe value multiplying each component of the vector.
Returns:
The result of multiplying each component of the vector by pValue, replacing this dual quaternion.
Remarks:
The passed value is not checked.
FbxDualQuaternion& operator/= ( double  pValue)

Divide all vector elements by a value.

Parameters:
pValueThe value dividing each component of the vector.
Returns:
The result of dividing each component of the vector by pValue, replacing this dual quaternion.
Remarks:
The passed value is not checked.
FbxDualQuaternion operator- ( ) const

Unary minus operator.

Returns:
A dual quaternion where each component is multiplied by -1.
FbxDualQuaternion operator+ ( const FbxDualQuaternion pDualQuaternion) const

Add two vectors together.

Parameters:
pDualQuaternionDual quaternion to add.
Returns:
The dual quaternion v' = this + pDualQuaternion.
Remarks:
The values in pDualQuaternion are not checked.
FbxDualQuaternion operator- ( const FbxDualQuaternion pDualQuaternion) const

Subtract a quaternion from another quaternion.

Parameters:
pDualQuaternionDual quaternion to subtract.
Returns:
The dual quaternion v' = this - pDualQuaternion.
Remarks:
The values in pDualQuaternion are not checked.
FbxDualQuaternion operator* ( const FbxDualQuaternion pDualQuaternion) const

Memberwise multiplication of two vectors.

Parameters:
pDualQuaternionMultiplying dual quaternion.
Returns:
The dual quaternion v' = this * pQuaternion.
Remarks:
The values in pDualQuaternion are not checked.
FbxDualQuaternion operator/ ( const FbxDualQuaternion pDualQuaternion) const

Memberwise division of a dual quaternion with another dual quaternion.

Parameters:
pDualQuaternionDividing dual quaternion.
Returns:
The dual quaternion v' = this / pQuaternion.
Remarks:
The values in pDualQuaternion are not checked.
FbxDualQuaternion& operator+= ( const FbxDualQuaternion pDualQuaternion)

Add two quaternions together.

Parameters:
pDualQuaternionDual quaternion to add.
Returns:
The dual quaternion v' = this + pQuaternion, replacing this dual quaternion.
Remarks:
The values in pDualQuaternion are not checked.
FbxDualQuaternion& operator-= ( const FbxDualQuaternion pDualQuaternion)

Subtract a dual quaternion from another vector.

Parameters:
pDualQuaternionDual quaternion to subtract.
Returns:
The dual quaternion v' = this - pQuaternion, replacing this dual quaternion.
Remarks:
The values in pDualQuaternion are not checked.
FbxDualQuaternion& operator*= ( const FbxDualQuaternion pDualQuaternion)

Memberwise multiplication of two quaternions.

Parameters:
pDualQuaternionMultiplying dual quaternion.
Returns:
The dual quaternion v' = this * pQuaternion, replacing this dual quaternion.
Remarks:
The values in pDualQuaternion are not checked.
FbxDualQuaternion& operator/= ( const FbxDualQuaternion pDualQuaternion)

Memberwise division of a dual quaternion by another dual quaternion.

Parameters:
pDualQuaternionDividing dual quaternion.
Returns:
The dual quaternion v' = this / pQuaternion, replacing this dual quaternion.
Remarks:
The values in pDualQuaternion are not checked.
FbxDualQuaternion operator* ( const FbxVector4  pVector) const

Multiplication of a dual quaternion by a FbxVector4.

Parameters:
pVectorThe FbxVector4 to multiply with.
Returns:
The dual quaternion v' = FbxDualQuaternion(mQ1, (mQ1 * pVector) + mQ2).
Remarks:
The values in pDualQuaternion are not checked.
FbxDualQuaternion Product ( const FbxDualQuaternion pDualQuaternion) const

Return dual quaternion product.

Parameters:
pDualQuaternionproduct dual quaternion.
Returns:
This dual quaternion replace with the dual quaternion product.
void Normalize ( )

Normalize the dual quaternion, length set to 1.

void Inverse ( )

Calculate the dual quaternion's inverse.

Returns:
The inverse of this dual quaternion.
FbxVector4 Deform ( FbxVector4 pPoint)

Deform a point by this dual quaternion.

Returns:
The inverse of this quaternion.
void Conjugate ( )

Conjugate both quaternions of this dual quaternion.

void Dual ( )

Conjugate in dual space.

void DualConjugate ( )

Conjugate both quaternions of this dual quaternion in dual space.

bool operator== ( const FbxDualQuaternion pV) const

Equivalence operator.

Parameters:
pVThe quaternion to be compared to this quaternion.
Returns:
true if the two quaternions are equal (each element is within a FBXSDK_TOLERANCE tolerance), false otherwise.
bool operator!= ( const FbxDualQuaternion pV) const

Non equivalence operator.

Parameters:
pVThe quaternion to be compared to this.
Returns:
false if the two quaternions are equal (each element is within a FBXSDK_TOLERANCE tolerance), true otherwise.

The documentation for this class was generated from the following file:

FbxDualQuaternion FbxDualQuaternion FbxDualQuaternion FbxDualQuaternion FbxDualQuaternion FbxDualQuaternion FbxDualQuaternion FbxDualQuaternion FbxDualQuaternion FbxDualQuaternion
FbxDualQuaternion FbxDualQuaternion FbxDualQuaternion FbxDualQuaternion FbxDualQuaternion FbxDualQuaternion FbxDualQuaternion FbxDualQuaternion FbxDualQuaternion FbxDualQuaternion