KrisLibrary
1.0.0
|
Quaternion, a.k.a. Euler parameter, 3D rotation parameterization. More...
#include <rotation.h>
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 Quaternion & | operator= (const Quaternion &) |
void | operator+= (const Quaternion &) |
void | operator-= (const Quaternion &) |
void | operator*= (const Quaternion &) |
void | operator/= (const Quaternion &) |
const Quaternion & | operator= (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 | add (const Quaternion &a, Real b) |
void | sub (const Quaternion &a, Real 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 | |
} | |
}; | |
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.