]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/FGCoefficient.h
- fixed fuel-need calculations
[flightgear.git] / src / FDM / JSBSim / FGCoefficient.h
index ce236f131fe3043ba4fceb3821987e659e55c10a..7c7083d0b2225ee2d7b740e474a95d855da4fdd2 100644 (file)
@@ -45,8 +45,8 @@ INCLUDES
 #include <vector>
 #include <string>
 #include "FGConfigFile.h"
-#include "FGDefs.h"
 #include "FGTable.h"
+#include "FGJSBBase.h"
 
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 DEFINITIONS
@@ -95,18 +95,33 @@ CLASS DOCUMENTATION
 CLASS DECLARATION
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
-class FGCoefficient
+class FGCoefficient : public FGJSBBase
 {
 public:
-  FGCoefficient(FGFDMExec*, FGConfigFile*);
-  ~FGCoefficient();
-
+  FGCoefficient(FGFDMExec*);
+  virtual ~FGCoefficient();
+  
+  virtual bool Load(FGConfigFile* AC_cfg);
+  
   typedef vector <eParam> MultVec;
-  float TotalValue(void);
-  inline string Getname(void) {return name;}
-  inline float GetSD(void) {return SD;}
+  virtual double TotalValue(void);
+  virtual inline string Getname(void) {return name;}
+  virtual inline double GetSD(void) { return SD;}
   inline MultVec Getmultipliers(void) {return multipliers;}
-  void DumpSD(void);
+  void DumpSD(void);  
+  
+  /** Outputs coefficient information.
+      Non-dimensionalizing parameter descriptions are output
+      for each aero coefficient defined.
+      @param multipliers the list of multipliers for this coefficient.*/
+  virtual void DisplayCoeffFactors(void);
+  virtual inline string GetCoefficientStrings(void) { return name; }
+  virtual string GetCoefficientValues(void);
+  
+  inline void setBias(double b) { bias=b; }
+  inline void setGain(double g) { gain=g; };
+  inline double getBias(void) { return bias; }
+  inline double getGain(void) { return gain; }
 
 private:
   enum Type {UNKNOWN, VALUE, VECTOR, TABLE, EQUATION};
@@ -116,15 +131,19 @@ private:
   string description;
   string name;
   string method;
-  float Value(float, float);
-  float Value(float);
-  float Value(void);
-  float StaticValue;
+  string multparms;
+  string multparmsRow;
+  string multparmsCol;
+  double Value(double, double);
+  double Value(double);
+  double Value(void);
+  double StaticValue;
+  double bias,gain;
   eParam LookupR, LookupC;
   MultVec multipliers;
   int rows, columns;
   Type type;
-  float SD; // Actual stability derivative (or other coefficient) value
+  double SD; // Actual stability derivative (or other coefficient) value
   FGTable *Table;
 
   FGFDMExec*      FDMExec;
@@ -138,7 +157,7 @@ private:
   FGAuxiliary*    Auxiliary;
   FGOutput*       Output;
 
-  void Debug(void);
+  virtual void Debug(int from);
 };
 
 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%