]> git.mxchange.org Git - flightgear.git/commitdiff
More turbulence tweaks and fixes.
authordavid <david>
Mon, 14 Jul 2003 22:34:08 +0000 (22:34 +0000)
committerdavid <david>
Mon, 14 Jul 2003 22:34:08 +0000 (22:34 +0000)
Skip turbulence calculations with magnitude is 0.

src/Environment/environment.cxx
src/Environment/environment_mgr.cxx
src/FDM/JSBSim/FGAtmosphere.cpp
src/FDM/JSBSim/JSBSim.cxx

index d8d6cdf46000cee772bbc2411f3fd7fa35cfc259..bfaed13a538aa5d12053195cb96c0b21b4859675 100644 (file)
@@ -169,7 +169,8 @@ maybe_copy_value (FGEnvironment * env, const SGPropertyNode * node,
     const SGPropertyNode * child = node->getNode(name);
                                 // fragile: depends on not being typed
                                 // as a number
-    if (child != 0 && child->getStringValue()[0] != '\0') {
+    if (child != 0 && child->hasValue() &&
+        child->getStringValue()[0] != '\0') {
         (env->*setter)(child->getDoubleValue());
         return true;
     } else {
index 1875a514d22bae3378b58e45a58f80ef4cfa7bfa..6edbd6ca5f5e33abefc7fdc794186df1c84fc3c6 100644 (file)
@@ -110,10 +110,10 @@ FGEnvironmentMgr::bind ()
         &FGEnvironment::get_turbulence_magnitude_norm,
         &FGEnvironment::set_turbulence_magnitude_norm);
   fgSetArchivable("/environment/turbulence/magnitude-norm");
-  fgTie("/environment/turbulence/rate_hz", _environment,
+  fgTie("/environment/turbulence/rate-hz", _environment,
         &FGEnvironment::get_turbulence_rate_hz,
         &FGEnvironment::set_turbulence_rate_hz);
-  fgSetArchivable("/environment/turbulence/rate_hz");
+  fgSetArchivable("/environment/turbulence/rate-hz");
 
   for (int i = 0; i < MAX_CLOUD_LAYERS; i++) {
     char buf[128];
index bf02c1bc0a8f69da1f52a8c666c044e39a6910d8..4de422d19b047b80ee3fe7b0adfad319c1f0e349 100644 (file)
@@ -93,7 +93,7 @@ FGAtmosphere::FGAtmosphere(FGFDMExec* fdmex) : FGModel(fdmex)
 //   turbType = ttBerndt;
   TurbGain = 0.0;
   TurbRate = 1.0;
-  
+
   bind();
   Debug(0);
 }
@@ -141,7 +141,7 @@ bool FGAtmosphere::Run(void)
       Calculate(h);
     } 
 
-    if (turbType != ttNone) {
+    if (turbType != ttNone && TurbGain > 0.0) {
       Turbulence();
       vWindNED += vTurbulence;
     }
@@ -278,7 +278,7 @@ void FGAtmosphere::Turbulence(void)
     vDirectiondAccelDt(eY) = 1 - 2.0*(double(rand())/double(RAND_MAX));
     vDirectiondAccelDt(eZ) = 1 - 2.0*(double(rand())/double(RAND_MAX));
 
-    MagnitudedAccelDt = 1 - 2.0*(double(rand())/double(RAND_MAX)) - Magnitude;
+    MagnitudedAccelDt = 1 - 2.0*(double(rand())/double(RAND_MAX));
                                 // Scale the magnitude so that it moves
                                 // away from the peaks
     MagnitudedAccelDt = ((MagnitudedAccelDt - Magnitude) /
index fd81aca96e950c3abbb4c8dd291287acc9c9a81d..cd47060807001e343384f2dfdc7ef6eb9bd6f4d5 100644 (file)
@@ -224,6 +224,8 @@ void FGJSBsim::init() {
       Atmosphere->SetTurbGain(tmp * tmp * 100.0);
 
       tmp = turbulence_rate->getDoubleValue();
+      if (tmp <= 0)
+          tmp = 1.0;
       Atmosphere->SetTurbRate(tmp);
 
     } else {
@@ -424,7 +426,10 @@ bool FGJSBsim::copy_to_JSBsim() {
     tmp = turbulence_gain->getDoubleValue();
     Atmosphere->SetTurbGain(tmp * tmp * 100.0);
 
-    tmp = turbulence_rate->getDoubleValue();
+    if (turbulence_rate->hasValue())
+        tmp = turbulence_rate->getDoubleValue();
+    else
+        tmp = 1.0;
     Atmosphere->SetTurbRate(tmp);
 
     Atmosphere->SetWindNED( wind_from_north->getDoubleValue(),