KFbxDualQuaternion Class Reference

This reference page is linked to from the following overview topics: FBX SDK 2012.


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.

Examples:

ViewScene/DrawScene.cxx.

Definition at line 53 of file kfbxdualquaternion.h.

#include <kfbxdualquaternion.h>

List of all members.

Constructors and Destructor

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

Access

KFbxDualQuaternion operator= (const KFbxDualQuaternion &pDualQuaternion)
  Assignment operation.
void  Set (double pX1, double pY1, double pZ1, double pW1, double pX2, double pY2, double pZ2, double pW2)
  Set vector.
KFbxQuaternion GetFirstQuaternion ()
  Get the first quaternion of the dual quaternion.
KFbxQuaternion GetSecondQuaternion ()
  Get the second quaternion of the dual quaternion.
const KFbxQuaternion GetFirstQuaternion () const
  Get the first quaternion of the dual quaternion.
const KFbxQuaternion GetSecondQuaternion () const
  Get the second quaternion of the dual quaternion.
KFbxQuaternion  GetRotation () const
  Get the rotation part from the dual quaternion.
KFbxVector4  GetTranslation () const
  Get the translation part from the dual quaternion.

Scalar Operations

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

Vector Operations

KFbxDualQuaternion  operator- () const
  Unary minus operator.
KFbxDualQuaternion  operator+ (const KFbxDualQuaternion &pDualQuaternion) const
  Add two vectors together.
KFbxDualQuaternion  operator- (const KFbxDualQuaternion &pDualQuaternion) const
  Subtract a quaternion from another quaternion.
KFbxDualQuaternion  operator* (const KFbxDualQuaternion &pDualQuaternion) const
  Memberwise multiplication of two vectors.
KFbxDualQuaternion  operator/ (const KFbxDualQuaternion &pDualQuaternion) const
  Memberwise division of a dual quaternion with another dual quaternion.
KFbxDualQuaternion operator+= (const KFbxDualQuaternion &pDualQuaternion)
  Add two quaternions together.
KFbxDualQuaternion operator-= (const KFbxDualQuaternion &pDualQuaternion)
  Subtract a dual quaternion from another vector.
KFbxDualQuaternion operator*= (const KFbxDualQuaternion &pDualQuaternion)
  Memberwise multiplication of two quaternions.
KFbxDualQuaternion operator/= (const KFbxDualQuaternion &pDualQuaternion)
  Memberwise division of a dual quaternion by another dual quaternion.
KFbxDualQuaternion  operator* (const KFbxVector4 pVector) const
  Multiplication of a dual quaternion by a KFbxVector4.
KFbxDualQuaternion  Product (const KFbxDualQuaternion &pDualQuaternion) const
  Return dual quaternion product.
void  Normalize ()
  Normalize the dual quaternion, length set to 1.
void  Inverse ()
  Calculate the dual quaternion's inverse.
KFbxVector4  Deform (KFbxVector4 &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 KFbxDualQuaternion &pV) const
  Equivalence operator.
bool  operator!= (const KFbxDualQuaternion &pV) const
  Non equivalence operator.

Constructor & Destructor Documentation

Constructor.

KFbxDualQuaternion ( const KFbxQuaternion pV1,
const KFbxQuaternion pV2 
)

Constructor.

Parameters:
pV1 KFbxQuaternion object.
pV2 KFbxQuaternion object.

Copy constructor.

Parameters:
pV KFbxQuaternion object copied to this one.
KFbxDualQuaternion ( const KFbxQuaternion pRotation,
const KFbxVector4 pTranslation 
)

Constructor.

Parameters:
pRotation The rotation the dual quaternion is going to represent.
pTranslation The translation the dual quaternion is going to represent.
KFbxDualQuaternion ( double  pX1,
double  pY1,
double  pZ1,
double  pW1,
double  pX2,
double  pY2,
double  pZ2,
double  pW2 
)

Constructor.

Parameters:
pX1 The X component of the first quaternion.
pY1 The Y component of the first quaternion.
pZ1 The Z component of the first quaternion.
pW1 The W component of the first quaternion.
pX2 The X component of the second quaternion.
pY2 The Y component of the second quaternion.
pZ2 The Z component of the second quaternion.
pW2 The W component of the second quaternion.

Destructor.


Member Function Documentation

KFbxDualQuaternion& operator= ( const KFbxDualQuaternion pDualQuaternion )

Assignment operation.

Parameters:
pDualQuaternion KFbxDualQuaternion 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:
pX1 The X component of the first quaternion.
pY1 The Y component of the first quaternion.
pZ1 The Z component of the first quaternion.
pW1 The W component of the first quaternion.
pX2 The X component of the second quaternion.
pY2 The Y component of the second quaternion.
pZ2 The Z component of the second quaternion.
pW2 The W component of the second quaternion.
KFbxQuaternion& GetFirstQuaternion ( )

Get the first quaternion of the dual quaternion.

Returns:
The first quaternion of the dual quaternion.
Examples:
ViewScene/DrawScene.cxx.
KFbxQuaternion& GetSecondQuaternion ( )

Get the second quaternion of the dual quaternion.

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

Get the first quaternion of the dual quaternion.

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

Get the second quaternion of the dual quaternion.

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

Get the rotation part from the dual quaternion.

Returns:
KFbxQuaternion object to represent rotation.
KFbxVector4 GetTranslation ( ) const

Get the translation part from the dual quaternion.

Returns:
KFbxVector4 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.
KFbxDualQuaternion operator+ ( double  pValue ) const

Add a value to all vector components.

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

Subtract a value from all vector components.

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

Multiply all vector components by a value.

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

Divide all vector components by a value.

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

Add a value to all vector components.

Parameters:
pValue The 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.
KFbxDualQuaternion& operator-= ( double  pValue )

Subtract a value from all vector components.

Parameters:
pValue The 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.
KFbxDualQuaternion& operator*= ( double  pValue )

Multiply a value to all vector elements.

Parameters:
pValue The 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.
KFbxDualQuaternion& operator/= ( double  pValue )

Divide all vector elements by a value.

Parameters:
pValue The 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.
KFbxDualQuaternion operator- ( ) const

Unary minus operator.

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

Add two vectors together.

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

Subtract a quaternion from another quaternion.

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

Memberwise multiplication of two vectors.

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

Memberwise division of a dual quaternion with another dual quaternion.

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

Add two quaternions together.

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

Subtract a dual quaternion from another vector.

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

Memberwise multiplication of two quaternions.

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

Memberwise division of a dual quaternion by another dual quaternion.

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

Multiplication of a dual quaternion by a KFbxVector4.

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

Return dual quaternion product.

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

Normalize the dual quaternion, length set to 1.

Examples:
ViewScene/DrawScene.cxx.
void Inverse ( )

Calculate the dual quaternion's inverse.

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

Deform a point by this dual quaternion.

Returns:
The inverse of this quaternion.
Examples:
ViewScene/DrawScene.cxx.
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 KFbxDualQuaternion pV ) const

Equivalence operator.

Parameters:
pV The quaternion to be compared to this quaternion.
Returns:
true if the two quaternions are equal (each element is within a 1.0e-6 tolerance), false otherwise.
bool operator!= ( const KFbxDualQuaternion pV ) const

Non equivalence operator.

Parameters:
pV The quaternion to be compared to this.
Returns:
false if the two quaternions are equal (each element is within a 1.0e-6 tolerance), true otherwise.

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

KFbxDualQuaternion KFbxDualQuaternion KFbxDualQuaternion KFbxDualQuaternion KFbxDualQuaternion KFbxDualQuaternion KFbxDualQuaternion KFbxDualQuaternion KFbxDualQuaternion KFbxDualQuaternion
KFbxDualQuaternion KFbxDualQuaternion KFbxDualQuaternion KFbxDualQuaternion KFbxDualQuaternion KFbxDualQuaternion KFbxDualQuaternion KFbxDualQuaternion KFbxDualQuaternion KFbxDualQuaternion