12#ifndef P6DOFROCKETLIQUIDPROPELLANTOBJECT_H
13#define P6DOFROCKETLIQUIDPROPELLANTOBJECT_H
15#include "p6dof_export.h"
23#include "UtVec3dX.hpp"
43 bool Initialize(int64_t aSimTime_nanosec)
override;
58 double aDynPress_lbsqft,
59 double aStatPress_lbssqft,
65 double& aFuelBurnRate_pps,
66 double& aFuelBurned_lbs)
override;
74 double aDynPress_lbsqft,
75 double aStatPress_lbssqft,
81 double& aFuelBurnRate_pps,
82 double& aFuelBurned_lbs)
override;
85 void SetFuelTank(
const std::string& aFuelTankName);
92 double GetPercentMaxThrust()
const;
99 double aDynPress_lbsqft,
100 double aStatPress_lbssqft,
104 double aBeta_rad)
override;
108 double aDynPress_lbsqft,
109 double aStatPress_lbssqft,
113 double aBeta_rad)
override;
127 void Ignite(int64_t aIgniteTimeInFrame_nanosec)
override;
129 void Shutdown(int64_t aTerminateTime_nanosec = 0)
override;
140 double aDynPress_lbsqft,
141 double aStatPress_lbssqft,
147 double& aFuelBurnRate_pps,
148 double& aFuelBurned_lbs,
Definition P6DofFlightControlSystem.hpp:42
Definition P6DofForceAndMomentsObject.hpp:24
Definition P6DofFuelTank.hpp:33
P6DofObject * Clone() const
Definition P6DofObject.cpp:24
Definition P6DofRocketLiquidPropellantObject.hpp:29
UtCloneablePtr< UtTable::Curve > mNormalizedThrustAlt
Definition P6DofRocketLiquidPropellantObject.hpp:161
ThrustControlInputValueData * mThrottleSettingPitch
Definition P6DofRocketLiquidPropellantObject.hpp:198
double mMaxThrustSeaLevel
Definition P6DofRocketLiquidPropellantObject.hpp:173
double mCurrentFuelBurnRate_pph
Definition P6DofRocketLiquidPropellantObject.hpp:195
P6DofFuelTank * mCurrentFuelTank
Definition P6DofRocketLiquidPropellantObject.hpp:157
double mMinThrottle
Definition P6DofRocketLiquidPropellantObject.hpp:180
UtCloneablePtr< UtTable::Curve > mThrottleVersusTime
Definition P6DofRocketLiquidPropellantObject.hpp:169
double mMaxMassFlowSeaLevel
Definition P6DofRocketLiquidPropellantObject.hpp:184
std::string GetClassType() override
Definition P6DofRocketLiquidPropellantObject.hpp:39
bool mIsBurning
Definition P6DofRocketLiquidPropellantObject.hpp:189
double mMaxThrottle
Definition P6DofRocketLiquidPropellantObject.hpp:179
double mThrottleLeverPosition
Definition P6DofRocketLiquidPropellantObject.hpp:153
double mBurnTime_Sec
Definition P6DofRocketLiquidPropellantObject.hpp:190
double mMaxMassFlowVacuum
Definition P6DofRocketLiquidPropellantObject.hpp:185
double mNormalizedSpinUp_per_sec
Definition P6DofRocketLiquidPropellantObject.hpp:192
double mLastThrottleLeverPosition
Definition P6DofRocketLiquidPropellantObject.hpp:154
bool MayProduceSmokeTrail() const override
Definition P6DofRocketLiquidPropellantObject.hpp:151
ThrustControlInputValueData * mThrottleSettingYaw
Definition P6DofRocketLiquidPropellantObject.hpp:197
P6DofRocketLiquidPropellantObject(P6DofScenario *aScenario)
Definition P6DofRocketLiquidPropellantObject.cpp:29
double mNormalizedSpinDown_per_sec
Definition P6DofRocketLiquidPropellantObject.hpp:193
UtCloneablePtr< UtTable::Curve > mIspAlt
Definition P6DofRocketLiquidPropellantObject.hpp:165
P6DofRocketLiquidPropellantObject & operator=(const P6DofRocketLiquidPropellantObject &other)=delete
double mEngineThrustPercent
Definition P6DofRocketLiquidPropellantObject.hpp:187
void CalculateCurrentMassProperties() override
Definition P6DofRocketLiquidPropellantObject.hpp:117
bool mGenerateSmokeTrail
Definition P6DofRocketLiquidPropellantObject.hpp:200
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