mk_mat4_copyfunction
void mk_mat4_copy(const mk_mat4 *src, mk_mat4 *dest)Copy matrix: dest = src.
| Parameter | Type | Description |
|---|---|---|
src | const mk_mat4 * | Value for src. |
dest | mk_mat4 * | Value for dest. |
#include <modkit/math/mat4.h>21 functions
Matrix operations (thin wrappers around cglm).
mk_mat4_copyfunctionvoid mk_mat4_copy(const mk_mat4 *src, mk_mat4 *dest)Copy matrix: dest = src.
| Parameter | Type | Description |
|---|---|---|
src | const mk_mat4 * | Value for src. |
dest | mk_mat4 * | Value for dest. |
mk_mat4_from_quatfunctionvoid mk_mat4_from_quat(mk_mat4 *dest, const mk_quat *q)Convert quaternion to rotation matrix.
| Parameter | Type | Description |
|---|---|---|
dest | mk_mat4 * | Value for dest. |
q | const mk_quat * | Value for q. |
mk_mat4_get_translationfunctionvoid mk_mat4_get_translation(const mk_mat4 *m, mk_vec3 *dest)Extract translation from matrix.
| Parameter | Type | Description |
|---|---|---|
m | const mk_mat4 * | Value for m. |
dest | mk_vec3 * | Value for dest. |
mk_mat4_identityfunctionvoid mk_mat4_identity(mk_mat4 *dest)Set matrix to identity.
| Parameter | Type | Description |
|---|---|---|
dest | mk_mat4 * | Value for dest. |
mk_mat4_invfunctionvoid mk_mat4_inv(const mk_mat4 *src, mk_mat4 *dest)Invert matrix: dest = inverse(src).
| Parameter | Type | Description |
|---|---|---|
src | const mk_mat4 * | Value for src. |
dest | mk_mat4 * | Value for dest. |
mk_mat4_mulfunctionvoid mk_mat4_mul(const mk_mat4 *a, const mk_mat4 *b, mk_mat4 *dest)Multiply matrices: dest = a * b.
| Parameter | Type | Description |
|---|---|---|
a | const mk_mat4 * | Value for a. |
b | const mk_mat4 * | Value for b. |
dest | mk_mat4 * | Value for dest. |
mk_mat4_mulv3functionvoid mk_mat4_mulv3(const mk_mat4 *m, const mk_vec3 *v, mk_vec3 *dest)Transform vec3 by mat4 (assumes w=1, perspective divide applied).
| Parameter | Type | Description |
|---|---|---|
m | const mk_mat4 * | Value for m. |
v | const mk_vec3 * | Value for v. |
dest | mk_vec3 * | Value for dest. |
mk_mat4_mulv4functionvoid mk_mat4_mulv4(const mk_mat4 *m, const mk_vec4 *v, mk_vec4 *dest)Transform vec4 by mat4.
| Parameter | Type | Description |
|---|---|---|
m | const mk_mat4 * | Value for m. |
v | const mk_vec4 * | Value for v. |
dest | mk_vec4 * | Value for dest. |
mk_mat4_rotatefunctionvoid mk_mat4_rotate(mk_mat4 *m, float angle, const mk_vec3 *axis)Apply rotation to matrix: m = m * R(angle, axis).
| Parameter | Type | Description |
|---|---|---|
m | mk_mat4 * | Value for m. |
angle | float | Value for angle. |
axis | const mk_vec3 * | Value for axis. |
mk_mat4_rotate_makefunctionvoid mk_mat4_rotate_make(mk_mat4 *dest, float angle, const mk_vec3 *axis)Create rotation matrix from axis-angle (angle in radians).
| Parameter | Type | Description |
|---|---|---|
dest | mk_mat4 * | Value for dest. |
angle | float | Value for angle. |
axis | const mk_vec3 * | Value for axis. |
mk_mat4_rotate_xfunctionvoid mk_mat4_rotate_x(const mk_mat4 *m, float angle, mk_mat4 *dest)Rotate around X axis: dest = m * Rx(angle).
| Parameter | Type | Description |
|---|---|---|
m | const mk_mat4 * | Value for m. |
angle | float | Value for angle. |
dest | mk_mat4 * | Value for dest. |
mk_mat4_rotate_yfunctionvoid mk_mat4_rotate_y(const mk_mat4 *m, float angle, mk_mat4 *dest)Rotate around Y axis: dest = m * Ry(angle).
| Parameter | Type | Description |
|---|---|---|
m | const mk_mat4 * | Value for m. |
angle | float | Value for angle. |
dest | mk_mat4 * | Value for dest. |
mk_mat4_rotate_zfunctionvoid mk_mat4_rotate_z(const mk_mat4 *m, float angle, mk_mat4 *dest)Rotate around Z axis: dest = m * Rz(angle).
| Parameter | Type | Description |
|---|---|---|
m | const mk_mat4 * | Value for m. |
angle | float | Value for angle. |
dest | mk_mat4 * | Value for dest. |
mk_mat4_scalefunctionvoid mk_mat4_scale(mk_mat4 *m, const mk_vec3 *v)Apply scale to matrix: m = m * S(v).
| Parameter | Type | Description |
|---|---|---|
m | mk_mat4 * | Value for m. |
v | const mk_vec3 * | Value for v. |
mk_mat4_scale_makefunctionvoid mk_mat4_scale_make(mk_mat4 *dest, const mk_vec3 *v)Create scale matrix.
| Parameter | Type | Description |
|---|---|---|
dest | mk_mat4 * | Value for dest. |
v | const mk_vec3 * | Value for v. |
mk_mat4_scale_unifunctionvoid mk_mat4_scale_uni(mk_mat4 *m, float s)Apply uniform scale to matrix: m = m * S(s,s,s).
| Parameter | Type | Description |
|---|---|---|
m | mk_mat4 * | Value for m. |
s | float | Value for s. |
mk_mat4_scale_uni_makefunctionvoid mk_mat4_scale_uni_make(mk_mat4 *dest, float s)Create uniform scale matrix.
| Parameter | Type | Description |
|---|---|---|
dest | mk_mat4 * | Value for dest. |
s | float | Value for s. |
mk_mat4_set_translationfunctionvoid mk_mat4_set_translation(mk_mat4 *m, const mk_vec3 *v)Set translation in matrix.
| Parameter | Type | Description |
|---|---|---|
m | mk_mat4 * | Value for m. |
v | const mk_vec3 * | Value for v. |
mk_mat4_translatefunctionvoid mk_mat4_translate(mk_mat4 *m, const mk_vec3 *v)Apply translation to matrix: m = m * T(v).
| Parameter | Type | Description |
|---|---|---|
m | mk_mat4 * | Value for m. |
v | const mk_vec3 * | Value for v. |
mk_mat4_translate_makefunctionvoid mk_mat4_translate_make(mk_mat4 *dest, const mk_vec3 *v)Create translation matrix.
| Parameter | Type | Description |
|---|---|---|
dest | mk_mat4 * | Value for dest. |
v | const mk_vec3 * | Value for v. |
mk_mat4_transposefunctionvoid mk_mat4_transpose(const mk_mat4 *src, mk_mat4 *dest)Transpose matrix: dest = transpose(src).
| Parameter | Type | Description |
|---|---|---|
src | const mk_mat4 * | Value for src. |
dest | mk_mat4 * | Value for dest. |