]> git.tdb.fi Git - libs/gl.git/blobdiff - source/scene.h
Update gl.xml to latest version
[libs/gl.git] / source / scene.h
index e3aa1fabb2cd5829e6567b706712b1580192b991..687c581fe5d4070c27d6e62819be4a3f8bff48aa 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef MSP_GL_SCENE_H_
 #define MSP_GL_SCENE_H_
 
+#include <list>
+#include <msp/datafile/objectloader.h>
 #include "renderable.h"
 
 namespace Msp {
@@ -10,17 +12,31 @@ class Culler;
 
 /**
 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;