X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FJSBSim%2Fmodels%2FFGModel.h;h=eae604668b5fc33217861658196cabb21f218923;hb=a302cdc1cbb3c147e7c862b484cdd5d86f30a29c;hp=d1907e3c20737de0d4e03dfea8ca73c6a8c29bf3;hpb=932b38a87e2870d23f9be9461b551f1e1fe556ba;p=flightgear.git diff --git a/src/FDM/JSBSim/models/FGModel.h b/src/FDM/JSBSim/models/FGModel.h index d1907e3c2..eae604668 100644 --- a/src/FDM/JSBSim/models/FGModel.h +++ b/src/FDM/JSBSim/models/FGModel.h @@ -4,23 +4,23 @@ 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 General Public License as published by the Free Software + the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - You should have received a copy of the GNU General Public License along with + You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - Further information about the GNU General Public License can also be found on + Further information about the GNU Lesser General Public License can also be found on the world wide web at http://www.gnu.org. HISTORY @@ -38,34 +38,17 @@ SENTRY INCLUDES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -#include -#include -#include - -#ifdef FGFS -# include -# ifdef SG_HAVE_STD_INCLUDES -# include -# else -# include -# endif -#else -# if defined(sgi) && !defined(__GNUC__) && (_COMPILER_VERSION < 740) -# include -# else -# include -# endif -#endif +#include "math/FGFunction.h" +#include "math/FGModelFunctions.h" #include +#include /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DEFINITIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -#define ID_MODEL "$Id$" - -using namespace std; +#define ID_MODEL "$Id: FGModel.h,v 1.19 2011/05/20 03:18:36 jberndt Exp $" /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FORWARD DECLARATIONS @@ -74,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 @@ -98,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; - string Name; + 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;} @@ -129,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; }; }