Namespaces

QuatOps.h File Reference

#include <gmtl/Math.h>
#include <gmtl/Quat.h>
Include dependency graph for QuatOps.h:
This graph shows which files directly or indirectly include this file:

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