15#include "p6dof_export.h"
22#include "UtVec3dX.hpp"
46CanFlyAt(
P6DofVehicle* aObject,
double aAltitude_ft,
double aVelocity_fps,
double aThrottleForward,
double aFlapsDown);
53 const std::string& aFilename,
54 const double& aMaxMach);
60P6DOF_EXPORT int64_t
TimeToTime(
double aSimTime_sec);
61P6DOF_EXPORT
double TimeToTime(int64_t aSimTime_nanosec);
67P6DOF_EXPORT
void CalcSphericalLatLonAlt(
const UtVec3dX& aPos_m,
double& aLat_deg,
double& aLon_deg,
double& aAlt_m);
69P6DOF_EXPORT
void CalcSphericalVecToNED(
const UtVec3dX& aPos,
const UtVec3dX& aSphericalVec, UtVec3dX& aNEDVec);
71P6DOF_EXPORT
void CalcUnitVectors(
const UtDCM& aDCM, UtVec3dX& aUnitVecX, UtVec3dX& aUnitVecY, UtVec3dX& aUnitVecZ);
73P6DOF_EXPORT
void CalcLocalNEDVectors(
const UtVec3dX& aPos, UtVec3dX& aLocalNorth, UtVec3dX& aLocalEast, UtVec3dX& aLocalDown);
76 const UtVec3dX& aLocalEast,
77 const UtVec3dX& aLocalDown,
78 const UtVec3dX& aUnitVecX,
79 const UtVec3dX& aUnitVecZ,
80 double& aLocalYaw_rad,
81 double& aLocalPitch_rad,
82 double& aLocalRoll_rad);
84P6DOF_EXPORT
void CalcSphericalWCSAngles(
const UtDCM& aDCM,
double& aYaw_rad,
double& aPitch_rad,
double& aRoll_rad);
88 const double aTargetLat,
89 const double aTargetLon,
90 double& aTargetHeading_r,
91 double& aTargetDistance_m);
96P6DOF_EXPORT
void InertialToBodyRel(
const UtDCM& aMatrix,
const UtVec3dX& aInertial, UtVec3dX& aBodyRel);
107P6DOF_EXPORT
void DCM_InertialToBodyRel(
const UtDCM& aMatrix,
const UtVec3dX& aInertial, UtVec3dX& aBodyRel);
109P6DOF_EXPORT
void SetSphericalDCM(
const double aLat,
const double aLon, UtDCM& aDCM);
113 const double aYaw_rad,
114 const double aPitch_rad,
115 const double aRoll_rad,
119 const double aHdg_rad,
120 const double aPitch_rad,
121 const double aRoll_rad,
125GetSphericalNEDAngles(
const UtDCM& aDCM,
const UtVec3dX& aPos,
double& aHdg_rad,
double& aPitch_rad,
double& aRoll_rad);
127P6DOF_EXPORT UtVec3dX
CalcWGS84VecToNED(
const UtVec3dX& aWGS84Pos_m,
const UtVec3dX& aVecWGS84_m);
136 const UtVec3dX& aInertialVel_mps,
141P6DOF_EXPORT
void AlphaBetaFromBodyRelVel(
const UtVec3dX& aVel_fps,
double& aAlpha_deg,
double& aBeta_deg,
double& aSpeed_fps);
148 const bool aUseSpericalCoords,
149 UtVec3dX& aPosition_m);
152 const double aEastVel_mps,
153 const double aDownVel_mps,
154 const bool aUseSpericalCoords,
155 UtVec3dX& aPosition_m,
156 UtVec3dX& aVelocity_mps);
159GetLLAFromPosition(
const UtVec3dX& aPosition_m,
const bool aUseSpericalCoords,
double& aLat,
double& aLon,
double& aAlt_m);
192 const std::string& aTableName,
193 const std::string& aParameterType,
194 const std::string& aParameterUnitsString)
const;
219 double GetValueAtParam(std::vector<paramDataPair*>& aList,
double aParameter)
const;
242 void OutputToString(std::string& aInput,
const std::string& aTableName)
const;
289 double& aThrustProduced_lbs,
294 void AddStickAndCL(
double aMach,
double aAlpha_rad,
double& aStickBack,
bool& aMachAdded,
bool aLowPoint,
bool aHighPoint);
298 double& aStickBackBaseline,
299 double& aStickBackThrustShift,
300 double& aStickBackXCmShift,
301 double& aStickBackZCmShift);
307 void AddAlphaVsMachCL(
double aMach,
double aCL,
double aMinAlpha_deg,
double aMaxAlpha_deg,
bool& aMachAdded);
328 bool CreateCLMaxAndAlphaMaxTables();
329 bool CreateCLMinAndAlphaMinTables();
330 bool CreateStickForZeroMomentTable();
331 bool CreateAlphaVsMachCLTable();
std::vector< machDataPair * > mMachDataList
Definition P6DofUtils.hpp:253
P6DofMachDataTable & operator=(const P6DofMachDataTable &other)=delete
P6DofMachDataTable * Clone() const
Definition P6DofUtils.cpp:1923
P6DofMachDataTable()
Definition P6DofUtils.cpp:1904
double GetValueAtMach(double aMach) const
Definition P6DofUtils.cpp:1936
void OutputToString(std::string &aInput, const std::string &aTableName) const
Definition P6DofUtils.cpp:1963
void CreateNewMachValuePair(double aMach, double aValue)
Definition P6DofUtils.cpp:1928
P6DofMachParamDataTable()
Definition P6DofUtils.cpp:1271
double GetDataAtMach(double aMach, bool aGetMin) const
Definition P6DofUtils.cpp:1605
double GetMinParameterAtMach(double aMach) const
Definition P6DofUtils.cpp:1360
double GetParameterAtMach(double aMach, bool aGetMin) const
Definition P6DofUtils.cpp:1380
std::vector< machParamDataListPair * > mMachParamDataList
Definition P6DofUtils.hpp:221
double GetMinData(const machParamDataListPair *aMachParamDataListPair) const
Definition P6DofUtils.cpp:1782
void AddNewParamDataPair(double aParameter, double aData)
Definition P6DofUtils.cpp:1319
double GetMaxParameter(const machParamDataListPair *aMachParamDataListPair) const
Definition P6DofUtils.cpp:1581
double GetValueAtParam(std::vector< paramDataPair * > &aList, double aParameter) const
Definition P6DofUtils.cpp:1830
double GetMaxData(const machParamDataListPair *aMachParamDataListPair) const
Definition P6DofUtils.cpp:1806
double GetMaxDataAtMach(double aMach) const
Definition P6DofUtils.cpp:1375
double GetMinParameter(const machParamDataListPair *aMachParamDataListPair) const
Definition P6DofUtils.cpp:1557
P6DofMachParamDataTable * Clone() const
Definition P6DofUtils.cpp:1305
machParamDataListPair * mCurrentMachParamDataPairPtr
Definition P6DofUtils.hpp:223
double GetMaxParameterAtMach(double aMach) const
Definition P6DofUtils.cpp:1365
double GetValueAtMachParam(double aMach, double aParameter) const
Definition P6DofUtils.cpp:1329
P6DofMachParamDataTable & operator=(const P6DofMachParamDataTable &other)=delete
void CreateNewMach(double aMach)
Definition P6DofUtils.cpp:1310
void OutputToString(std::string &aInput, const std::string &aTableName, const std::string &aParameterType, const std::string &aParameterUnitsString) const
Definition P6DofUtils.cpp:1859
double GetMinDataAtMach(double aMach) const
Definition P6DofUtils.cpp:1370
Definition P6DofVehicle.hpp:53
Type
Definition P6DofVehicleData.hpp:182
Definition P6DofUtils.hpp:28
P6DOF_EXPORT void LimitThrottleNormalized(double &aThrottle)
Definition P6DofUtils.cpp:1259
P6DOF_EXPORT double GetSphericalEarthRadius_m()
Definition P6DofUtils.cpp:944
P6DOF_EXPORT void CreateAutopilotConfigFile(P6DofVehicle *aVehicle, const std::string &aFilename)
Definition P6DofUtils.cpp:238
P6DOF_EXPORT int64_t TimeToTime(double aSimTime_sec)
Definition P6DofUtils.cpp:646
P6DOF_EXPORT void CalcSphericalPositionFromLatLonAlt(const double aLat_deg, const double aLon_deg, const double aAlt_m, UtVec3dX &aPos_m)
Definition P6DofUtils.cpp:909
P6DOF_EXPORT void CalcUnitVectors(const UtDCM &aDCM, UtVec3dX &aUnitVecX, UtVec3dX &aUnitVecY, UtVec3dX &aUnitVecZ)
Definition P6DofUtils.cpp:714
static constexpr double cEPSILON_SIMTIME_SEC
Definition P6DofUtils.hpp:65
CanFlyAtReturnValue
Definition P6DofUtils.hpp:30
@ CONTROL_FAIL
Definition P6DofUtils.hpp:32
@ CAN_FLY
Definition P6DofUtils.hpp:33
@ CAN_NOT_FLY
Definition P6DofUtils.hpp:31
P6DOF_EXPORT void SphericalGreatCircleHeadingAndDistance(const double aLat, const double aLon, const double aTargetLat, const double aTargetLon, double &aTargetHeading_r, double &aTargetDistance_m)
Definition P6DofUtils.cpp:871
P6DOF_EXPORT void GetPositionFromLLA(const double aLat, const double aLon, const double aAlt_m, const bool aUseSpericalCoords, UtVec3dX &aPosition_m)
Definition P6DofUtils.cpp:1195
P6DOF_EXPORT void CalcLocalAngles(const UtVec3dX &aLocalNorth, const UtVec3dX &aLocalEast, const UtVec3dX &aLocalDown, const UtVec3dX &aUnitVecX, const UtVec3dX &aUnitVecZ, double &aLocalYaw_rad, double &aLocalPitch_rad, double &aLocalRoll_rad)
Definition P6DofUtils.cpp:743
P6DOF_EXPORT void CreateAutopilotSupportFileWithMaxMach(P6DofVehicle *aObject, const std::string &aFilename, const double &aMaxMach)
Definition P6DofUtils.cpp:586
P6DOF_EXPORT void AlphaBetaFromInertialVel(const UtDCM &aMatrix, const UtVec3dX &aInertialVel_mps, double &aSpeed_fps, double &aAlpha_deg, double &aBeta_deg)
Definition P6DofUtils.cpp:1110
P6DOF_EXPORT double CalcSphericalRangeToPoint_m(const UtVec3dX &aPos, const UtVec3dX &aPoint)
Definition P6DofUtils.cpp:1060
P6DOF_EXPORT const P6DOF::SinglePidValueData & GetSinglePidData(P6DOF::Pid::Type aPidType, const P6DOF::AutopilotPidGroupValueData &aPidValues)
Definition P6DofUtils.cpp:470
P6DOF_EXPORT void CalcSphericalNEDVelToSphericalVel(const UtVec3dX &aPos, const UtVec3dX &aNEDVec, UtVec3dX &aSphericalVec)
Definition P6DofUtils.cpp:1044
P6DOF_EXPORT CanFlyAtReturnValue CanFlyAt(P6DofVehicle *aObject, double aAltitude_ft, double aVelocity_fps, double aThrottleForward, double aFlapsDown)
Definition P6DofUtils.cpp:519
P6DOF_EXPORT std::vector< P6DOF::Pid::Type > GetRelevantPids(P6DofVehicle *aVehicle)
Definition P6DofUtils.cpp:455
P6DOF_EXPORT void CalcSphericalWCSAngles(const UtDCM &aDCM, double &aYaw_rad, double &aPitch_rad, double &aRoll_rad)
Definition P6DofUtils.cpp:811
P6DOF_EXPORT void CalcLocalNEDVectors(const UtVec3dX &aPos, UtVec3dX &aLocalNorth, UtVec3dX &aLocalEast, UtVec3dX &aLocalDown)
Definition P6DofUtils.cpp:729
P6DOF_EXPORT UtVec3dX CalcWGS84VecToNED(const UtVec3dX &aWGS84Pos_m, const UtVec3dX &aVecWGS84_m)
Definition P6DofUtils.cpp:1026
P6DOF_EXPORT void GetSphericalNEDAngles(const UtDCM &aDCM, const UtVec3dX &aPos, double &aHdg_rad, double &aPitch_rad, double &aRoll_rad)
Definition P6DofUtils.cpp:1010
P6DOF_EXPORT void CommonCreateAutopilotSupportFile(P6DofTableTool &aTool, const std::string &aFilename)
Definition P6DofUtils.cpp:597
P6DOF_EXPORT void LimitThrottleAfterburner(double &aThrottle)
Definition P6DofUtils.cpp:1264
P6DOF_EXPORT void GetVelocityFromVelNED(const double aNorthVel_mps, const double aEastVel_mps, const double aDownVel_mps, const bool aUseSpericalCoords, UtVec3dX &aPosition_m, UtVec3dX &aVelocity_mps)
Definition P6DofUtils.cpp:1215
P6DOF_EXPORT double CalcSphericalHeadingToPoint_r(const UtVec3dX &aPos, const UtVec3dX &aPoint)
Definition P6DofUtils.cpp:1085
P6DOF_EXPORT void SetSphericalDCM(const double aLat, const double aLon, UtDCM &aDCM)
Definition P6DofUtils.cpp:970
P6DOF_EXPORT void CalcSphericalLatLonAlt(const UtVec3dX &aPos_m, double &aLat_deg, double &aLon_deg, double &aAlt_m)
Definition P6DofUtils.cpp:659
P6DOF_EXPORT void DCM_InertialToBodyRel(const UtDCM &aMatrix, const UtVec3dX &aInertial, UtVec3dX &aBodyRel)
Definition P6DofUtils.cpp:949
P6DOF_EXPORT void CalcSphericalVecToNED(const UtVec3dX &aPos, const UtVec3dX &aSphericalVec, UtVec3dX &aNEDVec)
Definition P6DofUtils.cpp:699
P6DOF_EXPORT void CreateAutopilotSupportFile(P6DofVehicle *aObject, const std::string &aFilename)
Definition P6DofUtils.cpp:576
static constexpr int64_t cEPSILON_SIMTIME_NANOSEC
Definition P6DofUtils.hpp:64
P6DOF_EXPORT void GetLLAFromPosition(const UtVec3dX &aPosition_m, const bool aUseSpericalCoords, double &aLat, double &aLon, double &aAlt_m)
Definition P6DofUtils.cpp:1240
P6DOF_EXPORT void AlphaBetaFromBodyRelVel(const UtVec3dX &aVel_fps, double &aAlpha_deg, double &aBeta_deg, double &aSpeed_fps)
Definition P6DofUtils.cpp:1134
P6DOF_EXPORT void InertialToBodyRel(const UtDCM &aMatrix, const UtVec3dX &aInertial, UtVec3dX &aBodyRel)
Definition P6DofUtils.cpp:923
Definition P6DofVehicleData.hpp:220
Definition P6DofVehicleData.hpp:152
Definition P6DofUtils.hpp:248
double mach
Definition P6DofUtils.hpp:249
double value
Definition P6DofUtils.hpp:250
Definition P6DofUtils.hpp:206
double mach
Definition P6DofUtils.hpp:207
std::vector< paramDataPair * > paramDataList
Definition P6DofUtils.hpp:208
Definition P6DofUtils.hpp:200
double parameter
Definition P6DofUtils.hpp:201
double value
Definition P6DofUtils.hpp:202