Scalar-first quaternion value type for 3D rotations. More...
#include <cl_Quaternion.hpp>
Public Member Functions | |
| Quaternion () | |
| Quaternion (T a, T b, T c, T d) | |
| Quaternion (const Vector< T > &aVector) | |
| Quaternion (const Vector< T > &aAxis, const T aAngle) | |
| Construct a rotation quaternion from axis and angle. | |
| T * | data () |
| const T * | data () const |
| T & | a () |
| const T & | a () const |
| T & | b () |
| const T & | b () const |
| T & | c () |
| const T & | c () const |
| T & | d () |
| const T & | d () const |
| T * | begin () |
| const T * | begin () const |
| T * | end () |
| const T * | end () const |
| Quaternion & | operator= (std::initializer_list< T > initList) |
| Quaternion & | operator+= (const Quaternion &aOther) |
| Quaternion & | operator-= (const Quaternion &aOther) |
| Quaternion & | operator*= (T aScalar) |
| Quaternion & | operator/= (T aScalar) |
| Quaternion & | operator*= (const Quaternion &aOther) |
| T | norm () const |
| Quaternion< T > | conj () const |
| Quaternion< T > | inv () const |
| Quaternion< T > & | normalize () |
| Vector< T > | rotate (const Vector< T > &aVector) const |
| Rotate a 3D vector by this unit quaternion. | |
Static Public Member Functions | |
| static Quaternion | identity () |
Scalar-first quaternion value type for 3D rotations.
|
inline |
|
inline |
|
inline |
|
inline |
Construct a rotation quaternion from axis and angle.
| aAxis | The rotation axis (will be normalized internally) |
| aAngle | The rotation angle in radians |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinestatic |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Rotate a 3D vector by this unit quaternion.
| aVector | The vector to rotate (must have length 3) |
Uses the formula: v' = q * v * q* (conjugate) Requires a unit quaternion.