Assimp v5.2.2 (January 2022)
The Asset-Importer-Lib API documentation.
aiQuaterniont< TReal > Class Template Reference

Represents a quaternion in a 4D vector. More...

#include <quaternion.h>

Public Member Functions

 aiQuaterniont () AI_NO_EXCEPT
 
 aiQuaterniont (aiVector3t< TReal > axis, TReal angle)
 Construct from an axis-angle pair. More...
 
 aiQuaterniont (aiVector3t< TReal > normalized)
 Construct from a normalized quaternion stored in a vec3. More...
 
 aiQuaterniont (const aiMatrix3x3t< TReal > &pRotMatrix)
 Construct from rotation matrix. More...
 
 aiQuaterniont (TReal pw, TReal px, TReal py, TReal pz)
 
 aiQuaterniont (TReal roty, TReal rotz, TReal rotx)
 Construct from euler angles. More...
 
aiQuaterniontConjugate ()
 Compute quaternion conjugate. More...
 
bool Equal (const aiQuaterniont &o, TReal epsilon=ai_epsilon) const
 
aiMatrix3x3t< TReal > GetMatrix () const
 Returns a matrix representation of the quaternion. More...
 
aiQuaterniontNormalize ()
 Normalize the quaternion. More...
 
bool operator!= (const aiQuaterniont &o) const
 
aiQuaterniont operator* (const aiQuaterniont &two) const
 Multiply two quaternions. More...
 
aiQuaterniontoperator*= (const aiMatrix4x4t< TReal > &mat)
 
bool operator== (const aiQuaterniont &o) const
 
aiVector3t< TReal > Rotate (const aiVector3t< TReal > &in) const
 Rotate a point by this quaternion. More...
 

Static Public Member Functions

static void Interpolate (aiQuaterniont &pOut, const aiQuaterniont &pStart, const aiQuaterniont &pEnd, TReal pFactor)
 Performs a spherical interpolation between two quaternions and writes the result into the third. More...
 

Public Attributes

TReal w
 w,x,y,z components of the quaternion More...
 
TReal x
 
TReal y
 
TReal z
 

Detailed Description

template<typename TReal>
class aiQuaterniont< TReal >

Represents a quaternion in a 4D vector.

Constructor & Destructor Documentation

◆ aiQuaterniont() [1/6]

template<typename TReal >
aiQuaterniont< TReal >::aiQuaterniont ( )
inline

◆ aiQuaterniont() [2/6]

template<typename TReal >
aiQuaterniont< TReal >::aiQuaterniont ( TReal  pw,
TReal  px,
TReal  py,
TReal  pz 
)
inline

◆ aiQuaterniont() [3/6]

template<typename TReal >
aiQuaterniont< TReal >::aiQuaterniont ( const aiMatrix3x3t< TReal > &  pRotMatrix)
inlineexplicit

Construct from rotation matrix.

Result is undefined if the matrix is not orthonormal.

◆ aiQuaterniont() [4/6]

template<typename TReal >
aiQuaterniont< TReal >::aiQuaterniont ( TReal  roty,
TReal  rotz,
TReal  rotx 
)
inline

Construct from euler angles.

◆ aiQuaterniont() [5/6]

template<typename TReal >
aiQuaterniont< TReal >::aiQuaterniont ( aiVector3t< TReal >  axis,
TReal  angle 
)
inline

Construct from an axis-angle pair.

◆ aiQuaterniont() [6/6]

template<typename TReal >
aiQuaterniont< TReal >::aiQuaterniont ( aiVector3t< TReal >  normalized)
inlineexplicit

Construct from a normalized quaternion stored in a vec3.

Member Function Documentation

◆ Conjugate()

template<typename TReal >
aiQuaterniont< TReal > & aiQuaterniont< TReal >::Conjugate
inline

Compute quaternion conjugate.

◆ Equal()

template<typename TReal >
bool aiQuaterniont< TReal >::Equal ( const aiQuaterniont< TReal > &  o,
TReal  epsilon = ai_epsilon 
) const
inline

◆ GetMatrix()

template<typename TReal >
aiMatrix3x3t< TReal > aiQuaterniont< TReal >::GetMatrix
inline

Returns a matrix representation of the quaternion.

◆ Interpolate()

template<typename TReal >
void aiQuaterniont< TReal >::Interpolate ( aiQuaterniont< TReal > &  pOut,
const aiQuaterniont< TReal > &  pStart,
const aiQuaterniont< TReal > &  pEnd,
TReal  pFactor 
)
inlinestatic

Performs a spherical interpolation between two quaternions and writes the result into the third.

Parameters
pOutTarget object to received the interpolated rotation.
pStartStart rotation of the interpolation at factor == 0.
pEndEnd rotation, factor == 1.
pFactorInterpolation factor between 0 and 1. Values outside of this range yield undefined results.

◆ Normalize()

template<typename TReal >
aiQuaterniont< TReal > & aiQuaterniont< TReal >::Normalize
inline

Normalize the quaternion.

◆ operator!=()

template<typename TReal >
bool aiQuaterniont< TReal >::operator!= ( const aiQuaterniont< TReal > &  o) const

◆ operator*()

template<typename TReal >
aiQuaterniont< TReal > aiQuaterniont< TReal >::operator* ( const aiQuaterniont< TReal > &  two) const
inline

Multiply two quaternions.

◆ operator*=()

template<typename TReal >
AI_FORCE_INLINE aiQuaterniont< TReal > & aiQuaterniont< TReal >::operator*= ( const aiMatrix4x4t< TReal > &  mat)

◆ operator==()

template<typename TReal >
bool aiQuaterniont< TReal >::operator== ( const aiQuaterniont< TReal > &  o) const

◆ Rotate()

template<typename TReal >
aiVector3t< TReal > aiQuaterniont< TReal >::Rotate ( const aiVector3t< TReal > &  in) const
inline

Rotate a point by this quaternion.

Member Data Documentation

◆ w

template<typename TReal >
TReal aiQuaterniont< TReal >::w

w,x,y,z components of the quaternion

◆ x

template<typename TReal >
TReal aiQuaterniont< TReal >::x

◆ y

template<typename TReal >
TReal aiQuaterniont< TReal >::y

◆ z

template<typename TReal >
TReal aiQuaterniont< TReal >::z

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