+public:
+ class Loader: public DataFile::CollectionObjectLoader<Scene>
+ {
+ public:
+ typedef std::map<std::string, Renderable *> ContentMap;
+
+ private:
+ ContentMap *content;
+
+ public:
+ Loader(Scene &, Collection &);
+ Loader(Scene &, Collection &, ContentMap &);
+ private:
+ void init();
+
+ void object(const std::string &);
+ void object_tagged(const std::string &, const std::string &);
+ };
+
+protected:
+ // XXX If a loaded renderable is removed from the scene it needs to be removed from here as well
+ std::vector<Renderable *> owned_data;
+ mutable Matrix culling_matrix;
+ mutable Vector4 frustum_edges[6];
+
+ Scene() { }