16 // Typing info, these are the possible sub-type (or sub-parts)
17 // that a thruster might have. Any might return null. A little
18 // clumsy, but much simpler than an RTTI-based implementation.
19 virtual Jet* getJet() { return 0; }
20 virtual PropEngine* getPropEngine() { return 0; }
21 virtual Propeller* getPropeller() { return 0; }
22 virtual PistonEngine* getPistonEngine() { return 0; }
25 void getPosition(float* out);
26 void setPosition(float* pos);
27 void getDirection(float* out);
28 void setDirection(float* dir);
31 void setThrottle(float throttle);
32 void setMixture(float mixture);
33 void setStarter(bool starter);
36 virtual bool isRunning()=0;
37 virtual bool isCranking()=0;
38 virtual void getThrust(float* out)=0;
39 virtual void getTorque(float* out)=0;
40 virtual void getGyro(float* out)=0;
41 virtual float getFuelFlow()=0;
43 // Runtime instructions
44 void setWind(float* wind);
45 void setAir(float pressure, float temp);
46 virtual void init() {}
47 virtual void integrate(float dt)=0;
48 virtual void stabilize()=0;
55 bool _starter; // true=engaged, false=disengaged
64 #endif // _THRUSTER_HPP