Inheritance Graph
graph BT
	_DualQuaternion
	click _DualQuaternion "classGeometry_1_1__DualQuaternion"
Description
Class used to represent a rotation and positoin replacement as dual numbers based on quaternions. Currently does not support scaling in any form!
Dual Quaternions allow transformation and deformation of an mesh without artefacts. Such gimbal Lock or texture artefacts caused by false interpolation and / or transformation.
The dual part describes the rotation and the non dualpart the position replacement.
Author: Lukas Kopecki
Date: 2012-08-07
Public Types
Public Functions
  
    
      |  |  | 
  
  
    
      |  |  | 
    
      |  | _DualQuaternion() | 
    
      |  |  | 
    
      |  | _DualQuaternion( value_t  _rx,  value_t  _ry,  value_t  _rz,  value_t  _rw,  value_t  _tx,  value_t  _ty,  value_t  _tz,  value_t  _tw) | 
    
      |  |  | 
    
      |  | _DualQuaternion(const Quaternion & rotation, const vec3_t & translation) | 
    
      |  |  | 
    
      |  | _DualQuaternion(const Quaternion & rotation, const Quaternion & translation) | 
    
      |  |  | 
    
      |  | _DualQuaternion(const _DualQuaternion & src) | 
    
      |  |  | 
    
      | const value_t & | rX() const | 
    
      |  |  | 
    
      | const value_t & | rY() const | 
    
      |  |  | 
    
      | const value_t & | rZ() const | 
    
      |  |  | 
    
      | const value_t & | rW() const | 
    
      |  |  | 
    
      | const value_t & | tX() const | 
    
      |  |  | 
    
      | const value_t & | tY() const | 
    
      |  |  | 
    
      | const value_t & | tZ() const | 
    
      |  |  | 
    
      | const value_t & | tW() const | 
    
      |  |  | 
    
      | void | setRX( value_t  _rx) | 
    
      |  |  | 
    
      | void | setRY( value_t  _ry) | 
    
      |  |  | 
    
      | void | setRZ( value_t  _rz) | 
    
      |  |  | 
    
      | void | setRW( value_t  _rw) | 
    
      |  |  | 
    
      | void | setTX( value_t  _tx) | 
    
      |  |  | 
    
      | void | setTY( value_t  _ty) | 
    
      |  |  | 
    
      | void | setTZ( value_t  _tz) | 
    
      |  |  | 
    
      | void | setTW( value_t  _tw) | 
    
      |  |  | 
    
      | void | setRotation( value_t  _x,  value_t  _y,  value_t  _z,  value_t  _w) | 
    
      |  |  | 
    
      | void | setRotation(const Quaternion & _rot) | 
    
      |  |  | 
    
      | const Quaternion | getRotation() const | 
    
      |  |  | 
    
      | void | setTranslation( value_t  _x,  value_t  _y,  value_t  _z,  value_t  _w) | 
    
      |  |  | 
    
      | void | setTranslation(const Quaternion & _trans) | 
    
      |  |  | 
    
      | const Quaternion | getTranslation() const | 
    
      |  |  | 
    
      | const vec3_t | getTranslationAsVec3() const | 
    
      |  |  | 
    
      | const _DualQuaternion | normalizeRotation() const | 
    
      |  |  | 
    
      | const _DualQuaternion | normalizeTranslation() const | 
    
      |  |  | 
    
      | const _DualQuaternion | normalize() const | 
    
      |  |  | 
    
      | const value_t | dotRotation(const Quaternion & rotation) const | 
    
      |  |  | 
    
      | const value_t | dotTranslation(const Quaternion & translation) const | 
    
      |  |  | 
    
      | const value_t | dot(const _DualQuaternion & dua) const | 
    
      |  |  | 
    
      | _DualQuaternion | conjugate() const | 
    
      |  |  | 
    
      | void | set(const Quaternion & q, const vec3_t & t) | 
    
      |  |  | 
    
      | void | getQuaternionAndVec3( Quaternion & q,  vec3_t & t) const | 
    
      |  |  | 
    
      | const value_t | lengthRotation() const | 
    
      |  |  | 
    
      | const value_t | length2Rotation() const | 
    
      |  |  | 
    
      | const value_t | lengthTranslation() const | 
    
      |  |  | 
    
      | const value_t | length2Translation() const | 
    
      |  |  | 
    
      | const value_t | length() const | 
    
      |  |  | 
    
      | _DualQuaternion & | operator=(const _DualQuaternion & src) | 
    
      |  |  | 
    
      | const _DualQuaternion | operator*(const value_t  factor) const | 
    
      |  |  | 
    
      | const _DualQuaternion | operator/(const value_t  factor) const | 
    
      |  |  | 
    
      | const _DualQuaternion | operator+(const _DualQuaternion & dq) const | 
    
      |  |  | 
    
      | const _Matrix4x4 < value_t > | toMatrix() const | 
    
      |  |  | 
    
      | void | setFromMatrix(const _Matrix4x4 < value_t > & matrix) | 
  
Public Static Functions
Documentation
typedef
 Geometry::_DualQuaternion::value_t
Defined in Geometry/DualQuaternion.h:36
typedef
 Geometry::_DualQuaternion::vec3_t
Defined in Geometry/DualQuaternion.h:37
function
 Geometry::_DualQuaternion::_DualQuaternion
Defined in Geometry/DualQuaternion.h:42
function
 Geometry::_DualQuaternion::_DualQuaternion
Defined in Geometry/DualQuaternion.h:47
function
 Geometry::_DualQuaternion::_DualQuaternion
Defined in Geometry/DualQuaternion.h:53
function
 Geometry::_DualQuaternion::_DualQuaternion
Defined in Geometry/DualQuaternion.h:57
function
 Geometry::_DualQuaternion::_DualQuaternion
Defined in Geometry/DualQuaternion.h:62
function
 Geometry::_DualQuaternion::rX
Defined in Geometry/DualQuaternion.h:71
function
 Geometry::_DualQuaternion::rY
Defined in Geometry/DualQuaternion.h:75
function
 Geometry::_DualQuaternion::rZ
Defined in Geometry/DualQuaternion.h:79
function
 Geometry::_DualQuaternion::rW
Defined in Geometry/DualQuaternion.h:83
function
 Geometry::_DualQuaternion::tX
Defined in Geometry/DualQuaternion.h:87
function
 Geometry::_DualQuaternion::tY
Defined in Geometry/DualQuaternion.h:91
function
 Geometry::_DualQuaternion::tZ
Defined in Geometry/DualQuaternion.h:95
function
 Geometry::_DualQuaternion::tW
Defined in Geometry/DualQuaternion.h:99
function
 Geometry::_DualQuaternion::setRX
Defined in Geometry/DualQuaternion.h:103
function
 Geometry::_DualQuaternion::setRY
Defined in Geometry/DualQuaternion.h:107
function
 Geometry::_DualQuaternion::setRZ
Defined in Geometry/DualQuaternion.h:111
function
 Geometry::_DualQuaternion::setRW
Defined in Geometry/DualQuaternion.h:115
function
 Geometry::_DualQuaternion::setTX
Defined in Geometry/DualQuaternion.h:119
function
 Geometry::_DualQuaternion::setTY
Defined in Geometry/DualQuaternion.h:123
function
 Geometry::_DualQuaternion::setTZ
Defined in Geometry/DualQuaternion.h:127
function
 Geometry::_DualQuaternion::setTW
Defined in Geometry/DualQuaternion.h:131
function
 Geometry::_DualQuaternion::setRotation
Defined in Geometry/DualQuaternion.h:135
function
 Geometry::_DualQuaternion::setRotation
Defined in Geometry/DualQuaternion.h:142
function
 Geometry::_DualQuaternion::getRotation
Defined in Geometry/DualQuaternion.h:146
function
 Geometry::_DualQuaternion::setTranslation
Defined in Geometry/DualQuaternion.h:150
function
 Geometry::_DualQuaternion::setTranslation
Defined in Geometry/DualQuaternion.h:157
function
 Geometry::_DualQuaternion::getTranslation
Defined in Geometry/DualQuaternion.h:161
function
 Geometry::_DualQuaternion::getTranslationAsVec3
Defined in Geometry/DualQuaternion.h:165
function
 Geometry::_DualQuaternion::normalizeRotation
Defined in Geometry/DualQuaternion.h:171
function
 Geometry::_DualQuaternion::normalizeTranslation
Defined in Geometry/DualQuaternion.h:176
function
 Geometry::_DualQuaternion::normalize
Defined in Geometry/DualQuaternion.h:182
function
 Geometry::_DualQuaternion::dotRotation
Defined in Geometry/DualQuaternion.h:186
function
 Geometry::_DualQuaternion::dotTranslation
Defined in Geometry/DualQuaternion.h:190
function
 Geometry::_DualQuaternion::dot
Defined in Geometry/DualQuaternion.h:194
function
 Geometry::_DualQuaternion::conjugate
Defined in Geometry/DualQuaternion.h:198
function
 Geometry::_DualQuaternion::set
Defined in Geometry/DualQuaternion.h:206
function
 Geometry::_DualQuaternion::getQuaternionAndVec3
Defined in Geometry/DualQuaternion.h:224
function
 Geometry::_DualQuaternion::lengthRotation
[ Basic functions ]
Defined in Geometry/DualQuaternion.h:237
function
 Geometry::_DualQuaternion::length2Rotation
Defined in Geometry/DualQuaternion.h:241
function
 Geometry::_DualQuaternion::lengthTranslation
Defined in Geometry/DualQuaternion.h:245
function
 Geometry::_DualQuaternion::length2Translation
Defined in Geometry/DualQuaternion.h:249
function
 Geometry::_DualQuaternion::length
Defined in Geometry/DualQuaternion.h:253
function
 Geometry::_DualQuaternion::operator=
Defined in Geometry/DualQuaternion.h:258
function
 Geometry::_DualQuaternion::operator*
Defined in Geometry/DualQuaternion.h:267
function
 Geometry::_DualQuaternion::operator/
Defined in Geometry/DualQuaternion.h:272
function
 Geometry::_DualQuaternion::operator+
Defined in Geometry/DualQuaternion.h:276
function
 Geometry::_DualQuaternion::toMatrix
Defined in Geometry/DualQuaternion.h:281
function
 Geometry::_DualQuaternion::setFromMatrix
Defined in Geometry/DualQuaternion.h:294
function
 Geometry::_DualQuaternion::identity
Defined in Geometry/DualQuaternion.h:304
function
 Geometry::_DualQuaternion::dualQuaternionLinearInterpolation
Defined in Geometry/DualQuaternion.h:308
function
 Geometry::_DualQuaternion::convertFromMatrix
Defined in Geometry/DualQuaternion.h:323