@param AC_cfg pointer to the config file instance that describes the
aircraft being modeled.
@return true if successfully loaded, otherwise false */
- bool LoadPropulsion(FGConfigFile* AC_cfg);
+ bool Load(FGConfigFile* AC_cfg);
/// Retrieves the number of engines defined for the aircraft.
inline unsigned int GetNumEngines(void) {return Engines.size();}
/** Returns the number of oxidizer tanks currently actively supplying oxidizer */
inline int GetnumSelectedOxiTanks(void) {return numSelectedOxiTanks;}
+ /** Loops the engines/thrusters until thrust output steady (used for trimming) */
bool GetSteadyState(void);
-
+
+ /** starts the engines in IC mode (dt=0). All engine-specific setup must
+ be done before calling this (i.e. magnetos, starter engage, etc.) */
+ bool ICEngineStart(void);
+
string GetPropulsionStrings(void);
string GetPropulsionValues(void);
- inline FGColumnVector& GetForces(void) {return *Forces; }
- inline FGColumnVector& GetMoments(void) {return *Moments;}
+ inline FGColumnVector3& GetForces(void) {return vForces; }
+ inline double GetForces(int n) { return vForces(n);}
+ inline FGColumnVector3& GetMoments(void) {return vMoments;}
+ inline double GetMoments(int n) {return vMoments(n);}
- FGColumnVector& GetTanksCG(void);
- float GetTanksWeight(void);
+ FGColumnVector3& GetTanksCG(void);
+ double GetTanksWeight(void);
- float GetTanksIxx(const FGColumnVector& vXYZcg);
- float GetTanksIyy(const FGColumnVector& vXYZcg);
- float GetTanksIzz(const FGColumnVector& vXYZcg);
- float GetTanksIxz(const FGColumnVector& vXYZcg);
- float GetTanksIxy(const FGColumnVector& vXYZcg);
+ double GetTanksIxx(const FGColumnVector3& vXYZcg);
+ double GetTanksIyy(const FGColumnVector3& vXYZcg);
+ double GetTanksIzz(const FGColumnVector3& vXYZcg);
+ double GetTanksIxz(const FGColumnVector3& vXYZcg);
+ double GetTanksIxy(const FGColumnVector3& vXYZcg);
private:
vector <FGEngine*> Engines;
unsigned int numEngines;
unsigned int numTanks;
unsigned int numThrusters;
- float dt;
- FGColumnVector *Forces;
- FGColumnVector *Moments;
- FGColumnVector vXYZtank;
- void Debug(void);
+ double dt;
+ FGColumnVector3 vForces;
+ FGColumnVector3 vMoments;
+ FGColumnVector3 vXYZtank;
+ void Debug(int from);
};
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%