OGRE-Next  2.3
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 (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...
 
 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...
 
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
 
DualQuaternionoperator= (const DualQuaternion &rkQ)
 
bool operator== (const DualQuaternion &rhs) const
 
Realoperator[] (const size_t i)
 Array accessor operator. More...
 
Real operator[] (const size_t i) const
 Array accessor operator. More...
 
Realptr ()
 Pointer accessor for direct copying. More...
 
const Realptr () 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 ( ) 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)
inline

Array accessor operator.

◆ operator[]() [2/2]

Real Ogre::DualQuaternion::operator[] ( const size_t  i) const
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: