Math::quaternion Class Reference
#include <xna_quaternion.h>
Detailed Description
Nebula's quaternion class.(C) 2004 RadonLabs GmbH
Public Member Functions | |
quaternion () | |
default constructor, NOTE: does NOT setup components! | |
quaternion (scalar x, scalar y, scalar z, scalar w) | |
construct from components | |
quaternion (float4 const &rhs) | |
construct from float4 | |
quaternion (XMVECTOR rhs) | |
construct from XMVECTOR | |
void | operator= (const quaternion &rhs) |
assignment operator | |
void | operator= (XMVECTOR rhs) |
assign XMVECTOR | |
bool | operator== (const quaternion &rhs) const |
equality operator | |
bool | operator!= (const quaternion &rhs) const |
inequality operator | |
void | load (const scalar *ptr) |
load content from 16-byte-aligned memory | |
void | loadu (const scalar *ptr) |
load content from unaligned memory | |
void | store (scalar *ptr) const |
write content to 16-byte-aligned memory through the write cache | |
void | storeu (scalar *ptr) const |
write content to unaligned memory through the write cache | |
void | stream (scalar *ptr) const |
stream content to 16-byte-aligned memory circumventing the write-cache | |
void | set (scalar x, scalar y, scalar z, scalar w) |
set content | |
void | set (float4 const &f4) |
set from float4 | |
void | set_x (scalar x) |
set the x component | |
void | set_y (scalar y) |
set the y component | |
void | set_z (scalar z) |
set the z component | |
void | set_w (scalar w) |
set the w component | |
scalar & | x () |
read/write access to x component | |
scalar & | y () |
read/write access to y component | |
scalar & | z () |
read/write access to z component | |
scalar & | w () |
read/write access to w component | |
scalar | x () const |
read-only access to x component | |
scalar | y () const |
read-only access to y component | |
scalar | z () const |
read-only access to z component | |
scalar | w () const |
read-only access to w component | |
bool | isidentity () const |
return true if quaternion is identity | |
scalar | length () const |
returns length | |
scalar | lengthsq () const |
returns length squared | |
void | undenormalize () |
un-denormalize quaternion (this is sort of a hack since Maya likes to return denormal quaternions) | |
Static Public Member Functions | |
static quaternion | barycentric (const quaternion &q0, const quaternion &q1, const quaternion &q2, scalar f, scalar g) |
return quaternion in barycentric coordinates | |
static quaternion | conjugate (const quaternion &q) |
return conjugate of a normalized quaternion | |
static scalar | dot (const quaternion &q0, const quaternion &q1) |
return dot product of two normalized quaternions | |
static quaternion | exp (const quaternion &q0) |
calculate the exponential | |
static quaternion | identity () |
returns an identity quaternion | |
static quaternion | inverse (const quaternion &q) |
conjugates and renormalizes quaternion | |
static quaternion | ln (const quaternion &q) |
calculate the natural logarithm | |
static quaternion | multiply (const quaternion &q0, const quaternion &q1) |
multiply 2 quaternions | |
static quaternion | normalize (const quaternion &q) |
compute unit length quaternion | |
static quaternion | rotationaxis (const float4 &axis, scalar angle) |
build quaternion from axis and clockwise rotation angle in radians | |
static quaternion | rotationmatrix (const matrix44 &m) |
build quaternion from rotation matrix | |
static quaternion | rotationyawpitchroll (scalar yaw, scalar pitch, scalar roll) |
build quaternion from yaw, pitch and roll | |
static quaternion | slerp (const quaternion &q1, const quaternion &q2, scalar t) |
interpolate between 2 quaternion using spherical interpolation | |
static void | squadsetup (const quaternion &q0, const quaternion &q1, const quaternion &q2, const quaternion &q3, quaternion &aOut, quaternion &bOut, quaternion &cOut) |
setup control points for spherical quadrangle interpolation | |
static quaternion | squad (const quaternion &q1, const quaternion &a, const quaternion &b, const quaternion &c, scalar t) |
interpolate between quaternions using spherical quadrangle interpolation | |
static void | to_axisangle (const quaternion &q, float4 &outAxis, scalar &outAngle) |
convert quaternion to axis and angle |
Constructor & Destructor Documentation
__forceinline Math::quaternion::quaternion | ( | XMVECTOR | rhs | ) |
construct from XMVECTOR
copy constructor !!!! copy constructor forbidden, otherwise passing point's to a function !!!! via Registers doesnt work