OGRE  1.12.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 Affine3 &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 Affine3 &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
 
Real operator[] (const size_t i) const
 Array accessor operator. More...
 
Realoperator[] (const size_t i)
 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 (Affine3 &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 Affine3 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

◆ 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.

◆ 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!=()

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

References Ogre::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.

◆ isNaN()

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

Check whether this dual quaternion contains valid values.

References Ogre::Math::isNaN().

◆ 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.

◆ 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.

◆ fromTransformationMatrix()

void Ogre::DualQuaternion::fromTransformationMatrix ( const Affine3 kTrans)

Construct a dual quaternion from a 4x4 transformation matrix.

◆ toTransformationMatrix()

void Ogre::DualQuaternion::toTransformationMatrix ( Affine3 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

◆ 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().

◆ 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().


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