15#ifndef WSFPATHCOMPUTER_HPP
16#define WSFPATHCOMPUTER_HPP
18#include "wsf_export.h"
21#include "UtRandom.hpp"
66 void Print(ut::log::MessageStream& aStream);
133 double GetTurnRadius(
double aSpeed);
144 double aTurnRadius = -1.0);
150 void Rotate(UtVec3d aRotationAxis,
156 double aRotationRadius,
157 double aTargetRoll = 0.0);
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
WsfPathComputer(ut::Random *aRandomPtr=nullptr)
Definition WsfPathComputer.cpp:268
WsfPath::Switch mDefaultSwitch
Definition WsfPathComputer.hpp:189
double mIntegrationTime
Definition WsfPathComputer.hpp:180
void StraightToPoint(const WsfPathState &aState, const WsfPathTarget &aTarget, WsfPathList &aPath, bool aAllowHeadingChange)
Definition WsfPathComputer.cpp:925
void SetPathVarianceRadius(double aPathVarianceRadius)
Definition WsfPathComputer.hpp:124
WsfPathConstraints mConstraints
Definition WsfPathComputer.hpp:178
bool ComputeSpeedAltitudeTargets(const WsfPathState &aState, const WsfPathTarget &aTarget, SpeedAltitudeBreakpoint &aBreakpoint)
Definition WsfPathComputer.cpp:1184
ut::Random * mRandomPtr
Definition WsfPathComputer.hpp:177
void SetSpeedVariancePct(double aSpeedVariancePct)
Definition WsfPathComputer.hpp:125
double mSimTime
Definition WsfPathComputer.hpp:179
void Rotate(UtVec3d aRotationAxis, double aArcLength, double aTime, const WsfPathTarget &aTarget, const WsfPathState &aState, WsfPathList &aPath, double aRotationRadius, double aTargetRoll=0.0)
Definition WsfPathComputer.cpp:1009
void ForceFlyFlightPath(bool aBool)
Definition WsfPathComputer.hpp:175
bool mUsingComputedLinearAcceleration
'true' if the current target has a computed linear acceleration
Definition WsfPathComputer.hpp:194
bool mUsingComputedSpeed
'true' if the current target has a computed speed.
Definition WsfPathComputer.hpp:196
void StraightOnHeading(const WsfPathState &aState, const WsfPathTarget &aTarget, WsfPathList &aPath)
Definition WsfPathComputer.cpp:1146
void SetRandom(ut::Random *aRandomPtr)
Definition WsfPathComputer.hpp:131
bool mFlyFlightPathToTarget
'true' use calculated flight path constraints to fly along slope to next target point
Definition WsfPathComputer.hpp:198
double mSpeedVariancePct
Definition WsfPathComputer.hpp:185
double mPathVarianceRadius
Definition WsfPathComputer.hpp:184
void SetUsingComputedClimbRate(bool aBool)
Definition WsfPathComputer.hpp:174
bool TurnToPointHeading(const WsfPathState &aState, const WsfPathTarget &aTarget, WsfPathList &aPath)
void SetMaximumTurn(double aMaxTurn)
Definition WsfPathComputer.hpp:120
WsfPathConstraints & GetConstraints()
Definition WsfPathComputer.hpp:102
bool UsingComputedClimbRate()
Definition WsfPathComputer.hpp:173
bool mUsingComputedClimbRate
'true' if the current target has a computed flight angle
Definition WsfPathComputer.hpp:192
double GetMaximumTurn() const
Definition WsfPathComputer.hpp:122
double mMaximumTurn
Definition WsfPathComputer.hpp:182
void SetDefaultSwitch(WsfPath::Switch aDefaultSwitch)
Definition WsfPathComputer.hpp:127
Defines a list of motions a platform could take.
Definition WsfPathList.hpp:30
Definition WsfWaypoint.hpp:57
Switch
Option setting when to react as a WsfWaypoint is approached.
Definition WsfPath.hpp:76
Definition WsfPathComputer.hpp:162
double mSimTime
Definition WsfPathComputer.hpp:163
double mLinearAcceleration
Definition WsfPathComputer.hpp:164
double mFlightAngle
Definition WsfPathComputer.hpp:166
double mClimbRate
Definition WsfPathComputer.hpp:165
Contains constraints used for computing a path in WsfPathComputer.
Definition WsfPathConstraints.hpp:24
Definition WsfPathState.hpp:24
Definition WsfPathComputer.hpp:27
TargetType
Definition WsfPathComputer.hpp:46
@ cOPTIONAL_POINT
Definition WsfPathComputer.hpp:55
@ cLOCATION
Definition WsfPathComputer.hpp:47
@ cHEADING
Definition WsfPathComputer.hpp:49
@ cSPEED
Definition WsfPathComputer.hpp:50
@ cEXTRAPOLATE
Definition WsfPathComputer.hpp:51
@ cRELATIVE_TURN
Definition WsfPathComputer.hpp:53
@ cREQUIRED_POINT
Definition WsfPathComputer.hpp:54
@ cTIME_TO_POINT
Definition WsfPathComputer.hpp:56
@ cALTITUDE
Definition WsfPathComputer.hpp:48
@ cTURN_ON_APPROACH
Definition WsfPathComputer.hpp:52
double mNextPointLon
Definition WsfPathComputer.hpp:90
double mTime
Specifies the length of time to travel before completion.
Definition WsfPathComputer.hpp:83
double mSpeed
Specifies the target speed. Must be used with (mTargetType & cSPEED).
Definition WsfPathComputer.hpp:79
double mHeading
Specifies the target heading. Must be used with (mTargetType & cHEADING).
Definition WsfPathComputer.hpp:77
TurnDirection mTurnDirection
Specifies the direction used to complete a turn.
Definition WsfPathComputer.hpp:85
void Print(ut::log::MessageStream &aStream)
Definition WsfPathComputer.cpp:221
WsfPathTarget()
Definition WsfPathComputer.hpp:28
double mTurnFailureThreshold
}
Definition WsfPathComputer.hpp:93
unsigned int mTargetType
Bit combination of TargetType.
Definition WsfPathComputer.hpp:69
TurnDirection
Definition WsfPathComputer.hpp:60
@ cTURN_DIR_LEFT
Turn to the left, even if right is closer.
Definition WsfPathComputer.hpp:61
@ cTURN_DIR_SHORTEST
Turn in the direction that results in the shortest turn (DEFAULT).
Definition WsfPathComputer.hpp:62
@ cTURN_DIR_RIGHT
Turn to the right, even if left is closer.
Definition WsfPathComputer.hpp:63
double mLatitude
Specifies the target latitude. Must be used with (mTargetType & cLOCATION).
Definition WsfPathComputer.hpp:71
double mDistance
Specifies the distance traveled before completion.
Definition WsfPathComputer.hpp:81
double mAltitude
Specifies the target altitude. Must be used with (mTargetType & cALTITUDE).
Definition WsfPathComputer.hpp:75
double mNextPointRadialAccel
Definition WsfPathComputer.hpp:91
double mLongitude
Specifies the target longitude. Must be used with (mTargetType & cLOCATION).
Definition WsfPathComputer.hpp:73
double mNextPointLat
Definition WsfPathComputer.hpp:89