class FGAtmosphere;
class FGFCS;
class FGAircraft;
-class FGTranslation;
-class FGRotation;
-class FGPosition;
+class FGPropagate;
class FGAuxiliary;
class FGOutput;
FGCoefficient(FGFDMExec* exec);
/// Destructor.
virtual ~FGCoefficient();
-
+
/** Loads the stability derivative/aero coefficient data from the config file
as directed by the FGAerodynamics instance.
@param AC_cfg a pointer to the current config file instance. */
virtual bool Load(FGConfigFile* AC_cfg);
-
+
typedef vector <FGPropertyManager*> MultVec;
- enum Type {UNKNOWN, VALUE, VECTOR, TABLE, EQUATION};
+ enum Type {UNKNOWN, VALUE, VECTOR, TABLE, TABLE3D, EQUATION};
/** Returns the value for this coefficient.
Each instance of FGCoefficient stores a value for the "type" of coefficient
- it is, one of: VALUE, VECTOR, TABLE, or EQUATION. This TotalValue function
+ it is, one of: VALUE, VECTOR, TABLE, or EQUATION. This TotalValue function
is called when the value for a coefficient needs to be known. When it is called,
depending on what type of coefficient is represented by the FGCoefficient
instance, TotalValue() directs the appropriate Value() function to be called.
inline void setGain(double g) { gain=g; };
inline double getBias(void) const { return bias; }
inline double getGain(void) const { return gain; }
-
+
virtual void bind(FGPropertyManager *parent);
virtual void unbind(void);
+ void convert(string prop="");
protected:
FGFDMExec* FDMExec;
+ bool IsFactor;
+ typedef vector<FGCoefficient*> CoeffArray;
+ CoeffArray sum;
private:
int numInstances;
string multparms;
string multparmsRow;
string multparmsCol;
+ string multparmsTable;
+ double Value(double, double, double);
double Value(double, double);
double Value(double);
double Value(void);
double StaticValue;
double totalValue;
double bias,gain;
- FGPropertyManager *LookupR, *LookupC;
-
+ FGPropertyManager *LookupR, *LookupC, *LookupT;
+
FGPropertyManager *node; // must be private!!
-
+
MultVec multipliers;
- int rows, columns;
+ int rows, columns, tables;
Type type;
double SD; // Actual stability derivative (or other coefficient) value
FGTable *Table;
FGAtmosphere* Atmosphere;
FGFCS* FCS;
FGAircraft* Aircraft;
- FGTranslation* Translation;
- FGRotation* Rotation;
- FGPosition* Position;
+ FGPropagate* Propagate;
FGAuxiliary* Auxiliary;
FGOutput* Output;
FGPropertyManager* PropertyManager;
-
+
FGPropertyManager* resolveSymbol(string name);
virtual void Debug(int from);