1 #ifndef _PISTONENGINE_HPP
2 #define _PISTONENGINE_HPP
8 class PistonEngine : public Engine {
10 virtual PistonEngine* isPistonEngine() { return this; }
12 // Initializes an engine from known "takeoff" parameters.
13 PistonEngine(float power, float spd);
14 void setTurboParams(float mul, float maxMP);
15 void setDisplacement(float d);
16 void setCompression(float c);
21 float getMaxPower(); // max sea-level power
22 float getBoost() { return _boostPressure; }
23 float getOilTemp() { return _oilTemp; }
25 virtual void calc(float pressure, float temp, float speed);
26 virtual void stabilize();
27 virtual void integrate(float dt);
28 virtual float getTorque();
29 virtual float getFuelFlow();
32 // Static configuration:
33 float _power0; // reference power setting
34 float _omega0; // " engine speed
35 float _rho0; // " manifold air density
36 float _f0; // "ideal" fuel flow at P0/omega0
37 float _mixCoeff; // fuel flow per omega at full mixture
38 float _turbo; // (or super-)charger pressure multiplier
39 float _maxMP; // wastegate setting
40 float _displacement; // piston stroke volume
41 float _compression; // compression ratio (>1)
43 // Runtime state/output:
55 #endif // _PISTONENGINE_HPP