Skip to content

class Mat4 (shared-side)

Available since version: 0.2

This class represents 4x4 matrix.

Constructor

Mat4()

Parameters:

No parameters.

Constructor

Mat4(float value)

Parameters:

  • float value: the initial value for each matrix cell.

Constructor

Mat4(Vec4 v0, Vec4 v1, Vec4 v2, Vec4 v3)

Parameters:

  • Vec4 v0: the initial value for 1st row of the matrix.
  • Vec4 v1: the initial value for 2nd row of the matrix.
  • Vec4 v2: the initial value for 3rd row of the matrix.
  • Vec4 v3: the initial value for 4th row of the matrix.

Properties

No properties.


Methods

makeIdentity

This method will set all cells to the identity matrix.

void makeIdentity()

makeZero

This method will set all cells to zero.

void makeZero()

makeOrthonormal

This method will make the matric orthonormal.

void makeOrthonormal()

isUpper3x3Orthonormal

This method will is used check whether upper 3x3 matrix components are orthonormal.

bool isUpper3x3Orthonormal()

Returns bool:

true if upper 3x3 components are orthonormal, otherwise false.


transpose

This method will return the transpose of the matrix. The transposed matrix is the one that has the Matrix4x4's columns exchanged with its rows.

Mat4 transpose()

Returns Mat4:

the transposed matrix.


inverse

This method will return the inverse of the matrix. Inverted matrix is such that if multiplied by the original would result in identity matrix.

Mat4 inverse()

Returns Mat4:

the inverted matrix.


inverseLinTrafo

This method will return the inverse linear transformation of the matrix. It works almost exactly the same as inverse
with the difference that translation is applied.

Mat4 inverseLinTrafo()

Returns Mat4:

the inverted matrix.


rotate

This method will apply the matrix rotation to given vector and return a new one.

Vec3 rotate(Vec3 vec)

Parameters:

  • Vec3 vec: the vector that will be used to produce the rotated one.

Returns Vec3:

the rotated vector.


getRightVector

This method will get the right vector from the matrix.

Vec3 getRightVector()

Returns Vec3:

the right vector.


setRightVector

This method will set the right vector for the matrix.

void setRightVector(Vec3 vec)

Parameters:

  • Vec3 vec: the new right vector for the matrix.

getAtVector

This method will get the at vector from the matrix.

Vec3 getAtVector()

Returns Vec3:

the at vector.


setAtVector

This method will set the at vector for the matrix.

void setAtVector(Vec3 vec)

Parameters:

  • Vec3 vec: the new at vector for the matrix.

getUpVector

This method will get the up vector from the matrix.

Vec3 getUpVector()

Returns Vec3:

the up vector.


setUpVector

This method will set the up vector for the matrix.

void setUpVector(Vec3 vec)

Parameters:

  • Vec3 vec: the new up vector for the matrix.

getTranslation

Available since version: 0.2.1

This method will get the translation (aka position) from the matrix.

Vec3 getTranslation()

Returns Vec3:

the translation position.


setTranslation

Available since version: 0.2.1

This method will set the translation (aka position) for the matrix.

void setTranslation(Vec3 vec)

Parameters:

  • Vec3 vec: the translation position.

resetRotation

This method will reset the rotation of the matrix.

void resetRotation()

extractRotation

This method will extract the rotation matrix from the TRS matrix.

Mat3 extractRotation()

Returns Mat3:

the extracted rotation matrix.


extractScaling

This method will extract the scaling vector from the TRS matrix.

Vec3 extractScaling()

Returns Vec3:

the extracted scaling vector.


postRotateX

This method will perform the matrix post rotation operation on X axis.

void postRotateX(float angle)

Parameters:

  • float angle: the angle in degrees.

postRotateY

This method will perform the matrix post rotation operation on Y axis.

void postRotateY(float angle)

Parameters:

  • float angle: the angle in degrees.

postRotateZ

This method will perform the matrix post rotation operation on Z axis.

void postRotateZ(float angle)

Parameters:

  • float angle: the angle in degrees.

preScale

This method will perform the matrix pre scale operation.

void preScale(Vec3 scale)

Parameters:

  • Vec3 scale: the scale vector.

postScale

This method will perform the matrix post scale operation.

void postScale(Vec3 scale)

Parameters:

  • Vec3 scale: the scale vector.

static swap

This method will swap all cells between two matricies.

void swap(Mat4 mat1, Mat4 mat2)

Parameters:

  • Mat4 mat1: the matrix that will be used in swap operation.
  • Mat4 mat2: the matrix that will be used in swap operation.

static lookAt

Available since version: 0.2.1

This method will create a matrix that will hold position & rotation based of from, to, up vectors.

Mat4 lookAt(Vec3 from, Vec3 to, Vec3 up)

Parameters:

  • Vec3 from: the source position.
  • Vec3 to: the target position.
  • Vec3 up: the up direction.

Returns Mat4:

the resulting transformation matrix