12#ifndef P6DOFROCKETSOLIDPROPELLANTOBJECT_H
13#define P6DOFROCKETSOLIDPROPELLANTOBJECT_H
15#include "p6dof_export.h"
22#include "UtCloneablePtr.hpp"
24#include "UtVec3dX.hpp"
44 bool Initialize(int64_t aSimTime_nanosec)
override;
62 double aDynPress_lbsqft,
63 double aStatPress_lbssqft,
69 double& aFuelBurnRate_pps,
70 double& aFuelBurned_lbs)
override;
78 double aDynPress_lbsqft,
79 double aStatPress_lbssqft,
85 double& aFuelBurnRate_pps,
86 double& aFuelBurned_lbs)
override;
90 double GetPercentMaxThrust()
const;
93 double GetCurrentPropellant_lbs()
const;
99 double GetMaxPropellant_lbs()
const;
103 double aDynPress_lbsqft,
104 double aStatPress_lbssqft,
108 double aBeta_rad)
override;
112 double aDynPress_lbsqft,
113 double aStatPress_lbssqft,
117 double aBeta_rad)
override;
131 void Ignite(int64_t aIgniteTimeInFrame_nanosec)
override;
133 void Shutdown(int64_t aTerminateTime_nanosec = 0)
override;
144 double aDynPress_lbsqft,
145 double aStatPress_lbssqft,
151 double& aFuelBurnRate_pps,
152 double& aFuelBurned_lbs,
155 double Thrust_lbs(
double aBurnTime_Sec,
double aAlt_ft,
double& aMassFlow_pps);
Definition P6DofFlightControlSystem.hpp:42
Definition P6DofForceAndMomentsObject.hpp:24
P6DofObject * Clone() const
Definition P6DofObject.cpp:24
Definition P6DofRocketSolidPropellantObject.hpp:30
void IgniteNow()
Definition P6DofRocketSolidPropellantObject.hpp:54
double mLastThrust_lbs
Definition P6DofRocketSolidPropellantObject.hpp:172
P6DofRocketSolidPropellantObject(P6DofScenario *aScenario)
Definition P6DofRocketSolidPropellantObject.cpp:28
double mIspVacuum
Definition P6DofRocketSolidPropellantObject.hpp:169
UtCloneablePtr< UtTable::Curve > mIspAlt
Definition P6DofRocketSolidPropellantObject.hpp:166
double mRatedThrust_lbs
Definition P6DofRocketSolidPropellantObject.hpp:171
bool MayProduceSmokeTrail() const override
Definition P6DofRocketSolidPropellantObject.hpp:157
std::string GetClassType() override
Definition P6DofRocketSolidPropellantObject.hpp:40
P6DofRocketSolidPropellantObject & operator=(const P6DofRocketSolidPropellantObject &other)=delete
bool mGenerateSmokeTrail
Definition P6DofRocketSolidPropellantObject.hpp:189
UtCloneablePtr< UtTable::Curve > mThrustVacuumVersusTime
Definition P6DofRocketSolidPropellantObject.hpp:162
double mBurnTime_sec
Definition P6DofRocketSolidPropellantObject.hpp:178
ThrustControlInputValueData * mThrottleSettingYaw
Definition P6DofRocketSolidPropellantObject.hpp:186
bool mIsBurning
Definition P6DofRocketSolidPropellantObject.hpp:177
double mPropellantMass_lbs
Definition P6DofRocketSolidPropellantObject.hpp:174
ThrustControlInputValueData * mThrottleSettingPitch
Definition P6DofRocketSolidPropellantObject.hpp:187
double mIspSeaLevel
Definition P6DofRocketSolidPropellantObject.hpp:168
double mMaxPropellantMass_lbs
Definition P6DofRocketSolidPropellantObject.hpp:175
UtCloneablePtr< UtTable::Curve > mThrustSeaLevelVersusTime
Definition P6DofRocketSolidPropellantObject.hpp:161
double mCurrentFuelBurnRate_pph
Definition P6DofRocketSolidPropellantObject.hpp:180
UtVec3dX mPropellantCmLocation_ft
Definition P6DofRocketSolidPropellantObject.hpp:184
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 CalculateCurrentMassProperties()=0
virtual void SetControlInputValues(const P6DofFlightControlSystem *aFlightControls)=0