Developer Documentation

Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
ACG::DualQuaternionT< Scalar > Class Template Reference

DualQuaternion class for representing rigid motions in 3d. More...

`#include <OpenFlipper/libs_required/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_

## Detailed Description

### template<class Scalar>
class ACG::DualQuaternionT< Scalar >

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 80 of file DualQuaternionT.hh.

## Member Function Documentation

## ◆ transform_point()

template<typename Scalar >

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 366 of file DualQuaternionT_impl.hh.

## ◆ transform_vector()

template<typename Scalar >

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 395 of file DualQuaternionT_impl.hh.

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

- OpenFlipper/libs_required/ACG/Math/DualQuaternionT.hh
- OpenFlipper/libs_required/ACG/Math/DualQuaternionT_impl.hh