115 bool Run(
bool Holding)
override;
117 bool InitModel(
void)
override;
123 bool Load(
Element* el)
override;
133 assert(index < Engines.size());
134 return Engines[index];
145 assert(index < Tanks.size());
150 bool GetSteadyState(
void);
153 void InitRunning(
int n);
154 void SetEngineRunning(
int index);
156 std::string GetPropulsionStrings(
const std::string& delimiter)
const;
157 std::string GetPropulsionValues(
const std::string& delimiter)
const;
158 std::string GetPropulsionTankReport();
161 double GetForces(
int n)
const {
return vForces(n);}
162 const FGColumnVector3& GetMoments(
void)
const {
return vMoments;}
163 double GetMoments(
int n)
const {
return vMoments(n);}
165 double Transfer(
int source,
int target,
double amount);
166 void DoRefuel(
double time_slice);
167 void DumpFuel(
double time_slice);
169 const FGColumnVector3& GetTanksMoment(
void);
170 double GetTanksWeight(
void)
const;
172 SGPath FindFullPathName(
const SGPath& path)
const override;
173 inline int GetActiveEngine(
void)
const {
return ActiveEngine;}
174 inline bool GetFuelFreeze(
void)
const {
return FuelFreeze;}
176 void SetMagnetos(
int setting);
177 void SetStarter(
int setting);
178 int GetStarter(
void)
const;
179 void SetCutoff(
int setting=0);
180 int GetCutoff(
void)
const;
181 void SetActiveEngine(
int engine);
182 void SetFuelFreeze(
bool f);
183 const FGMatrix33& CalculateTankInertias(
void);
185 struct FGEngine::Inputs in;
188 std::vector<std::shared_ptr<FGEngine>> Engines;
189 std::vector<std::shared_ptr<FGTank>> Tanks;
191 FGColumnVector3 vForces;
192 FGColumnVector3 vMoments;
193 FGColumnVector3 vTankXYZ;
194 FGColumnVector3 vXYZtank_arm;
199 double TotalFuelQuantity;
200 double TotalOxidizerQuantity;
203 void ConsumeFuel(FGEngine* engine);
208 void Debug(
int from)
override;