#ifndef MSP_GL_SCENE_H_
#define MSP_GL_SCENE_H_
+#include <list>
+#include <msp/datafile/objectloader.h>
#include "renderable.h"
namespace Msp {
/**
Scenes are containers for other Renderables. This is a base class that can't
-be instantiated. At the moment the available Scene types are SimpleScene,
+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 ~Scene();
virtual void add(const Renderable &) = 0;
virtual void remove(const Renderable &) = 0;