#include <iso_math_quaternion.h>
Collaboration diagram for iso::math::Quaternion< Type >:
Public Member Functions | |
Quaternion () | |
create identity quaternion | |
Quaternion (Type pW, Type pX, Type pY, Type pZ) | |
create quaternion directly from components | |
Quaternion (Type pValues[4]) | |
create quaternion directly from array | |
Quaternion (Vector4< Type > pVector) | |
create quaternion directly from vector | |
Quaternion (const Vector3< Type > &pAxis, Type pAngle) | |
create quaternion from axis-of-rotation and rotation angle | |
Quaternion (const Matrix4< Type > &pMatrix) | |
create quaternion from rotation matrix. | |
Quaternion (const Vector3< Type > &pVectorA, const Vector3< Type > &pVectorB) | |
create quaternion from minimum rotation from vector a into vector b. | |
Quaternion (Type pYaw, Type pPitch, Type pRoll) | |
create quaternion from euler orientation. | |
Quaternion (const Quaternion< Type > &pQuaternion) | |
copy constructor | |
template<class Type2> | |
Quaternion (const Quaternion< Type2 > &pQuaternion) | |
copy constructor | |
virtual | ~Quaternion () |
destructor | |
Type | dot (const Quaternion< Type > &pQuat) const |
const Quaternion< Type > & | operator= (const Quaternion< Type > &pQuat) |
assignment quaternion = quaternion | |
template<class Type2> | |
const Quaternion< Type > & | operator= (const Quaternion< Type2 > &pQuat) |
assignment quaternion = quaternion | |
const Quaternion< Type > & | operator= (const Vector4< Type > &pVector) |
assignment quaternion = vector | |
const Quaternion< Type > & | scale (Type pValue) |
scale quaternion | |
void | set (Type pW, Type pX, Type pY, Type pZ) |
set quaternion directly from components | |
void | set (const Type pValues[4]) |
set quaternion directly from array | |
void | set (const Vector4< Type > pVector) |
set quaternion directly from vector | |
void | set (const Vector3< Type > &pAxis, Type pAngle) |
set quaternion from axis-of-rotation and rotation angle | |
void | set (const Matrix4< Type > &pMatrix) |
set quaternion from rotation matrix. | |
void | set2 (const Vector3< Type > &pVectorA, const Vector3< Type > &pVectorB) |
set quaternion from minimum rotation from vector a into vector b. | |
void | set (const Vector3< Type > &pVectorA, const Vector3< Type > &pVectorB) |
set quaternion from minimum rotation from vector a into vector b. | |
void | set (Type pYaw, Type pPitch, Type pRoll) |
set quaternion from euler orientation. | |
void | get (Vector3< Type > &pAxis, Type &pAngle) const |
get axis-of-rotation and rotation angle from quaternion | |
void | get (Matrix4< Type > &pMatrix) const |
get rotation matrix from quaternion | |
void | get (MatrixH< Type > &pMatrix) const |
get rotation matrix from quaternion | |
void | get (Type &pYaw, Type &pPitch, Type &pRoll) const |
euler orientation from quaternion | |
const Quaternion< Type > & | invert () |
invert | |
Quaternion< Type > | getInverse () const |
get inverse | |
const Quaternion< Type > & | conjugate () |
conjugate | |
Quaternion< Type > | getConjugate () const |
get conjugate | |
const Quaternion< Type > & | operator+= (const Quaternion< Type > &pQuat) |
quaternion += quaternion | |
const Quaternion< Type > & | operator-= (const Quaternion< Type > &pQuat) |
quaternion -= quaternion | |
const Quaternion< Type > & | operator *= (Type pValue) |
quaternion *= scalar | |
const Quaternion< Type > & | operator *= (const Quaternion< Type > &pQuat) |
quaternion *= quaternion | |
const Quaternion< Type > & | operator/= (const Quaternion< Type > &pQuat) |
quaternion /= quaternion | |
Quaternion< Type > | operator * (const Type &pValue) const |
quaternion * scalar | |
Quaternion< Type > | operator+ (const Quaternion< Type > &pQuat) const |
quaternion + quaternion | |
Quaternion< Type > | operator- (const Quaternion< Type > &pQuat) const |
quaternion - quaternion | |
Quaternion< Type > | operator * (const Quaternion< Type > &pQuat) const |
quaternion * quaternion | |
Quaternion< Type > | operator/ (Quaternion< Type > &pQuat) const |
quaternion / quaternion | |
Vector3< Type > | operator * (const Vector3< Type > &pVector) const |
vector rotation | |
Vector3< Type > | rotVec (const Vector3< Type > &pVector) const |
vector rotation | |
bool | operator== (const Quaternion< Type > &pQuat) const |
quaternion == quaternion | |
bool | operator!= (const Quaternion< Type > &pQuat) const |
quaternion != quaternion | |
Type | norm () const |
return norm | |
const Quaternion< Type > & | normalise () |
normalise | |
Static Public Member Functions | |
static Type | dot (const Quaternion< Type > &pQuat1, const Quaternion< Type > &pQuat2) |
static Quaternion< Type > | slerp (const Quaternion< Type > &pRot0, const Quaternion< Type > &pRot1, Type pT) |
Interpolates along the shortest path between the two rotation positions (from rot0 to rot1, 0<= t <= 1). | |
Public Attributes | |
union { | |
struct { | |
Type w | |
Type x | |
Type y | |
Type z | |
} | |
Type c [4] | |
}; | |
Static Public Attributes | |
static const Quaternion< Type > | IDENTITY |
Friends | |
std::ostream & | operator<< (std::ostream &os, const Quaternion< Type > pQuat) |
Created by Daniel Bisig on 7/16/06. Copyright 2006 Daniel Bisig All rights reserved.
iso::math::Quaternion< Type >::Quaternion | ( | ) |
create identity quaternion
iso::math::Quaternion< Type >::Quaternion | ( | Type | pW, | |
Type | pX, | |||
Type | pY, | |||
Type | pZ | |||
) |
create quaternion directly from components
pW | w | |
pX | x | |
pY | y | |
pZ | z |
iso::math::Quaternion< Type >::Quaternion | ( | Type | pValues[4] | ) |
create quaternion directly from array
pValues | array |
iso::math::Quaternion< Type >::Quaternion | ( | Vector4< Type > | pVector | ) |
create quaternion directly from vector
pVector | vector4 |
iso::math::Quaternion< Type >::Quaternion | ( | const Vector3< Type > & | pAxis, | |
Type | pAngle | |||
) |
create quaternion from axis-of-rotation and rotation angle
pAxis | axis of rotation | |
pAngle | rotation angle |
iso::math::Quaternion< Type >::Quaternion | ( | const Matrix4< Type > & | pMatrix | ) |
create quaternion from rotation matrix.
pMatrix | rotation matrix |
iso::math::Quaternion< Type >::Quaternion | ( | const Vector3< Type > & | pVectorA, | |
const Vector3< Type > & | pVectorB | |||
) |
create quaternion from minimum rotation from vector a into vector b.
pVectorA | vector a | |
pVectorB | vector b |
iso::math::Quaternion< Type >::Quaternion | ( | Type | pYaw, | |
Type | pPitch, | |||
Type | pRoll | |||
) |
create quaternion from euler orientation.
pYaw | yaw | |
pPitch | pitch | |
pRoll | roll |
iso::math::Quaternion< Type >::Quaternion | ( | const Quaternion< Type > & | pQuaternion | ) |
copy constructor
pQuaternion | quaternion |
iso::math::Quaternion< Type >::Quaternion | ( | const Quaternion< Type2 > & | pQuaternion | ) |
copy constructor
pQuaternion | quaternion |
iso::math::Quaternion< Type >::~Quaternion | ( | ) | [virtual] |
destructor
Type iso::math::Quaternion< Type >::dot | ( | const Quaternion< Type > & | pQuat | ) | const |
Type iso::math::Quaternion< Type >::dot | ( | const Quaternion< Type > & | pQuat1, | |
const Quaternion< Type > & | pQuat2 | |||
) | [static] |
const Quaternion< Type > & iso::math::Quaternion< Type >::operator= | ( | const Quaternion< Type > & | pQuat | ) |
assignment quaternion = quaternion
pQuat | quaternion |
const Quaternion< Type > & iso::math::Quaternion< Type >::operator= | ( | const Quaternion< Type2 > & | pQuat | ) |
assignment quaternion = quaternion
pQuat | quaternion |
const Quaternion< Type > & iso::math::Quaternion< Type >::operator= | ( | const Vector4< Type > & | pVector | ) |
assignment quaternion = vector
pVector | vector4 |
const Quaternion< Type > & iso::math::Quaternion< Type >::scale | ( | Type | pValue | ) |
scale quaternion
pValue | value |
void iso::math::Quaternion< Type >::set | ( | Type | pW, | |
Type | pX, | |||
Type | pY, | |||
Type | pZ | |||
) |
set quaternion directly from components
pW | w | |
pX | x | |
pY | y | |
pZ | z |
void iso::math::Quaternion< Type >::set | ( | const Type | pValues[4] | ) |
set quaternion directly from array
pValues | array |
void iso::math::Quaternion< Type >::set | ( | const Vector4< Type > | pVector | ) |
set quaternion directly from vector
pVector | vector4 |
void iso::math::Quaternion< Type >::set | ( | const Vector3< Type > & | pAxis, | |
Type | pAngle | |||
) |
set quaternion from axis-of-rotation and rotation angle
pAxis | axis of rotation | |
pAngle | rotation angle |
void iso::math::Quaternion< Type >::set | ( | const Matrix4< Type > & | pMatrix | ) |
set quaternion from rotation matrix.
pMatrix | rotation matrix |
void iso::math::Quaternion< Type >::set2 | ( | const Vector3< Type > & | pVectorA, | |
const Vector3< Type > & | pVectorB | |||
) |
set quaternion from minimum rotation from vector a into vector b.
pVectorA | vector a | |
pVectorB | vector b |
void iso::math::Quaternion< Type >::set | ( | const Vector3< Type > & | pVectorA, | |
const Vector3< Type > & | pVectorB | |||
) |
set quaternion from minimum rotation from vector a into vector b.
pVectorA | vector a | |
pVectorB | vector b |
void iso::math::Quaternion< Type >::set | ( | Type | pYaw, | |
Type | pPitch, | |||
Type | pRoll | |||
) |
set quaternion from euler orientation.
pYaw | yaw | |
pPitch | pitch | |
pRoll | roll |
void iso::math::Quaternion< Type >::get | ( | Vector3< Type > & | pAxis, | |
Type & | pAngle | |||
) | const |
get axis-of-rotation and rotation angle from quaternion
pAxis | axis of rotation | |
pAngle | rotation angle |
void iso::math::Quaternion< Type >::get | ( | Matrix4< Type > & | pMatrix | ) | const |
get rotation matrix from quaternion
pMatrix | rotation matrix |
void iso::math::Quaternion< Type >::get | ( | MatrixH< Type > & | pMatrix | ) | const |
get rotation matrix from quaternion
pMatrix | rotation matrix |
void iso::math::Quaternion< Type >::get | ( | Type & | pYaw, | |
Type & | pPitch, | |||
Type & | pRoll | |||
) | const |
euler orientation from quaternion
pYaw | yaw | |
pPitch | pitch | |
pRoll | roll |
const Quaternion< Type > & iso::math::Quaternion< Type >::invert | ( | ) |
invert
Quaternion< Type > iso::math::Quaternion< Type >::getInverse | ( | ) | const |
get inverse
const Quaternion< Type > & iso::math::Quaternion< Type >::conjugate | ( | ) |
conjugate
Quaternion< Type > iso::math::Quaternion< Type >::getConjugate | ( | ) | const |
get conjugate
const Quaternion< Type > & iso::math::Quaternion< Type >::operator+= | ( | const Quaternion< Type > & | pQuat | ) |
quaternion += quaternion
pQuat | quaternion |
const Quaternion< Type > & iso::math::Quaternion< Type >::operator-= | ( | const Quaternion< Type > & | pQuat | ) |
quaternion -= quaternion
pQuat | quaternion |
const Quaternion< Type > & iso::math::Quaternion< Type >::operator *= | ( | Type | pValue | ) |
quaternion *= scalar
pValue | value |
const Quaternion< Type > & iso::math::Quaternion< Type >::operator *= | ( | const Quaternion< Type > & | pQuat | ) |
quaternion *= quaternion
pQuat | quaternion |
const Quaternion< Type > & iso::math::Quaternion< Type >::operator/= | ( | const Quaternion< Type > & | pQuat | ) |
quaternion /= quaternion
pQuat | quaternion |
Quaternion< Type > iso::math::Quaternion< Type >::operator * | ( | const Type & | pValue | ) | const |
quaternion * scalar
pValue | value |
Quaternion< Type > iso::math::Quaternion< Type >::operator+ | ( | const Quaternion< Type > & | pQuat | ) | const |
quaternion + quaternion
pQuat | quaternion |
Quaternion< Type > iso::math::Quaternion< Type >::operator- | ( | const Quaternion< Type > & | pQuat | ) | const |
quaternion - quaternion
pQuat | quaternion |
Quaternion< Type > iso::math::Quaternion< Type >::operator * | ( | const Quaternion< Type > & | pQuat | ) | const |
quaternion * quaternion
pQuat | quaternion |
Quaternion< Type > iso::math::Quaternion< Type >::operator/ | ( | Quaternion< Type > & | pQuat | ) | const |
quaternion / quaternion
pQuat | quaternion |
Vector3< Type > iso::math::Quaternion< Type >::operator * | ( | const Vector3< Type > & | pVector | ) | const |
vector rotation
pVector | vector3 |
Vector3< Type > iso::math::Quaternion< Type >::rotVec | ( | const Vector3< Type > & | pVector | ) | const |
vector rotation
pVector | vector3 |
Quaternion< Type > iso::math::Quaternion< Type >::slerp | ( | const Quaternion< Type > & | pRot0, | |
const Quaternion< Type > & | pRot1, | |||
Type | pT | |||
) | [static] |
Interpolates along the shortest path between the two rotation positions (from rot0 to rot1, 0<= t <= 1).
pRot0 | first quaternion based orientiation | |
pRot1 | second quaternion based orientiation | |
pT | interpolation ( 0.0 - 1.0 ) |
bool iso::math::Quaternion< Type >::operator== | ( | const Quaternion< Type > & | pQuat | ) | const |
quaternion == quaternion
pQuat | quaternion |
bool iso::math::Quaternion< Type >::operator!= | ( | const Quaternion< Type > & | pQuat | ) | const |
quaternion != quaternion
pQuat | quaternion |
Type iso::math::Quaternion< Type >::norm | ( | ) | const |
return norm
const Quaternion< Type > & iso::math::Quaternion< Type >::normalise | ( | ) |
normalise
std::ostream& operator<< | ( | std::ostream & | os, | |
const Quaternion< Type > | pQuat | |||
) | [friend] |
const Quaternion< Type > iso::math::Quaternion< Type >::IDENTITY [static] |
Type iso::math::Quaternion< Type >::w |
Type iso::math::Quaternion< Type >::x |
Type iso::math::Quaternion< Type >::y |
Type iso::math::Quaternion< Type >::z |
Type iso::math::Quaternion< Type >::c[4] |
union { ... } |