AnimaL |
Tutorial |
Documentation |
#include <quaternion.h>
The Quaternion is modeled using (w, x, y, z) i.e. cos(t/2), ax.sin(t/2), ay.sin(t/2), az.sin(t/2) where {ax,ay,az} is a rotation axis with norm=1 and t is the Quaternion angle
Definition at line 37 of file quaternion.h.
Constructors/Destructor | |
Vector type | |
Quaternion () | |
Default constructor: does nothing. | |
Quaternion (const Real w, const Real x, const Real y, const Real z) | |
Components w, x, y, z. Be careful, the first parameter is the angle! | |
Quaternion (const Vec3 &axis, const Real angle) | |
Axis and angle of rotation. | |
Quaternion (const Real angle, const Vec3 &axis) | |
Axis and angle of rotation. | |
Quaternion (const Quaternion &) | |
Copy. | |
~Quaternion () | |
Destructor: does nothing. | |
template<class Vect> Quaternion | eulerIncrement (const Vect &, const Real dt) |
Time integration of a rotation velocity. | |
Quaternion | eulerIncrement (const Real, const Real, const Real, const Real) |
Time integration of a rotation velocity. | |
template<class Vect> Quaternion | elementaryRotation (const Vect &) |
Time integration of a rotation velocity during a unit time step (dt=1). | |
Quaternion | elementaryRotation (const Real, const Real, const Real) |
Time integration of a rotation velocity. | |
Public Types | |
Typedefs | |
typedef TraitsT | Traits |
Type used for class customization. | |
typedef RealT | Real |
Floating point type. | |
Public Member Functions | |
Get | |
void | getAxisAngle (Real &x, Real &y, Real &z, Real &angle) const |
Get axis, angle -biased!- for display only. | |
void | getAxisAngle (Vec3 &v, Real &a) const |
Get axis, angle -biased!- for display only. | |
const Real & | w () const |
Get w component in w, x, y, z. | |
const Real & | x () const |
Get x component in w, x, y, z. | |
const Real & | y () const |
Get y component in w, x, y, z. | |
const Real & | z () const |
Get z component in w, x, y, z. | |
Set | |
void | setAxisAngle (const Real x, const Real y, const Real z, const Real angle) |
void | setAxisAngle (const Vec3 &axis, const Real angle) |
Quaternion & | setwxyz (const Real w, const Real x, const Real y, const Real z) |
Set components w, x, y, z. | |
Euler angles (not extensively tested!) | |
Quaternion & | setEulerXYZ (const Real x, const Real y, const Real z) |
Quaternion & | setEulerXYX (const Real x, const Real y, const Real xx) |
Quaternion & | setEulerXZY (const Real x, const Real z, const Real y) |
Quaternion & | setEulerXZX (const Real x, const Real z, const Real xx) |
Quaternion & | setEulerYZX (const Real y, const Real z, const Real x) |
Quaternion & | setEulerYZY (const Real y, const Real z, const Real yy) |
Quaternion & | setEulerYXY (const Real y, const Real x, const Real yy) |
Quaternion & | setEulerYXZ (const Real y, const Real x, const Real z) |
Quaternion & | setEulerZXY (const Real z, const Real x, const Real y) |
Quaternion & | setEulerZXZ (const Real z, const Real x, const Real zz) |
Quaternion & | setEulerZYX (const Real z, const Real y, const Real x) |
Quaternion & | setEulerZYZ (const Real z, const Real y, const Real zz) |
Operations on Quaternions (composition of rotations) | |
Quaternion & | operator= (const Quaternion &) |
Assignement operator. | |
Quaternion & | operator *= (const Quaternion &) |
In-place product. | |
Quaternion & | operator/= (const Quaternion &) |
In-place product with the inverse of a quaternion. | |
Quaternion | operator * (const Quaternion &) const |
Product with a quaternion. | |
Quaternion | operator/ (const Quaternion &) const |
Product with the inverse of a quaternion. | |
Quaternion | inverse () const |
Inverse rotation. | |
Quaternion | operator * (const Real u) const |
Interpolation. | |
Operations on vectors | |
Vec3 | operator * (const Vec3 &) const |
Apply rotation to a vector. | |
Vec3 | operator/ (const Vec3 &) const |
Apply inverse rotation to a vector. | |
Norm | |
Real | norm () const |
Norm. | |
Quaternion & | normalize () |
Normalize. | |
Static Public Member Functions | |
Constants | |
const Quaternion | identity () |
Identity (rotation with null angle). | |
Private Attributes | |
Real | v [4] |
Value of the quaternion. | |
Friends | |
Input/Output | |
template<class R, class T> std::ostream & | operator<< (std::ostream &, const Quaternion< R, T > &) |
Text output: axis angle. | |
template<class R, class T> std::istream & | operator>> (std::istream &, Quaternion< R, T > &) |
Text input: axis angle. |
|
Floating point type.
Definition at line 49 of file quaternion.h. |
|
Type used for class customization.
Definition at line 46 of file quaternion.h. |
|
Default constructor: does nothing.
Definition at line 423 of file quaternion.h. Referenced by animal::Quaternion< RealT, TraitsT >::identity(), and animal::Quaternion< RealT, TraitsT >::inverse(). |
|
Components w, x, y, z. Be careful, the first parameter is the angle!
Definition at line 429 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::v. |
|
Axis and angle of rotation.
Definition at line 437 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::setAxisAngle(). |
|
Axis and angle of rotation.
Definition at line 445 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::setAxisAngle(). |
|
Copy.
Definition at line 453 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::v. |
|
Destructor: does nothing.
Definition at line 461 of file quaternion.h. |
|
Time integration of a rotation velocity.
Definition at line 1197 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::setAxisAngle(). |
|
Time integration of a rotation velocity during a unit time step (dt=1).
Definition at line 1186 of file quaternion.h. |
|
Time integration of a rotation velocity.
Definition at line 1161 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::setAxisAngle(). |
|
Time integration of a rotation velocity.
Definition at line 1148 of file quaternion.h. |
|
Get axis, angle -biased!- for display only.
Definition at line 512 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::v, and animal::Vec3. |
|
Get axis, angle -biased!- for display only.
Definition at line 471 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::v. |
|
Identity (rotation with null angle).
Definition at line 974 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::Quaternion(). |
|
Inverse rotation.
Definition at line 836 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::Quaternion(), and animal::Quaternion< RealT, TraitsT >::v. |
|
Norm.
Definition at line 923 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::v. |
|
Normalize.
Definition at line 930 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::v. |
|
Apply rotation to a vector.
Definition at line 863 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::v. |
|
Interpolation.
Definition at line 845 of file quaternion.h. |
|
Product with a quaternion.
Definition at line 809 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::v. |
|
In-place product.
Definition at line 781 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::v, and animal::Quaternion< RealT, TraitsT >::w(). |
|
Apply inverse rotation to a vector.
Definition at line 892 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::v. |
|
Product with the inverse of a quaternion.
Definition at line 823 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::v. |
|
In-place product with the inverse of a quaternion.
Definition at line 795 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::v, and animal::Quaternion< RealT, TraitsT >::w(). |
|
Assignement operator.
Definition at line 768 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::v. |
|
Set axis, angle. Axis is represented by a vector. Axis needs not be normalized. Definition at line 579 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::v. |
|
|
Definition at line 632 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::setAxisAngle(). |
|
Definition at line 620 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::setAxisAngle(). |
|
Definition at line 656 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::setAxisAngle(). |
|
Definition at line 644 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::setAxisAngle(). |
|
Definition at line 692 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::setAxisAngle(). |
|
Definition at line 704 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::setAxisAngle(). |
|
Definition at line 668 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::setAxisAngle(). |
|
Definition at line 680 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::setAxisAngle(). |
|
Definition at line 716 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::setAxisAngle(). |
|
Definition at line 728 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::setAxisAngle(). |
|
Definition at line 740 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::setAxisAngle(). |
|
Definition at line 752 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::setAxisAngle(). |
|
Set components w, x, y, z.
Definition at line 611 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::v. |
|
Get w component in w, x, y, z.
Definition at line 546 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::v. Referenced by animal::Quaternion< RealT, TraitsT >::operator *=(), animal::Quaternion< RealT, TraitsT >::operator/=(), animal::writeOpenGLRotMatrix(), and animal::writeRotMatrix(). |
|
Get x component in w, x, y, z.
Definition at line 553 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::v. Referenced by animal::writeOpenGLRotMatrix(), and animal::writeRotMatrix(). |
|
Get y component in w, x, y, z.
Definition at line 560 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::v. Referenced by animal::writeOpenGLRotMatrix(), and animal::writeRotMatrix(). |
|
Get z component in w, x, y, z.
Definition at line 567 of file quaternion.h. References animal::Quaternion< RealT, TraitsT >::v. Referenced by animal::writeOpenGLRotMatrix(), and animal::writeRotMatrix(). |
|
Text output: axis angle.
|
|
Text input: axis angle.
|
|