X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FJSBSim%2Fmodels%2FFGAircraft.cpp;h=0ed6ac74f33975f09d0dcdca72953d51d0e7ab09;hb=68f54290481701429a04cd33c06be2674fc2b3a4;hp=2e65dc021a62d8e052eaed52557556c069966891;hpb=0f0f25512d4b5a4c1b56de2ad975abc7285c9bf5;p=flightgear.git diff --git a/src/FDM/JSBSim/models/FGAircraft.cpp b/src/FDM/JSBSim/models/FGAircraft.cpp index 2e65dc021..0ed6ac74f 100644 --- a/src/FDM/JSBSim/models/FGAircraft.cpp +++ b/src/FDM/JSBSim/models/FGAircraft.cpp @@ -52,7 +52,11 @@ INCLUDES #include "FGAerodynamics.h" #include "FGFDMExec.h" #include "FGPropagate.h" +#include "FGPropulsion.h" #include "input_output/FGPropertyManager.h" +#include + +using namespace std; namespace JSBSim { @@ -64,7 +68,7 @@ DEFINITIONS GLOBAL DATA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -static const char *IdSrc = "$Id$"; +static const char *IdSrc = "$Id: FGAircraft.cpp,v 1.28 2010/09/07 00:40:03 jberndt Exp $"; static const char *IdHdr = ID_AIRCRAFT; /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -110,6 +114,8 @@ bool FGAircraft::Run(void) if (FGModel::Run()) return true; if (FDMExec->Holding()) return false; + RunPreFunctions(); + vForces.InitMatrix(); if (!HoldDown) { vForces += Aerodynamics->GetForces(); @@ -117,6 +123,9 @@ bool FGAircraft::Run(void) vForces += GroundReactions->GetForces(); vForces += ExternalReactions->GetForces(); vForces += BuoyantForces->GetForces(); + } else { + const FGMatrix33& mTl2b = Propagate->GetTl2b(); + vForces = mTl2b * FGColumnVector3(0,0,-MassBalance->GetWeight()); } vMoments.InitMatrix(); @@ -130,10 +139,12 @@ bool FGAircraft::Run(void) vBodyAccel = vForces/MassBalance->GetMass(); - vNcg = vBodyAccel/Inertial->gravity(); + vNcg = vBodyAccel/Inertial->SLgravity(); vNwcg = Aerodynamics->GetTb2w() * vNcg; - vNwcg(3) = -1*vNwcg(3) + 1; + vNwcg(3) = 1.0 - vNwcg(3); + + RunPostFunctions(); return false; } @@ -195,6 +206,8 @@ bool FGAircraft::Load(Element* el) } } + PostLoad(el, PropertyManager); + Debug(2); return true;