12#ifndef WSFSIXDOFENGINE_HPP
13#define WSFSIXDOFENGINE_HPP
15#include "wsf_six_dof_export.h"
23#include "UtVec3dX.hpp"
59 double aDynPress_lbsqft,
60 double aStatPress_lbssqft,
64 double aBeta_rad) = 0;
67 double aDynPress_lbsqft,
68 double aStatPress_lbssqft,
72 double aBeta_rad) = 0;
80 double aDynPress_lbsqft,
81 double aStatPress_lbssqft,
87 double& aFuelBurnRate_pps,
88 double& aFuelBurned_lbs);
96 double aDynPress_lbsqft,
97 double aStatPress_lbssqft,
103 double& aFuelBurnRate_pps,
104 double& aFuelBurned_lbs);
111 virtual bool SetFuelTank(
const std::string& aFuelTankName);
124 virtual void Ignite(int64_t aIgniteTimeInFrame_nanosec) = 0;
126 virtual void Shutdown(int64_t aTerminateTime_nanosec = 0) = 0;
182 double aDynPress_lbsqft,
183 double aStatPress_lbssqft,
189 double& aFuelBurnRate_pps,
190 double& aFuelBurned_lbs,
191 bool aUpdateData) = 0;
Definition WsfSixDOF_Engine.hpp:35
virtual bool MayProduceEngineSmoke() const
Definition WsfSixDOF_Engine.hpp:139
virtual void CalculateThrust(double aDeltaT_sec, double aAlt_ft, double aDynPress_lbsqft, double aStatPress_lbssqft, double aSpeed_fps, double aMach, double aAlpha_rad, double aBeta_rad, double &aForce_lbs, double &aFuelBurnRate_pps, double &aFuelBurned_lbs, bool aUpdateData)=0
double GetThrust_lbs() const
Definition WsfSixDOF_Engine.hpp:56
virtual void Shutdown(int64_t aTerminateTime_nanosec=0)=0
virtual bool MayHaveEngineOperating() const
Definition WsfSixDOF_Engine.hpp:134
bool mProducingSmokeTrail
Definition WsfSixDOF_Engine.hpp:220
bool mAfterburnerOn
Definition WsfSixDOF_Engine.hpp:219
virtual Engine * Clone() const =0
bool mEngineOperating
Definition WsfSixDOF_Engine.hpp:216
bool AfterburnerOn() const
Definition WsfSixDOF_Engine.hpp:158
void MakeEngineSmoke(bool aSmoking)
Definition WsfSixDOF_Engine.hpp:172
virtual void Ignite(int64_t aIgniteTimeInFrame_nanosec)=0
Engine & operator=(const Engine &other)=delete
virtual double GetMaximumPotentialThrust_lbs(double aAlt_ft, double aDynPress_lbsqft, double aStatPress_lbssqft, double aSpeed_fps, double aMach, double aAlpha_rad, double aBeta_rad)=0
virtual void SetThrottlePosition(double aThrottleLeverPosition)=0
virtual bool MayProduceSmokeTrail() const
Definition WsfSixDOF_Engine.hpp:153
const FuelTank * GetFuelTank() const
Definition WsfSixDOF_Engine.hpp:114
Engine(ThrustProducerObject *aParentObject)
Definition WsfSixDOF_Engine.cpp:16
ThrustProducerObject * GetParentThrustProducer()
Definition WsfSixDOF_Engine.hpp:49
virtual bool AfterburnerIsPresent() const
Definition WsfSixDOF_Engine.hpp:175
bool Contrailing() const
Definition WsfSixDOF_Engine.hpp:161
bool CheckCurrentFuelTank()
Definition WsfSixDOF_Engine.cpp:99
std::string mTypeOfEngine
Definition WsfSixDOF_Engine.hpp:196
void CalculateThrust(double aDeltaT_sec, double aAlt_ft, double aDynPress_lbsqft, double aStatPress_lbssqft, double aSpeed_fps, double aMach, double aAlpha_rad, double aBeta_rad, double &aForce_lbs, double &aFuelBurnRate_pps, double &aFuelBurned_lbs)
Definition WsfSixDOF_Engine.cpp:47
bool mEngineDamageSmokeActivated
Definition WsfSixDOF_Engine.hpp:221
virtual bool Initialize(int64_t aSimTime_nanosec)=0
bool mShutdownInProgress
Definition WsfSixDOF_Engine.hpp:206
int64_t mShutdownFraction_nanosec
Definition WsfSixDOF_Engine.hpp:210
FuelTank * mCurrentFuelTank
Definition WsfSixDOF_Engine.hpp:200
int64_t mIgniteTimeInFrame_nanosec
Definition WsfSixDOF_Engine.hpp:214
double mCurrentThrust_lbs
Definition WsfSixDOF_Engine.hpp:202
bool mEngineSmoking
Definition WsfSixDOF_Engine.hpp:222
bool mContrailing
Definition WsfSixDOF_Engine.hpp:217
virtual ~Engine()=default
bool mAfterburnerPresent
Definition WsfSixDOF_Engine.hpp:218
virtual bool SetFuelTank(const std::string &aFuelTankName)
Definition WsfSixDOF_Engine.cpp:119
virtual double GetMinimumPotentialThrust_lbs(double aAlt_ft, double aDynPress_lbsqft, double aStatPress_lbssqft, double aSpeed_fps, double aMach, double aAlpha_rad, double aBeta_rad)=0
virtual void DeriveFrom(const Engine *aSrc)
Definition WsfSixDOF_Engine.cpp:21
virtual bool ProcessInput(UtInput &aInput, TypeManager *aTypeManager)=0
bool ProducingSmokeTrail() const
Definition WsfSixDOF_Engine.hpp:148
void SetParentThrustProducer(ThrustProducerObject *aThrustProducerPtr)
Definition WsfSixDOF_Engine.hpp:50
ThrustProducerObject * mParentThrustProducerPtr
Definition WsfSixDOF_Engine.hpp:193
bool EngineOperating() const
Definition WsfSixDOF_Engine.hpp:129
void UpdateThrust(double aDeltaT_sec, double aAlt_ft, double aDynPress_lbsqft, double aStatPress_lbssqft, double aSpeed_fps, double aMach, double aAlpha_rad, double aBeta_rad, double &aForce_lbs, double &aFuelBurnRate_pps, double &aFuelBurned_lbs)
Definition WsfSixDOF_Engine.cpp:73
virtual bool MayContrail() const
Definition WsfSixDOF_Engine.hpp:143
virtual double GetFuelBurnRate_pph() const =0
bool EngineSmoking() const
Definition WsfSixDOF_Engine.hpp:167
virtual double GetThrottlePosition() const =0
Definition WsfSixDOF_FuelTank.hpp:35
Definition WsfSixDOF_MassProperties.hpp:29
Definition WsfSixDOF_ThrustProducerObject.hpp:35
Definition WsfSixDOF_TypeManager.hpp:32
Definition WsfSA_Processor.hpp:35
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32