X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FJSBSim%2Fmodels%2FFGBuoyantForces.h;h=4b23841c7259d05bbb5360a53f5f6ecd2486a97d;hb=642735ab18421db87a07d6841dd720fd4615bfff;hp=86f5d696f38194ce58bb7dd060b0fcebc1e88c6f;hpb=f7f17a4744aaa1dbcd9e64b1a4bc97de888ed892;p=flightgear.git diff --git a/src/FDM/JSBSim/models/FGBuoyantForces.h b/src/FDM/JSBSim/models/FGBuoyantForces.h index 86f5d696f..4b23841c7 100644 --- a/src/FDM/JSBSim/models/FGBuoyantForces.h +++ b/src/FDM/JSBSim/models/FGBuoyantForces.h @@ -4,8 +4,8 @@ Author: Anders Gidenstam, Jon S. Berndt Date started: 01/21/08 - ------------- Copyright (C) 2008 Anders Gidenstam ------------- - ------------- Copyright (C) 2008 Jon S. Berndt (jsb@hal-pc.org) ------------- + ------------- Copyright (C) 2008 - 2011 Anders Gidenstam ------------- + ------------- Copyright (C) 2008 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 @@ -32,37 +32,26 @@ HISTORY SENTRY %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -#ifndef FGBuoyanTFORCES_H -#define FGBuoyanTFORCES_H +#ifndef FGBUOYANTFORCES_H +#define FGBUOYANTFORCES_H /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% INCLUDES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -#ifdef FGFS -# include -# ifdef SG_HAVE_STD_INCLUDES -# include -# include -# else -# include -# include -# endif -#else -# include -# include -#endif +#include +#include #include "FGModel.h" #include "FGGasCell.h" -#include -#include +#include "math/FGColumnVector3.h" +#include "input_output/FGXMLFileRead.h" /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DEFINITIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -#define ID_BUOYANTFORCES "$Id$" +#define ID_BUOYANTFORCES "$Id: FGBuoyantForces.h,v 1.16 2011/10/31 14:54:41 bcoconni Exp $" /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FORWARD DECLARATIONS @@ -82,6 +71,10 @@ CLASS DOCUMENTATION @code + + + ballonets/in-flow-ft3ps[0] + 18.8 @@ -95,7 +88,7 @@ CLASS DOCUMENTATION 0.015 - ... {other gass cells} ... + ... {other gas cells} ... @endcode @@ -103,7 +96,7 @@ CLASS DOCUMENTATION See FGGasCell for the full configuration file format for gas cells. @author Anders Gidenstam, Jon S. Berndt - @version $Id$ + @version $Id: FGBuoyantForces.h,v 1.16 2011/10/31 14:54:41 bcoconni Exp $ */ /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -123,8 +116,13 @@ public: bool InitModel(void); /** Runs the Buoyant forces 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(void); + bool Run(bool Holding); /** Loads the Buoyant forces model. The Load function for this class expects the XML parser to @@ -134,52 +132,62 @@ public: bool Load(Element* element); /** Gets the total Buoyant force vector. - @return a force vector. */ - FGColumnVector3 GetForces(void) {return vTotalForces;} + @return a force vector in lbs. */ + const FGColumnVector3& GetForces(void) const {return vTotalForces;} + + /** Gets a component of the total Buoyant force vector. + @return a component of the force vector in lbs. */ + double GetForces(int idx) const {return vTotalForces(idx);} /** Gets the total Buoyancy moment vector. - @return a moment vector. */ - FGColumnVector3 GetMoments(void) {return vTotalMoments;} + @return a moment vector in the body frame in lbs ft. */ + const FGColumnVector3& GetMoments(void) const {return vTotalMoments;} + + /** Gets a component of the total Buoyancy moment vector. + @return a component of the moment vector in the body frame in lbs ft. */ + double GetMoments(int idx) const {return vTotalMoments(idx);} /** Gets the total gas mass. The gas mass is part of the aircraft's inertia. @return mass in slugs. */ - double GetGasMass(void); + double GetGasMass(void) const; /** Gets the total moment from the gas mass. - @return a moment vector. */ - FGColumnVector3& GetGasMassMoment(void); + @return a moment vector in the structural frame in lbs in. */ + const FGColumnVector3& GetGasMassMoment(void); - /** Gets the total moments of inertia for the gas mass. - @return . */ - FGMatrix33& GetGasMassInertia(void); + /** Gets the total moments of inertia for the gas mass in the body frame. + @return moments of inertia matrix in the body frame + in slug ft2. */ + const FGMatrix33& GetGasMassInertia(void); /** Gets the strings for the current set of gas cells. @param delimeter either a tab or comma string depending on output type @return a string containing the descriptive names for all parameters */ - string GetBuoyancyStrings(string delimeter); + string GetBuoyancyStrings(const string& delimeter); /** Gets the coefficient values. @param delimeter either a tab or comma string depending on output type @return a string containing the numeric values for the current set of parameters */ - string GetBuoyancyValues(string delimeter); + string GetBuoyancyValues(const string& delimeter); + + FGGasCell::Inputs in; private: vector Cells; // Buoyant forces and moments. Excluding the gas weight. - FGColumnVector3 vTotalForces; - FGColumnVector3 vTotalMoments; + FGColumnVector3 vTotalForces; // [lbs] + FGColumnVector3 vTotalMoments; // [lbs ft] // Gas mass related masses, inertias and moments. - FGMatrix33 gasCellJ; + FGMatrix33 gasCellJ; // [slug ft^2] FGColumnVector3 vGasCellXYZ; - FGColumnVector3 vXYZgasCell_arm; + FGColumnVector3 vXYZgasCell_arm; // [lbs in] bool NoneDefined; void bind(void); - void unbind(void); void Debug(int from); };