29 #ifndef __MATH_QUAT_H__
30 #define __MATH_QUAT_H__
58 void Set(
float x,
float y,
float z,
float w );
83 float Length(
void )
const;
86 float CalcW(
void )
const;
97 const char *
ToString(
int precision = 2 )
const;
113 assert( ( index >= 0 ) && ( index < 4 ) );
118 assert( ( index >= 0 ) && ( index < 4 ) );
174 float xxzz =
x*
x -
z*
z;
175 float wwyy =
w*
w -
y*
y;
177 float xw2 =
x*
w*2.0f;
178 float xy2 =
x*y*2.0f;
179 float xz2 =
x*z*2.0f;
180 float yw2 = y*
w*2.0f;
181 float yz2 = y*z*2.0f;
182 float zw2 = z*
w*2.0f;
185 (xxzz + wwyy)*a.
x + (xy2 + zw2)*a.
y + (xz2 - yw2)*a.
z,
186 (xy2 - zw2)*a.
x + (y*y+
w*
w-
x*
x-z*z)*a.
y + (yz2 + xw2)*a.
z,
187 (xz2 + yw2)*a.
x + (yz2 - xw2)*a.
y + (wwyy - xxzz)*a.
z
220 return ( (
x == a.
x ) && (
y == a.
y ) && (
z == a.
z ) && (
w == a.
w ) );
261 len =
x *
x +
y *
y +
z *
z +
w *
w;
282 return sqrt( fabs( 1.0
f - (
x *
x +
y *
y +
z *
z ) ) );
315 void Set(
float x,
float y,
float z );
334 const char *
ToString(
int precision = 2 )
const;
353 assert( ( index >= 0 ) && ( index < 3 ) );
358 assert( ( index >= 0 ) && ( index < 3 ) );
363 return ( (
x == a.
x ) && (
y == a.
y ) && (
z == a.
z ) );
idMat4 ToMat4(void) const
bool operator!=(const idQuat &a) const
idQuat & operator-=(const idQuat &a)
idAngles ToAngles(void) const
const float * ToFloatPtr(void) const
int GetDimension(void) const
assert(prefInfo.fullscreenBtn)
const float * ToFloatPtr(void) const
idAngles ToAngles(void) const
idMat3 ToMat3(void) const
int GetDimension(void) const
const char * ToString(int precision=2) const
void Set(float x, float y, float z)
static float Sqrt(float x)
ID_INLINE idQuat operator*(const float a, const idQuat &b)
bool operator==(const idCQuat &a) const
idQuat & operator=(const idQuat &a)
idQuat & Slerp(const idQuat &from, const idQuat &to, float t)
void Set(float x, float y, float z, float w)
idRotation ToRotation(void) const
idRotation ToRotation(void) const
GLubyte GLubyte GLubyte GLubyte w
static float Fabs(float f)
bool Compare(const idQuat &a) const
bool Compare(const idCQuat &a) const
idCQuat ToCQuat(void) const
GLubyte GLubyte GLubyte a
bool operator!=(const idCQuat &a) const
idMat3 ToMat3(void) const
float operator[](int index) const
idQuat ToQuat(void) const
idQuat operator*(const idQuat &a) const
float operator[](int index) const
idQuat operator+(const idQuat &a) const
bool operator==(const idQuat &a) const
idQuat & operator*=(const idQuat &a)
idVec3 ToAngularVelocity(void) const
idQuat Inverse(void) const
const char * ToString(int precision=2) const
idQuat & operator+=(const idQuat &a)
idMat4 ToMat4(void) const