Skip to content
modkitv0.2

math/mat4.h

#include <modkit/math/mat4.h>21 functions

Matrix operations (thin wrappers around cglm).

Functions

mk_mat4_copyfunction

void mk_mat4_copy(const mk_mat4 *src, mk_mat4 *dest)

Copy matrix: dest = src.

ParameterTypeDescription
srcconst mk_mat4 *Value for src.
destmk_mat4 *Value for dest.

mk_mat4_from_quatfunction

void mk_mat4_from_quat(mk_mat4 *dest, const mk_quat *q)

Convert quaternion to rotation matrix.

ParameterTypeDescription
destmk_mat4 *Value for dest.
qconst mk_quat *Value for q.

mk_mat4_get_translationfunction

void mk_mat4_get_translation(const mk_mat4 *m, mk_vec3 *dest)

Extract translation from matrix.

ParameterTypeDescription
mconst mk_mat4 *Value for m.
destmk_vec3 *Value for dest.

mk_mat4_identityfunction

void mk_mat4_identity(mk_mat4 *dest)

Set matrix to identity.

ParameterTypeDescription
destmk_mat4 *Value for dest.

mk_mat4_invfunction

void mk_mat4_inv(const mk_mat4 *src, mk_mat4 *dest)

Invert matrix: dest = inverse(src).

ParameterTypeDescription
srcconst mk_mat4 *Value for src.
destmk_mat4 *Value for dest.

mk_mat4_mulfunction

void mk_mat4_mul(const mk_mat4 *a, const mk_mat4 *b, mk_mat4 *dest)

Multiply matrices: dest = a * b.

ParameterTypeDescription
aconst mk_mat4 *Value for a.
bconst mk_mat4 *Value for b.
destmk_mat4 *Value for dest.

mk_mat4_mulv3function

void mk_mat4_mulv3(const mk_mat4 *m, const mk_vec3 *v, mk_vec3 *dest)

Transform vec3 by mat4 (assumes w=1, perspective divide applied).

ParameterTypeDescription
mconst mk_mat4 *Value for m.
vconst mk_vec3 *Value for v.
destmk_vec3 *Value for dest.

mk_mat4_mulv4function

void mk_mat4_mulv4(const mk_mat4 *m, const mk_vec4 *v, mk_vec4 *dest)

Transform vec4 by mat4.

ParameterTypeDescription
mconst mk_mat4 *Value for m.
vconst mk_vec4 *Value for v.
destmk_vec4 *Value for dest.

mk_mat4_rotatefunction

void mk_mat4_rotate(mk_mat4 *m, float angle, const mk_vec3 *axis)

Apply rotation to matrix: m = m * R(angle, axis).

ParameterTypeDescription
mmk_mat4 *Value for m.
anglefloatValue for angle.
axisconst mk_vec3 *Value for axis.

mk_mat4_rotate_makefunction

void mk_mat4_rotate_make(mk_mat4 *dest, float angle, const mk_vec3 *axis)

Create rotation matrix from axis-angle (angle in radians).

ParameterTypeDescription
destmk_mat4 *Value for dest.
anglefloatValue for angle.
axisconst mk_vec3 *Value for axis.

mk_mat4_rotate_xfunction

void mk_mat4_rotate_x(const mk_mat4 *m, float angle, mk_mat4 *dest)

Rotate around X axis: dest = m * Rx(angle).

ParameterTypeDescription
mconst mk_mat4 *Value for m.
anglefloatValue for angle.
destmk_mat4 *Value for dest.

mk_mat4_rotate_yfunction

void mk_mat4_rotate_y(const mk_mat4 *m, float angle, mk_mat4 *dest)

Rotate around Y axis: dest = m * Ry(angle).

ParameterTypeDescription
mconst mk_mat4 *Value for m.
anglefloatValue for angle.
destmk_mat4 *Value for dest.

mk_mat4_rotate_zfunction

void mk_mat4_rotate_z(const mk_mat4 *m, float angle, mk_mat4 *dest)

Rotate around Z axis: dest = m * Rz(angle).

ParameterTypeDescription
mconst mk_mat4 *Value for m.
anglefloatValue for angle.
destmk_mat4 *Value for dest.

mk_mat4_scalefunction

void mk_mat4_scale(mk_mat4 *m, const mk_vec3 *v)

Apply scale to matrix: m = m * S(v).

ParameterTypeDescription
mmk_mat4 *Value for m.
vconst mk_vec3 *Value for v.

mk_mat4_scale_makefunction

void mk_mat4_scale_make(mk_mat4 *dest, const mk_vec3 *v)

Create scale matrix.

ParameterTypeDescription
destmk_mat4 *Value for dest.
vconst mk_vec3 *Value for v.

mk_mat4_scale_unifunction

void mk_mat4_scale_uni(mk_mat4 *m, float s)

Apply uniform scale to matrix: m = m * S(s,s,s).

ParameterTypeDescription
mmk_mat4 *Value for m.
sfloatValue for s.

mk_mat4_scale_uni_makefunction

void mk_mat4_scale_uni_make(mk_mat4 *dest, float s)

Create uniform scale matrix.

ParameterTypeDescription
destmk_mat4 *Value for dest.
sfloatValue for s.

mk_mat4_set_translationfunction

void mk_mat4_set_translation(mk_mat4 *m, const mk_vec3 *v)

Set translation in matrix.

ParameterTypeDescription
mmk_mat4 *Value for m.
vconst mk_vec3 *Value for v.

mk_mat4_translatefunction

void mk_mat4_translate(mk_mat4 *m, const mk_vec3 *v)

Apply translation to matrix: m = m * T(v).

ParameterTypeDescription
mmk_mat4 *Value for m.
vconst mk_vec3 *Value for v.

mk_mat4_translate_makefunction

void mk_mat4_translate_make(mk_mat4 *dest, const mk_vec3 *v)

Create translation matrix.

ParameterTypeDescription
destmk_mat4 *Value for dest.
vconst mk_vec3 *Value for v.

mk_mat4_transposefunction

void mk_mat4_transpose(const mk_mat4 *src, mk_mat4 *dest)

Transpose matrix: dest = transpose(src).

ParameterTypeDescription
srcconst mk_mat4 *Value for src.
destmk_mat4 *Value for dest.