Skip to content
modkitv0.2

mesh.h

#include <modkit/mesh.h>4 functions · 1 structs · 1 typedefs

Mesh a drawable = geometry + material + transform (three.js Mesh).

A logic-free bundle: it adds no rendering behavior, it just pairs a reusable geometry with a material and a transform, and submits via the spine. There is no scene graph you keep your own list of meshes and draw them in a loop. mk_mesh m = mk_mesh_make(sphere, lit); mk_mesh_set_trs(&m, MK_VEC3(0,1,0), MK_VEC3(0, t, 0), MK_VEC3_ONE); mk_pass_draw_mesh(&m);

Functions

mk_mesh_makefunction

mk_mesh mk_mesh_make(mk_geometry_t g, mk_material_t m)

Build a mesh with an identity transform.

ParameterTypeDescription
gmk_geometry_tValue for g.
mmk_material_tValue for m.

Returns The resulting value.

mk_mesh_set_transformfunction

void mk_mesh_set_transform(mk_mesh *me, const float m16[16])

Set the full transform (column-major 4x4).

ParameterTypeDescription
memk_mesh *Value for me.
m16const floatValue for m16.

mk_mesh_set_trsfunction

void mk_mesh_set_trs(mk_mesh *me, mk_vec3 pos, mk_vec3 euler, mk_vec3 scale)

Set transform from translation + euler rotation (radians) + scale: T * R * S.

ParameterTypeDescription
memk_mesh *Value for me.
posmk_vec3Value for pos.
eulermk_vec3Value for euler.
scalemk_vec3Value for scale.

mk_pass_draw_meshfunction

void mk_pass_draw_mesh(const mk_mesh *me)

Submit a mesh into the active pass (sugar over mk_pass_draw).

ParameterTypeDescription
meconst mk_mesh *Value for me.

Structs

mk_meshstruct

Data for mesh.

FieldTypeDescription
geometrymk_geometry_tThe geometry.
materialmk_material_tThe material.
transformfloatcolumn-major

Typedefs

mk_meshtypedef

typedef struct mk_mesh mk_mesh

Data for mesh.