00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef SGPAGEDLOD_HXX
00018 #define SGPAGEDLOD_HXX 1
00019
00020 #include <simgear/structure/OSGVersion.hxx>
00021 #include <osg/PagedLOD>
00022 #if SG_OSG_MIN_VERSION_REQUIRED(2,9,5)
00023 #include <osgDB/Options>
00024 #endif
00025 #include <osgDB/ReaderWriter>
00026 #include <simgear/props/props.hxx>
00027
00028 namespace osgDB {
00029 class DatabasePager;
00030 }
00031
00032
00033 namespace simgear
00034 {
00035
00036 class SGPagedLOD : public osg::PagedLOD
00037 {
00038 public:
00039 SGPagedLOD();
00040
00041 SGPagedLOD(const SGPagedLOD&,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY);
00042
00043 META_Node(simgear, SGPagedLOD);
00044
00045
00046 virtual void forceLoad(osgDB::DatabasePager* dbp);
00047
00048
00049 bool addChild(osg::Node *child);
00050
00051 void setReaderWriterOptions(osgDB::ReaderWriter::Options *options) {
00052 _readerWriterOptions = options;
00053 options->setObjectCacheHint(osgDB::ReaderWriter::Options::CACHE_NONE);
00054 #if SG_OSG_MIN_VERSION_REQUIRED(2,9,5)
00055 setDatabaseOptions(options);
00056 #endif
00057 }
00058
00059 osgDB::ReaderWriter::Options* getReaderWriterOptions() {
00060 return _readerWriterOptions.get();
00061 }
00062
00063 protected:
00064 virtual ~SGPagedLOD();
00065 osg::ref_ptr<osgDB::ReaderWriter::Options> _readerWriterOptions;
00066 };
00067 }
00068 #endif