X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FJSBSim%2Fmodels%2FFGGroundReactions.h;h=5774918ad3a005927f2442fac911f09069d10440;hb=642735ab18421db87a07d6841dd720fd4615bfff;hp=118815625bc3e96df1fed61fc75a145160a6cfdb;hpb=a61f34667fdb43198f707e719f56f5bbaf2fb7b5;p=flightgear.git diff --git a/src/FDM/JSBSim/models/FGGroundReactions.h b/src/FDM/JSBSim/models/FGGroundReactions.h index 118815625..5774918ad 100644 --- a/src/FDM/JSBSim/models/FGGroundReactions.h +++ b/src/FDM/JSBSim/models/FGGroundReactions.h @@ -45,7 +45,7 @@ INCLUDES #include "math/FGColumnVector3.h" #include "input_output/FGXMLElement.h" -#define ID_GROUNDREACTIONS "$Id: FGGroundReactions.h,v 1.15 2009/10/02 10:30:09 jberndt Exp $" +#define ID_GROUNDREACTIONS "$Id: FGGroundReactions.h,v 1.24 2011/08/21 15:13:22 bcoconni Exp $" /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FORWARD DECLARATIONS @@ -85,27 +85,40 @@ public: ~FGGroundReactions(void); bool InitModel(void); - bool Run(void); + /** Runs the Ground Reactions 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. + @return false if no error */ + bool Run(bool Holding); bool Load(Element* el); - FGColumnVector3& GetForces(void) {return vForces;} + const FGColumnVector3& GetForces(void) const {return vForces;} double GetForces(int idx) const {return vForces(idx);} - FGColumnVector3& GetMoments(void) {return vMoments;} + const FGColumnVector3& GetMoments(void) const {return vMoments;} double GetMoments(int idx) const {return vMoments(idx);} - string GetGroundReactionStrings(string delimeter); - string GetGroundReactionValues(string delimeter); - bool GetWOW(void); + string GetGroundReactionStrings(string delimeter) const; + string GetGroundReactionValues(string delimeter) const; + bool GetWOW(void) const; int GetNumGearUnits(void) const { return (int)lGear.size(); } /** Gets a gear instance @param gear index of gear instance @return a pointer to the FGLGear instance of the gear unit requested */ - inline FGLGear* GetGearUnit(int gear) { return lGear[gear]; } + FGLGear* GetGearUnit(int gear) const { return lGear[gear]; } + + void RegisterLagrangeMultiplier(LagrangeMultiplier* lmult) { multipliers.push_back(lmult); } + vector * GetMultipliersList(void) { return &multipliers; } + + FGLGear::Inputs in; private: vector lGear; FGColumnVector3 vForces; FGColumnVector3 vMoments; + vector multipliers; void bind(void); void Debug(int from);