12#ifndef P6DOFJETENGINEOBJECT_H
13#define P6DOFJETENGINEOBJECT_H
15#include "p6dof_export.h"
24#include "UtVec3dX.hpp"
44 bool Initialize(int64_t aSimTime_nanosec)
override;
59 double aDynPress_lbsqft,
60 double aStatPress_lbssqft,
66 double& aFuelBurnRate_pps,
67 double& aFuelBurned_lbs)
override;
82 double aDynPress_lbsqft,
83 double aStatPress_lbssqft,
89 double& aFuelBurnRate_pps,
90 double& aFuelBurned_lbs)
override;
93 void SetFuelTank(
const std::string& aFuelTankName);
100 double GetEnginePercentRPM()
const;
103 double GetNozzlePosition()
const;
111 double aDynPress_lbsqft,
112 double aStatPress_lbssqft,
116 double aBeta_rad)
override;
120 double aDynPress_lbsqft,
121 double aStatPress_lbssqft,
125 double aBeta_rad)
override;
139 void Ignite(int64_t aIgniteTimeInFrame_nanosec)
override;
141 void Shutdown(int64_t aTerminateTime_nanosec = 0)
override;
152 double aDynPress_lbsqft,
153 double aStatPress_lbssqft,
159 double& aFuelBurnRate_pps,
160 double& aFuelBurned_lbs,
163 bool DetermineIfAfterburnerIsPresent();
Definition P6DofFlightControlSystem.hpp:42
Definition P6DofForceAndMomentsObject.hpp:24
Definition P6DofFuelTank.hpp:33
Definition P6DofJetEngineObject.hpp:31
double mRatedThrustAB_lbs
Definition P6DofJetEngineObject.hpp:191
double mThrottleLeverPosition
Definition P6DofJetEngineObject.hpp:165
UtCloneablePtr< UtTable::Curve > mSpinDownABTable
Definition P6DofJetEngineObject.hpp:209
UtCloneablePtr< UtTable::Table > mIdleThrustAltMachTable
Definition P6DofJetEngineObject.hpp:181
UtCloneablePtr< UtTable::Curve > mIdleThrustTable
Definition P6DofJetEngineObject.hpp:171
UtCloneablePtr< UtTable::Table > mABThrustMachAltTable
Definition P6DofJetEngineObject.hpp:178
P6DofFuelTank * mCurrentFuelTank
Definition P6DofJetEngineObject.hpp:168
double mLastThrottleLeverPosition
Definition P6DofJetEngineObject.hpp:197
void InjectFuel(bool aInjectFuel)
Definition P6DofJetEngineObject.hpp:74
ThrustControlInputValueData * mThrottleSettingPitch
Definition P6DofJetEngineObject.hpp:217
UtCloneablePtr< UtTable::Table > mIdleThrustMachAltTable
Definition P6DofJetEngineObject.hpp:176
double mTSFC_Mil_pph
Definition P6DofJetEngineObject.hpp:186
ThrustControlInputValueData * mThrottleSettingReverser
Definition P6DofJetEngineObject.hpp:215
double mCurrentFuelBurnRate_pph
Definition P6DofJetEngineObject.hpp:211
double mRatedThrustIdle_lbs
Definition P6DofJetEngineObject.hpp:189
void CalculateCurrentMassProperties() override
Definition P6DofJetEngineObject.hpp:129
double mEffectiveTSFC_Idle_pps
Definition P6DofJetEngineObject.hpp:193
UtCloneablePtr< UtTable::Curve > mSpinDownMilTable
Definition P6DofJetEngineObject.hpp:207
ThrustControlInputValueData * mThrottleSettingAB
Definition P6DofJetEngineObject.hpp:214
double mSpinDownAB_per_sec
Definition P6DofJetEngineObject.hpp:204
P6DofJetEngineObject(P6DofScenario *aScenario)
Definition P6DofJetEngineObject.cpp:28
UtCloneablePtr< UtTable::Table > mMilThrustMachAltTable
Definition P6DofJetEngineObject.hpp:177
ThrustControlInputValueData * mThrottleSettingMIL
Definition P6DofJetEngineObject.hpp:213
UtCloneablePtr< UtTable::Curve > mMilThrustTable
Definition P6DofJetEngineObject.hpp:172
std::string GetClassType() override
Definition P6DofJetEngineObject.hpp:41
ThrustControlInputValueData * mThrottleSettingYaw
Definition P6DofJetEngineObject.hpp:216
bool mThrottleLeverPositionSet
Definition P6DofJetEngineObject.hpp:219
double mNozzlePosition
Definition P6DofJetEngineObject.hpp:199
double mEffectiveTSFC_AB_pps
Definition P6DofJetEngineObject.hpp:195
double mTSFC_AB_pph
Definition P6DofJetEngineObject.hpp:187
UtCloneablePtr< UtTable::Table > mABThrustAltMachTable
Definition P6DofJetEngineObject.hpp:183
P6DofJetEngineObject & operator=(const P6DofJetEngineObject &other)=delete
double mTSFC_Idle_pph
Definition P6DofJetEngineObject.hpp:185
double mEffectiveTSFC_Mil_pps
Definition P6DofJetEngineObject.hpp:194
double mEnginePercentRPM
Definition P6DofJetEngineObject.hpp:198
bool mEngineMaySmoke
Definition P6DofJetEngineObject.hpp:223
double mSpinUpMil_per_sec
Definition P6DofJetEngineObject.hpp:201
double mEngineSmokesAboveLevel
Definition P6DofJetEngineObject.hpp:224
UtCloneablePtr< UtTable::Curve > mABThrustTable
Definition P6DofJetEngineObject.hpp:173
bool mInjectFuel
Definition P6DofJetEngineObject.hpp:221
double mSpinUpAB_per_sec
Definition P6DofJetEngineObject.hpp:203
double mRatedThrustMil_lbs
Definition P6DofJetEngineObject.hpp:190
double mSpinDownMil_per_sec
Definition P6DofJetEngineObject.hpp:202
UtCloneablePtr< UtTable::Curve > mSpinUpABTable
Definition P6DofJetEngineObject.hpp:208
UtCloneablePtr< UtTable::Curve > mSpinUpMilTable
Definition P6DofJetEngineObject.hpp:206
UtCloneablePtr< UtTable::Table > mMilThrustAltMachTable
Definition P6DofJetEngineObject.hpp:182
P6DofObject * Clone() const
Definition P6DofObject.cpp:24
Definition P6DofScenario.hpp:25
virtual void SetControlInputHandles(const P6DofFlightControlSystem *aFlightControls)=0
virtual void SetThrottlePosition(double aThrottleLeverPosition)=0
virtual double GetFuelBurnRate_pph() const =0
virtual double GetThrottlePosition() const =0
virtual void Shutdown(int64_t aTerminateTime_nanosec=0)=0
virtual bool Initialize(int64_t aSimTime_nanosec)=0
virtual bool ProcessInput(UtInput &aInput)=0
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 Ignite(int64_t aIgniteTimeInFrame_nanosec)=0
virtual 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, P6DofForceAndMomentsObject &aForceAndMoment, double &aFuelBurnRate_pps, double &aFuelBurned_lbs)=0
void DeriveFrom(const P6DofThrustProducerObject *aSrc)
Definition P6DofThrustProducerObject.cpp:103
P6DofThrustProducerObject(P6DofScenario *aScenario)
Definition P6DofThrustProducerObject.cpp:25
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, P6DofForceAndMomentsObject &aForceAndMoment, double &aFuelBurnRate_pps, double &aFuelBurned_lbs)=0
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 SetControlInputValues(const P6DofFlightControlSystem *aFlightControls)=0