X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FJSBSim%2Fmodels%2FFGModel.h;h=eae604668b5fc33217861658196cabb21f218923;hb=a302cdc1cbb3c147e7c862b484cdd5d86f30a29c;hp=8ef7e27742f12f7b037b4e324b7c7ccb1140dfd1;hpb=32e9505eedffe7f98de028513de8a809a366bd98;p=flightgear.git diff --git a/src/FDM/JSBSim/models/FGModel.h b/src/FDM/JSBSim/models/FGModel.h index 8ef7e2774..eae604668 100644 --- a/src/FDM/JSBSim/models/FGModel.h +++ b/src/FDM/JSBSim/models/FGModel.h @@ -4,7 +4,7 @@ Author: Jon Berndt Date started: 11/21/98 - ------------- Copyright (C) 1999 Jon S. Berndt (jsb@hal-pc.org) ------------- + ------------- Copyright (C) 1999 Jon S. Berndt (jon@jsbsim.org) ------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software @@ -38,21 +38,17 @@ SENTRY INCLUDES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -#include -#include -#include - -#ifdef FGFS -# include -#endif +#include "math/FGFunction.h" +#include "math/FGModelFunctions.h" #include +#include /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DEFINITIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -#define ID_MODEL "$Id$" +#define ID_MODEL "$Id: FGModel.h,v 1.19 2011/05/20 03:18:36 jberndt Exp $" /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FORWARD DECLARATIONS @@ -61,17 +57,8 @@ FORWARD DECLARATIONS namespace JSBSim { class FGFDMExec; -class FGState; -class FGAtmosphere; -class FGFCS; -class FGPropulsion; -class FGMassBalance; -class FGAerodynamics; -class FGInertial; -class FGGroundReactions; -class FGAircraft; -class FGPropagate; -class FGAuxiliary; +class Element; +class FGPropertyManager; /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CLASS DOCUMENTATION @@ -85,30 +72,32 @@ CLASS DOCUMENTATION CLASS DECLARATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -class FGModel : public FGJSBBase +class FGModel : public FGModelFunctions { public: /// Constructor FGModel(FGFDMExec*); /// Destructor - virtual ~FGModel(); - - /** Loads this model. - @param el a pointer to the element - @return true if model is successfully loaded*/ - virtual bool Load(Element* el) {return true;} + ~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;} + FGFDMExec* GetExec(void) {return FDMExec;} void SetPropertyManager(FGPropertyManager *fgpm) { PropertyManager=fgpm;} @@ -116,20 +105,14 @@ protected: int exe_ctr; int rate; + /** Loads this model. + @param el a pointer to the element + @return true if model is successfully loaded*/ + 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; - FGAircraft* Aircraft; - FGPropagate* Propagate; - FGAuxiliary* Auxiliary; FGPropertyManager* PropertyManager; }; }