12#ifndef WSFSIXDOFMOVERTESTOBJECT_HPP
13#define WSFSIXDOFMOVERTESTOBJECT_HPP
15#include "wsf_six_dof_export.h"
39 void Update(
double aSimTime);
89 CanFlyAt(
double aAltitude_ft,
double aVelocity_fps,
double aThrottle,
double aFlaps = 0.0) = 0;
94 virtual double TurnRateAt(
double aSpecificExcessPower_fps,
double aTrueSpeed_fps,
double aThrottleSetting) = 0;
101 double aCurrentMass_lbs,
104 double aAirspeed_fps,
105 double aThrottleSetting) = 0;
116 double GetLevelFlightDrag(
double aAltitude_ft,
double aMach,
double aGrossWeight_lbs);
136 virtual void LimitAlphaByMaxGLoad(
double aMach,
double aMaxGLoad,
double aDynPressure_ppsqft,
double& aAlpha_rad) = 0;
142 double aDynPressure_ppsqft,
143 double aCurrentMass_lbs,
144 double& aAlpha_rad) = 0;
165 virtual double AlphaAtDesiredDrag(
double aAlt_ft,
double aSpeed_fps,
double aDrag_lbs,
bool& aOk) = 0;
173 double aCurrentMass_lbs,
175 double& aAlpha_rad) = 0;
188 double aGrossWeight_lbs,
190 double& aAlpha_deg) = 0;
200 double aRequiredThrust_lbs);
209 double aRequiredThrust_lbs);
aObjectPtr SetMasterFreezeFuelBurn(aVarArgs[0].GetBool())
aObjectPtr SetMasterFreezePitch(aVarArgs[0].GetBool())
aObjectPtr SetMasterNoAlphaTesting(aVarArgs[0].GetBool())
aObjectPtr SetMasterFreezeYaw(aVarArgs[0].GetBool())
aObjectPtr SetMasterFreezeLocation(aVarArgs[0].GetBool())
aObjectPtr SetMasterFreezeRoll(aVarArgs[0].GetBool())
aObjectPtr SetMasterFreezeAltitude(aVarArgs[0].GetBool())
aObjectPtr SetMasterNoLagTesting(aVarArgs[0].GetBool())
aObjectPtr Update(simTime)
Provides the capability to draw shapes into the WSF replay file.
Definition WsfDraw.hpp:35
Definition WsfMoverGuidance.hpp:23
Definition WsfSixDOF_Environment.hpp:30
Definition WsfSixDOF_MoverTestObject.hpp:33
virtual double TurnRateAt(double aSpecificExcessPower_fps, double aTrueSpeed_fps, double aThrottleSetting)=0
void SetMasterFreezeSpeed(bool aEnable)
Definition WsfSixDOF_MoverTestObject.cpp:119
double FuelBurnAtThrottleSetting(ThrustProducerObject *aEngine, const Environment *aAtm, double aAltitude_ft, double aMach, double aThrottle)
Definition WsfSixDOF_MoverTestObject.cpp:574
virtual void CreateAutopilotConfigFile(const std::string &aFilename)=0
bool mTestingNoLag
Definition WsfSixDOF_MoverTestObject.hpp:233
void FlyStraightLevelFullThrottle()
Definition WsfSixDOF_MoverTestObject.cpp:263
virtual utils::CanFlyAtReturnValue CanFlyAt(double aAltitude_ft, double aVelocity_fps, double aThrottle, double aFlaps=0.0)=0
virtual void CreateAutopilotSupportFileWithMaxMach(const std::string &aFilename, const double &aMaxMach)=0
double GetRangeSinceStart_km() const
Definition WsfSixDOF_MoverTestObject.cpp:45
std::unique_ptr< Engine > GetTestEngineFromThrustProducer(ThrustProducerObject *aEngine) const
Definition WsfSixDOF_MoverTestObject.cpp:24
void SetupForTestingMode(bool aFreezeFuelBurn)
Definition WsfSixDOF_MoverTestObject.cpp:330
virtual void CreateAutopilotSupportFile(const std::string &aFilename)=0
double GetMaxGLoad()
Definition WsfSixDOF_MoverTestObject.cpp:288
virtual double TurnRateWithConditions(double aSpecificExcessPower_fps, double aCurrentMass_lbs, double aMaxGLoad, double aAltitude_ft, double aAirspeed_fps, double aThrottleSetting)=0
virtual void LimitAlphaByMaxGLoad(double aMach, double aMaxGLoad, double aDynPressure_ppsqft, double aCurrentMass_lbs, double &aAlpha_rad)=0
double GetLevelFlightHorizontalThrust(double aAltitude_ft, double aMach, double aThrottle, double aGrossWeight_lbs)
Definition WsfSixDOF_MoverTestObject.cpp:135
void RestoreFromTestingMode()
Definition WsfSixDOF_MoverTestObject.cpp:349
virtual Mover * GetParentVehicle() const =0
virtual double MaxInstantaneousGLoad(double aAltitude_ft, double aMach, double aCurrentMass_lbs)=0
virtual void LimitAlphaByMaxGLoad(double aMach, double aMaxGLoad, double aDynPressure_ppsqft, double &aAlpha_rad)=0
bool mTestingFreezeFuelBurn
Definition WsfSixDOF_MoverTestObject.hpp:234
double GetLevelFlightDrag(double aAltitude_ft, double aMach, double aGrossWeight_lbs)
Definition WsfSixDOF_MoverTestObject.cpp:183
virtual double AlphaAtDesiredDrag(double aAlt_ft, double aSpeed_fps, double aDrag_lbs, bool &aOk)=0
double GetLevelFlightFuelBurnRate(double aAltitude_ft, double aMach, double aGrossWeight_lbs)
Definition WsfSixDOF_MoverTestObject.cpp:202
double FuelBurnAtRequiredThrust(ThrustProducerObject *aEngine, const Environment *aAtm, double aAltitude_ft, double aMach, double aRequiredThrust_lbs)
Definition WsfSixDOF_MoverTestObject.cpp:466
virtual void SetVehicleMass(double aMass_lbs)=0
void SetMasterFreezeVerticalSpeed(bool aEnable)
Definition WsfSixDOF_MoverTestObject.cpp:79
virtual bool AlphaAtDesiredDrag(double aAlt_ft, double aMach, double aDrag_lbs, double aCurrentMass_lbs, double aMaxGLoad, double &aAlpha_rad)=0
const Environment * GetEnvironment()
Definition WsfSixDOF_MoverTestObject.cpp:317
virtual bool CalcLevelFlightDragAndAlpha(double aAltitude_ft, double aMach, double aGrossWeight_lbs, double &aDrag_lbs, double &aAlpha_deg)=0
double ThrustAtThrottleSetting(ThrustProducerObject *aEngine, const Environment *aEnv, double aAltitude_ft, double aMach, double aThrottle)
Definition WsfSixDOF_MoverTestObject.cpp:610
double ThrottleSettingToProduceThrust(ThrustProducerObject *aEngine, const Environment *aAtm, double aAltitude_ft, double aMach, double aRequiredThrust_lbs)
Definition WsfSixDOF_MoverTestObject.cpp:358
This is a base class for detailed air movers. This umbrella can cover RB6 or PM6 models.
Definition WsfSixDOF_Mover.hpp:58
Definition WsfSixDOF_PilotObject.hpp:39
Definition WsfSixDOF_ThrustProducerObject.hpp:35
CanFlyAtReturnValue
Definition WsfSixDOF_Utils.hpp:31
Definition WsfSA_Processor.hpp:35
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32