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) |
Detailed Description
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
Constructor & Destructor Documentation
◆ HQuat() [1/4]
|
inline |
default constructor
◆ HQuat() [2/4]
|
inline |
constructor that accepts three floats
◆ HQuat() [3/4]
|
inline |
◆ HQuat() [4/4]
|
inline |
Member Function Documentation
◆ MatrixToQuaternion()
|
static |
Convert matrix to quaternion
- Returns
- converted quaternion
◆ Normalize()
◆ operator*() [1/2]
◆ operator*() [2/2]
|
inline |
Multiplies a quaternion with a float value
- Parameters
-
v Value to multiply Quaternion with
- Returns
- Result of multiplication
◆ operator+()
◆ operator-()
Subtracts one quaternion from another
- Parameters
-
q2 Quaternion to subtract with
- Returns
- Result of subtraction
◆ operator/()
|
inline |
Divides a quaternion by a float value
- Parameters
-
v Value to divide Quaternion by
- Returns
- Result of multiplication
◆ Qexp()
Qexp(v*a) = [cos(a),vsin(a)]
- Parameters
-
q Quaternion to perform exp on
- Returns
- Result of Exp
◆ Qlerp()
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
◆ Qlog()
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
◆ Qslerp()
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
◆ QslerpNoInvert()
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
◆ QslerpNoInvertExtraSpins()
|
static |
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
◆ Qspline()
Given 3 HQuats, qn-1,qn and qn+1, calculate a control point to be used in spline interpolation
- Parameters
-
qnm1 qn-1 control point qn qn control point qnp1 qn + 1 control point
- Returns
- Result of interplation
◆ Qsquad()
◆ Set()
|
inline |
Set packs an HQuat object with coordinate values.
◆ ToMatrix()
void HQuat::ToMatrix | ( | float | matrix[16] | ) |
Convert Quaternion to matrix form
- Parameters
-
matrix Returns result matrix
Friends And Related Function Documentation
◆ operator*
Multiplies a quaternion with a float value
- Parameters
-
v Value to multiply Quaternion with q Quaternion to multiply with
- Returns
- Result of multiplication
Member Data Documentation
◆ w
float HQuat::w |
Quaternion w Coordinate
Referenced by HQuat(), operator*(), and operator+().
◆ x
float HQuat::x |
Quaternion x Coordinate
Referenced by HQuat(), operator*(), and operator+().
◆ y
float HQuat::y |
Quaternion y Coordinate
Referenced by HQuat(), operator*(), and operator+().
◆ z
float HQuat::z |
Quaternion z Coordinate
Referenced by HQuat(), operator*(), and operator+().
The documentation for this class was generated from the following file: