15#ifndef WSFWAYPOINTMOVER_HPP
16#define WSFWAYPOINTMOVER_HPP
18#include "wsf_export.h"
51 bool GoToAltitude(
double aSimTime,
double aAltitude,
double aClimbDiveRate,
bool aKeepRoute)
override;
53 bool GoToSpeed(
double aSimTime,
double aSpeed,
double aLinearAccel,
bool aKeepRoute)
override;
56 double aHeadingChange,
77 bool GetPropertyDouble(
const std::string& aPropertyName,
double& aProperty)
override;
79 virtual double MaximumRadialAcceleration();
82 virtual double MaximumTurnRate();
83 virtual double CornerVelocity(
WsfGeoPoint* aTarget);
85 void Pause(
double aSimTime,
double aUnpauseTime)
override;
87 bool Unpause(
double aSimTime,
bool aInterrupt)
override;
152 void UpdateHeightOfTerrain();
158 void EnableTerrain(
bool aUseTerrain);
160 void ExecutePath(
double aSimTime);
164 void HitWaypoint(
double aSimTime);
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
WsfAngleOfAttack uses a table to compute a platform's pitch given the altitude and speed.
Definition WsfAngleOfAttack.hpp:27
double GetTime() const
Definition WsfEvent.hpp:71
EventDisposition
Definition WsfEvent.hpp:37
@ cDELETE
Delete the event from the event queue.
Definition WsfEvent.hpp:38
Definition WsfGeoPoint.hpp:29
virtual bool TurnToHeading(double aSimTime, double aHeading, double aRadialAccel, WsfPath::TurnDirection aTurnDirection)
Definition WsfMover.cpp:454
virtual bool GoToAltitude(double aSimTime, double aAltitude, double aClimbDiveRate, bool aKeepRoute)
Definition WsfMover.cpp:383
WsfMover * Clone() const override=0
virtual bool IsExtrapolating() const
Definition WsfMover.cpp:576
virtual void ResetPosition(double aSimTime)
Informs the mover to use the current platform state.
Definition WsfMover.hpp:94
virtual bool GetPropertyDouble(const std::string &aPropertyName, double &aProperty)
Definition WsfMover.cpp:178
virtual bool TurnToRelativeHeading(double aSimTime, double aHeadingChange, double aRadialAccel, WsfPath::TurnDirection aTurnDirection)
Definition WsfMover.cpp:467
virtual bool GetFutureLocationWCS(double aSimTime, double aLocationWCS[3])
Definition WsfMover.cpp:531
virtual double TurnRadius(double atSpeed)
Definition WsfMover.hpp:274
WsfPathComputer computes a WsfPathList for a platform to reach a target state.
Definition WsfPathComputer.hpp:98
Defines a list of motions a platform could take.
Definition WsfPathList.hpp:30
virtual bool Unpause(double aSimTime, bool aInterrupt)
Definition WsfRouteMover.cpp:1451
bool ProcessInput(UtInput &aInput) override
Definition WsfRouteMover.cpp:308
bool GoToSpeed(double aSimTime, double aSpeed, double aLinearAccel, bool aKeepRoute) override
Definition WsfRouteMover.cpp:557
virtual void UpdatePosition(double aSimTime)=0
virtual void SetGuidanceFrom(const WsfWaypoint &aPreviousWaypoint)=0
virtual const WsfPathConstraints * GetMoverConstraints() const
Definition WsfRouteMover.cpp:1563
virtual void AdvanceToNextWaypoint(double aSimTime, const WsfWaypoint &aTarget, const WsfWaypoint *aNextPointPtr)=0
virtual void SetGuidanceTo(const WsfWaypoint &aNextWaypoint)=0
virtual void Pause(double aSimTime, double aUnpauseTime)=0
Sets the mover to a paused state.
bool Initialize(double aSimTime) override
Definition WsfRouteMover.cpp:136
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Definition WsfWaypointMover.hpp:96
bool mEnabled
Definition WsfWaypointMover.hpp:119
~BaseEvent() override
Definition WsfWaypointMover.hpp:108
BaseEvent()
Definition WsfWaypointMover.hpp:98
void Disable()
Definition WsfWaypointMover.hpp:115
BaseEvent(WsfWaypointMover *aMoverPtr)
Definition WsfWaypointMover.hpp:103
WsfWaypointMover * mMoverPtr
Definition WsfWaypointMover.hpp:118
Definition WsfWaypointMover.hpp:123
EventDisposition Execute() override
Definition WsfWaypointMover.hpp:131
~HitPointEvent() override=default
HitPointEvent(WsfWaypointMover *aMoverPtr)
Definition WsfWaypointMover.hpp:126
bool mDebugKeepPath
Definition WsfWaypointMover.hpp:224
bool mDebugPathComputation
Definition WsfWaypointMover.hpp:225
WsfWaypointMover()=delete
WsfWaypointMover & operator=(const WsfWaypointMover &)=delete
WsfPathConstraints & GetConstraints()
Definition WsfWaypointMover.hpp:64
double mPathComputeTimestep
Mover will optionally recompute path on a regular interval if this is non-zero.
Definition WsfWaypointMover.hpp:228
double mHeightOfTerrain
Definition WsfWaypointMover.hpp:215
WsfPathList mPath
The current path being traversed by the platform.
Definition WsfWaypointMover.hpp:190
HitPointEvent * mHitEventPtr
Event triggered when mover reaches waypoint.
Definition WsfWaypointMover.hpp:196
double mDefaultLinearAcceleration
Definition WsfWaypointMover.hpp:208
double mDefaultClimbRate
Definition WsfWaypointMover.hpp:209
bool IsOnRoad() const
Definition WsfWaypointMover.hpp:69
WsfPathComputer & GetPathComputer()
Definition WsfWaypointMover.hpp:74
void ResetPath(double aSimTime)
Definition WsfWaypointMover.cpp:1157
WsfPathComputer mPathComputer
Computes the mover's path.
Definition WsfWaypointMover.hpp:186
WsfPathList mTotalPath
If mDebugKeepPath is set, this contains entire path traversed by platform.
Definition WsfWaypointMover.hpp:192
double mPathStartTime
The sim-time at which mPath was begun.
Definition WsfWaypointMover.hpp:188
const WsfPathTarget & GetTarget() const
Definition WsfWaypointMover.hpp:73
void SetIsOnGround(bool aIsOnGround)
Definition WsfWaypointMover.hpp:154
void SetComplete()
Disables any pending HitPointEvent.
Definition WsfWaypointMover.cpp:660
const WsfAngleOfAttack * GetAngleOfAttackTable()
Definition WsfWaypointMover.hpp:75
const WsfPathConstraints & GetCurrentConstraints() const
Definition WsfWaypointMover.hpp:72
double GetHeightOfTerrain() const
Definition WsfWaypointMover.hpp:150
void UpdateConstraints(const WsfWaypoint &aWaypoint)
Definition WsfWaypointMover.cpp:202
double mPrePauseVelocity[3]
}
Definition WsfWaypointMover.hpp:213
void CreatePath(const WsfWaypoint &aTargetPoint, const WsfWaypoint *aNextPointPtr=nullptr)
Definition WsfWaypointMover.cpp:514
WsfPathTarget mTarget
Current 'goal' parameters.
Definition WsfWaypointMover.hpp:194
bool mPitchEnable
Definition WsfWaypointMover.hpp:223
double mDefaultRadialAcceleration
Definition WsfWaypointMover.hpp:207
WsfPathConstraints mMoverConstraints
Constraints of the mover.
Definition WsfWaypointMover.hpp:200
bool mIsOnGround
Is the platform moving along the ground.
Definition WsfWaypointMover.hpp:220
WsfAngleOfAttack * mAngleOfAttackPtr
Definition WsfWaypointMover.hpp:229
unsigned int mTargetTypeFlags
Definition WsfWaypointMover.hpp:217
WsfPathConstraints mCurrentConstraints
Currently used constraints.
Definition WsfWaypointMover.hpp:202
void MoveToGround()
Definition WsfWaypointMover.cpp:1040
virtual void PostMoveUpdate(double aSimTime)
Definition WsfWaypointMover.hpp:156
void SetGroundAttitude(double aLatitude, double aLongitude)
Definition WsfWaypointMover.cpp:1072
bool mIsOnRoad
Is the platform moving along roads.
Definition WsfWaypointMover.hpp:222
void SetCompleteTime(double aSimTime)
Schedules the HitPointEvent to execute at aSimTime.
Definition WsfWaypointMover.cpp:646
void SetIsOnRoad(bool aIsOnRoad)
Definition WsfWaypointMover.hpp:68
bool mUseTerrain
Definition WsfWaypointMover.hpp:226
bool IsOnGround() const
Definition WsfWaypointMover.hpp:66
void Extrapolate(double aSimTime)
Definition WsfWaypointMover.cpp:498
Definition WsfWaypoint.hpp:57
TurnDirection
Turn direction for TurnToHeading and TurnToRelativeHeading.
Definition WsfPath.hpp:88
Contains constraints used for computing a path in WsfPathComputer.
Definition WsfPathConstraints.hpp:24
Definition WsfPathComputer.hpp:27