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... | |
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.
Definition at line 47 of file OgreDualQuaternion.h.
|
inline |
Default constructor, initializes to identity rotation (aka 0°), and zero translation (0,0,0)
Definition at line 51 of file OgreDualQuaternion.h.
|
inline |
Construct from an explicit list of values.
Definition at line 57 of file OgreDualQuaternion.h.
|
inline |
Construct a dual quaternion from a transformation matrix.
Definition at line 64 of file OgreDualQuaternion.h.
|
inline |
Construct a dual quaternion from a unit quaternion and a translation vector.
Definition at line 70 of file OgreDualQuaternion.h.
|
inline |
Construct a dual quaternion from 8 manual w/x/y/z/dw/dx/dy/dz values.
Definition at line 76 of file OgreDualQuaternion.h.
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.
void Ogre::DualQuaternion::fromTransformationMatrix | ( | const Matrix4 & | kTrans | ) |
Construct a dual quaternion from a 4x4 transformation matrix.
|
inline |
Check whether this dual quaternion contains valid values.
Definition at line 148 of file OgreDualQuaternion.h.
References Ogre::Math::isNaN().
|
inline |
Definition at line 117 of file OgreDualQuaternion.h.
References Ogre::operator==().
|
inline |
|
inline |
|
inline |
Array accessor operator.
Definition at line 82 of file OgreDualQuaternion.h.
|
inline |
Array accessor operator.
Definition at line 90 of file OgreDualQuaternion.h.
|
inline |
Pointer accessor for direct copying.
Definition at line 123 of file OgreDualQuaternion.h.
|
inline |
Pointer accessor for direct copying.
Definition at line 129 of file OgreDualQuaternion.h.
|
inline |
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.
void Ogre::DualQuaternion::toTransformationMatrix | ( | Matrix4 & | kTrans | ) | const |
Convert a dual quaternion to a 4x4 transformation matrix.
|
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.
Definition at line 173 of file OgreDualQuaternion.h.
Real Ogre::DualQuaternion::dw |
Definition at line 166 of file OgreDualQuaternion.h.
Referenced by operator=(), operator==(), and swap().
Real Ogre::DualQuaternion::dx |
Definition at line 166 of file OgreDualQuaternion.h.
Referenced by operator=(), operator==(), and swap().
Real Ogre::DualQuaternion::dy |
Definition at line 166 of file OgreDualQuaternion.h.
Referenced by operator=(), operator==(), and swap().
Real Ogre::DualQuaternion::dz |
Definition at line 166 of file OgreDualQuaternion.h.
Referenced by operator=(), operator==(), and swap().
Real Ogre::DualQuaternion::w |
Definition at line 166 of file OgreDualQuaternion.h.
Referenced by operator=(), operator==(), and swap().
Real Ogre::DualQuaternion::x |
Definition at line 166 of file OgreDualQuaternion.h.
Referenced by operator=(), operator==(), and swap().
Real Ogre::DualQuaternion::y |
Definition at line 166 of file OgreDualQuaternion.h.
Referenced by operator=(), operator==(), and swap().
Real Ogre::DualQuaternion::z |
Definition at line 166 of file OgreDualQuaternion.h.
Referenced by operator=(), operator==(), and swap().