]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/YASim/PropEngine.hpp
latest updates from JSBSim
[flightgear.git] / src / FDM / YASim / PropEngine.hpp
index a0f84dc8c0eab1301edd6b13737713eef038ca26..7b43254707a5a6dcbfdd4d442a270964bab37a68 100644 (file)
@@ -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;