12#ifndef P6DOFTHRUSTPRODUCEROBJECT_H
13#define P6DOFTHRUSTPRODUCEROBJECT_H
15#include "p6dof_export.h"
26#include "UtVec3dX.hpp"
60 double aDynPress_lbsqft,
61 double aStatPress_lbssqft,
67 double& aFuelBurnRate_pps,
68 double& aFuelBurned_lbs) = 0;
76 double aDynPress_lbsqft,
77 double aStatPress_lbssqft,
83 double& aFuelBurnRate_pps,
84 double& aFuelBurned_lbs) = 0;
104 void SetThrustVectoringYaw_deg(
double aThrustVectoringYaw_deg);
107 void SetThrustVectoringPitch_deg(
double aThrustVectoringPitch_deg);
110 double GetThrustVectoringYaw_deg()
const;
113 double GetThrustVectoringPitch_deg()
const;
122 void SetThrustReverserSetting(
double aThrustReverserSetting);
128 void GetThrustLocation(UtVec3dX& aThrustLocation_ft)
const;
131 void GetThrustInstalledAnglesYPR(UtVec3dX& aThrustYPR_rad)
const;
134 void GetCurrentThrustVectorDirection(UtVec3dX& aDirection)
const;
141 void CalcCurrentThrustVectors();
154 double aDynPress_lbsqft,
155 double aStatPress_lbssqft,
159 double aBeta_rad) = 0;
163 double aDynPress_lbsqft,
164 double aStatPress_lbssqft,
168 double aBeta_rad) = 0;
189 virtual void Ignite(int64_t aIgniteTimeInFrame_nanosec) = 0;
191 virtual void Shutdown(int64_t aTerminateTime_nanosec = 0) = 0;
248 void MakeEngineSmoke(
bool aSmoking);
282 UtVec3dX CalcThrustVectorFromThrust(
double aThrust_lbs);
Definition P6DofFlightControlSystem.hpp:42
Definition P6DofForceAndMomentsObject.hpp:24
Definition P6DofFuelTank.hpp:33
Definition P6DofMassProperties.hpp:26
P6DofObject(P6DofScenario *aScenario)
Definition P6DofObject.cpp:17
Definition P6DofPropulsionSystem.hpp:35
Definition P6DofScenario.hpp:25
virtual void SetControlInputHandles(const P6DofFlightControlSystem *aFlightControls)=0
double mThrustVectorYaw_rad
Definition P6DofThrustProducerObject.hpp:318
void SetThrustReferenceOffsetAttitude(const UtVec3dX &aReferenceLocation_ft, UtVec3dX &aThrustYPR_rad)
Definition P6DofThrustProducerObject.cpp:173
virtual bool MayHaveEngineOperating() const
Definition P6DofThrustProducerObject.hpp:209
bool mContrailing
Definition P6DofThrustProducerObject.hpp:351
virtual void SetThrottlePosition(double aThrottleLeverPosition)=0
double mCurrentThrustFactor
Definition P6DofThrustProducerObject.hpp:344
P6DofThrustProducerObject & operator=(const P6DofThrustProducerObject &other)=delete
UtVec3dX mNominalThrustVectorDirection
Definition P6DofThrustProducerObject.hpp:295
bool mEngineSmoking
Definition P6DofThrustProducerObject.hpp:349
bool mThrustReverserEnabled
Definition P6DofThrustProducerObject.hpp:322
bool mEngineDamageSmokeActivated
Definition P6DofThrustProducerObject.hpp:353
UtVec3dX mReferenceLocation_ft
Definition P6DofThrustProducerObject.hpp:301
P6DofMassProperties * GetMassProperties() const
Definition P6DofThrustProducerObject.hpp:173
double mThrustVectorPitch_rad
Definition P6DofThrustProducerObject.hpp:319
int64_t mIgniteTimeInFrame_nanosec
Definition P6DofThrustProducerObject.hpp:335
double GetThrust_lbs() const
Definition P6DofThrustProducerObject.cpp:116
P6DofForceAndMomentsObject mCurrentThrustFM_lbs_ftlbs
Definition P6DofThrustProducerObject.hpp:307
virtual double GetFuelBurnRate_pph() const =0
virtual double GetThrottlePosition() const =0
virtual std::string GetClassType()=0
bool Contrailing() const
Definition P6DofThrustProducerObject.hpp:228
UtVec3dX mCurrentThrustVectorDirection
Definition P6DofThrustProducerObject.hpp:298
bool mAfterburnerPresent
Definition P6DofThrustProducerObject.hpp:346
void SetThrustVectoringEnabled(bool aThrustVectoringEnabled)
Definition P6DofThrustProducerObject.hpp:98
bool mProducingSmokeTrail
Definition P6DofThrustProducerObject.hpp:352
virtual void Shutdown(int64_t aTerminateTime_nanosec=0)=0
bool EngineSmoking() const
Definition P6DofThrustProducerObject.hpp:215
virtual bool MayContrail() const
Definition P6DofThrustProducerObject.hpp:232
virtual bool Initialize(int64_t aSimTime_nanosec)=0
bool ThrustVectoringEnabled() const
Definition P6DofThrustProducerObject.hpp:101
virtual bool MayProduceSmokeTrail() const
Definition P6DofThrustProducerObject.hpp:242
bool AfterburnerOn() const
Definition P6DofThrustProducerObject.hpp:225
virtual bool ProcessInput(UtInput &aInput)=0
double GetThrustReverserSetting() const
Definition P6DofThrustProducerObject.hpp:125
double GetForwardThrust_lbs() const
Definition P6DofThrustProducerObject.cpp:121
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
void SetParentPropulsionSystem(P6DofPropulsionSystem *aParent)
Definition P6DofThrustProducerObject.cpp:111
virtual void Ignite(int64_t aIgniteTimeInFrame_nanosec)=0
virtual bool MayProduceEngineSmoke() const
Definition P6DofThrustProducerObject.hpp:220
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
P6DofPropulsionSystem * mParentPropulsionSystemPtr
Definition P6DofThrustProducerObject.hpp:289
bool mThrustVectoringEnabled
Definition P6DofThrustProducerObject.hpp:317
int64_t mShutdownFraction_nanosec
Definition P6DofThrustProducerObject.hpp:331
bool mShutdownInProgress
Definition P6DofThrustProducerObject.hpp:327
P6DofMassProperties * mMassPropertiesPtr
Definition P6DofThrustProducerObject.hpp:342
void DeriveFrom(const P6DofThrustProducerObject *aSrc)
Definition P6DofThrustProducerObject.cpp:103
UtVec3dX mThrustInstalledAnglesYPR_rad
Definition P6DofThrustProducerObject.hpp:310
std::string mTypeOfThrustProducer
Definition P6DofThrustProducerObject.hpp:292
bool EngineOperating() const
Definition P6DofThrustProducerObject.hpp:204
static void SetControlInputValue(const P6DofFlightControlSystem *aFlightControls, ThrustControlInputValueData *aControlInput)
Definition P6DofThrustProducerObject.cpp:269
double mThrustReverserSetting
Definition P6DofThrustProducerObject.hpp:323
void SetMassProperties(P6DofMassProperties *aMassProperties)
Definition P6DofThrustProducerObject.hpp:279
bool mAfterburnerOn
Definition P6DofThrustProducerObject.hpp:350
double mThrustOffset_ft
Definition P6DofThrustProducerObject.hpp:314
bool ProducingSmokeTrail() const
Definition P6DofThrustProducerObject.hpp:237
bool ThrustReverserEnabled() const
Definition P6DofThrustProducerObject.hpp:119
double mInOpRefArea_ft2
Definition P6DofThrustProducerObject.hpp:340
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
bool mInOpRefAreaValid
Definition P6DofThrustProducerObject.hpp:339
bool mEngineOperating
Definition P6DofThrustProducerObject.hpp:348
virtual bool AfterburnerIsPresent() const
Definition P6DofThrustProducerObject.hpp:193
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
static void SetControlInputHandle(const P6DofFlightControlSystem *aFlightControls, ThrustControlInputValueData *aControlInput)
Definition P6DofThrustProducerObject.cpp:254
UtVec3dX mThrustLocation_ft
Definition P6DofThrustProducerObject.hpp:304
virtual void CalculateCurrentMassProperties()=0
virtual void SetControlInputValues(const P6DofFlightControlSystem *aFlightControls)=0
void SetThrustReverserEnabled(bool aThrustReverserEnabled)
Definition P6DofThrustProducerObject.hpp:116