From bd57f345ed9dbed1d81683e48199626de2ea9044 Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Fri, 27 Jun 2025 10:18:39 -0700 Subject: Restructure project --- src/scene/model.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/scene/model.c (limited to 'src/scene/model.c') diff --git a/src/scene/model.c b/src/scene/model.c new file mode 100644 index 0000000..cc41a9a --- /dev/null +++ b/src/scene/model.c @@ -0,0 +1,45 @@ +#include "model_impl.h" + +#include + +#include "scene_memory.h" + +#include + +Model* gfx_make_model(const SceneNode* root) { + assert(root); + + Model* model = mem_alloc_model(); + model->root = mem_get_node_index(root); + return model; +} + +void gfx_del_model(Model** model) { + assert(model); + + if (*model) { + SceneNode* root = mem_get_node((*model)->root); + gfx_destroy_node(&root); + *model = 0; + } +} + +Anima* gfx_get_model_anima(Model* model) { + assert(model); + + SceneNode* root = mem_get_node(model->root); + if (gfx_get_node_type(root) == AnimaNode) { + return gfx_get_node_anima_mut(root); + } else { + return 0; + } +} + +const SceneNode* gfx_get_model_root(const Model* model) { + assert(model); + return mem_get_node(model->root); +} + +SceneNode* gfx_get_model_root_mut(Model* model) { + return (SceneNode*)gfx_get_model_root(model); +} -- cgit v1.2.3