KrisLibrary  1.0.0
Public Member Functions | List of all members
Math3D::QuaternionRotation Class Reference

Quaternion, a.k.a. Euler parameter, 3D rotation parameterization. More...

#include <rotation.h>

Inheritance diagram for Math3D::QuaternionRotation:
Math::Quaternion

Public Member Functions

 QuaternionRotation (const QuaternionRotation &)
 
 QuaternionRotation (const Quaternion &)
 
 QuaternionRotation (Real w, Real x, Real y, Real z)
 
void slerp (const Quaternion &a, const Quaternion &b, Real t)
 
void mag (const Quaternion &a, Real t)
 
void transform (const Vector3 &a, Vector3 &out) const
 
void set (const QuaternionRotation &q)
 
void setIdentity ()
 
void setAngleAxis (const AngleAxisRotation &)
 
void setMoment (const MomentRotation &)
 
bool setMatrix (const Matrix3 &)
 
void getAngleAxis (AngleAxisRotation &) const
 
void getMoment (MomentRotation &) const
 
void getMatrix (Matrix3 &) const
 
- Public Member Functions inherited from Math::Quaternion
 Quaternion (const Quaternion &)
 
 Quaternion (Real w)
 
 Quaternion (Real w, const Real *im)
 
 Quaternion (Real w, Real x, Real y, Real z)
 
bool operator== (const Quaternion &) const
 
bool operator!= (const Quaternion &) const
 
const Quaternionoperator= (const Quaternion &)
 
void operator+= (const Quaternion &)
 
void operator-= (const Quaternion &)
 
void operator*= (const Quaternion &)
 
void operator/= (const Quaternion &)
 
const Quaternionoperator= (Real)
 
void operator+= (Real)
 
void operator-= (Real)
 
void operator*= (Real)
 
void operator/= (Real)
 
void add (const Quaternion &a, const Quaternion &b)
 
void sub (const Quaternion &a, const Quaternion &b)
 
void mul (const Quaternion &a, const Quaternion &b)
 
void div (const Quaternion &a, const Quaternion &b)
 
void madd (const Quaternion &a, const Quaternion &b)
 
void mul (const Quaternion &a, Real b)
 
void div (const Quaternion &a, Real b)
 
void madd (const Quaternion &a, Real b)
 
void set (const Quaternion &)
 
void set (Real w)
 
void set (Real w, const Real *im)
 
void set (Real w, Real x, Real y, Real z)
 
void setZero ()
 
void setNegative (const Quaternion &)
 
void setNormalized (const Quaternion &)
 
void setConjugate (const Quaternion &)
 
bool setInverse (const Quaternion &)
 
void setExp (const Quaternion &)
 
bool setLog (const Quaternion &, int n=0)
 
void setPow (const Quaternion &, Real)
 
void get (Quaternion &) const
 
void get (Real &w, Real *im) const
 
void get (Real &w, Real &x, Real &y, Real &z) const
 
void getNegative (Quaternion &) const
 
void getNormalized (Quaternion &) const
 
void getConjugate (Quaternion &) const
 
bool getInverse (Quaternion &) const
 
void inplaceNegative ()
 
void inplaceScale (Real)
 
void inplaceNormalize ()
 
void inplaceConjugate ()
 
bool inplaceInverse ()
 
bool isInvertible () const
 
Real norm () const
 
Real normSquared () const
 
Real imNorm () const
 
bool Read (File &)
 
bool Write (File &) const
 

Additional Inherited Members

- Public Attributes inherited from Math::Quaternion
union {
   Real   data [4]
 
   struct {
      Real   w
 
      Real   x
 
      Real   y
 
      Real   z
 
   } 
 
}; 
 

Detailed Description

Quaternion, a.k.a. Euler parameter, 3D rotation parameterization.

Represents a rotation with a unit quaternion (w,x,y,z). Convenient for rotation interpolation using the slerp() method. Also allows smooth cubic interpolation using the SCerp() or bezier-curve style interpolation SBezier() functions below.


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