// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
+#ifdef HAVE_CONFIG_H
+# include <simgear_config.h>
+#endif
+
#include <simgear/scene/model/ModelRegistry.hxx>
#include <osgDB/Registry>
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
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);