openTRI 0.1
Functions
Quaternions

Functions

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

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