]> git.mxchange.org Git - simgear.git/blobdiff - simgear/scene/model/SGReaderWriterXMLOptions.hxx
Merge branch 'next' of git.gitorious.org:fg/simgear into next
[simgear.git] / simgear / scene / model / SGReaderWriterXMLOptions.hxx
index 17532aeece9728eff39d755478d08ff63f0780fa..9c2036164b295903392b7a9fd8fc3c93606aad33 100644 (file)
@@ -18,7 +18,7 @@
 #ifndef SGREADERWRITERXMLOPTIONS_HXX
 #define SGREADERWRITERXMLOPTIONS_HXX 1
 
-#include <osgDB/ReaderWriter>
+#include <osgDB/Registry>
 #include <simgear/scene/model/modellib.hxx>
 #include <simgear/props/props.hxx>
 
@@ -32,32 +32,41 @@ class SGReaderWriterXMLOptions : public osgDB::ReaderWriter::Options
 {
 public:
     typedef osg::Node *(*panel_func)(SGPropertyNode *);
+    META_Object(simgear, SGReaderWriterXMLOptions);
 
     SGReaderWriterXMLOptions():
-            osgDB::ReaderWriter::Options(),
-            _prop_root(0),
-            _load_panel(0),
-            _model_data(0) {}
+        osgDB::ReaderWriter::Options(),
+        _prop_root(0),
+        _load_panel(0),
+        _model_data(0),
+        _instantiateEffects(false)
+    {}
 
     SGReaderWriterXMLOptions(const std::string& str):
-            osgDB::ReaderWriter::Options(str),
-            _prop_root(0),
-            _load_panel(0),
-            _model_data(0) {}
+        osgDB::ReaderWriter::Options(str),
+        _prop_root(0),
+        _load_panel(0),
+        _model_data(0),
+        _instantiateEffects(false)        
+    {}
 
     SGReaderWriterXMLOptions(const SGReaderWriterXMLOptions& options,
                              const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY):
-            osgDB::ReaderWriter::Options(options, copyop),
-            _prop_root(options._prop_root),
-            _load_panel(options._load_panel),
-            _model_data(options._model_data) {}
+        osgDB::ReaderWriter::Options(options, copyop),
+        _prop_root(options._prop_root),
+        _load_panel(options._load_panel),
+        _model_data(options._model_data),
+        _instantiateEffects(options._instantiateEffects)
+    {}
 
     SGReaderWriterXMLOptions(const osgDB::ReaderWriter::Options& options,
                              const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY):
-            osgDB::ReaderWriter::Options(options, copyop),
-            _prop_root(0),
-            _load_panel(0),
-            _model_data(0) {}
+        osgDB::ReaderWriter::Options(options, copyop),
+        _prop_root(0),
+        _load_panel(0),
+        _model_data(0),
+        _instantiateEffects(false)
+    {}
 
     SGPropertyNode *getPropRoot() const {
         return _prop_root;
@@ -68,6 +77,10 @@ public:
     SGModelData *getModelData() const {
         return _model_data.get();
     }
+    bool getInstantiateEffects() const
+    {
+        return _instantiateEffects;
+    }
 
     void setPropRoot(SGPropertyNode *p) {
         _prop_root=p;
@@ -78,13 +91,19 @@ public:
     void setModelData(SGModelData *d) {
         _model_data=d;
     }
-
+    void setInstantiateEffects(bool doit)
+    {
+        _instantiateEffects = doit;
+    }
+    
+    
 protected:
     virtual ~SGReaderWriterXMLOptions() {}
 
     SGPropertyNode_ptr _prop_root;
     osg::Node *(*_load_panel)(SGPropertyNode *);
     osg::ref_ptr<SGModelData> _model_data;
+    bool _instantiateEffects;
 };
 
 }