]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/FGCoefficient.h
- fixed fuel-need calculations
[flightgear.git] / src / FDM / JSBSim / FGCoefficient.h
index 5cd6799c31cf52039caad5095f43a66b68a72bf7..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,9 +95,35 @@ CLASS DOCUMENTATION
 CLASS DECLARATION
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
-class FGCoefficient
+class FGCoefficient : public FGJSBBase
 {
+public:
+  FGCoefficient(FGFDMExec*);
+  virtual ~FGCoefficient();
+  
+  virtual bool Load(FGConfigFile* AC_cfg);
+  
   typedef vector <eParam> MultVec;
+  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);  
+  
+  /** 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};
 
   int numInstances;
@@ -105,12 +131,19 @@ class FGCoefficient
   string description;
   string name;
   string method;
-  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;
@@ -124,20 +157,7 @@ class FGCoefficient
   FGAuxiliary*    Auxiliary;
   FGOutput*       Output;
 
-public:
-  FGCoefficient(FGFDMExec*, FGConfigFile*);
-  ~FGCoefficient();
-
-  float Value(float, float);
-  float Value(float);
-  float Value(void);
-  float TotalValue(void);
-  inline string Getname(void) {return name;}
-  inline float GetSD(void) {return SD;}
-  inline MultVec Getmultipliers(void) {return multipliers;}
-  void DumpSD(void);
-private:
-  void Debug(void);
+  virtual void Debug(int from);
 };
 
 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%