#ifdef FGFS
# include <simgear/compiler.h>
-# ifdef FG_HAVE_STD_INCLUDES
+# 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 "$Id$"
+
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FORWARD DECLARATIONS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
/** 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. */
+ FGColumnVector3& GetForces(void) {return vForces;}
+ inline double GetForces(int n) {return vForces(n);}
+
+ /** Gets the total aerodynamic moment vector.
+ @return a moment vector reference. */
+ FGColumnVector3& GetMoments(void) {return vMoments;}
+ inline double GetMoments(int n) {return vMoments(n);}
+
+ inline FGColumnVector3& GetvLastFs(void) { return vLastFs; }
+ inline double GetvLastFs(int axis) { return vLastFs(axis); }
+ inline FGColumnVector3& GetvFs(void) { return vFs; }
+ inline double GetvFs(int axis) { return vFs(axis); }
+ double 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);
+ inline FGCoefficient* GetCoefficient(string name) { return cm[name]; }
+
+
private:
- void Debug(void);
+ typedef map<string,int> AxisIndex;
+ AxisIndex AxisIdx;
+ typedef vector<FGCoefficient*> CoeffArray;
+ CoeffArray* Coeff;
+ typedef map<string,FGCoefficient*> CoeffMap;
+ CoeffMap cm;
+ FGColumnVector3 vFs;
+ FGColumnVector3 vForces;
+ FGColumnVector3 vMoments;
+ FGColumnVector3 vLastFs;
+ FGColumnVector3 vDXYZcg;
+
+ void Debug(int from);
};
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%