matrix/mat4f

4x4 matrices of floats

Types

Mat4f is a 4x4 column-major matrix of Floats.

pub type Mat4f =
  vec4.Vec4(vec4.Vec4(Float))

Values

pub fn add(
  a: vec4.Vec4(vec4.Vec4(Float)),
  b: vec4.Vec4(vec4.Vec4(Float)),
) -> vec4.Vec4(vec4.Vec4(Float))

Adds two Mat4fs together

pub fn determinant(mat: vec4.Vec4(vec4.Vec4(Float))) -> Float

Returns the determinant of the Mat4f.

pub fn diagonal(
  mat: vec4.Vec4(vec4.Vec4(Float)),
) -> vec4.Vec4(Float)

Extracts the diagonal of the Mat4f.

pub fn from_cols(
  a: vec4.Vec4(Float),
  b: vec4.Vec4(Float),
  c: vec4.Vec4(Float),
  d: vec4.Vec4(Float),
) -> vec4.Vec4(vec4.Vec4(Float))

Constructs a Mat4f from its four columns.

| a.x  b.x  c.x  d.x |
| a.y  b.y  c.y  d.y |
| a.z  b.z  c.z  d.z |
| a.w  b.w  c.w  d.w |
pub fn from_diagonal(
  diagonal: vec4.Vec4(Float),
) -> vec4.Vec4(vec4.Vec4(Float))

Creates a 4x4 matrix with its diagonal set to diagonal and all other entries are 0.

pub const identity: vec4.Vec4(vec4.Vec4(Float))

The 4x4 identity matrix

pub fn mul_transpose_vec4(
  mat: vec4.Vec4(vec4.Vec4(Float)),
  rhs: vec4.Vec4(Float),
) -> vec4.Vec4(Float)

Transforms a 4D vector by the transpose of the Mat4f.

Equivalent to matrix multiplication where the vector is on the left.

pub fn mul_vec4(
  mat: vec4.Vec4(vec4.Vec4(Float)),
  rhs: vec4.Vec4(Float),
) -> vec4.Vec4(Float)

Transforms a 4D vector by this Mat4f.

pub fn new(
  ax: Float,
  ay: Float,
  az: Float,
  aw: Float,
  bx: Float,
  by: Float,
  bz: Float,
  bw: Float,
  cx: Float,
  cy: Float,
  cz: Float,
  cw: Float,
  dx: Float,
  dy: Float,
  dz: Float,
  dw: Float,
) -> vec4.Vec4(vec4.Vec4(Float))

Constructs a Mat4f from its components.

| ax  bx  cx  dx |
| ay  by  cy  dy |
| az  bz  cz  dz |
| aw  bw  cw  dw |
pub fn scale(
  mat: vec4.Vec4(vec4.Vec4(Float)),
  scale: Float,
) -> vec4.Vec4(vec4.Vec4(Float))

Scales the Mat4f by a Float.

pub fn subtract(
  a: vec4.Vec4(vec4.Vec4(Float)),
  b: vec4.Vec4(vec4.Vec4(Float)),
) -> vec4.Vec4(vec4.Vec4(Float))

Subtracts Mat4f b from a

pub fn transpose(
  mat: vec4.Vec4(vec4.Vec4(Float)),
) -> vec4.Vec4(vec4.Vec4(Float))

Transposes the Mat4f along the diagonal.

pub const zero: vec4.Vec4(vec4.Vec4(Float))

A 4x4 matrix filled with zeroes.

Search Document