Open Search
    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.