1
0
Fork 0
flightgear/src/FDM/YASim/Thruster.hpp

51 lines
1,006 B
C++
Raw Normal View History

#ifndef _THRUSTER_HPP
#define _THRUSTER_HPP
namespace yasim {
class Thruster {
public:
Thruster();
virtual ~Thruster();
// Static data
void getPosition(float* out);
void setPosition(float* pos);
void getDirection(float* out);
void setDirection(float* dir);
virtual Thruster* clone()=0;
// Controls
void setThrottle(float throttle);
void setMixture(float mixture);
void setPropAdvance(float advance);
// Dynamic output
virtual void getThrust(float* out)=0;
virtual void getTorque(float* out)=0;
virtual void getGyro(float* out)=0;
virtual float getFuelFlow()=0;
// Runtime instructions
void setWind(float* wind);
void setDensity(float rho);
virtual void integrate(float dt)=0;
protected:
void cloneInto(Thruster* out);
float _pos[3];
float _dir[3];
float _throttle;
float _mixture;
float _propAdvance;
float _wind[3];
float _rho;
};
}; // namespace yasim
#endif // _THRUSTER_HPP