|
Theoretica
Mathematical Library
|
Quaternion class in the form \(a + bi + cj + dk\). More...
#include <quat.h>
Public Member Functions | |
| quat () | |
| Construct a quaternion with all zero components. | |
| quat (Type r) | |
| Construct a quaternion from a real number. | |
| quat (Type a, Type b, Type c, Type d) | |
| Construct a quaternion from its components. | |
| quat (const quat &q) | |
| Copy constructor. | |
| quat & | operator= (const quat &q) |
| Assignment operator. | |
| template<typename T > | |
| quat & | operator= (const std::array< T, 4 > &v) |
| Assignment operator from a 4D array. | |
| Type | Re () const |
| Get the real part of the quaternion. | |
| Type | Im1 () const |
| Get the first imaginary part of the quaternion. | |
| Type | Im2 () const |
| Get the second imaginary part of the quaternion. | |
| Type | Im3 () const |
| Get the third imaginary part of the quaternion. | |
| quat | conjugate () const |
| Compute the conjugate of the quaternion. | |
| Type | sqr_norm () const |
| Compute the square norm of the quaternion. | |
| Type | norm () const |
| Compute the norm of the quaternion. | |
| quat | inverse () const |
| Compute the inverse of the quaternion. | |
| quat & | invert () |
| Invert the quaternion. | |
| quat | operator+ () const |
| Identity (for consistency) | |
| quat | operator- () const |
| Get the opposite of the quaternion. | |
| quat | operator+ (Type k) const |
| Sum a quaternion and a scalar value. | |
| quat | operator- (Type k) const |
| Subtract a quaternion and a scalar value. | |
| quat | operator* (Type k) const |
| Multiply a quaternion by a scalar value. | |
| quat | operator/ (Type k) const |
| Divide a quaternion by a scalar value. | |
| quat | operator+ (const quat &other) const |
| Add two quaternions. | |
| quat | operator- (const quat &other) const |
| Subtract two quaternions. | |
| quat | operator* (const quat &q) const |
| Multiply two quaternions. | |
| quat | operator/ (const quat &other) const |
| Divide two quaternions. | |
| quat & | operator*= (Type k) |
| Multiply this quaternion by a scalar value. | |
| quat & | operator/= (Type k) |
| Divide this quaternion by a scalar value. | |
| quat & | operator+= (const quat &other) |
| Add a quaternion to this one. | |
| quat & | operator-= (const quat &other) |
| Subtract a quaternion to this one. | |
| quat & | operator*= (const quat &other) |
| Multiply this quaternion by another one. | |
| quat & | operator/= (const quat &other) |
| Divide this quaternion by another one. | |
| template<typename Vector > | |
| Vector | transform (const Vector &v) const |
| Transform a 3D vector. | |
| std::string | to_string () const |
| Convert the quaternion to string representation. | |
| operator std::string () | |
| Convert the quaternion to string representation. | |
Static Public Member Functions | |
| template<typename Vector > | |
| static quat | rotation (Type rad, const Vector &axis) |
| Construct a quaternion which represents a rotation of <rad> radians around the <axis> arbitrary axis. | |
| template<typename Vector > | |
| static Vector | rotate (const Vector &v, Type rad, const Vector &axis) |
| Rotate a 3D vector <v> by <rad> radians around the <axis> arbitrary axis. | |
Public Attributes | |
| Type | a |
| Real part. | |
| Type | b |
| Imaginary parts. | |
Friends | |
| Type | Re (const quat &q) |
| Extract the real part of the quaternion. | |
| Type | Im1 (const quat &q) |
| Extract the first imaginary part of the quaternion. | |
| Type | Im2 (const quat &q) |
| Extract the second imaginary part of the quaternion. | |
| Type | Im3 (const quat &q) |
| Extract the third imaginary part of the quaternion. | |
| std::ostream & | operator<< (std::ostream &out, const quat &obj) |
| Stream the quaternion in string representation to an output stream (std::ostream) | |
Quaternion class in the form \(a + bi + cj + dk\).