rayzor

diff 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 diff
     1.1 --- a/src/scene.h	Thu Apr 10 08:42:33 2014 +0300
     1.2 +++ b/src/scene.h	Sat Apr 12 23:28:24 2014 +0300
     1.3 @@ -3,6 +3,7 @@
     1.4  
     1.5  #include <string>
     1.6  #include <vector.h>
     1.7 +#include "xfnode.h"
     1.8  #include "object.h"
     1.9  #include "light.h"
    1.10  #include "camera.h"
    1.11 @@ -10,11 +11,15 @@
    1.12  class Scene {
    1.13  private:
    1.14  	char *name;
    1.15 +	vector<SceneNode*> nodes;
    1.16 +
    1.17  	vector<Object*> objects;
    1.18  	vector<Light*> lights;
    1.19  	vector<Camera*> cameras;
    1.20  	Camera *active_cam;
    1.21  
    1.22 +	vector<int> sel;
    1.23 +
    1.24  public:
    1.25  	Scene();
    1.26  	~Scene();
    1.27 @@ -24,14 +29,15 @@
    1.28  	void set_name(const char *name);
    1.29  	const char *get_name() const;
    1.30  
    1.31 -	void add_object(Object *obj);
    1.32 -	void add_light(Light *lt);
    1.33 -	void add_camera(Camera *cam);
    1.34 +	void add(SceneNode *node);
    1.35  
    1.36 +	int get_node_count() const;
    1.37  	int get_object_count() const;
    1.38  	int get_light_count() const;
    1.39  	int get_camera_count() const;
    1.40  
    1.41 +	SceneNode *get_node(int idx);
    1.42 +	const SceneNode *get_node(int idx) const;
    1.43  	Object *get_object(int idx);
    1.44  	const Object *get_object(int idx) const;
    1.45  	Light *get_light(int idx);
    1.46 @@ -40,6 +46,11 @@
    1.47  	const Camera *get_camera(int idx) const;
    1.48  
    1.49  	void draw() const;
    1.50 +
    1.51 +	void select(int s);
    1.52 +	void clear_selection();
    1.53 +	int get_selection_count() const;
    1.54 +	int get_selection(int idx = 0) const;
    1.55  };
    1.56  
    1.57  #endif	// SCENE_H_