X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FJSBSim%2Fmodels%2FFGModel.h;h=eae604668b5fc33217861658196cabb21f218923;hb=a302cdc1cbb3c147e7c862b484cdd5d86f30a29c;hp=5907328f9e0514249f512ca8619ec8f65866be0c;hpb=d2c7179cd09636c20a19870d95664fb7755fae76;p=flightgear.git diff --git a/src/FDM/JSBSim/models/FGModel.h b/src/FDM/JSBSim/models/FGModel.h index 5907328f9..eae604668 100644 --- a/src/FDM/JSBSim/models/FGModel.h +++ b/src/FDM/JSBSim/models/FGModel.h @@ -38,8 +38,8 @@ SENTRY INCLUDES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -#include "FGJSBBase.h" #include "math/FGFunction.h" +#include "math/FGModelFunctions.h" #include #include @@ -48,7 +48,7 @@ INCLUDES DEFINITIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -#define ID_MODEL "$Id$" +#define ID_MODEL "$Id: FGModel.h,v 1.19 2011/05/20 03:18:36 jberndt Exp $" /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FORWARD DECLARATIONS @@ -57,19 +57,6 @@ FORWARD DECLARATIONS namespace JSBSim { class FGFDMExec; -class FGState; -class FGAtmosphere; -class FGFCS; -class FGPropulsion; -class FGMassBalance; -class FGAerodynamics; -class FGInertial; -class FGGroundReactions; -class FGExternalReactions; -class FGBuoyantForces; -class FGAircraft; -class FGPropagate; -class FGAuxiliary; class Element; class FGPropertyManager; @@ -85,7 +72,7 @@ CLASS DOCUMENTATION CLASS DECLARATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -class FGModel : public FGJSBBase +class FGModel : public FGModelFunctions { public: @@ -94,13 +81,19 @@ public: /// Destructor ~FGModel(); - FGModel* NextModel; std::string Name; - /** Runs the model; called by the Executive + /** Runs the model; called by the Executive. + Can pass in a value indicating if the executive is directing the simulation to Hold. + @param Holding if true, the executive has been directed to hold the sim from + advancing time. Some models may ignore this flag, such as the Input + model, which may need to be active to listen on a socket for the + "Resume" command to be given. The Holding flag is not used in the base + FGModel class. @see JSBSim.cpp documentation @return false if no error */ - virtual bool Run(void); + virtual bool Run(bool Holding); + virtual bool InitModel(void); virtual void SetRate(int tt) {rate = tt;} virtual int GetRate(void) {return rate;} @@ -112,37 +105,15 @@ protected: int exe_ctr; int rate; - void RunPreFunctions(void); - void RunPostFunctions(void); - /** Loads this model. @param el a pointer to the element @return true if model is successfully loaded*/ - virtual bool Load(Element* el); - - void PostLoad(Element* el); + virtual bool Load(Element* el) {return FGModelFunctions::Load(el, PropertyManager);} virtual void Debug(int from); FGFDMExec* FDMExec; - FGState* State; - FGAtmosphere* Atmosphere; - FGFCS* FCS; - FGPropulsion* Propulsion; - FGMassBalance* MassBalance; - FGAerodynamics* Aerodynamics; - FGInertial* Inertial; - FGGroundReactions* GroundReactions; - FGExternalReactions* ExternalReactions; - FGBuoyantForces* BuoyantForces; - FGAircraft* Aircraft; - FGPropagate* Propagate; - FGAuxiliary* Auxiliary; FGPropertyManager* PropertyManager; - std::vector PreFunctions; - std::vector PostFunctions; - - std::vector interface_properties; }; } //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%