-/*******************************************************************************
+/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Header: FGThruster.h
Author: Jon S. Berndt
--------------------------------------------------------------------------------
08/24/00 JSB Created
-********************************************************************************
-COMMENTS, REFERENCES, and NOTES
-********************************************************************************
-
-********************************************************************************
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SENTRY
-*******************************************************************************/
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
#ifndef FGTHRUSTER_H
#define FGTHRUSTER_H
-/*******************************************************************************
+/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
INCLUDES
-*******************************************************************************/
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
#include "FGForce.h"
+#include "FGConfigFile.h"
+#include "FGPropertyManager.h"
+#include <string>
+
+/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+DEFINITIONS
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
+
+#define ID_THRUSTER "$Id$"
+
+/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+FORWARD DECLARATIONS
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
+
+namespace JSBSim {
+
+/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+CLASS DOCUMENTATION
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
-/*******************************************************************************
+/** Base class for specific thrusting devices such as propellers, nozzles, etc.
+ @author Jon Berndt
+ @version $Id$
+ */
+
+/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
CLASS DECLARATION
-*******************************************************************************/
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
class FGThruster : public FGForce {
public:
+ /// Constructor
FGThruster(FGFDMExec *FDMExec);
- ~FGThruster(void);
-
- enum Type {ttNozzle, ttRotor, ttPropeller};
-
- virtual void Calculate(void);
+ FGThruster(FGFDMExec *FDMExec, FGConfigFile *Eng_cfg, int num );
+ /// Destructor
+ virtual ~FGThruster();
+
+ enum eType {ttNozzle, ttRotor, ttPropeller, ttDirect};
+
+ virtual double Calculate(double tt) {
+ Thrust = tt;
+ vFn(1) = Thrust * cos(ReverserAngle);
+ return vFn(1);
+ }
+ void SetName(string name) {Name = name;}
+ virtual void SetRPM(double rpm) {};
+ virtual double GetPowerRequired(void) {return 0.0;}
+ virtual void SetdeltaT(double dt) {deltaT = dt;}
+ double GetThrust(void) {return Thrust;}
+ eType GetType(void) {return Type;}
+ string GetName(void) {return Name;}
+ virtual double GetRPM(void) { return 0.0; };
+ double GetGearRatio(void) {return GearRatio; }
+ virtual string GetThrusterLabels(int id, string delimeter);
+ virtual string GetThrusterValues(int id, string delimeter);
+ void SetReverserAngle(double radians) { ReverserAngle = radians; }
+ double GetReverserAngle(void) {return ReverserAngle;}
+
+
+ inline void SetThrustCoefficient(double ct) { ThrustCoeff = ct; }
+
+protected:
+ eType Type;
+ string Name;
+ double Thrust;
+ double PowerRequired;
+ double deltaT;
+ double GearRatio;
+ double ThrustCoeff;
+ double ReverserAngle;
+ int EngineNum;
+ FGPropertyManager* PropertyManager;
+ virtual void Debug(int from);
};
-
-/******************************************************************************/
+}
+//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#endif
+