1 #ifndef MSP_GL_SCENE_H_
2 #define MSP_GL_SCENE_H_
5 #include <msp/datafile/objectloader.h>
6 #include "renderable.h"
13 Scenes are containers for other Renderables. This is a base class that can't
14 be instantiated. Examples of available Scene types are SimpleScene,
15 InstancedScene and OrderedScene.
17 class Scene: public Renderable
20 class Loader: public DataFile::CollectionObjectLoader<Scene>
23 Loader(Scene &, Collection &);
26 void object(const std::string &);
30 std::list<Renderable *> owned_data;
31 mutable Vector4 frustum_edges[6];
36 Scene &operator=(const Scene &);
40 virtual void add(const Renderable &) = 0;
41 virtual void remove(const Renderable &) = 0;
43 using Renderable::render;
44 virtual void render(const Tag & = Tag()) const;
47 bool setup_frustum(const Renderer &) const;
48 bool frustum_cull(const Renderable &) const;