Matrix

Detailed Description

Functions

Matrix MatrixMove (const Vector &t)
 
Matrix MatrixScale (const Vector &s)
 
Matrix MatrixRotX (Float w)
 
Matrix MatrixRotY (Float w)
 
Matrix MatrixRotZ (Float w)
 
Vector MatrixToHPB (const Matrix &m, ROTATIONORDER rot_order, Bool isNormalized=false)
 
Vector VectorToHPB (const Vector &p)
 
Matrix HPBToMatrix (const Vector &hpb, ROTATIONORDER rot_order)
 
void MatrixToRotAxis (const Matrix &m, Vector *v, Float *w)
 
Matrix RotAxisToMatrix (const Vector &v, Float w)
 
Matrix RebuildMatrix (const Matrix &m)
 
Matrix DirectionVectorToRotationMatrix (const Vector &direction, const Vector &pivotDirection)
 

Function Documentation

◆ MatrixMove()

Matrix MatrixMove ( const Vector t)

Creates a translation matrix.

Parameters
[in]tThe translation vector.
Returns
The translation matrix.

◆ MatrixScale()

Matrix MatrixScale ( const Vector s)

Creates a scaling matrix.

Parameters
[in]sThe scaling vector for the axes.
Returns
The scaling matrix.

◆ MatrixRotX()

Matrix MatrixRotX ( Float  w)

Creates a rotation matrix on the X axis.

Parameters
[in]wThe angle around X.
Returns
The rotation matrix.

◆ MatrixRotY()

Matrix MatrixRotY ( Float  w)

Creates a rotation matrix on the Y axis.

Parameters
[in]wThe angle around Y.
Returns
The rotation matrix.

◆ MatrixRotZ()

Matrix MatrixRotZ ( Float  w)

Creates a rotation matrix on the Z axis.

Parameters
[in]wThe angle around Z.
Returns
The rotation matrix.

◆ MatrixToHPB()

Vector MatrixToHPB ( const Matrix m,
ROTATIONORDER  rot_order,
Bool  isNormalized = false 
)

Calculates Euler angles from a matrix.

Parameters
[in]mThe rotation matrix.
[in]rot_orderThe rotation order.
[in]isNormalizedTrue if the matrix is already normalized
Returns
The rotation HPB.

◆ VectorToHPB()

Vector VectorToHPB ( const Vector p)

Calculates Euler angles from a vector.

Note
The bank is always set to 0.0.
Parameters
[in]pThe vector to find the HPB for.
Returns
The rotation HPB.

◆ HPBToMatrix()

Matrix HPBToMatrix ( const Vector hpb,
ROTATIONORDER  rot_order 
)

Constructs a matrix from Euler angles.

Parameters
[in]hpbThe input HPB.
[in]rot_orderThe rotation order.
Returns
The rotation matrix.

◆ MatrixToRotAxis()

void MatrixToRotAxis ( const Matrix m,
Vector v,
Float w 
)

Calculates rotation axis and angle from a matrix.

Parameters
[in]mThe rotation matrix.
[out]vAssigned the rotation axis.
[out]wAssigned the rotation angle.

◆ RotAxisToMatrix()

Matrix RotAxisToMatrix ( const Vector v,
Float  w 
)

Calculates matrix from rotation axis and angle.

Parameters
[in]vThe rotation axis.
[in]wThe rotation angle.
Returns
The rotation matrix.

◆ RebuildMatrix()

Matrix RebuildMatrix ( const Matrix m)

Recalculates a matrix making it orthogonal if one or more of its vectors is collapsed (scale 0.0).

Parameters
[in]mThe matrix to rebuild.
Returns
The recalculated matrix with the collapsed components fixed and unit length.

◆ DirectionVectorToRotationMatrix()

Matrix DirectionVectorToRotationMatrix ( const Vector direction,
const Vector pivotDirection 
)

Rotates a directional vector around another pivot direction to calculate the angle and rotation axis, packed into a matrix, required to perform the rotation. This is otherwise known as Rodrigues' rotation formula.

Parameters
[in]directionInput directional vector.
[in]pivotDirectionVector to rotate around.
Returns
A new rotation matrix embedding the rotation of the vector around the pivot.