+++ /dev/null
-#ifndef MSP_GL_SCENE_H_
-#define MSP_GL_SCENE_H_
-
-#include <list>
-#include <msp/datafile/objectloader.h>
-#include "renderable.h"
-
-namespace Msp {
-namespace GL {
-
-class Culler;
-
-/**
-Scenes are containers for other Renderables. This is a base class that can't
-be instantiated. Examples of available Scene types are SimpleScene,
-InstancedScene and OrderedScene.
-*/
-class Scene: public Renderable
-{
-public:
- class Loader: public DataFile::CollectionObjectLoader<Scene>
- {
- public:
- Loader(Scene &, Collection &);
-
- private:
- void object(const std::string &);
- };
-
-protected:
- std::list<Renderable *> owned_data;
- std::list<Culler *> cullers;
-
- Scene() { }
-private:
- Scene(const Scene &);
- Scene &operator=(const Scene &);
-public:
- virtual ~Scene();
-
- virtual void add(const Renderable &) = 0;
- virtual void remove(const Renderable &) = 0;
-
- void add_culler(Culler &);
- void remove_culler(Culler &);
-
- using Renderable::render;
- virtual void render(const Tag & = Tag()) const;
-
-protected:
- virtual void setup_cullers(const Renderer &) const;
- virtual bool cull(const Renderer &, const Renderable &) const;
-};
-
-} // namespace GL
-} // namespace Msp
-
-#endif