X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FYASim%2FPropEngine.hpp;h=7b43254707a5a6dcbfdd4d442a270964bab37a68;hb=d66903e9ad63b91182ccc25d9bb82f18f8dd98b6;hp=a0f84dc8c0eab1301edd6b13737713eef038ca26;hpb=e9f4fc5972dc78f668426d3e4f42d121aac16064;p=flightgear.git diff --git a/src/FDM/YASim/PropEngine.hpp b/src/FDM/YASim/PropEngine.hpp index a0f84dc8c..7b4325470 100644 --- a/src/FDM/YASim/PropEngine.hpp +++ b/src/FDM/YASim/PropEngine.hpp @@ -2,24 +2,29 @@ #define _PROPENGINE_HPP #include "Thruster.hpp" +#include "Engine.hpp" namespace yasim { class Propeller; -class PistonEngine; class PropEngine : public Thruster { public: - PropEngine(Propeller* prop, PistonEngine* eng, float moment); + PropEngine(Propeller* prop, Engine* eng, float moment); virtual ~PropEngine(); + void setEngine(Engine* eng) { delete _eng; _eng = eng; } + void setMagnetos(int magnetos); void setAdvance(float advance); void setPropPitch(float proppitch); void setVariableProp(float min, float max); + void setPropFeather(int state); + void setGearRatio(float ratio) { _gearRatio = ratio; } + void setContraPair(bool contra) { _contra = contra; } virtual PropEngine* getPropEngine() { return this; } - virtual PistonEngine* getPistonEngine() { return _eng; } + virtual Engine* getEngine() { return _eng; } virtual Propeller* getPropeller() { return _prop; } // Dynamic output @@ -36,14 +41,17 @@ public: virtual void stabilize(); float getOmega(); + void setOmega (float omega); private: float _moment; Propeller* _prop; - PistonEngine* _eng; + Engine* _eng; bool _variable; + bool _contra; // contra-rotating propeller pair int _magnetos; // 0=off, 1=right, 2=left, 3=both + float _gearRatio; float _advance; // control input, 0-1 float _maxOmega; float _minOmega;