Skip to content
modkitv0.2

math/transform.h

#include <modkit/math/transform.h>15 functions · 1 structs · 1 typedefs · 1 macros

Transform component (position, rotation, scale).

Provides a TRS (Translate, Rotate, Scale) transform that can be converted to a model matrix for rendering. Matrix composition order: M = T * R * S (Scale first, then rotate, then translate in local space)

Functions

mk_transform_backfunction

void mk_transform_back(const mk_transform *t, mk_vec3 *dest)

Get back direction (+Z).

ParameterTypeDescription
tconst mk_transform *Value for t.
destmk_vec3 *Value for dest.

mk_transform_downfunction

void mk_transform_down(const mk_transform *t, mk_vec3 *dest)

Get down direction (-Y).

ParameterTypeDescription
tconst mk_transform *Value for t.
destmk_vec3 *Value for dest.

mk_transform_forwardfunction

void mk_transform_forward(const mk_transform *t, mk_vec3 *dest)

Get forward direction (-Z in right-hand system).

ParameterTypeDescription
tconst mk_transform *Value for t.
destmk_vec3 *Value for dest.

mk_transform_identityfunction

void mk_transform_identity(mk_transform *t)

Initialize transform to identity.

ParameterTypeDescription
tmk_transform *Value for t.

mk_transform_leftfunction

void mk_transform_left(const mk_transform *t, mk_vec3 *dest)

Get left direction (-X).

ParameterTypeDescription
tconst mk_transform *Value for t.
destmk_vec3 *Value for dest.

mk_transform_look_atfunction

void mk_transform_look_at(mk_transform *t, const mk_vec3 *target, const mk_vec3 *up)

Look at a target point (sets rotation).

ParameterTypeDescription
tmk_transform *Value for t.
targetconst mk_vec3 *Value for target.
upconst mk_vec3 *Value for up.

mk_transform_rightfunction

void mk_transform_right(const mk_transform *t, mk_vec3 *dest)

Get right direction (+X).

ParameterTypeDescription
tconst mk_transform *Value for t.
destmk_vec3 *Value for dest.

mk_transform_rotate_axisfunction

void mk_transform_rotate_axis(mk_transform *t, const mk_vec3 *axis, float angle)

Rotate around axis (additive, angle in radians).

ParameterTypeDescription
tmk_transform *Value for t.
axisconst mk_vec3 *Value for axis.
anglefloatValue for angle.

mk_transform_rotate_eulerfunction

void mk_transform_rotate_euler(mk_transform *t, float x, float y, float z)

Rotate by euler angles (additive, radians).

ParameterTypeDescription
tmk_transform *Value for t.
xfloatValue for x.
yfloatValue for y.
zfloatValue for z.

mk_transform_set_axis_anglefunction

void mk_transform_set_axis_angle(mk_transform *t, const mk_vec3 *axis, float angle)

Set rotation from axis-angle (angle in radians).

ParameterTypeDescription
tmk_transform *Value for t.
axisconst mk_vec3 *Value for axis.
anglefloatValue for angle.

mk_transform_set_eulerfunction

void mk_transform_set_euler(mk_transform *t, float x, float y, float z)

Set rotation from euler angles (radians, XYZ rotation order).

ParameterTypeDescription
tmk_transform *Value for t.
xfloatValue for x.
yfloatValue for y.
zfloatValue for z.

mk_transform_to_mat4function

void mk_transform_to_mat4(const mk_transform *t, mk_mat4 *dest)

Compute model matrix from transform: M = T * R * S.

This produces a matrix that:Scales by (scale.x, scale.y, scale.z)Rotates by the quaternionTranslates to position

ParameterTypeDescription
tconst mk_transform *Value for t.
destmk_mat4 *Value for dest.

mk_transform_translatefunction

void mk_transform_translate(mk_transform *t, const mk_vec3 *delta)

Translate in world space.

ParameterTypeDescription
tmk_transform *Value for t.
deltaconst mk_vec3 *Value for delta.

mk_transform_translate_localfunction

void mk_transform_translate_local(mk_transform *t, const mk_vec3 *delta)

Translate in local space (relative to current rotation).

ParameterTypeDescription
tmk_transform *Value for t.
deltaconst mk_vec3 *Value for delta.

mk_transform_upfunction

void mk_transform_up(const mk_transform *t, mk_vec3 *dest)

Get up direction (+Y).

ParameterTypeDescription
tconst mk_transform *Value for t.
destmk_vec3 *Value for dest.

Structs

mk_transformstruct

Transform component with position, rotation, and scale.

FieldTypeDescription
positionmk_vec3World position.
rotationmk_quatRotation as quaternion.
scalemk_vec3Scale factors (1,1,1 = no scale).

Typedefs

mk_transformtypedef

typedef struct mk_transform mk_transform

Transform component with position, rotation, and scale.

Macros

MK_TRANSFORM_IDENTITYdefine

MK_TRANSFORM_IDENTITY

Default transform (identity).