From 758ab5e5812d6ee14f6361d6882cb6867b6cc13c Mon Sep 17 00:00:00 2001 From: Richard Harrison Date: Tue, 30 Oct 2018 20:12:12 +0100 Subject: [PATCH] LOD ranges The scenery ranges for bare and rough are now deltas, to avoid overlapping values by user error. --- simgear/scene/tgdb/ReaderWriterSTG.cxx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/simgear/scene/tgdb/ReaderWriterSTG.cxx b/simgear/scene/tgdb/ReaderWriterSTG.cxx index dbd1f991..0418d710 100644 --- a/simgear/scene/tgdb/ReaderWriterSTG.cxx +++ b/simgear/scene/tgdb/ReaderWriterSTG.cxx @@ -313,10 +313,17 @@ struct ReaderWriterSTG::_ModelBin { return false; } + // starting with 2018.3 we will use deltas rather than absolutes as it is more intuitive for the user + // and somewhat easier to visualise + + double detailedRange = atof(options->getPluginStringData("SimGear::LOD_RANGE_DETAILED").c_str()); + double bareRangeDelta = atof(options->getPluginStringData("SimGear::LOD_RANGE_BARE").c_str()); + double roughRangeDelta = atof(options->getPluginStringData("SimGear::LOD_RANGE_ROUGH").c_str()); + // Determine object ranges. Mesh size of 2000mx2000m needs to be accounted for. - _object_range_bare = 1414.0f + atof(options->getPluginStringData("SimGear::LOD_RANGE_BARE").c_str()); - _object_range_rough = 1414.0f + atof(options->getPluginStringData("SimGear::LOD_RANGE_ROUGH").c_str()); - _object_range_detailed = 1414.0f + atof(options->getPluginStringData("SimGear::LOD_RANGE_DETAILED").c_str()); + _object_range_detailed = 1414.0f + detailedRange; + _object_range_bare = _object_range_detailed + bareRangeDelta; + _object_range_rough = _object_range_detailed + roughRangeDelta; SG_LOG(SG_TERRAIN, SG_INFO, "Loading stg file " << absoluteFileName);