]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/YASim/Model.cpp
Updates to the controls properties tree. This is a major update so there may be one...
[flightgear.git] / src / FDM / YASim / Model.cpp
index 44ff1bdfc7076c372fc550c3f3ad2cedda2fd38a..8cc50c9d03aaff659d98847940bd68b2d7764694 100644 (file)
@@ -84,7 +84,7 @@ void Model::initIteration()
         localWind(pos, _s, v);
 
        t->setWind(v);
-       t->setAir(_pressure, _temp);
+       t->setAir(_pressure, _temp, _rho);
        t->integrate(_integrator.getInterval());
 
        t->getTorque(v);
@@ -191,11 +191,11 @@ void Model::setGroundPlane(double* planeNormal, double fromOrigin)
     _ground[3] = fromOrigin;
 }
 
-void Model::setAir(float pressure, float temp)
+void Model::setAir(float pressure, float temp, float density)
 {
     _pressure = pressure;
     _temp = temp;
-    _rho = Atmosphere::calcDensity(pressure, temp);
+    _rho = density;
 }
 
 void Model::setWind(float* wind)
@@ -260,8 +260,9 @@ void Model::calcForces(State* s)
     float dist = ground[3] - Math::dot3(ground, _wingCenter);
     if(dist > 0 && dist < _groundEffectSpan) {
        float fz = Math::dot3(faero, ground);
-       Math::mul3(fz * _groundEffect * dist/_groundEffectSpan,
-                  ground, faero);
+        fz *= (_groundEffectSpan - dist) / _groundEffectSpan;
+        fz *= _groundEffect;
+       Math::mul3(fz, ground, faero);
        _body.addForce(faero);
     }