34 #ifndef __READERWRITER_TXP_H_
35 #define __READERWRITER_TXP_H_
43 #include <osgDB/Registry>
44 #include <osgDB/FileNameUtils>
45 #include <osg/Referenced>
49 #include <OpenThreads/ScopedLock>
50 #include <OpenThreads/ReentrantMutex>
62 supportsExtension(
"txp",
"Terrapage txp format");
65 virtual const char* className()
const
67 return "TXP Reader/Writer";
70 virtual ReadResult readNode(
const std::string& file,
const osgDB::ReaderWriter::Options* options)
const
72 if( !acceptsExtension(osgDB::getFileExtension(file) ))
73 return ReadResult::FILE_NOT_HANDLED;
75 OpenThreads::ScopedLock<OpenThreads::ReentrantMutex> lock(_serializerMutex);
77 return const_cast<ReaderWriterTXP*
>(
this)->local_readNode(file, options);
80 bool removeArchive(
int id );
85 ReadResult local_readNode(
const std::string& file,
const osgDB::ReaderWriter::Options* options);
87 std::string getArchiveName(
const std::string& dir);
88 osg::ref_ptr< TXPArchive > createArchive(
int id,
const std::string& dir);
89 osg::ref_ptr< TXPArchive > getArchive(
int id,
const std::string&);
91 osg::Node* getTileContent(
const TXPArchive::TileInfo &info,
int x,
int y,
int lod,
TXPArchive* archive, std::vector<TXPArchive::TileLocationInfo>& childrenLoc);
93 void createChildrenLocationString(
const std::vector<TXPArchive::TileLocationInfo>& locs, std::string& locString)
const;
94 bool extractChildrenLocations(
const std::string& name,
int parentLod, std::vector<TXPArchive::TileLocationInfo>& locs,
int nbChild)
const;