|
Developer Documentation
|
DualQuaternion class for representing rigid motions in 3d. More...
#include <ACG/Math/DualQuaternionT.hh>
Public Types | |
| typedef QuaternionT< Scalar > | Quaternion |
| typedef DualQuaternionT< Scalar > | DualQuaternion |
| typedef VectorT< Scalar, 3 > | Vec3 |
| typedef VectorT< Scalar, 4 > | Vec4 |
| typedef Matrix4x4T< Scalar > | Matrix |
Public Member Functions | |
| DualQuaternionT () | |
| Default constructor ( constructs an identity dual quaternion ) | |
| DualQuaternionT (const DualQuaternion &_other) | |
| Copy constructor. | |
| DualQuaternionT (const Quaternion &_real, const Quaternion &_dual) | |
| Construct from given real,dual parts. | |
| DualQuaternionT (Scalar _Rw, Scalar _Rx, Scalar _Ry, Scalar _Rz, Scalar _Dw, Scalar _Dx, Scalar _Dy, Scalar _Dz) | |
| Construct from 8 scalars. | |
| DualQuaternionT (Quaternion _rotation) | |
| Construct from a rotation given as quaternion. | |
| DualQuaternionT (const Vec3 &_translation) | |
| Construct from a translatation given as a vector. | |
| DualQuaternionT (const Vec3 &_translation, const Quaternion &_rotation) | |
| Construct from a translation+rotation. | |
| DualQuaternionT (const Matrix &_transformation) | |
| Construct from a rigid transformation given as matrix. | |
| DualQuaternion | conjugate () const |
| conjugate dual quaternion | |
| DualQuaternion | invert () const |
| invert dual quaternion | |
| void | normalize () |
| normalize dual quaternion | |
| bool | operator== (const DualQuaternion &_other) const |
| dual quaternion comparison | |
| bool | operator!= (const DualQuaternion &_other) const |
| dual quaternion comparison | |
| DualQuaternion | operator+ (const DualQuaternion &_other) const |
| addition | |
| DualQuaternion & | operator+= (const DualQuaternion &_other) |
| addition | |
| DualQuaternion | operator- (const DualQuaternion &_other) const |
| substraction | |
| DualQuaternion & | operator-= (const DualQuaternion &_other) |
| substraction | |
| DualQuaternion | operator* (const DualQuaternion &_q) const |
| dualQuaternion * dualQuaternion | |
| DualQuaternion | operator* (const Scalar &_scalar) const |
| dualQuaternion * scalar | |
| DualQuaternion & | operator*= (const DualQuaternion &_q) |
| dualQuaternion *= dualQuaternion | |
| Scalar & | operator[] (const unsigned int &b) |
| Access as one big vector. | |
| Vec3 | transform_point (const Vec3 &_point) const |
| Transform a point with the dual quaternion. More... | |
| Vec3 | transform_vector (const Vec3 &_point) const |
| Transform a vector with the dual quaternion. More... | |
| void | printInfo () |
| print some info about the DQ | |
| template<typename VectorType > | |
| DualQuaternionT< Scalar > | interpolate (VectorType &_weights, const std::vector< DualQuaternion > &_dualQuaternions) |
| linear interpolation of dual quaternions. Result is normalized afterwards. | |
Static Public Member Functions | |
| static DualQuaternion | identity () |
| identity dual quaternion [ R(1, 0, 0, 0), D(0,0,0,0) ] | |
| static DualQuaternion | zero () |
| zero dual quaternion [ R(0, 0, 0, 0), D(0,0,0,0) ] | |
| template<typename VectorType > | |
| static DualQuaternion | interpolate (VectorType &_weights, const std::vector< DualQuaternion > &_dualQuaternions) |
| linear interpolation of dual quaternions. Result is normalized afterwards | |
Public Attributes | |
| Quaternion | real_ |
| real and dual quaternion parts | |
| Quaternion | dual_ |
DualQuaternion class for representing rigid motions in 3d.
This is an implementation of:
techreport{kavan-06-dual, author = "Ladislav Kavan and Steven Collins and Carol O'Sullivan and Jiri Zara", series = "Technical report TCD-CS-2006-46, Trinity College Dublin", title = "{D}ual {Q}uaternions for {R}igid {T}ransformation {B}lending", url = "http://www.cgg.cvut.cz/~kavanl1/", year = "2006" }
Definition at line 90 of file DualQuaternionT.hh.
| VectorT< Scalar, 3 > ACG::DualQuaternionT< Scalar >::transform_point | ( | const Vec3 & | _point | ) | const |
Transform a point with the dual quaternion.
transform a given point with this dual quaternion
TODO check if this is a unit dual quaternion
Definition at line 374 of file DualQuaternionT.cc.
| VectorT< Scalar, 3 > ACG::DualQuaternionT< Scalar >::transform_vector | ( | const Vec3 & | _point | ) | const |
Transform a vector with the dual quaternion.
transform a given point with this dual quaternion
TODO check if this is a unit dual quaternion
Definition at line 403 of file DualQuaternionT.cc.