rayzor

view src/scene.h @ 12:d94a69933a71

lots of stuff, can't remember
author John Tsiombikas <nuclear@member.fsf.org>
date Sat, 12 Apr 2014 23:28:24 +0300
parents a68dbf80d547
children 964f8ea5f095
line source
1 #ifndef SCENE_H_
2 #define SCENE_H_
4 #include <string>
5 #include <vector.h>
6 #include "xfnode.h"
7 #include "object.h"
8 #include "light.h"
9 #include "camera.h"
11 class Scene {
12 private:
13 char *name;
14 vector<SceneNode*> nodes;
16 vector<Object*> objects;
17 vector<Light*> lights;
18 vector<Camera*> cameras;
19 Camera *active_cam;
21 vector<int> sel;
23 public:
24 Scene();
25 ~Scene();
27 void clear();
29 void set_name(const char *name);
30 const char *get_name() const;
32 void add(SceneNode *node);
34 int get_node_count() const;
35 int get_object_count() const;
36 int get_light_count() const;
37 int get_camera_count() const;
39 SceneNode *get_node(int idx);
40 const SceneNode *get_node(int idx) const;
41 Object *get_object(int idx);
42 const Object *get_object(int idx) const;
43 Light *get_light(int idx);
44 const Light *get_light(int idx) const;
45 Camera *get_camera(int idx);
46 const Camera *get_camera(int idx) const;
48 void draw() const;
50 void select(int s);
51 void clear_selection();
52 int get_selection_count() const;
53 int get_selection(int idx = 0) const;
54 };
56 #endif // SCENE_H_