]> git.lizzy.rs Git - shadowclad.git/blob - src/engine/scene.h
Add minimal, wonky scene tree system
[shadowclad.git] / src / engine / scene.h
1 #ifndef SCENE_H_
2 #define SCENE_H_
3
4 #include "asset.h"
5
6 typedef struct Scene Scene;
7 typedef struct Transform Transform;
8
9 struct Transform {
10         GLfloat a1, a2, a3, a4;
11         GLfloat b1, b2, b3, b4;
12         GLfloat c1, c2, c3, c4;
13         GLfloat d1, d2, d3, d4;
14 };
15
16 struct Scene {
17         Scene* parent;
18         size_t numChildren;
19         Scene** children;
20         Transform transform;
21         const Solid* solid;
22 };
23
24 Scene* currentScene;
25
26 void translate(Transform* transform, Vector3D vec);
27 Scene* newScene();
28 void insertChildScene(Scene* scene, Scene* newChild);
29
30 #endif // SCENE_H_