HQuat
Functions
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
Parameters: Returns: Result of interplation
-
inline