nuclear@1: #ifndef SCENE_H_ nuclear@1: #define SCENE_H_ nuclear@1: nuclear@1: #include nuclear@1: #include nuclear@13: #include "snode.h" nuclear@1: #include "object.h" nuclear@1: #include "light.h" nuclear@1: #include "camera.h" nuclear@1: nuclear@1: class Scene { nuclear@1: private: nuclear@1: char *name; nuclear@12: vector nodes; nuclear@12: nuclear@1: vector objects; nuclear@1: vector lights; nuclear@1: vector cameras; nuclear@6: Camera *active_cam; nuclear@1: nuclear@12: vector sel; nuclear@12: nuclear@1: public: nuclear@1: Scene(); nuclear@1: ~Scene(); nuclear@1: nuclear@1: void clear(); nuclear@1: nuclear@1: void set_name(const char *name); nuclear@1: const char *get_name() const; nuclear@1: nuclear@12: void add(SceneNode *node); nuclear@6: nuclear@12: int get_node_count() const; nuclear@6: int get_object_count() const; nuclear@6: int get_light_count() const; nuclear@6: int get_camera_count() const; nuclear@6: nuclear@12: SceneNode *get_node(int idx); nuclear@12: const SceneNode *get_node(int idx) const; nuclear@6: Object *get_object(int idx); nuclear@6: const Object *get_object(int idx) const; nuclear@6: Light *get_light(int idx); nuclear@6: const Light *get_light(int idx) const; nuclear@6: Camera *get_camera(int idx); nuclear@6: const Camera *get_camera(int idx) const; nuclear@6: nuclear@1: void draw() const; nuclear@12: nuclear@12: void select(int s); nuclear@12: void clear_selection(); nuclear@12: int get_selection_count() const; nuclear@12: int get_selection(int idx = 0) const; nuclear@1: }; nuclear@1: nuclear@1: #endif // SCENE_H_