#include <gmtl/Math.h>#include <gmtl/Quat.h>

Go to the source code of this file.
Namespaces | |
| namespace | gmtl |
Meta programming classes. | |
Functions | |
Quat Operations | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > & | gmtl::mult (Quat< DATA_TYPE > &result, const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| product of two quaternions (quaternion product) multiplication of quats is much like multiplication of typical complex numbers. | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > | gmtl::operator* (const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| product of two quaternions (quaternion product) Does quaternion multiplication. | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > & | gmtl::operator*= (Quat< DATA_TYPE > &result, const Quat< DATA_TYPE > &q2) |
| quaternion postmult | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > & | gmtl::negate (Quat< DATA_TYPE > &result) |
| Vector negation - negate each element in the quaternion vector. | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > | gmtl::operator- (const Quat< DATA_TYPE > &quat) |
| Vector negation - (operator-) return a temporary that is the negative of the given quat. | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > & | gmtl::mult (Quat< DATA_TYPE > &result, const Quat< DATA_TYPE > &q, DATA_TYPE s) |
| vector scalar multiplication | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > | gmtl::operator* (const Quat< DATA_TYPE > &q, DATA_TYPE s) |
| vector scalar multiplication | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > & | gmtl::operator*= (Quat< DATA_TYPE > &q, DATA_TYPE s) |
| vector scalar multiplication | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > & | gmtl::div (Quat< DATA_TYPE > &result, const Quat< DATA_TYPE > &q1, Quat< DATA_TYPE > q2) |
| quotient of two quaternions | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > | gmtl::operator/ (const Quat< DATA_TYPE > &q1, Quat< DATA_TYPE > q2) |
| quotient of two quaternions | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > & | gmtl::operator/= (Quat< DATA_TYPE > &result, const Quat< DATA_TYPE > &q2) |
| quotient of two quaternions | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > & | gmtl::div (Quat< DATA_TYPE > &result, const Quat< DATA_TYPE > &q, DATA_TYPE s) |
| quaternion vector scale | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > | gmtl::operator/ (const Quat< DATA_TYPE > &q, DATA_TYPE s) |
| vector scalar division | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > & | gmtl::operator/= (const Quat< DATA_TYPE > &q, DATA_TYPE s) |
| vector scalar division | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > & | gmtl::add (Quat< DATA_TYPE > &result, const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| vector addition | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > | gmtl::operator+ (const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| vector addition | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > & | gmtl::operator+= (Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| vector addition | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > & | gmtl::sub (Quat< DATA_TYPE > &result, const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| vector subtraction | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > | gmtl::operator- (const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| vector subtraction | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > & | gmtl::operator-= (Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| vector subtraction | |
| template<typename DATA_TYPE > | |
| DATA_TYPE | gmtl::dot (const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| vector dot product between two quaternions. | |
| template<typename DATA_TYPE > | |
| DATA_TYPE | gmtl::lengthSquared (const Quat< DATA_TYPE > &q) |
| quaternion "norm" (also known as vector length squared) using this can be faster than using length for some operations... | |
| template<typename DATA_TYPE > | |
| DATA_TYPE | gmtl::length (const Quat< DATA_TYPE > &q) |
| quaternion "absolute" (also known as vector length or magnitude) using this can be faster than using length for some operations... | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > & | gmtl::normalize (Quat< DATA_TYPE > &result) |
| set self to the normalized quaternion of self. | |
| template<typename DATA_TYPE > | |
| bool | gmtl::isNormalized (const Quat< DATA_TYPE > &q1, const DATA_TYPE eps=0.0001f) |
| Determines if the given quaternion is normalized within the given tolerance. | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > & | gmtl::conj (Quat< DATA_TYPE > &result) |
| quaternion complex conjugate. | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > & | gmtl::invert (Quat< DATA_TYPE > &result) |
| quaternion multiplicative inverse. | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > & | gmtl::exp (Quat< DATA_TYPE > &result) |
| complex exponentiation. | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > & | gmtl::log (Quat< DATA_TYPE > &result) |
| complex logarithm | |
| template<typename DATA_TYPE > | |
| void | gmtl::squad (Quat< DATA_TYPE > &result, DATA_TYPE t, const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2, const Quat< DATA_TYPE > &a, const Quat< DATA_TYPE > &b) |
| WARNING: not implemented (do not use). | |
| template<typename DATA_TYPE > | |
| void | gmtl::meanTangent (Quat< DATA_TYPE > &result, const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2, const Quat< DATA_TYPE > &q3) |
| WARNING: not implemented (do not use). | |
Quaternion Interpolation | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > & | gmtl::slerp (Quat< DATA_TYPE > &result, const DATA_TYPE t, const Quat< DATA_TYPE > &from, const Quat< DATA_TYPE > &to, bool adjustSign=true) |
| spherical linear interpolation between two rotation quaternions. | |
| template<typename DATA_TYPE > | |
| Quat< DATA_TYPE > & | gmtl::lerp (Quat< DATA_TYPE > &result, const DATA_TYPE t, const Quat< DATA_TYPE > &from, const Quat< DATA_TYPE > &to) |
| linear interpolation between two quaternions. | |
Quat Comparisons | |
| template<typename DATA_TYPE > | |
| bool | gmtl::operator== (const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| Compare two quaternions for equality. | |
| template<typename DATA_TYPE > | |
| bool | gmtl::operator!= (const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2) |
| Compare two quaternions for not-equality. | |
| template<typename DATA_TYPE > | |
| bool | gmtl::isEqual (const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2, DATA_TYPE tol=0.0) |
| Compare two quaternions for equality with tolerance. | |
| template<typename DATA_TYPE > | |
| bool | gmtl::isEquiv (const Quat< DATA_TYPE > &q1, const Quat< DATA_TYPE > &q2, DATA_TYPE tol=0.0) |
| Compare two quaternions for geometric equivelence (with tolerance). | |
1.7.1