]> git.mxchange.org Git - flightgear.git/commitdiff
calculate internal properties only once on read()
authortorsten <torsten>
Wed, 3 Jun 2009 16:19:27 +0000 (16:19 +0000)
committerTim Moore <timoore@redhat.com>
Wed, 3 Jun 2009 21:45:33 +0000 (23:45 +0200)
src/Environment/environment.cxx

index b15c6a5bdceeb58584c215b8a0d9188cd6ad6bdb..a75d6ebb3e3d8c399e1c14f270c5f7b83e837b5f 100644 (file)
@@ -198,6 +198,7 @@ maybe_copy_value (FGEnvironment * env, const SGPropertyNode * node,
 void
 FGEnvironment::read (const SGPropertyNode * node)
 {
+    bool live_update = set_live_update( false );
     maybe_copy_value(this, node, "visibility-m",
                      &FGEnvironment::set_visibility_m);
 
@@ -230,6 +231,15 @@ FGEnvironment::read (const SGPropertyNode * node)
 
     maybe_copy_value(this, node, "turbulence/rate-hz",
                      &FGEnvironment::set_turbulence_rate_hz);
+    // calculate derived properties here to avoid duplicate expensive computations
+    _recalc_ne();
+    _recalc_alt_temperature();
+    _recalc_alt_dewpoint();
+    _recalc_alt_pressure();
+    _recalc_density();
+    _recalc_relative_humidity();
+
+    set_live_update(live_update);
 }