]> git.mxchange.org Git - simgear.git/blobdiff - simgear/scene/tgdb/ReaderWriterSTG.cxx
Merge branch 'jmt/ref_ptr-conv'
[simgear.git] / simgear / scene / tgdb / ReaderWriterSTG.cxx
index 8e7fd2a28eca6f96f50f75b1e308589f59c3ca96..f79638bb0335438f569edf3c2bc295404a0ef701 100644 (file)
 
 using namespace simgear;
 
-const char* ReaderWriterSTG::className() const
+ReaderWriterSTG::ReaderWriterSTG()
+{
+    supportsExtension("stg", "SimGear stg database format");
+}
+
+ReaderWriterSTG::~ReaderWriterSTG()
 {
-    return "STG Database reader";
 }
 
-bool ReaderWriterSTG::acceptsExtension(const std::string& extension) const
+const char* ReaderWriterSTG::className() const
 {
-    return (osgDB::equalCaseInsensitive(extension, "gz")
-            || osgDB::equalCaseInsensitive(extension, "stg"));
+    return "STG Database reader";
 }
 
 //#define SLOW_PAGER 1
@@ -53,22 +56,7 @@ osgDB::ReaderWriter::ReadResult
 ReaderWriterSTG::readNode(const std::string& fileName,
                           const osgDB::ReaderWriter::Options* options) const
 {
-    std::string ext = osgDB::getLowerCaseFileExtension(fileName);
-    if(!acceptsExtension(ext))
-        return ReadResult::FILE_NOT_HANDLED;
-    std::string stgFileName;
-    if (osgDB::equalCaseInsensitive(ext, "gz")) {
-        stgFileName = osgDB::getNameLessExtension(fileName);
-        if (!acceptsExtension(
-                osgDB::getLowerCaseFileExtension(stgFileName))) {
-            return ReadResult::FILE_NOT_HANDLED;
-        }
-    } else {
-        stgFileName = fileName;
-    }
-    osg::Node* result
-        = TileEntry::loadTileByName(osgDB::getNameLessExtension(stgFileName),
-                                      options);
+    osg::Node* result = TileEntry::loadTileByFileName(fileName, options);
     // For debugging race conditions
 #ifdef SLOW_PAGER
     sleep(5);