OGRE  2.2.4
Object-Oriented Graphics Rendering Engine
Ogre::DualQuaternion Class Reference

Implementation of a dual quaternion, i.e. More...

#include <OgreDualQuaternion.h>

Public Member Functions

 DualQuaternion ()
 Default constructor, initializes to identity rotation (aka 0°), and zero translation (0,0,0) More...
 
 DualQuaternion (Real fW, Real fX, Real fY, Real fZ, Real fdW, Real fdX, Real fdY, Real fdZ)
 Construct from an explicit list of values. More...
 
 DualQuaternion (const Matrix4 &rot)
 Construct a dual quaternion from a transformation matrix. More...
 
 DualQuaternion (const Quaternion &q, const Vector3 &trans)
 Construct a dual quaternion from a unit quaternion and a translation vector. More...
 
 DualQuaternion (Real *valptr)
 Construct a dual quaternion from 8 manual w/x/y/z/dw/dx/dy/dz values. More...
 
void fromRotationTranslation (const Quaternion &q, const Vector3 &trans)
 Construct a dual quaternion from a rotation described by a Quaternion and a translation described by a Vector3. More...
 
void fromTransformationMatrix (const Matrix4 &kTrans)
 Construct a dual quaternion from a 4x4 transformation matrix. More...
 
bool isNaN () const
 Check whether this dual quaternion contains valid values. More...
 
bool operator!= (const DualQuaternion &rhs) const
 
DualQuaternion & operator= (const DualQuaternion &rkQ)
 
bool operator== (const DualQuaternion &rhs) const
 
Real operator[] (const size_t i) const
 Array accessor operator. More...
 
Real & operator[] (const size_t i)
 Array accessor operator. More...
 
Real * ptr ()
 Pointer accessor for direct copying. More...
 
const Real * ptr () const
 Pointer accessor for direct copying. More...
 
void swap (DualQuaternion &other)
 Exchange the contents of this dual quaternion with another. More...
 
void toRotationTranslation (Quaternion &q, Vector3 &translation) const
 Convert a dual quaternion into its two components, a Quaternion representing the rotation and a Vector3 representing the translation. More...
 
void toTransformationMatrix (Matrix4 &kTrans) const
 Convert a dual quaternion to a 4x4 transformation matrix. More...
 

Public Attributes

Real dw
 
Real dx
 
Real dy
 
Real dz
 
Real w
 
Real x
 
Real y
 
Real z
 

Friends

_OgreExport friend std::ostream & operator<< (std::ostream &o, const DualQuaternion &q)
 Function for writing to a stream. More...
 

Detailed Description

Implementation of a dual quaternion, i.e.

a rotation around an axis and a translation. This implementation may note be appropriate as a general implementation, but is intended for use with dual quaternion skinning.

Constructor & Destructor Documentation

◆ DualQuaternion() [1/5]

Ogre::DualQuaternion::DualQuaternion ( )
inline

Default constructor, initializes to identity rotation (aka 0°), and zero translation (0,0,0)

◆ DualQuaternion() [2/5]

Ogre::DualQuaternion::DualQuaternion ( Real  fW,
Real  fX,
Real  fY,
Real  fZ,
Real  fdW,
Real  fdX,
Real  fdY,
Real  fdZ 
)
inline

Construct from an explicit list of values.

◆ DualQuaternion() [3/5]

Ogre::DualQuaternion::DualQuaternion ( const Matrix4 &  rot)
inline

Construct a dual quaternion from a transformation matrix.

◆ DualQuaternion() [4/5]

Ogre::DualQuaternion::DualQuaternion ( const Quaternion &  q,
const Vector3 &  trans 
)
inline

Construct a dual quaternion from a unit quaternion and a translation vector.

◆ DualQuaternion() [5/5]

Ogre::DualQuaternion::DualQuaternion ( Real *  valptr)
inline

Construct a dual quaternion from 8 manual w/x/y/z/dw/dx/dy/dz values.

Member Function Documentation

◆ fromRotationTranslation()

void Ogre::DualQuaternion::fromRotationTranslation ( const Quaternion &  q,
const Vector3 &  trans 
)

Construct a dual quaternion from a rotation described by a Quaternion and a translation described by a Vector3.

◆ fromTransformationMatrix()

void Ogre::DualQuaternion::fromTransformationMatrix ( const Matrix4 &  kTrans)

Construct a dual quaternion from a 4x4 transformation matrix.

◆ isNaN()

bool Ogre::DualQuaternion::isNaN ( void  ) const
inline

Check whether this dual quaternion contains valid values.

References Ogre::Math::isNaN().

◆ operator!=()

bool Ogre::DualQuaternion::operator!= ( const DualQuaternion &  rhs) const
inline

References Ogre::operator==().

◆ operator=()

DualQuaternion& Ogre::DualQuaternion::operator= ( const DualQuaternion &  rkQ)
inline

References dw, dx, dy, dz, w, x, y, and z.

◆ operator==()

bool Ogre::DualQuaternion::operator== ( const DualQuaternion &  rhs) const
inline

References dw, dx, dy, dz, w, x, y, and z.

◆ operator[]() [1/2]

Real Ogre::DualQuaternion::operator[] ( const size_t  i) const
inline

Array accessor operator.

◆ operator[]() [2/2]

Real& Ogre::DualQuaternion::operator[] ( const size_t  i)
inline

Array accessor operator.

◆ ptr() [1/2]

Real* Ogre::DualQuaternion::ptr ( )
inline

Pointer accessor for direct copying.

◆ ptr() [2/2]

const Real* Ogre::DualQuaternion::ptr ( ) const
inline

Pointer accessor for direct copying.

◆ swap()

void Ogre::DualQuaternion::swap ( DualQuaternion &  other)
inline

Exchange the contents of this dual quaternion with another.

References dw, dx, dy, dz, std::swap(), w, x, y, and z.

◆ toRotationTranslation()

void Ogre::DualQuaternion::toRotationTranslation ( Quaternion &  q,
Vector3 &  translation 
) const

Convert a dual quaternion into its two components, a Quaternion representing the rotation and a Vector3 representing the translation.

◆ toTransformationMatrix()

void Ogre::DualQuaternion::toTransformationMatrix ( Matrix4 &  kTrans) const

Convert a dual quaternion to a 4x4 transformation matrix.

Friends And Related Function Documentation

◆ operator<<

_OgreExport friend std::ostream& operator<< ( std::ostream &  o,
const DualQuaternion &  q 
)
friend

Function for writing to a stream.

Outputs "DualQuaternion(w, x, y, z, dw, dx, dy, dz)" with w, x, y, z, dw, dx, dy, dz being the member values of the dual quaternion.

Member Data Documentation

◆ dw

Real Ogre::DualQuaternion::dw

Referenced by operator=(), operator==(), and swap().

◆ dx

Real Ogre::DualQuaternion::dx

Referenced by operator=(), operator==(), and swap().

◆ dy

Real Ogre::DualQuaternion::dy

Referenced by operator=(), operator==(), and swap().

◆ dz

Real Ogre::DualQuaternion::dz

Referenced by operator=(), operator==(), and swap().

◆ w

Real Ogre::DualQuaternion::w

Referenced by operator=(), operator==(), and swap().

◆ x

Real Ogre::DualQuaternion::x

Referenced by operator=(), operator==(), and swap().

◆ y

Real Ogre::DualQuaternion::y

Referenced by operator=(), operator==(), and swap().

◆ z

Real Ogre::DualQuaternion::z

Referenced by operator=(), operator==(), and swap().


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