]> git.mxchange.org Git - simgear.git/blobdiff - simgear/scene/model/modellib.hxx
Make return type from loadPagedModel explicit.
[simgear.git] / simgear / scene / model / modellib.hxx
index a9a3eb0d7362c562143287914706203a68cdac7b..cdd6d820440a50f6c337d0c04f79f4b45b42b5fe 100644 (file)
 #include <simgear/props/props.hxx>
 #include <simgear/misc/sg_path.hxx>
 
+namespace osg {
+    class PagedLOD;
+}
+
 namespace simgear {
 
 class SGModelData; // defined below
@@ -46,6 +50,8 @@ public:
 
     static void init(const std::string &root_dir, SGPropertyNode* root);
 
+    static void resetPropertyRoot();
+    
     static void setPanelFunc(panel_func pf);
     
     // Load a 3D model (any format)
@@ -66,12 +72,12 @@ public:
     // the model file. Once the viewer steps onto that node the
     // model will be loaded. When the viewer does no longer reference this
     // node for a long time the node is unloaded again.
-    static osg::Node* loadPagedModel(const std::string &path,
+    static osg::PagedLOD* loadPagedModel(const std::string &path,
                                      SGPropertyNode *prop_root = NULL,
                                      SGModelData *data=0);
 
     static std::string findDataFile(const std::string& file, 
-      const osgDB::ReaderWriter::Options* opts = NULL,
+      const osgDB::Options* opts = NULL,
       SGPath currentDir = SGPath()); 
 protected:
     SGModelLib();
@@ -93,6 +99,7 @@ public:
     virtual ~SGModelData() {}
     virtual void modelLoaded(const std::string& path, SGPropertyNode *prop,
                              osg::Node* branch) = 0;
+    virtual SGModelData* clone() const = 0;
 };
 
 }