# class Matrix4x4

Matrix4x4 is used to represent and manipulate 4x4 transformation matrices, which can be either standard matrices, or homogeneous 4x4 matrices used to transform 3D homogeneous coordinates [x y z w]. The transformations are defined in row-major order.

See also: ReMath

# Methods

Method Description
DeepCopy Copies the contents of an input matrix to the current matrix.
Determinant3x3 Returns the top 3x3 determinant.
Direction3ArrayMultiply Multiply in-place an array with 3D direction vectors [x y z 0].
GetClass Get the name of the Matrix4x4 class.
GetElement Get a matrix element.
GetElements The elements of the matrix.
Identity Set the matrix to the identity matrix.
Invert Invert the current matrix.
IsA Returns true if Matrix4x4 is a or is a descendant of the class named as the type parameter.
IsNull Returns true if the Matrix4x4 object is invalid.
Point3ArrayMultiply Multiply in-place an array with 3D points [x y z 1].
SetElement Set a matrix element.
SetToInvert The matrix to the invert of the input matrix.
SetToRotationTransform Creates a 3D rotation in a homogeneous transformation 4x4 matrix around the specified axis.
SetToScalingTransform Creates a 3D scaling in a homogeneous transformation 4x4 matrix.
SetToTranslationTransform Creates a 3D translation in a homogeneous 4x4 matrix.
SetToTranspose The matrix to the transpose of the input matrix.
Transpose Transpose the current matrix.
Vector4ArrayMultiply Multiply in-place an array with full 4D vectors [x y z w].
Zero Set the matrix to the zero matrix (all zeros).

# Static methods

Method Description
IsClassA Returns true if the class is a or is a descendant of the class named as the type parameter.
SafeCast SafeCast makes sure the input object is of a class that can be cast into spMatrix4x4, and if this is the case, returns the object cast into spMatrix4x4.

# Methods details

# DeepCopy

Copies the contents of an input matrix to the current matrix.

# Syntax

void DeepCopy( spMatrix4x4 mtxin );

# Parameters

Type Name Min Max Description
Matrix4x4 mtxin The source matrix.

# Determinant3x3

Returns the top 3x3 determinant.

# Syntax

real Determinant3x3();

# Parameters

Determinant3x3 takes no parameters.

# Return value

Type: real

# Direction3ArrayMultiply

Multiply in-place an array with 3D direction vectors [x y z 0].

# Syntax

void Direction3ArrayMultiply( spRealArray vecarray );

# Parameters

Type Name Min Max Description
RealArray vecarray The vectors to be multiplied and written to.

# GetClass

Get the name of the Matrix4x4 class.

# Syntax

spString GetClass();

# Parameters

GetClass takes no parameters.

# Return value

Type: spString

# GetElement

Get a matrix element.

# Syntax

real GetElement( unsigned int column , unsigned int row );

# Parameters

Type Name Min Max Description
unsigned int column The column index.
unsigned int row The row index.

# Return value

Type: real

# GetElements

The elements of the matrix.

# Syntax

spRealData GetElements();

# Parameters

GetElements takes no parameters.

# Return value

Type: RealData

# Identity

Set the matrix to the identity matrix.

# Syntax

void Identity();

# Parameters

Identity takes no parameters.

# Invert

Invert the current matrix.

# Syntax

void Invert();

# Parameters

Invert takes no parameters.

# IsA

Returns true if Matrix4x4 is a or is a descendant of the class named as the type parameter.

# Syntax

bool IsA( const char * type );

# Parameters

Type Name Min Max Description
const char * type Name of the class to check if Matrix4x4 is, or is a descendant of.

# Return value

Type: bool

# IsNull

Returns true if the Matrix4x4 object is invalid.

# Syntax

bool IsNull();

# Parameters

IsNull takes no parameters.

# Return value

Type: bool

# Point3ArrayMultiply

Multiply in-place an array with 3D points [x y z 1].

# Syntax

void Point3ArrayMultiply( spRealArray vecarray );

# Parameters

Type Name Min Max Description
RealArray vecarray The vectors to be multiplied and written to.

# SetElement

Set a matrix element.

# Syntax

void SetElement( unsigned int column , unsigned int row , real value );

# Parameters

Type Name Min Max Description
unsigned int column The column index.
unsigned int row The row index.
real value The value to which the element will be set.

# SetToInvert

The matrix to the invert of the input matrix.

# Syntax

void SetToInvert( spMatrix4x4 mtxin );

# Parameters

Type Name Min Max Description
Matrix4x4 mtxin The input matrix.

# SetToRotationTransform

Creates a 3D rotation in a homogeneous transformation 4x4 matrix around the specified axis.

# Syntax

void SetToRotationTransform( real angle , real ax , real ay , real az );

# Parameters

Type Name Min Max Description
real angle The angle.
real ax The x component of the rotation axis.
real ay The y component of the rotation axis.
real az The z component of the rotation axis.

# SetToScalingTransform

Creates a 3D scaling in a homogeneous transformation 4x4 matrix.

# Syntax

void SetToScalingTransform( real sx , real sy , real sz );

# Parameters

Type Name Min Max Description
real sx The x component of the scaling.
real sy The y component of the scaling.
real sz The z component of the scaling.

# SetToTranslationTransform

Creates a 3D translation in a homogeneous 4x4 matrix.

# Syntax

void SetToTranslationTransform( real tx , real ty , real tz );

# Parameters

Type Name Min Max Description
real tx The x component of the scaling.
real ty The y component of the scaling.
real tz The z component of the scaling.

# SetToTranspose

The matrix to the transpose of the input matrix.

# Syntax

void SetToTranspose( spMatrix4x4 mtxin );

# Parameters

Type Name Min Max Description
Matrix4x4 mtxin The input matrix.

# Transpose

Transpose the current matrix.

# Syntax

void Transpose();

# Parameters

Transpose takes no parameters.

# Vector4ArrayMultiply

Multiply in-place an array with full 4D vectors [x y z w].

# Syntax

void Vector4ArrayMultiply( spRealArray vecarray );

# Parameters

Type Name Min Max Description
RealArray vecarray The vectors to be multiplied and written to.

# Zero

Set the matrix to the zero matrix (all zeros).

# Syntax

void Zero();

# Parameters

Zero takes no parameters.

# Static methods details

# IsClassA

Returns true if the class is a or is a descendant of the class named as the type parameter.

# Syntax

static bool IsClassA( const char * type );

# Parameters

Type Name Min Max Description
const char * type Name of the class to check if the class is, or is a descendant of.

# Return value

Type: bool

# SafeCast

SafeCast makes sure the input object is of a class that can be cast into spMatrix4x4, and if this is the case, returns the object cast into spMatrix4x4.

# Syntax

static spMatrix4x4 SafeCast( spObject object );

# Parameters

Type Name Min Max Description
Object object Object to cast.

# Return value

Type: Matrix4x4