]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/models/FGInertial.cpp
Andreas Gaeb: fix #222 (JSBSIm reset problems)
[flightgear.git] / src / FDM / JSBSim / models / FGInertial.cpp
index ab2670eb97700868ada2dc29b2ef43ad121e1157..94aa291c3346653f8f37024f4bad96b49bdd3141 100644 (file)
@@ -45,7 +45,7 @@ using namespace std;
 
 namespace JSBSim {
 
-static const char *IdSrc = "$Id: FGInertial.cpp,v 1.18 2010/03/28 05:57:00 jberndt Exp $";
+static const char *IdSrc = "$Id: FGInertial.cpp,v 1.20 2010/11/18 12:38:06 jberndt Exp $";
 static const char *IdHdr = ID_INERTIAL;
 
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -116,7 +116,7 @@ bool FGInertial::Run(void)
   RunPreFunctions();
 
   // Gravitation accel
-  double r = Propagate->GetRadius();
+  double r = FDMExec->GetPropagate()->GetRadius();
   gAccel = GetGAccel(r);
   earthPosAngle += FDMExec->GetDeltaT()*RotationRate;
 
@@ -145,10 +145,11 @@ FGColumnVector3 FGInertial::GetGravityJ2(FGColumnVector3 position) const
 
   // Gravitation accel
   double r = position.Magnitude();
-  double lat = Propagate->GetLatitude();
+  double lat = FDMExec->GetPropagate()->GetLatitude();
   double sinLat = sin(lat);
 
-  double preCommon = 1.5*J2*(a/r)*(a/r);
+  double adivr = a/r;
+  double preCommon = 1.5*J2*adivr*adivr;
   double xy = 1.0 - 5.0*(sinLat*sinLat);
   double z = 3.0 - 5.0*(sinLat*sinLat);
   double GMOverr2 = GM/(r*r);