HQuat
Content
operator* |
Fields
float |
|
float |
|
float |
|
float |
Functions
HQuat const & |
|
void |
|
void |
|
Detailed Description
-
class HQuat
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
Public Functions
-
inline HQuat()
default constructor
-
inline HQuat(float X, float Y, float Z, float W)
constructor that accepts three floats
-
inline void Set(float X, float Y, float Z, float W)
Set packs an HQuat object with coordinate values.
-
inline HQuat operator*(HQuat const &q2) const
Multiplies two quaternions
- Parameters
q2 – Quaternion to multiply with
- Returns
Result of multiplication
-
inline HQuat operator*(float v) const
Multiplies a quaternion with a float value
- Parameters
v – Value to multiply Quaternion with
- Returns
Result of multiplication
-
inline HQuat operator/(float v) const
Divides a quaternion by a float value
- Parameters
v – Value to divide Quaternion by
- Returns
Result of multiplication
-
inline HQuat operator-(HQuat const &q2) const
Subtracts one quaternion from another
- Parameters
q2 – Quaternion to subtract with
- Returns
Result of subtraction
-
inline HQuat operator+(HQuat const &q2) const
Add one quaternion to another
- Parameters
q2 – Quaternion to add
- Returns
Result of addition
-
void ToMatrix(float matrix[16])
Convert Quaternion to matrix form
- Parameters
matrix – Returns result matrix
Public Members
-
float x
Quaternion x Coordinate
-
float y
Quaternion y Coordinate
-
float z
Quaternion z Coordinate
-
float w
Quaternion w Coordinate
Public Static Functions
-
static HQuat Qlog(HQuat const &q)
Logarithm of a HQuat, given as: Qlog(q) = v*a where q = [cos(a),v*sin(a)]
- Parameters
q – Quaternion to perform log on
- Returns
Result of logarithm
-
static HQuat Qexp(HQuat const &q)
Qexp(v*a) = [cos(a),vsin(a)]
- Parameters
q – Quaternion to perform exp on
- Returns
Result of Exp
-
static HQuat Qlerp(HQuat const &q1, HQuat const &q2, float fraction)
Linear interpolation between two HQuats
- Parameters
q1 – First Quaternion for Interpolation
q2 – Second Quaternion for Interpolation
fraction – Interpolation Distance (0 - 1)
- Returns
Result of interplation
-
static HQuat Qslerp(HQuat const &q1, HQuat const &q2, float fraction)
Spherical interpolation between two HQuats
- Parameters
q1 – First Quaternion for Interpolation
q2 – Second Quaternion for Interpolation
fraction – Interpolation Distance (0 - 1)
- Returns
Result of interplation
-
static HQuat QslerpNoInvert(HQuat const &q1, HQuat const &q2, float fraction)
Spherical interpolation between two HQuats This version of slerp, used by squad, does not check for theta > 90.
- Parameters
q1 – First Quaternion for Interpolation
q2 – Second Quaternion for Interpolation
fraction – Interpolation Distance (0 - 1)
- Returns
Result of interplation
-
static HQuat QslerpNoInvertExtraSpins(HQuat const &q1, HQuat const &q2, float fraction, int ExtraSpins)
Spherical interpolation between two HQuats This version of slerp, used by squad, does not check for theta > 90.
- Parameters
q1 – First Quaternion for Interpolation
q2 – Second Quaternion for Interpolation
fraction – Interpolation Distance (0 - 1)
- Returns
Result of interplation
-
static HQuat Qsquad(HQuat const &q1, HQuat const &q2, HQuat const &a, HQuat const &b, float fraction)
Spherical cubic interpolation between two HQuats
-
inline HQuat()