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