28 lines
978 B
C
28 lines
978 B
C
#pragma once
|
|
|
|
#include "stddef.h"
|
|
#include "utils/typeclass_helpers.h"
|
|
typedef struct SceneNodeEntity SceneNodeEntity;
|
|
|
|
typedef struct SceneNode SceneNode;
|
|
typedef struct Scene Scene;
|
|
|
|
//! Instantiate a new scene node.
|
|
extern SceneNode *CreateSceneNode();
|
|
//! Free a scene node.
|
|
extern void DestroySceneNode(SceneNode *self);
|
|
//! Get a child from a scene node.
|
|
extern SceneNode *SceneNodeGetChild(SceneNode *self, size_t idx);
|
|
//! Attach a child to a node
|
|
extern void SceneNodeAddChild(SceneNode *self, SceneNode *child);
|
|
//! Detach a child from a node, removing it from the scene
|
|
extern void SceneNodeRemoveChild(SceneNode *self, SceneNode *child);
|
|
|
|
//! INTERNAL FUNCTION, used to attach a scene node entity typeclass to an object.
|
|
extern void Internal_SceneNodeAttachEntity(SceneNodeEntity object);
|
|
|
|
//! Instantiate a new scene with a root node.
|
|
extern Scene *CreateScene(SceneNode const *root);
|
|
//! Destroy a node and it's scene tree.
|
|
extern void DestroyScene(Scene *scene);
|