Public Member Functions

FbxQuaternion Class Reference

This reference page is linked to from the following overview topics: List of Python Fbx classes.


Search for all occurrences

Detailed Description

FBX SDK quaternion class.

Quaternions form a four-dimensional normed division algebra over the real numbers. It is for calculations involving three-dimensional rotations.

Definition at line 27 of file fbxquaternion.h.

#include <fbxquaternion.h>

Inheritance diagram for FbxQuaternion:
Inheritance graph
[legend]

List of all members.

Public Member Functions

void GetQuaternionFromPositionToPosition (const FbxVector4 &pP0, const FbxVector4 &pP1)

Constructors and Destructor

 FbxQuaternion ()
 Constructor.
 FbxQuaternion (const FbxQuaternion &pV)
 Copy constructor.
 FbxQuaternion (double pX, double pY, double pZ, double pW=1.0)
 Constructor.
 ~FbxQuaternion ()
 Destructor.

Access

FbxQuaternionoperator= (const FbxQuaternion &pQuaternion)
 Assignment operation.
double & operator[] (int pIndex)
 Accessor.
const double & operator[] (int pIndex) const
 Accessor.
double GetAt (int pIndex) const
 Get a vector element.
void SetAt (int pIndex, double pValue)
 Set a vector element.
void Set (double pX, double pY, double pZ, double pW=1.0)
 Set vector.

Scalar Operations

FbxQuaternion operator+ (double pValue) const
 The addition operator between the scalar part of this quaternion and a scalar value, no influence on the vector part of the quaternion.
FbxQuaternion operator- (double pValue) const
 The subtraction operator between the scalar part of this quaternion and a scalar value, no influence on the vector part of the quaternion.
FbxQuaternion operator* (double pValue) const
 Multiply all vector components by a value.
FbxQuaternion operator/ (double pValue) const
 Divide all vector components by a value.
FbxQuaternionoperator+= (double pValue)
 The in place addition operator between the real part of this quaternion and a scalar value.
FbxQuaternionoperator-= (double pValue)
 The subtraction operator between the real part of this quaternion and a scalar value.
FbxQuaternionoperator*= (double pValue)
 Multiply a value to all vector elements.
FbxQuaternionoperator/= (double pValue)
 Divide all vector elements by a value.

Vector Operations

FbxQuaternion operator- () const
 Unary minus operator.
FbxQuaternion operator+ (const FbxQuaternion &pQuaternion) const
 Add two vectors together.
FbxQuaternion operator- (const FbxQuaternion &pQuaternion) const
 Subtract a quaternion from another quaternion.
FbxQuaternion operator* (const FbxQuaternion &pOther) const
 The quaternion multiplication operator.
FbxQuaternion operator/ (const FbxQuaternion &pOther) const
 The quaternion division operator.
FbxQuaternionoperator+= (const FbxQuaternion &pQuaternion)
 Add two quaternions together.
FbxQuaternionoperator-= (const FbxQuaternion &pQuaternion)
 Subtract a quaternion from another vector.
FbxQuaternionoperator*= (const FbxQuaternion &pOther)
 The in place quaternion multiplication operator.
FbxQuaternionoperator/= (const FbxQuaternion &pOther)
 The in place quaternion division operator.
FbxQuaternion Product (const FbxQuaternion &pOther) const
 Return quaternion product.
double DotProduct (const FbxQuaternion &pQuaternion) const
 Return quaternion dot product.
void Normalize ()
 Normalize the quaternion, length set to 1.
void Conjugate ()
 Calculate the quaternion conjugate.
double Length ()
 Calculate the length (norm) of the quaternion.
void Inverse ()
 Calculate the inverse of the quaternion.
void ComposeSphericalXYZ (const FbxVector4 pEuler)
 Create a Quaternion equivalent to the supplied Euler XYZ in spherical coordinate.
FbxVector4 DecomposeSphericalXYZ () const
 Create an Euler XYZ equivalent to the current quaternion.

Boolean Operations

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

Casting

 operator double * ()
 Cast the vector in a double pointer.
 operator const double * () const
 Cast the vector in a const double pointer.

Comparison methods

int Compare (const FbxQuaternion &pQ2, const double pThreshold=FBXSDK_TOLERANCE) const
 Comparison method.

Constructor & Destructor Documentation

Constructor.

Initialize to the multiplicative identity.

FbxQuaternion ( const FbxQuaternion pV)

Copy constructor.

Parameters:
pVFbxQuaternion object copied to this one.
FbxQuaternion ( double  pX,
double  pY,
double  pZ,
double  pW = 1.0 
)

Constructor.

Parameters:
pXThe X component.
pYThe Y component.
pZThe Z component.
pWThe W component.

Destructor.


Member Function Documentation

FbxQuaternion& operator= ( const FbxQuaternion pQuaternion)

Assignment operation.

Parameters:
pQuaternionFbxQuaternion object assigned to this one.
double& operator[] ( int  pIndex)

Accessor.

Parameters:
pIndexThe index of the component to access.
Returns:
The reference to the indexed component.
Remarks:
The index parameter is not checked for values out of bounds. The valid range is [0,3].

Reimplemented from FbxVectorTemplate4< T >.

const double& operator[] ( int  pIndex) const

Accessor.

Parameters:
pIndexThe index of the component to access.
Returns:
The const reference to the indexed component.
Remarks:
The index parameter is not checked for values out of bounds. The valid range is [0,3].

Reimplemented from FbxVectorTemplate4< T >.

double GetAt ( int  pIndex) const

Get a vector element.

Parameters:
pIndexThe index of the component to access.
Returns:
The value of the indexed component.
Remarks:
The index parameter is not checked for values out of bounds. The valid range is [0,3].
void SetAt ( int  pIndex,
double  pValue 
)

Set a vector element.

Parameters:
pIndexThe index of the component to set.
pValueThe new value to set the component.
Remarks:
The index parameter is not checked for values out of bounds. The valid range is [0,3].
void Set ( double  pX,
double  pY,
double  pZ,
double  pW = 1.0 
)

Set vector.

Parameters:
pXThe X component value.
pYThe Y component value.
pZThe Z component value.
pWThe W component value.
FbxQuaternion operator+ ( double  pValue) const

The addition operator between the scalar part of this quaternion and a scalar value, no influence on the vector part of the quaternion.

Parameters:
pValueThe scalar value to be added.
Returns:
The sum of addition.
FbxQuaternion operator- ( double  pValue) const

The subtraction operator between the scalar part of this quaternion and a scalar value, no influence on the vector part of the quaternion.

Parameters:
pValueThe scalar subtrahend.
Returns:
The difference of subtraction.
FbxQuaternion 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.
FbxQuaternion 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.
FbxQuaternion& operator+= ( double  pValue)

The in place addition operator between the real part of this quaternion and a scalar value.

Parameters:
pValueThe value to be added.
Returns:
The sum of addition.
FbxQuaternion& operator-= ( double  pValue)

The subtraction operator between the real part of this quaternion and a scalar value.

Parameters:
pValueThe scalar subtrahend.
Returns:
The difference of subtraction.
FbxQuaternion& 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 quaternion.
Remarks:
The passed value is not checked.
FbxQuaternion& 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 quaternion.
Remarks:
The passed value is not checked.
FbxQuaternion operator- ( ) const

Unary minus operator.

Returns:
A quaternion where each component is multiplied by -1.
FbxQuaternion operator+ ( const FbxQuaternion pQuaternion) const

Add two vectors together.

Parameters:
pQuaternionQuaternion to add.
Returns:
The quaternion v' = this + pQuaternion.
Remarks:
The values in pQuaternion are not checked.
FbxQuaternion operator- ( const FbxQuaternion pQuaternion) const

Subtract a quaternion from another quaternion.

Parameters:
pQuaternionQuaternion to subtract.
Returns:
The quaternion v' = this - pQuaternion.
Remarks:
The values in pQuaternion are not checked.
FbxQuaternion operator* ( const FbxQuaternion pOther) const

The quaternion multiplication operator.

Parameters:
pOtherThe quaternion to be multiplied with this quaternion.
Returns:
The product of two quaternions.
Remarks:
In general, quaternion multiplication does not commute.
FbxQuaternion operator/ ( const FbxQuaternion pOther) const

The quaternion division operator.

Parameters:
pOtherThe divisor quaternion.
Returns:
The quotient quaternion.
Remarks:
If the divisor has a zero length, return zero quaternion.
FbxQuaternion& operator+= ( const FbxQuaternion pQuaternion)

Add two quaternions together.

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

Subtract a quaternion from another vector.

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

The in place quaternion multiplication operator.

Parameters:
pOtherThe quaternion to be multiplied with this quaternion.
Returns:
The product of two quaternions.
Remarks:
In general, quaternion multiplication does not commute.
FbxQuaternion& operator/= ( const FbxQuaternion pOther)

The in place quaternion division operator.

Parameters:
pOtherThe divisor quaternion.
Returns:
The quotient quaternion.
Remarks:
If the divisor has a zero length, return zero quaternion.
FbxQuaternion Product ( const FbxQuaternion pOther) const

Return quaternion product.

Parameters:
pOtherThe quaternion to be multiplied with this quaternion.
Returns:
The product of two quaternions.
double DotProduct ( const FbxQuaternion pQuaternion) const

Return quaternion dot product.

Parameters:
pQuaternionDot product quaternion.
Returns:
The dot product of this quaternion and pQuaternion.
void Normalize ( )

Normalize the quaternion, length set to 1.

void Conjugate ( )

Calculate the quaternion conjugate.

Returns:
The conjugate of this quaternion.
double Length ( )

Calculate the length (norm) of the quaternion.

Returns:
The length of the quaternion.
void Inverse ( )

Calculate the inverse of the quaternion.

Returns:
The inverse of this quaternion.
Remarks:
If this quaternion has a zero length, retain the original value.
If the quaternion is normalized, then its inverse is equal to its conjugate.
void ComposeSphericalXYZ ( const FbxVector4  pEuler)

Create a Quaternion equivalent to the supplied Euler XYZ in spherical coordinate.

Parameters:
pEulerThe Euler XYZ angle.
FbxVector4 DecomposeSphericalXYZ ( ) const

Create an Euler XYZ equivalent to the current quaternion.

Returns:
The Euler XYZ equivalent to the current quaternion in spherical coordinate.
bool operator== ( const FbxQuaternion 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 FbxQuaternion 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.
operator double * ( )

Cast the vector in a double pointer.

operator const double * ( ) const

Cast the vector in a const double pointer.

int Compare ( const FbxQuaternion pQ2,
const double  pThreshold = FBXSDK_TOLERANCE 
) const

Comparison method.

Parameters:
pQ1First quaternion to compare
pQ2Second quaternion to compare
pThresholdEpsilon for small number comparison
Returns:
0 if quaternions are equal, non-zero value otherwise.
void GetQuaternionFromPositionToPosition ( const FbxVector4 pP0,
const FbxVector4 pP1 
)

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

FbxQuaternion FbxQuaternion FbxQuaternion FbxQuaternion FbxQuaternion FbxQuaternion FbxQuaternion FbxQuaternion FbxQuaternion FbxQuaternion
FbxQuaternion FbxQuaternion FbxQuaternion FbxQuaternion FbxQuaternion FbxQuaternion FbxQuaternion FbxQuaternion FbxQuaternion FbxQuaternion