openTRI 0.1
Quaternions

Functions

triQuattriQuatUnit (triQuat *a)
 Make unit quaternion (0,0,0,1).
triQuattriQuatCopy (triQuat *a, const triQuat *b)
 Copy quaternion.
triMat4ftriQuatToMatrix (triMat4f *a, const triQuat *b)
 Convert quaternion to matrix.
triVec4ftriQuatApply (triVec4f *a, const triQuat *b, const triVec4f *c)
 Apply quaternion to vector.
triQuattriQuatAdd (triQuat *a, const triQuat *b, const triQuat *c)
 Add quaternions.
triQuattriQuatSub (triQuat *a, const triQuat *b, const triQuat *c)
 Subtract quaternions.
triQuattriQuatMul (triQuat *a, const triQuat *b, const triQuat *c)
 Multiply quaternions.
triFloat triQuatInnerProduct (const triQuat *a, const triQuat *b)
 Quaternion innerproduct (dotproduct).
triQuattriQuatNLerp (triQuat *a, const triQuat *b, const triQuat *c, triFloat t)
 Normal (linear) interpolation of quaternions.
triQuattriQuatSLerp (triQuat *a, const triQuat *b, const triQuat *c, triFloat t)
 Spherical interpolation of quaternions.
triQuattriQuatSquad (triQuat *a, const triQuat *b, const triQuat *c, const triQuat *d, const triQuat *e, triFloat t)
 Cubical interpolation of quaternions.
triQuattriQuatNormalize (triQuat *a, const triQuat *b)
 Normalize quaternion.
triQuattriQuatConj (triQuat *a, const triQuat *b)
 Conjugate quaternion (-x,-y,-z,-w).
triQuattriQuatInverse (triQuat *a, const triQuat *b)
 Inverse quaternion (normalize(-x,-y,-z,w)).
triQuattriQuatFromRotate (triQuat *a, triFloat angle, const triVec4f *b)
 Make quaternion from axis rotation.

Detailed Description

Function Documentation

◆ triQuatUnit()

triQuat * triQuatUnit ( triQuat * a)

Make unit quaternion (0,0,0,1).

Parameters
a- Pointer to dest quaternion
Returns
Pointer to a

◆ triQuatCopy()

triQuat * triQuatCopy ( triQuat * a,
const triQuat * b )

Copy quaternion.

Parameters
a- Pointer to dest quaternion
b- Pointer to source quaternion
Returns
Pointer to a

◆ triQuatToMatrix()

triMat4f * triQuatToMatrix ( triMat4f * a,
const triQuat * b )

Convert quaternion to matrix.

Parameters
a- Pointer to dest matrix
b- Pointer to source quaternion
Returns
Pointer to a

◆ triQuatApply()

triVec4f * triQuatApply ( triVec4f * a,
const triQuat * b,
const triVec4f * c )

Apply quaternion to vector.

Parameters
a- Pointer to dest vector
b- Pointer to source quaternion
c- Pointer to source vector
Returns
Pointer to a

◆ triQuatAdd()

triQuat * triQuatAdd ( triQuat * a,
const triQuat * b,
const triQuat * c )

Add quaternions.

Parameters
a- Pointer to dest quaternion
b- Pointer to first source quaternion
c- Pointer to second source quaternion
Returns
Pointer to a

◆ triQuatSub()

triQuat * triQuatSub ( triQuat * a,
const triQuat * b,
const triQuat * c )

Subtract quaternions.

Parameters
a- Pointer to dest quaternion
b- Pointer to first source quaternion
c- Pointer to second source quaternion
Returns
Pointer to a

◆ triQuatMul()

triQuat * triQuatMul ( triQuat * a,
const triQuat * b,
const triQuat * c )

Multiply quaternions.

Parameters
a- Pointer to dest quaternion
b- Pointer to first source quaternion
c- Pointer to second source quaternion
Returns
Pointer to a

◆ triQuatInnerProduct()

triFloat triQuatInnerProduct ( const triQuat * a,
const triQuat * b )

Quaternion innerproduct (dotproduct).

Parameters
a- Pointer to first source quaternion
b- Pointer to second source quaternion
Returns
Dotproduct of quaternions

◆ triQuatNLerp()

triQuat * triQuatNLerp ( triQuat * a,
const triQuat * b,
const triQuat * c,
triFloat t )

Normal (linear) interpolation of quaternions.

Parameters
a- Pointer to dest quaternion
b- Pointer to first source quaternion
c- Pointer to second source quaternion
t- Interpolation step
Returns
Pointer to a

◆ triQuatSLerp()

triQuat * triQuatSLerp ( triQuat * a,
const triQuat * b,
const triQuat * c,
triFloat t )

Spherical interpolation of quaternions.

Parameters
a- Pointer to dest quaternion
b- Pointer to first source quaternion
c- Pointer to second source quaternion
t- Interpolation step
Returns
Pointer to a

◆ triQuatSquad()

triQuat * triQuatSquad ( triQuat * a,
const triQuat * b,
const triQuat * c,
const triQuat * d,
const triQuat * e,
triFloat t )

Cubical interpolation of quaternions.

return SLerp( SLerp( b, c, t ), SLerp( d, e, t ), 2*t*(1-t) )

Parameters
a- Pointer to dest quaternion
b- Pointer to first source quaternion
c- Pointer to second source quaternion
d- Pointer to third source quaternion
e- Pointer to fourth source quaternion
t- Interpolation step
Returns
Pointer to a

◆ triQuatNormalize()

triQuat * triQuatNormalize ( triQuat * a,
const triQuat * b )

Normalize quaternion.

Parameters
a- Pointer to dest quaternion
b- Pointer to source quaternion
Returns
Pointer to a

◆ triQuatConj()

triQuat * triQuatConj ( triQuat * a,
const triQuat * b )

Conjugate quaternion (-x,-y,-z,-w).

Parameters
a- Pointer to dest quaternion
b- Pointer to source quaternion
Returns
Pointer to a

◆ triQuatInverse()

triQuat * triQuatInverse ( triQuat * a,
const triQuat * b )

Inverse quaternion (normalize(-x,-y,-z,w)).

Parameters
a- Pointer to dest quaternion
b- Pointer to source quaternion
Returns
Pointer to a

◆ triQuatFromRotate()

triQuat * triQuatFromRotate ( triQuat * a,
triFloat angle,
const triVec4f * b )

Make quaternion from axis rotation.

Parameters
a- Pointer to dest quaternion
angle- angle in radians to rotate about
b- Pointer to vector describing the axis to rotate about
Returns
Pointer to a