X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fscene%2Fmodel%2FModelRegistry.hxx;h=8c8e7467386cd6c7bda347f6678cdb89147f9445;hb=32a6bd78d8bf143f40922f1a0bc7a88ea7706a7d;hp=e048f187a47c03a46a1a9150d5711555bcd9e296;hpb=8c78588ee18ab2e3ca308072c5361d38789d9508;p=simgear.git diff --git a/simgear/scene/model/ModelRegistry.hxx b/simgear/scene/model/ModelRegistry.hxx index e048f187..8c8e7467 100644 --- a/simgear/scene/model/ModelRegistry.hxx +++ b/simgear/scene/model/ModelRegistry.hxx @@ -70,7 +70,7 @@ public: } virtual osgDB::ReaderWriter::ReadResult readNode(const std::string& fileName, - const osgDB::ReaderWriter::Options* opt) + const osgDB::Options* opt) { using namespace osg; using namespace osgDB; @@ -95,7 +95,8 @@ public: optimizedNode = _optimizePolicy.optimize(processedNode.get(), fileName, opt); } - _bvhPolicy.buildBVH(fileName, optimizedNode.get()); + if (opt->getPluginStringData("SimGear::BOUNDINGVOLUMES") != "OFF") + _bvhPolicy.buildBVH(fileName, optimizedNode.get()); _cachePolicy.addToCache(fileName, optimizedNode.get()); } return ReaderWriter::ReadResult(optimizedNode.get()); @@ -103,7 +104,7 @@ public: protected: static osgDB::ReaderWriter::ReadResult loadUsingReaderWriter(const std::string& fileName, - const osgDB::ReaderWriter::Options* opt) + const osgDB::Options* opt) { using namespace osgDB; ReaderWriter* rw = Registry::instance() @@ -126,20 +127,20 @@ protected: struct DefaultProcessPolicy { DefaultProcessPolicy(const std::string& extension) {} osg::Node* process(osg::Node* node, const std::string& filename, - const osgDB::ReaderWriter::Options* opt); + const osgDB::Options* opt); }; struct DefaultCachePolicy { DefaultCachePolicy(const std::string& extension) {} osg::Node* find(const std::string& fileName, - const osgDB::ReaderWriter::Options* opt); + const osgDB::Options* opt); void addToCache(const std::string& filename, osg::Node* node); }; struct NoCachePolicy { NoCachePolicy(const std::string& extension) {} osg::Node* find(const std::string& fileName, - const osgDB::ReaderWriter::Options* opt) + const osgDB::Options* opt) { return 0; } @@ -150,7 +151,7 @@ class OptimizeModelPolicy { public: OptimizeModelPolicy(const std::string& extension); osg::Node* optimize(osg::Node* node, const std::string& fileName, - const osgDB::ReaderWriter::Options* opt); + const osgDB::Options* opt); protected: unsigned _osgOptions; }; @@ -158,7 +159,7 @@ protected: struct NoOptimizePolicy { NoOptimizePolicy(const std::string& extension) {} osg::Node* optimize(osg::Node* node, const std::string& fileName, - const osgDB::ReaderWriter::Options* opt) + const osgDB::Options* opt) { return node; } @@ -167,13 +168,13 @@ struct NoOptimizePolicy { struct OSGSubstitutePolicy { OSGSubstitutePolicy(const std::string& extension) {} std::string substitute(const std::string& name, - const osgDB::ReaderWriter::Options* opt); + const osgDB::Options* opt); }; struct NoSubstitutePolicy { NoSubstitutePolicy(const std::string& extension) {} std::string substitute(const std::string& name, - const osgDB::ReaderWriter::Options* opt) + const osgDB::Options* opt) { return std::string(); } @@ -206,10 +207,10 @@ public: ModelRegistry(); virtual osgDB::ReaderWriter::ReadResult readImage(const std::string& fileName, - const osgDB::ReaderWriter::Options* opt); + const osgDB::Options* opt); virtual osgDB::ReaderWriter::ReadResult readNode(const std::string& fileName, - const osgDB::ReaderWriter::Options* opt); + const osgDB::Options* opt); void addImageCallbackForExtension(const std::string& extension, osgDB::Registry::ReadFileCallback* callback);