using namespace osg;
using namespace simgear;
+bool SGPagedLOD::_cache = true;
+
SGPagedLOD::SGPagedLOD()
: PagedLOD()
{
}
SGPagedLOD::SGPagedLOD(const SGPagedLOD& plod,const CopyOp& copyop)
- : osg::PagedLOD(plod, copyop),
- _readerWriterOptions(plod._readerWriterOptions)
+ : osg::PagedLOD(plod, copyop)
+#if !SG_PAGEDLOD_HAS_OPTIONS
+ , _readerWriterOptions(plod._readerWriterOptions)
+#endif
+{
+}
+
+void
+SGPagedLOD::setReaderWriterOptions(osgDB::ReaderWriter::Options *options)
{
+ if (_cache)
+ options->setObjectCacheHint(osgDB::ReaderWriter::Options::CACHE_ALL);
+ else
+ options->setObjectCacheHint(osgDB::ReaderWriter::Options::CACHE_NONE);
+#if SG_PAGEDLOD_HAS_OPTIONS
+ setDatabaseOptions(options);
+#else
+ _readerWriterOptions = options;
+#endif
}
bool SGPagedLOD::addChild(osg::Node *child)
dbp->requestNodeFile(getFileName(childNum), NodePathProxy(path),
priority, framestamp,
getDatabaseRequest(childNum),
- _readerWriterOptions.get());
+ getReaderWriterOptions());
}
bool SGPagedLOD_writeLocalData(const Object& obj, osgDB::Output& fw)