]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/FGAerodynamics.h
Added recent ground effect modeling changes.
[flightgear.git] / src / FDM / JSBSim / FGAerodynamics.h
index cc29cb7e6abd5b0942e612141ad44a76db1eacfc..65cffbd7a5e2711fa8c3a53c608f602a36446b3a 100644 (file)
@@ -42,21 +42,30 @@ INCLUDES
 #  include <simgear/compiler.h>
 #  ifdef SG_HAVE_STD_INCLUDES
 #    include <vector>
+#    include <map>
 #  else
 #    include <vector.h>
+#    include <map.h>
 #  endif
 #else
 #  include <vector>
+#  include <map>
 #endif
 
 #include "FGModel.h"
 #include "FGConfigFile.h"
+#include "FGState.h"
+#include "FGMassBalance.h"
+#include "FGTranslation.h"
+#include "FGCoefficient.h"
+#include "FGFactorGroup.h"
 
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 DEFINITIONS
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
-#define ID_AERODYNAMICS "$Header$"
+#define ID_AERODYNAMICS "$Id$"
+
 
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 FORWARD DECLARATIONS
@@ -90,7 +99,7 @@ public:
       @param Executive a pointer to the parent executive object */
   FGAerodynamics(FGFDMExec*);
   /// Destructor
-  ~FGAerodynamics(void);
+  ~FGAerodynamics();
 
   /** Runs the Aerodynamics model; called by the Executive
       @return false if no error */
@@ -98,7 +107,46 @@ public:
 
   /** Loads the Aerodynamics model
       @return true if successful */
-  bool LoadAerodynamics(FGConfigFile* AC_cfg);
+  bool Load(FGConfigFile* AC_cfg);
+
+  /** Gets the total aerodynamic force vector.
+      @return a force vector reference. */
+  FGColumnVector& GetForces(void) {return vForces;}
+
+  /** Gets the total aerodynamic moment vector.
+      @return a moment vector reference. */
+  FGColumnVector& GetMoments(void) {return vMoments;}
+
+  inline FGColumnVector GetvLastFs(void) { return vLastFs; }
+  inline float GetvLastFs(int axis) { return vLastFs(axis); }
+  inline FGColumnVector GetvFs(void) { return vFs; }
+  inline float GetvFs(int axis) { return vFs(axis); }
+  float GetLoD(void);
+
+    /** Gets the strings for the current set of coefficients.
+      @return a string containing the descriptive names for all coefficients */
+  string GetCoefficientStrings(void);
+
+  /** Gets the coefficient values.
+      @return a string containing the numeric values for the current set of
+      coefficients */
+  string GetCoefficientValues(void);
+
+  /// Gets the Normal Load Factor
+  float GetNlf(void);
+
+private:
+  typedef map<string,int> AxisIndex;
+  AxisIndex AxisIdx;
+  typedef vector<FGCoefficient*> CoeffArray;
+  CoeffArray* Coeff;
+  FGColumnVector vFs;
+  FGColumnVector vForces;
+  FGColumnVector vMoments;
+  FGColumnVector vLastFs;
+  FGColumnVector vDXYZcg;
+
+  void Debug(void);
 };
 
 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%