#include <vector>
#include <string>
#include "FGConfigFile.h"
-#include "FGDefs.h"
#include "FGTable.h"
+#include "FGJSBBase.h"
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
DEFINITIONS
CLASS DECLARATION
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
-class FGCoefficient
+class FGCoefficient : public FGJSBBase
{
public:
FGCoefficient(FGFDMExec*);
- ~FGCoefficient();
+ virtual ~FGCoefficient();
virtual bool Load(FGConfigFile* AC_cfg);
typedef vector <eParam> MultVec;
- virtual float TotalValue(void);
+ virtual double TotalValue(void);
virtual inline string Getname(void) {return name;}
- virtual inline float GetSD(void) { return SD;}
+ virtual inline double GetSD(void) { return SD;}
inline MultVec Getmultipliers(void) {return multipliers;}
void DumpSD(void);
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};
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;
FGAuxiliary* Auxiliary;
FGOutput* Output;
- void Debug(void);
+ virtual void Debug(int from);
};
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%