From 4a31045fd9a20e4e917c0f69bd6432263ef31e6b Mon Sep 17 00:00:00 2001 From: Mathias Froehlich Date: Sun, 24 Feb 2013 13:03:06 +0100 Subject: [PATCH] spt: Make the range multiplier configurable. --- simgear/scene/tgdb/ReaderWriterSPT.cxx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/simgear/scene/tgdb/ReaderWriterSPT.cxx b/simgear/scene/tgdb/ReaderWriterSPT.cxx index 67977858..3116b2c4 100644 --- a/simgear/scene/tgdb/ReaderWriterSPT.cxx +++ b/simgear/scene/tgdb/ReaderWriterSPT.cxx @@ -159,6 +159,16 @@ struct ReaderWriterSPT::LocalOptions { return ss.str(); } + float getRangeMultiplier() const + { + float rangeMultiplier = 2; + if (!_options) + return rangeMultiplier; + std::stringstream ss(_options->getPluginStringData("SimGear::SPT_RANGE_MULTIPLIER")); + ss >> rangeMultiplier; + return rangeMultiplier; + } + const osgDB::Options* _options; std::vector _pageLevels; }; @@ -294,7 +304,8 @@ ReaderWriterSPT::createPagedLOD(const BucketBox& bucketBox, const LocalOptions& pagedLOD->setDatabaseOptions(localOptions.get()); // The break point for the low level of detail to the high level of detail - float range = 2*sphere.getRadius(); + float rangeMultiplier = options.getRangeMultiplier(); + float range = rangeMultiplier*sphere.getRadius(); // Look for a low level of detail tile std::string lodPath = options.getLodPathForBucketBox(bucketBox); -- 2.39.5