#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). |