1 #ifndef MSP_GL_SCENE_H_
2 #define MSP_GL_SCENE_H_
5 #include <msp/datafile/objectloader.h>
6 #include "renderable.h"
14 Scenes are containers for other Renderables. This is a base class that can't
15 be instantiated. Examples of available Scene types are SimpleScene,
16 InstancedScene and OrderedScene.
18 class Scene: public Renderable
21 class Loader: public DataFile::CollectionObjectLoader<Scene>
24 Loader(Scene &, Collection &);
27 void object(const std::string &);
31 std::list<Renderable *> owned_data;
32 std::list<Culler *> cullers;
37 Scene &operator=(const Scene &);
41 virtual void add(const Renderable &) = 0;
42 virtual void remove(const Renderable &) = 0;
44 void add_culler(Culler &);
45 void remove_culler(Culler &);
47 using Renderable::render;
48 virtual void render(const Tag & = Tag()) const;
51 virtual void setup_cullers(const Renderer &) const;
52 virtual bool cull(const Renderer &, const Renderable &) const;