The HQuat class defines the data type of a Quaternion. More...
#include <HBhvUtility.h>
Public Member Functions | |
HQuat () | |
HQuat (float X, float Y, float Z, float W) | |
HQuat (HQuat const *p) | |
HQuat (const HQuat &p) | |
const HQuat & | Normalize () |
HQuat | operator* (const HQuat &q2) const |
HQuat | operator* (float v) const |
HQuat | operator+ (const HQuat &q2) const |
HQuat | operator- (const HQuat &q2) const |
HQuat | operator/ (float v) const |
void | Set (float X, float Y, float Z, float W) |
void | ToMatrix (float matrix[16]) |
Static Public Member Functions | |
static HQuat | MatrixToQuaternion (float matrix[]) |
static HQuat | Qexp (const HQuat &q) |
static HQuat | Qlerp (const HQuat &q1, const HQuat &q2, float fraction) |
static HQuat | Qlog (const HQuat &q) |
static HQuat | Qslerp (const HQuat &q1, const HQuat &q2, float fraction) |
static HQuat | QslerpNoInvert (const HQuat &q1, const HQuat &q2, float fraction) |
static HQuat | QslerpNoInvertExtraSpins (const HQuat &q1, const HQuat &q2, float fraction, int ExtraSpins) |
static HQuat | Qspline (const HQuat &qnm1, const HQuat &qn, const HQuat &qnp1) |
static HQuat | Qsquad (const HQuat &q1, const HQuat &q2, const HQuat &a, const HQuat &b, float fraction) |
Public Attributes | |
float | w |
float | x |
float | y |
float | z |
Friends | |
HQuat | operator* (float v, const HQuat &q) |
The HQuat class defines the data type of a Quaternion.
The HQuat class encapsulates the x,y,x,w values used to define a quaternion as well as various functions to perform algebrahic operations on quaternions
HQuat::HQuat | ( | ) | [inline] |
default constructor
HQuat::HQuat | ( | float | X, |
float | Y, | ||
float | Z, | ||
float | W | ||
) | [inline] |
constructor that accepts three floats
HQuat::HQuat | ( | HQuat const * | p | ) | [inline] |
HQuat::HQuat | ( | const HQuat & | p | ) | [inline] |
static HQuat HQuat::MatrixToQuaternion | ( | float | matrix[] | ) | [static] |
Convert matrix to quaternion
HQuat HQuat::operator* | ( | float | v | ) | const [inline] |
Multiplies a quaternion with a float value
v | Value to multiply Quaternion with |
Subtracts one quaternion from another
q2 | Quaternion to subtract with |
HQuat HQuat::operator/ | ( | float | v | ) | const [inline] |
Divides a quaternion by a float value
v | Value to divide Quaternion by |
Qexp(v*a) = [cos(a),vsin(a)]
q | Quaternion to perform exp on |
Linear interpolation between two HQuats
q1 | First Quaternion for Interpolation |
q2 | Second Quaternion for Interpolation |
fraction | Interpolation Distance (0 - 1) |
Logarithm of a HQuat, given as: Qlog(q) = v*a where q = [cos(a),v*sin(a)]
q | Quaternion to perform log on |
Spherical interpolation between two HQuats
q1 | First Quaternion for Interpolation |
q2 | Second Quaternion for Interpolation |
fraction | Interpolation Distance (0 - 1) |
Spherical interpolation between two HQuats This version of slerp, used by squad, does not check for theta > 90.
q1 | First Quaternion for Interpolation |
q2 | Second Quaternion for Interpolation |
fraction | Interpolation Distance (0 - 1) |
static HQuat HQuat::QslerpNoInvertExtraSpins | ( | const HQuat & | q1, |
const HQuat & | q2, | ||
float | fraction, | ||
int | ExtraSpins | ||
) | [static] |
Spherical interpolation between two HQuats This version of slerp, used by squad, does not check for theta > 90.
q1 | First Quaternion for Interpolation |
q2 | Second Quaternion for Interpolation |
fraction | Interpolation Distance (0 - 1) |
Given 3 HQuats, qn-1,qn and qn+1, calculate a control point to be used in spline interpolation
qnm1 | qn-1 control point |
qn | qn control point |
qnp1 | qn + 1 control point |
void HQuat::Set | ( | float | X, |
float | Y, | ||
float | Z, | ||
float | W | ||
) | [inline] |
Set packs an HQuat object with coordinate values.
void HQuat::ToMatrix | ( | float | matrix[16] | ) |
Convert Quaternion to matrix form
matrix | Returns result matrix |
Multiplies a quaternion with a float value
v | Value to multiply Quaternion with |
q | Quaternion to multiply with |
float HQuat::w |
Quaternion w Coordinate
Referenced by HQuat(), operator*(), and operator+().
float HQuat::x |
Quaternion x Coordinate
Referenced by HQuat(), operator*(), and operator+().
float HQuat::y |
Quaternion y Coordinate
Referenced by HQuat(), operator*(), and operator+().
float HQuat::z |
Quaternion z Coordinate
Referenced by HQuat(), operator*(), and operator+().