Mat4
Source: Mat4.ts:29
Class represents a 4x4 matrix.
Constructor
new Mat4(): Mat4Instance 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
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