Mat4

Source: Mat4.ts:29

Class represents a 4x4 matrix.


Constructor

new Mat4(): Mat4

Instance Methods

set(m: Array.<number>): Mat4

Sets column-major order array matrix.

Parameters

  • m (Array.<number>) — Matrix array.

Returns

clone(): Mat4

Duplicates a Matrix3 instance.

Returns

copy(a: Mat4): Mat4

Copy matrix.

Parameters

  • a (Mat4) — Matrix to copy.

Returns

getMat3(): Mat3

Converts to 3x3 matrix.

Returns

mulVec3(p: Vec3): Vec3

Multiply to 3d vector.

Parameters

  • p (Vec3) — 3d vector.

Returns

mulVec4(p: Vec4): Vec4

Multiply to 4d vector.

Parameters

  • p (Vec4) — 4d vector.

Returns

toInverseMatrix3(): Mat3

Creates an inverse 3x3 matrix of the current.

Returns

inverseTo(): Mat4

Creates an inverse matrix of the current.

Returns

transposeTo(): Mat4

Creates a transposed matrix of the current.

Returns

setIdentity(): Mat4

Sets matrix to identity.

Returns

mul(mx: Mat4): Mat4

Computes the product of two matrices.

Parameters

  • mx (Mat4) — Matrix to multiply.

Returns

translate(v: Vec3): Mat4

Add translation vector to the current matrix.

Parameters

  • v (Vec3) — Translate vector.

Returns

translateToPosition(v: Vec3): Mat4

Sets translation matrix to the position.

Parameters

  • v (Vec3) — Translate to position.

Returns

rotate(u: Vec3, angle: number): Mat4

Rotates the current matrix around an axis by an angle.

Parameters

  • u (Vec3) — Rotation axis.
  • angle (number) — Rotation angle in radians.

Returns

setRotation(u: Vec3, angle: number): Mat4

Sets current rotation matrix around the aligned axis and angle.

Parameters

  • u (Vec3) — Aligned axis.
  • angle (number) — Aligned axis angle in radians.

Returns

rotateBetweenVectors(a: Vec3, b: Vec3): Mat4

Gets the rotation matrix from one vector to another.

Parameters

  • a (Vec3) — First vector.
  • b (Vec3) — Second vector.

Returns

scale(v: Vec3): Mat4

Scale current matrix to the vector values.

Parameters

  • v (Vec3) — Scale vector.

Returns

setPerspective( left: number, right: number, bottom: number, top: number, near: number, far: number, ): Mat4

Sets perspective projection matrix frustum values.

Parameters

  • left (number)
  • right (number)
  • bottom (number)
  • top (number)
  • near (number)
  • far (number)

Returns

setPerspectiveReverseInfinite()

Infinite reverse-Z perspective. By default uses WebGL clip space (NDC z in [-1, 1]); with zeroToOne=true uses EXT_clip_control ZERO_TO_ONE (NDC z in [0, 1]). Use with gl.clearDepth(0), gl.depthFunc(GL_GREATER). Far plane is not used in the matrix (culling only).

setOrthographic( left: number, right: number, bottom: number, top: number, near: number, far: number, ): Mat4

Creates current orthographic projection matrix.

Parameters

  • left (number)
  • right (number)
  • bottom (number)
  • top (number)
  • near (number)
  • far (number)

Returns

eulerToMatrix(ax: number, ay: number, az: number): Mat4

Sets current rotation matrix by euler's angles.

Parameters

  • ax (number) — Rotation angle in radians around X axis.
  • ay (number) — Rotation angle in radians around Y axis.
  • az (number) — Rotation angle in radians around Z axis.

Returns

Static Methods

identity(): Mat4

Returns identity matrix instance.

Returns

getRotationAroundPoint(angle: number, center?: Vec3, up?: Vec3)

Returns a rotation matrix around a point.

Parameters

  • angle (number) — Rotation angle in radians.
  • center (Vec3, optional) — Rotation center point.
  • up (Vec3, optional) — Up axis.