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.
|
|
|||||
1.3.6