mt
 All Classes Files Functions Enumerations Groups Pages
Public Member Functions | Protected Attributes | List of all members
mt::Quaternion Class Reference

Quaternion class. More...

#include <quaternion.h>

Inheritance diagram for mt::Quaternion:
mt::Rotation

Public Member Functions

 Quaternion ()
 Default constructor. Creates the [0.0, 0.0, 0.0, 1.0] quaternion.
 Quaternion (const Scalar &x, const Scalar &y, const Scalar &z, const Scalar &w)
 Constructor for four input values, where $ xi + yj + zk + w $.
 Quaternion (const Scalar *q)
 Constructor for pointer input.
Scalar & operator[] (size_t n)
 Unchecked element access.
const Scalar & operator[] (size_t n) const
 Unchecked element access.
Quaternionoperator+= (const Quaternion &q)
Quaternionoperator-= (const Quaternion &q)
Quaternionoperator*= (const Quaternion &q)
 Quaternion product (not memberwise product).
Quaternionoperator*= (const Scalar &s)
 Scalar-quaternion product.
Quaternionoperator/= (const Scalar &s)
 Scalar-quaternion division.
Vector3 operator() (const Vector3 &v) const
 Applies rotation to input vector.
bool operator== (const Quaternion &q) const
bool operator!= (const Quaternion &q) const
Scalar dot (const Quaternion &q) const
 Dot product.
Scalar length2 () const
 Squared quaternion length.
Scalar length () const
 Quaternion length.
Quaternionnormalize ()
 Normalize quaternion to unit length.
Scalar distance2 (const Quaternion &q) const
 Squared distance between quaternions.
Scalar distance (const Quaternion &q) const
 Distance between quaternions.
Scalar angleCos (const Quaternion &q) const
 Cosine of the angle between quaternions.
Scalar angle (const Quaternion &q) const
 Angle between quaternions in the range [0, pi] expressed in radians.
Quaternion conjugate () const
 Quaternion conjugate.
Quaternion inverse () const
 Quaternion inverse.
Quaternion slerp (const Quaternion &q, const Scalar &t) const
 Spherical linear interpolation/extrapolation with input quaternion.
Scalar & at (size_t n)
 Checked element access.
const Scalar & at (size_t n) const
 Checked element access.
void setValue (const Scalar &x, const Scalar &y, const Scalar &z, const Scalar &w)
 Sets quaternion values.
void setValue (const Scalar *q)
 Sets quaternion values from pointer input.

Protected Attributes

Scalar m_co [4]

Detailed Description

Quaternion class.

The Quaternion class provides the usual operators and functions used for expressing and manipulating quaternions.

Let $ q $ be a quaternion, then the following notations are analogous: $ \mathbf{q} = [ x, y, z, w ] = xi + yj + zk + w $.

Member Function Documentation

bool mt::Quaternion::operator== ( const Quaternion q) const
inline

Equality operator. The comparison criterion is that both the distance and angle between the two quaternions must be equal to zero.


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