]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/models/FGExternalReactions.h
Merge branch 'next' of gitorious.org:fg/flightgear into next
[flightgear.git] / src / FDM / JSBSim / models / FGExternalReactions.h
index 4b7df2d851b0607191ea78b57ae27f1806012e62..7945abf88565830145d2a8e79f158d4357e00b0f 100644 (file)
@@ -41,12 +41,14 @@ INCLUDES
 #include <vector>
 #include "FGModel.h"
 #include "FGExternalForce.h"
+#include "input_output/FGXMLFileRead.h"
+
 
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 DEFINITIONS
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
-#define ID_EXTERNALREACTIONS "$Id: FGExternalReactions.h,v 1.10 2010/11/18 12:38:06 jberndt Exp $"
+#define ID_EXTERNALREACTIONS "$Id: FGExternalReactions.h,v 1.14 2011/10/31 14:54:41 bcoconni Exp $"
 
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 FORWARD DECLARATIONS
@@ -115,7 +117,7 @@ CLASS DOCUMENTATION
 CLASS DECLARATION
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
-class FGExternalReactions : public FGModel
+class FGExternalReactions : public FGModel, public FGXMLFileRead
 {
 public:
   /** Constructor.
@@ -132,9 +134,13 @@ public:
   bool InitModel(void);
 
   /** Sum all the constituent forces for this cycle.
-      @return true always.
-  */
-  bool Run(void);
+      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 true always.  */
+  bool Run(bool Holding);
   
   /** Loads the external forces from the XML configuration file.
       If the external_reactions section is encountered in the vehicle configuration
@@ -147,12 +153,14 @@ public:
   /** Retrieves the total forces defined in the external reactions.
       @return the total force in pounds.
   */
-  FGColumnVector3 GetForces(void) const {return vTotalForces;}
+  const FGColumnVector3& GetForces(void) const {return vTotalForces;}
+  double GetForces(int idx) const {return vTotalForces(idx);}
 
   /** Retrieves the total moment resulting from the forces defined in the external reactions.
       @return the total moment in foot-pounds.
   */
-  FGColumnVector3 GetMoments(void) const {return vTotalMoments;}
+  const FGColumnVector3& GetMoments(void) const {return vTotalMoments;}
+  double GetMoments(int idx) const {return vTotalMoments(idx);}
 
 private:
 
@@ -163,6 +171,7 @@ private:
 
   bool NoneDefined;
 
+  void bind(void);
   void Debug(int from);
 };
 }