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