15#include "p6dof_export.h"
32#include "UtCallback.hpp"
34#include "UtEntity.hpp"
36#include "UtQuaternion.hpp"
38#include "UtVec3dX.hpp"
83 void Update(
double aSimTime_sec);
84 void Update(int64_t aSimTime_nanosec);
85 void UpdateObject(int64_t aSimTime_nanosec);
106 void CalculateCurrentMassProperties();
113 void SetCurrentWeight_lbs(
double aWeight_lbs);
117 void ShiftCurrentCg_ft(UtVec3dX aDeltaCg_ft);
144 void SetNamePrefix(
const std::string& aPrefixName);
176 void GetStartingLatLon(
double& aStartingLat,
double& aStartingLon)
const;
179 double GetLat()
const;
182 double GetLon()
const;
188 double GetAlt_m()
const;
191 double GetAltitudeMSL_ft()
const;
194 double GetApogee_km()
const;
197 double GetRangeSinceStart_km()
const;
200 UtVec3dX GetLocationWCS()
const;
203 void GetLocationWCS(
double& aWcsPosX_m,
double& aWcsPosY_m,
double& aWcsPosZ_m)
const;
206 void GetLocationSpherical(
double& aSphericalPosX_m,
double& aSphericalPosY_m,
double& aSphericalPosZ_m)
const;
209 void SetLocationLLA(
double aLat,
double aLon,
double aAlt_m);
212 void SetLocationWCS(
double aWcsPosX_m,
double aWcsPosY_m,
double aWcsPosZ_m);
216 void SetPrepositionAlt_m(
double aAltitude_m);
219 bool UsingSphericalEarth()
const;
226 double GetKCAS()
const;
227 double GetKIAS()
const;
230 double GetKTAS()
const;
233 double GetMach()
const;
236 double GetVertSpeed_fpm()
const;
239 double GetSpeed_fps()
const;
242 void GetVelocityWCS(
double& aWcsVelX_mps,
double& aWcsVelY_mps,
double& aWcsVelZ_mps)
const;
248 UtVec3dX GetVelocityNED_mps()
const;
251 void SetVelocityWCS(
double aWcsVelX_mps,
double aWcsVelY_mps,
double aWcsVelZ_mps);
254 void SetVelocitySpherical(
double aSphericalX_mps,
double aSphericalY_mps,
double aSphericalZ_mps);
257 void SetVelocityNED(
double aVelNorth_mps,
double aVelEast_mps,
double aVelDown_mps);
264 double GetNx_g()
const;
267 double GetNy_g()
const;
270 double GetNz_g()
const;
273 UtVec3dX GetAccelNED_mps2()
const;
280 double GetHeading_rad()
const;
283 double GetHeading_deg()
const;
286 double GetPitch_rad()
const;
289 double GetPitch_deg()
const;
292 double GetRoll_rad()
const;
295 double GetRoll_deg()
const;
298 double GetYawRate_dps()
const;
301 double GetPitchRate_dps()
const;
304 double GetRollRate_dps()
const;
307 double GetAlpha_rad()
const;
310 double GetAlpha_deg()
const;
313 double GetBeta_rad()
const;
316 double GetBeta_deg()
const;
319 double GetAlphaDot_rps()
const;
322 double GetAlphaDot_dps()
const;
325 double GetBetaDot_rps()
const;
328 double GetBetaDot_dps()
const;
331 UtVec3dX GetCg()
const;
334 double GetFlightPathAngle_rad()
const;
337 void GetOrientationWCS(
double& aWcsYaw_rad,
double& aWcsPitch_rad,
double& aWcsRoll_rad)
const;
340 void GetAttitudeNED(
double& aHeading,
double& aPitch,
double& aRoll);
343 void SetOrientationWCS(
double aWcsYaw_rad,
double aWcsPitch_rad,
double aWcsRoll_rad);
346 void SetAttitudeNED(
double aHeading_rad,
double aPitch_rad,
double aRoll_rad);
349 void GetBodyRates_rps(
double& xAxis_rps,
double& yAxis_rps,
double& zAxis_rps)
const;
352 void ZeroBodyRates();
355 void GetBodyAngularAccel_rps2(
double& xAxis_rps2,
double& yAxis_rps2,
double& zAxis_rps2)
const;
358 bool StallWarningAlert()
const;
366 void SetLastSimTime(
double aSimTime_sec,
bool aIncludeSubobjects =
false);
375 unsigned short GetObjectGraphicalType()
const;
382 void SetObjectGraphicalType(
int aAltType);
397 void SetDestroyed(
double aPitchInputModifier,
398 double aRollInputModifier,
400 bool aEngineIsSmoking,
401 bool aIsTrailingSmoke);
403 bool GetIsDestroyed();
416 bool AnEngineIsOperating()
const;
417 bool AnEngineIsSmoking()
const;
418 bool AnEngineHasAfterburnerOn()
const;
419 bool ContrailTrailingEffectPresent()
const;
420 bool RocketSmokeTrailingEffectPresent()
const;
421 bool DamageSmokeTrailingEffectPresent()
const;
422 bool FlamesArePresent()
const;
424 void MakeEnginesSmoke();
425 void ActivateDamageSmokeTrailingEffect(
bool aEffectActive);
426 void ActivateFlamesEffect(
bool aFlamesPresent);
430 bool WithinContrailAltitudeBand(
double aAltitude_ft)
const;
439 void CalculateAeroBodyFM(UtVec3dX& aLiftBodyVector_lbs,
440 UtVec3dX& aDragBodyVector_lbs,
441 UtVec3dX& aSideForceBodyVector_lbs,
442 UtVec3dX& aMoment_ftlbs,
443 UtVec3dX& aReferencePt_ft);
447 void CalculateAlphaAtSpecifiedGLoad_deg(
double aGLoad,
double& aAlpha_deg);
451 void CalculateStickBackForZeroMoment(
double aAlpha_deg,
double& aStickBack);
455 void CalculateStickBackForZeroMoment(
double aAlpha_deg,
double aMach,
double& aStickBack);
459 void CalculateBetaAtSpecifiedGLoad_deg(
double aGLoad,
double& aBeta_deg);
464 void CalculateControlsAeroCoefficientVectors(
double aMach,
473 double CalculateControlsCLArea(
double aMach,
double aAlpha_rad,
double aStickBack);
477 double CalculateControlsCdArea(
double aMach,
double aAlpha_rad,
double aStickBack);
480 void CalculateCmAreaForCoreAndControls(
double aMach,
484 double& aThrustProduced_lbs,
486 double& aControlsCm);
489 void CalculateCLAreaForCoreAndControls(
double aMach,
double aAlpha_rad,
double aStickBack,
double& aCoreCL,
double& aControlsCL);
492 void CalculateCdAreaForCoreAndControls(
double aMach,
double aAlpha_rad,
double aStickBack,
double& aCoreCd,
double& aControlsCd);
496 void CalculateTotalCmAndCL(
double aMach,
double aAlpha_rad,
double aStickBack,
double& aTotalCm,
double& aTotalCL);
502 void SetActiveAeroObject(
const std::string& aName);
511 double GetWingArea_sqft()
const;
514 double GetRefArea_sqft()
const;
517 double GetLift_lbs()
const;
520 double GetDrag_lbs()
const;
523 double GetSideForce_lbs()
const;
526 double GetThrustMagnitude_lbs()
const;
529 double GetYawMoment_ftlbs()
const;
532 double GetPitchMoment_ftlbs()
const;
535 double GetRollMoment_ftlbs()
const;
538 double GetDynamicPressure_psf()
const;
541 double GetStaticPressure_psf()
const;
545 double MaxPotentialManeuverGLoad()
const;
552 void AdjustForParentInducedEffects();
553 void ImpartSeparationEffects();
554 void GetPositionRelativeToParent(UtVec3dX& aPosRelToParent_m, UtVec3dX& aAngRelToParentYPR_rad);
562 void SetYawRelToParent_rad(
double aYawAngle_rad);
563 void SetPitchRelToParent_rad(
double aYawAngle_rad);
564 void SetRollRelToParent_rad(
double aYawAngle_rad);
571 void AddSubObject(std::unique_ptr<P6DofVehicle> aSubObject);
575 P6DofVehicle* GetSubobjectByName(
const std::string& aSubobjectName)
const;
578 const std::list<ut::CloneablePtr<P6DofVehicle>>& GetSubobjectList()
const;
582 bool JettisonSubobject(
const std::string& aSubobjectName, int64_t aSimTime_nanosec);
583 bool JettisonSubobject(
P6DofVehicle* aSubObject, int64_t aSimTime_nanosec);
588 std::unique_ptr<P6DofVehicle> DirectJettisonOfSubobject(
P6DofVehicle* aSubobject,
double aSimTime_sec);
595 void CalculatePropulsionFM(int64_t aSimTime_nanosec,
598 UtVec3dX& aInertialPropulsionVector_lbs,
599 UtVec3dX& aPropulsionMoment_ftlbs);
603 void UpdateFuelBurn(int64_t aSimTime_nanosec,
double aDeltaT_sec,
P6DofKinematicState& aState);
609 bool HasAfterburner()
const;
612 double GetRemainingFuelPercent()
const;
616 double GetMaximumPotentialThrust_lbs()
const;
619 double GetMinimumPotentialThrust_lbs()
const;
623 double GetCurrentThrust_lbs();
627 double GetCurrentForwardThrust_lbs();
632 double GetNormalizedMilitaryThrust()
const;
637 double GetNormalizedAfterburnerThrust()
const;
643 double GetNormalizedTotalThrust()
const;
646 double GetTotalVehicleFuelFlow_pph()
const;
649 double GetTotalFuelFlow_pph()
const;
652 P6DofFuelTank* GetFuelTankByName(
const std::string& aName)
const;
655 P6DofFuelTank* GetFuelTankByName(
const std::string& aName,
const P6DofVehicle* aCallingObject,
int aCallingLevel = 0)
const;
659 double GetTotalFuelTankCapacity_lbs()
const;
664 double GetCurrentTotalFuelTankQuantity_lbs()
const;
668 double GetInternalFuelTankCapacity_lbs()
const;
672 double GetCurrentInternalFuelTankQuantity_lbs()
const;
677 double GetExternalFuelTankCapacity_lbs()
const;
682 double GetCurrentExternalFuelTankQuantity_lbs()
const;
690 void AddFuelQuantity_lbs(
double aFuelToAdd_lbs);
696 void SetFuelInTank_lbs(
const std::string& aTankName,
double aFuel_lbs);
699 void EmptyAllInternalTanks();
702 void EmptyAllExternalTanks();
706 int GetNumberOfExternalTanks()
const;
714 int aCallingLevel = 0)
const;
717 void IgniteObject(int64_t aIgniteTimeInFrame_nanosec);
721 void ShutdownObject(int64_t aTerminateTime_nanosec = 0);
725 void TerminateThrust(int64_t aTerminateTime_nanosec = 0);
728 bool IsProducingThrust()
const;
731 void EnableThrustVectoring(
bool aEnableThrustVectoring);
735 bool AddFuelTransfer(std::string aFuelTransferName, std::string aSourceTankName, std::string aTargetTankName);
738 bool RemoveFuelTransfer(std::string aFuelTransferName);
742 bool SetFuelFeed(std::string aEngineName, std::string aFuelTankName);
746 bool SetFuelFeed(std::string aFuelTankName);
775 bool HasFlaps()
const;
777 size_t GetInputHandle(
const std::string& aInputName)
const;
778 bool GetBooleanInput(
size_t aHandle)
const;
779 bool GetLastBooleanInput(
size_t aHandle)
const;
782 void RestoreControlSurfaceAngles(std::vector<P6DofFlightControlSystem::ControlSurfaceElement*>& aControlsList,
783 std::vector<double>& aAngleList);
786 void EnableControls(
bool aEnabled);
789 bool ControlsEnabled()
const;
792 bool AutopilotAvailable()
const;
797 bool UseSimpleYawDamper()
const;
800 double GetAngleAileronLeft()
const;
801 double GetAngleAileronRight()
const;
802 double GetAngleFlapLeft()
const;
803 double GetAngleFlapRight()
const;
804 double GetAngleSpoilerLeft()
const;
805 double GetAngleSpoilerRight()
const;
806 double GetAngleStabilizerLeft()
const;
807 double GetAngleStabilizerRight()
const;
808 double GetAngleElevator()
const;
809 double GetAngleRudderLeft()
const;
810 double GetAngleRudder()
const;
811 double GetAngleRudderRight()
const;
812 double GetAngleSpeedBrake()
const;
813 double GetAngleLandingGear()
const;
814 double GetAngleLandingGearNose()
const;
815 double GetAngleLandingGearMainLeft()
const;
816 double GetAngleLandingGearMainRight()
const;
819 double GetNormalizedAileronLeft()
const;
820 double GetNormalizedAileronRight()
const;
821 double GetNormalizedFlapLeft()
const;
822 double GetNormalizedFlapRight()
const;
823 double GetNormalizedSpoilerLeft()
const;
824 double GetNormalizedSpoilerRight()
const;
825 double GetNormalizedStabilizerLeft()
const;
826 double GetNormalizedStabilizerRight()
const;
827 double GetNormalizedElevator()
const;
828 double GetNormalizedRudderLeft()
const;
829 double GetNormalizedRudder()
const;
830 double GetNormalizedRudderRight()
const;
831 double GetNormalizedSpeedBrake()
const;
832 double GetNormalizedLandingGear()
const;
833 double GetNormalizedLandingGearNose()
const;
834 double GetNormalizedLandingGearMainLeft()
const;
835 double GetNormalizedLandingGearMainRight()
const;
838 bool AileronLeftValid()
const;
839 bool AileronRightValid()
const;
840 bool FlapLeftValid()
const;
841 bool FlapRightValid()
const;
842 bool SpoilerLeftValid()
const;
843 bool SpoilerRightValid()
const;
844 bool StabilizerLeftValid()
const;
845 bool StabilizerRightValid()
const;
846 bool ElevatorValid()
const;
847 bool RudderLeftValid()
const;
848 bool RudderValid()
const;
849 bool RudderRightValid()
const;
850 bool SpeedBrakeValid()
const;
851 bool LandingGearValid()
const;
852 bool LandingGearNoseValid()
const;
853 bool LandingGearMainLeftValid()
const;
854 bool LandingGearMainRightValid()
const;
855 bool ThrottleValid()
const;
858 double GetStickRightInput()
const;
859 double GetStickBackInput()
const;
860 double GetRudderRightInput()
const;
861 double GetThrottleInput()
const;
862 double GetSpeedBrakeInput()
const;
863 double GetSpoilerInput()
const;
864 double GetLandingGearInput()
const;
870 void CalculateLandingGearFM(int64_t aSimTime_nanosec,
871 const UtVec3dX& aNonLandingGearTotalForceVecInertial_lbs,
872 UtVec3dX& aInertialTotalGearVector_lbs,
873 UtVec3dX& aTotalGearMoment_ftlbs);
876 void SetLandingGearPositionAtStart(
double aPosition);
880 void ForceLandingGearPositionInstantly(std::string aLandingGearControlSurfaceHandleName,
double aPosition);
883 void ForceLandingGearUpInstantly(
const std::string& aLandingGearControlSurfaceHandleName);
886 void ForceLandingGearDownInstantly(
const std::string& aLandingGearControlSurfaceHandleName);
898 P6DofSequencer* GetSequencerByName(
const std::string& aName)
const;
902 bool ActivateSequencer(
const std::string& aSequencerName);
908 bool ActivateSequencer(
const std::string& aSubobjectName,
const std::string& aSequencerName);
913 bool PendingEventTimes_nanosec(int64_t aSimTime_nanosec, std::set<int64_t>& aEventTime_nanosec);
918 bool PendingSequencerEventTimes_nanosec(int64_t aSimTime_nanosec, std::set<int64_t>& aEventTime_nanosec);
923 bool PendingGuidanceControlEventTimes_nanosec(int64_t aSimTime_nanosec, std::set<int64_t>& aEventTime_nanosec);
926 double GetLastNx_g()
const;
929 double GetLastNy_g()
const;
932 double GetLastNz_g()
const;
935 double GetLastDynamicPressure_psf()
const;
938 double GetLastStaticPressure_psf()
const;
942 double GetLastAltitudeMSL_ft()
const;
957 void TestingUpdate(
double aAltitude_ft,
959 double aPitchAngle_deg,
961 double aThrottleForward,
985 void ZeroKinematicsDuringTesting();
987 void ComputeWashInConditions(
double aSimTime_sec);
1019 const UtVec3dX& aAngularRates_rps,
1020 UtVec3dX& aAeroMoment,
1024 double& aLiftFactor);
1027 double aDeltaTime_sec,
1036 double aDynPress_lbsqft,
1037 double aStatPress_lbssqft,
1043 double& aFuelBurnRate_pps,
1044 double& aFuelBurned_lbs);
1049 double aDynPress_lbsqft,
1050 double aStatPress_lbssqft,
1056 double& aFuelBurnRate_pps,
1057 double& aFuelBurned_lbs);
1062 double aDynPress_lbsqft,
1063 double aStatPress_lbssqft,
1069 double& aFuelBurnRate_pps,
1070 double& aFuelBurned_lbs,
1076 double& aCurrentTotalFuel_lbs,
1077 double& aMaxTotalFuel_lbs);
aObjectPtr Update(simTime)
aObjectPtr GetVelocityWCS(vel.GetData())
pointPtr SetLocationWCS(finalPos.GetData())
Definition P6DofAeroCoreObject.hpp:32
Definition P6DofFlightControlSystem.hpp:42
Definition P6DofForceAndMomentsObject.hpp:24
Definition P6DofFuelTank.hpp:33
Definition P6DofGraphicalSupport.hpp:24
Definition P6DofIntegrator.hpp:28
Definition P6DofKinematicState.hpp:31
Definition P6DofLandingGear.hpp:33
Definition P6DofMassProperties.hpp:26
Definition P6DofObject.hpp:24
P6DofObject(P6DofScenario *aScenario)
Definition P6DofObject.cpp:17
P6DofObject * Clone() const
Definition P6DofObject.cpp:24
virtual void SetParentVehicle(P6DofVehicle *aParentVehicle)
Definition P6DofObject.hpp:39
Definition P6DofPilotManager.hpp:38
Definition P6DofPilotObject.hpp:37
Definition P6DofPropulsionSystem.hpp:35
Definition P6DofScenario.hpp:25
Definition P6DofSequencer.hpp:28
Definition P6DofSizeFactor.hpp:24
Definition P6DofThrustProducerObject.hpp:34
Definition P6DofTypeManager.hpp:30
Definition P6DofVehicleType.hpp:41
Definition P6DofVehicle.hpp:53
std::string GetBaseName() const
Definition P6DofVehicle.hpp:138
P6DofPilotManager * GetPilotManager() const
Definition P6DofVehicle.hpp:753
size_t mHandleSpoilerLeft
Definition P6DofVehicle.hpp:1206
bool mIsDestroyed
Definition P6DofVehicle.hpp:1197
P6DofLandingGear * GetLandingGear() const
Definition P6DofVehicle.hpp:892
void FindParts()
Definition P6DofVehicle.cpp:5469
ut::CloneablePtr< P6DofPropulsionSystem > mPropulsionObjPtr
Definition P6DofVehicle.hpp:1121
size_t mHandleAileronLeft
Definition P6DofVehicle.hpp:1202
double GetLastUpdateTime_sec() const
Definition P6DofVehicle.hpp:154
size_t mHandleFlapLeft
Definition P6DofVehicle.hpp:1204
int mNumTracks
Definition P6DofVehicle.hpp:1193
int64_t mStepSize_nanosec
Definition P6DofVehicle.hpp:1126
double GetNominalEstimateMaxAlpha_deg() const
Definition P6DofVehicle.hpp:965
UtVec3dX mAngRelToParentYPR_rad
Definition P6DofVehicle.hpp:1109
void MakeSyntheticPilotActive()
bool mOnFire
Definition P6DofVehicle.hpp:1144
void UpdatePropulsionFuelBurn(double aSimTime_sec, double aDeltaTime_sec, P6DofKinematicState &aState)
Definition P6DofVehicle.cpp:3104
void CalculateWashIn(double aSimTime_sec)
Definition P6DofVehicle.cpp:642
std::string GetActiveAeroObjectName() const
Definition P6DofVehicle.hpp:508
double mMaxAlpha_deg
Definition P6DofVehicle.hpp:1157
UtVec3dX mTargetWCSLocation_m
Definition P6DofVehicle.hpp:1165
double GetNormalizedSurfaceAngle(size_t aHandle) const
Definition P6DofVehicle.cpp:5459
void SetTheLastValues()
Definition P6DofVehicle.cpp:3248
double GetLifeTime_sec() const
Definition P6DofVehicle.hpp:158
double GetNominalEstimateMaxBeta_deg() const
Definition P6DofVehicle.hpp:967
void SetWashInInitConditions(bool aUseWashInInitConditions)
Definition P6DofVehicle.hpp:77
double GetNominalEstimateMaxMach() const
Definition P6DofVehicle.hpp:964
bool mTargetWCSLocationValid
Definition P6DofVehicle.hpp:1166
int64_t mLifeTime_nanosec
Definition P6DofVehicle.hpp:1146
int64_t mLastSimTime_nanosec
Definition P6DofVehicle.hpp:1125
std::string mDerivedFromObjectName
Definition P6DofVehicle.hpp:1104
void SetTestingIgnoreAllCrashes(bool aValue)
Definition P6DofVehicle.hpp:971
bool mDamageSmokeTrailingEffect
Definition P6DofVehicle.hpp:1195
void SetSizeFactorEnabled(bool aSetting)
Definition P6DofVehicle.hpp:96
size_t mHandleSpeedBrake
Definition P6DofVehicle.hpp:1214
double GetTimeOfFlight_sec() const
Definition P6DofVehicle.hpp:161
bool mAfterburnerOn
Definition P6DofVehicle.hpp:1142
bool mIsCaptive
Definition P6DofVehicle.hpp:1106
void SetSphericalEarthFlagOnSubobjects(bool aSetting)
Definition P6DofVehicle.cpp:3024
bool mSmoking
Definition P6DofVehicle.hpp:1143
bool mLastIsCaptive
Definition P6DofVehicle.hpp:1138
size_t mHandleElevator
Definition P6DofVehicle.hpp:1210
void SetBaseName(const std::string &aName)
Definition P6DofVehicle.hpp:147
std::string GetDerivedFromObjectName() const
Definition P6DofVehicle.hpp:141
double mPrepositionLat
Definition P6DofVehicle.hpp:1187
size_t mHandleStabilizerRight
Definition P6DofVehicle.hpp:1209
bool mFixedObject
Definition P6DofVehicle.hpp:1151
P6DOF::TrackData mTrackData[10]
Definition P6DofVehicle.hpp:1192
ut::CloneablePtr< P6DofAeroCoreObject > mAeroCoreObjPtr
Definition P6DofVehicle.hpp:1115
void CopyDataFromParent()
Definition P6DofVehicle.cpp:2109
std::list< ut::CloneablePtr< P6DofAeroMovableObject > > mAeroPartList
Definition P6DofVehicle.hpp:1116
const P6DofIntegrator * mIntegratorPtr
Definition P6DofVehicle.hpp:1132
double mMaxBeta_deg
Definition P6DofVehicle.hpp:1159
std::list< ut::CloneablePtr< P6DofVehicle > > mSubObjectList
Definition P6DofVehicle.hpp:1113
double GetCurrentWeight_lbs() const
Definition P6DofVehicle.hpp:109
bool mTestingClampToSealLevelMinAlt
Definition P6DofVehicle.hpp:1200
std::unique_ptr< P6DofVehicle > SeparateSubObject(P6DofVehicle *aSubObject)
Definition P6DofVehicle.cpp:2546
void HandleGroundContact(int64_t aSimTime_nanosec)
Definition P6DofVehicle.cpp:1407
ut::CloneablePtr< P6DofPilotManager > mPilotManagerPtr
Definition P6DofVehicle.hpp:1176
void ClampToSealLevelMinAlt()
Definition P6DofVehicle.cpp:1397
bool mTestingIgnoreAllCrashes
Definition P6DofVehicle.hpp:1199
bool Initialize(double aSimTime_sec, const P6DofVehicleType *aObjectType, const std::string &aPrefixName)
Definition P6DofVehicle.cpp:467
bool mUseWashInInitConditions
Definition P6DofVehicle.hpp:1182
void CalculateMovableAero(double aDynPress_lbsqft, double aMach, double aSpeed_fps, double aAlpha_rad, double aBeta_rad, const UtVec3dX &aAngularRates_rps, UtVec3dX &aAeroMoment, double &aLift, double &aDrag, double &aSide, double &aLiftFactor)
Definition P6DofVehicle.cpp:810
void PerformCrash(int64_t aSimTime_nanosec)
Definition P6DofVehicle.cpp:1376
void UpdateAppearance()
Definition P6DofVehicle.hpp:413
int64_t mTestingSimTime_nanosec
Definition P6DofVehicle.hpp:1184
P6DofSizeFactor mSizeFactor
Definition P6DofVehicle.hpp:1149
std::string mIntegratorTypeName
Definition P6DofVehicle.hpp:1133
bool GetTestingIgnoreAllCrashes() const
Definition P6DofVehicle.hpp:974
int64_t mTimeOfFlight_nanosec
Definition P6DofVehicle.hpp:1147
double mInitialLat
Definition P6DofVehicle.hpp:1168
bool mCrashed
Definition P6DofVehicle.hpp:1140
bool GetTestingClampToSealLevelMinAlt() const
Definition P6DofVehicle.hpp:982
void CalculateSizeFactor(double dT_sec)
Definition P6DofVehicle.cpp:3011
size_t mHandleRudderRight
Definition P6DofVehicle.hpp:1213
void SetTestingClampToSealLevelMinAlt(bool aValue)
Definition P6DofVehicle.hpp:978
UtCallbackListN< void(double)> CrashedIntoGround
Definition P6DofVehicle.hpp:991
std::vector< ut::CloneablePtr< P6DofSequencer > > mSequencerList
Definition P6DofVehicle.hpp:1123
P6DofKinematicState mKinematicState
Definition P6DofVehicle.hpp:1131
double CalculatePitchMomentAlphaStickBack_ftlbs(double aAlpha_deg, double aDesiredStickBack)
Definition P6DofVehicle.cpp:4427
P6DofFlightControlSystem * GetFlightControls() const
Definition P6DofVehicle.hpp:772
double mInitialAlt_m
Definition P6DofVehicle.hpp:1170
P6DofKinematicState & GetKinematicState()
Definition P6DofVehicle.hpp:124
size_t mHandleRudderLeft
Definition P6DofVehicle.hpp:1211
bool Crashed() const
Definition P6DofVehicle.hpp:92
int64_t GetLifeTime_nanosec() const
Definition P6DofVehicle.hpp:165
double mPrepositionLon
Definition P6DofVehicle.hpp:1188
const P6DofIntegrator * GetIntegratorPtr() const
Definition P6DofVehicle.hpp:131
void MakeHardwareAutopilotActive()
P6DOF::CurrentTargetData mCurrentTarget
Definition P6DofVehicle.hpp:1191
void MakeManualPilotActive()
void MakeGuidanceAutopilotActive()
double GetEmptyWeight_lbs() const
Definition P6DofVehicle.hpp:108
size_t mHandleLandingGear
Definition P6DofVehicle.hpp:1215
ut::CloneablePtr< P6DofLandingGear > mLandingGearPtr
Definition P6DofVehicle.hpp:1178
bool mFlamesPresent
Definition P6DofVehicle.hpp:1196
void ObjectPropulsionCalculations(double aSimTime_sec, 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, bool aUpdateData)
Definition P6DofVehicle.cpp:1544
size_t GetNumSubobjects() const
Definition P6DofVehicle.hpp:580
double mMaxMach
Definition P6DofVehicle.hpp:1156
P6DofPropulsionSystem * GetPropulsionSystem() const
Definition P6DofVehicle.hpp:606
size_t mHandleSpoilerRight
Definition P6DofVehicle.hpp:1207
void SetAngRelToParentYPR_rad(const UtVec3dX &aAngRelToParentYPR_rad)
Definition P6DofVehicle.hpp:558
void DeriveFromObjectType(const P6DofVehicleType *aObjectType, const std::string &aPrefixName)
Definition P6DofVehicle.cpp:328
double GetAngleSurface(size_t aHandle) const
Definition P6DofVehicle.cpp:5449
std::string mActiveAeroModeName
Definition P6DofVehicle.hpp:1118
P6DofAeroCoreObject * mActiveAeroObjPtr
Definition P6DofVehicle.hpp:1119
UtQuaternion mQuaternion
Definition P6DofVehicle.hpp:1180
UtCallbackListN< void(std::unique_ptr< P6DofVehicle > &)> SubobjectJettisoned
Definition P6DofVehicle.hpp:993
void SetParentVehicleForComponents()
Definition P6DofVehicle.cpp:281
void SetCaptiveState(bool aIsCaptive)
Definition P6DofVehicle.hpp:556
UtVec3dX mSeparationVel_fps
Definition P6DofVehicle.hpp:1110
int64_t GetTimeOfFlight_nanosec() const
Definition P6DofVehicle.hpp:169
P6DofAeroCoreObject * GetActiveAeroObject() const
Definition P6DofVehicle.hpp:505
double mMinAlpha_deg
Definition P6DofVehicle.hpp:1158
size_t mHandleRudder
Definition P6DofVehicle.hpp:1212
bool InitializeDetails(double aSimTime_sec)
Definition P6DofVehicle.cpp:475
size_t mHandleLandingGearMainRight
Definition P6DofVehicle.hpp:1218
ut::CloneablePtr< P6DofFlightControlSystem > mFlightControlsPtr
Definition P6DofVehicle.hpp:1175
bool HasLandingGear() const
Definition P6DofVehicle.hpp:889
double GetNominalEstimateMinAlpha_deg() const
Definition P6DofVehicle.hpp:966
void CalculateThrustVectorAndMomentUpdatePropulsion(double aSimTime_sec, double aDeltaTime_sec, P6DofKinematicState &aState, P6DofForceAndMomentsObject &aForceAndMoment)
Definition P6DofVehicle.cpp:3035
double mInitialLon
Definition P6DofVehicle.hpp:1169
std::string mBaseName
Definition P6DofVehicle.hpp:1103
void SetupStartingLatLon()
Definition P6DofVehicle.cpp:3209
size_t mHandleFlapRight
Definition P6DofVehicle.hpp:1205
bool InitializeConditions(double aSimTime_sec)
Definition P6DofVehicle.cpp:629
const P6DofMassProperties & GetMassProperties() const
Definition P6DofVehicle.hpp:103
void CalculateObjectPropulsion(double aSimTime_sec, 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)
Definition P6DofVehicle.cpp:1488
bool GetLastIsCaptive() const
Definition P6DofVehicle.hpp:946
UtVec3dX mCgForce_lbs
Definition P6DofVehicle.hpp:1161
~P6DofVehicle() override=default
double mStallDetectionDeltaAngle
Definition P6DofVehicle.hpp:1221
bool mThrustTerminationTimeValid
Definition P6DofVehicle.hpp:1173
P6DofVehicle(P6DofScenario *aScenario)
Definition P6DofVehicle.cpp:53
double mStallAngle
Definition P6DofVehicle.hpp:1220
P6DofGraphicalSupport mGraphicalSupport
Definition P6DofVehicle.hpp:1136
void UpdateObjectPropulsion(double aSimTime_sec, 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)
Definition P6DofVehicle.cpp:1516
UtVec3dX mSeparationOmega_rps
Definition P6DofVehicle.hpp:1111
UtVec3dX mPosRelToParent_m
Definition P6DofVehicle.hpp:1108
size_t mHandleStabilizerLeft
Definition P6DofVehicle.hpp:1208
bool mInitSetupMode
Definition P6DofVehicle.hpp:1181
void CalcTotalFuelFlowAndQuantity(double &aCurrentTotalFuelFlow_pph, double &aCurrentTotalFuel_lbs, double &aMaxTotalFuel_lbs)
Definition P6DofVehicle.cpp:1777
double mThrustTerminationTime_sec
Definition P6DofVehicle.hpp:1172
bool IsCaptive() const
Definition P6DofVehicle.hpp:551
void CalcStallAngle()
Definition P6DofVehicle.cpp:5697
size_t mHandleAileronRight
Definition P6DofVehicle.hpp:1203
UtVec3dX mCgMoment_ftlbs
Definition P6DofVehicle.hpp:1162
double mDownRangeDist_m
Definition P6DofVehicle.hpp:1171
bool mEngineOn
Definition P6DofVehicle.hpp:1141
size_t mHandleLandingGearMainLeft
Definition P6DofVehicle.hpp:1217
size_t mHandleLandingGearNose
Definition P6DofVehicle.hpp:1216
P6DofMassProperties mMassProperties
Definition P6DofVehicle.hpp:1130
P6DofVehicle & operator=(const P6DofVehicle &other)=delete
P6DOF_EXPORT int64_t TimeToTime(double aSimTime_sec)
Definition P6DofUtils.cpp:646
Definition P6DofVehicleData.hpp:430
Definition P6DofVehicleData.hpp:421