15#ifndef WSFITERATIVEROUTEMOVER_HPP
16#define WSFITERATIVEROUTEMOVER_HPP
18#include "wsf_export.h"
36 void Pause(
double aSimTime,
double aUnpauseTime)
override;
49 bool GoToAltitude(
double aSimTime,
double aAltitude,
double aClimbDiveRate,
bool aKeepRoute)
override;
50 bool GoToLocation(
double aSimTime,
double aLatitude,
double aLongitude,
double aAltitude)
override;
51 bool GoToSpeed(
double aSimTime,
double aSpeed,
double aLinearAccel,
bool aKeepRoute)
override;
54 double aHeadingChange,
61 virtual void LocalUpdate(
double aSimTime,
bool& aMoved,
bool& aAdvanceToNextWaypoint) = 0;
63 void AdvanceTime(
double aSimTime,
bool& aAdvanceToNextWaypoint);
65 void SetConverging(
bool aValue);
66 void ClearConverging();
67 void ResetWPSwitching();
68 double SegmentDistRemaining()
const;
69 double SegmentTimeRemaining()
const;
87 virtual bool IsWaypointSwitchTime(
double aSimTime);
89 void SetGroundAttitude(
double aLatitude,
double aLongitude);
90 void CalcAltitudesAndAttitude(
double );
104 double mHeightOfTerrain;
105 double mCumSegmentDist;
106 double mCumSegmentTime;
107 double mMinTurnRadius;
108 double mSwitchRadius;
111 double mLastForwardOffset;
114 double mNextSegHeading;
116 double mNextSegRadialAccel;
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
void IncrSegmentDist(double aIncrement)
Definition WsfIterativeRouteMover.hpp:82
bool GetIsInAir() const
Return an indication of whether this platform is currently in air.
Definition WsfIterativeRouteMover.hpp:80
double CumSegmentTime() const
Definition WsfIterativeRouteMover.hpp:71
virtual void LocalUpdate(double aSimTime, bool &aMoved, bool &aAdvanceToNextWaypoint)=0
double GetTurnLeadDistance(double aCurrentSpeed, double aCurrentHeading)
Definition WsfIterativeRouteMover.cpp:566
void SetGuidance(WsfPathGuidance *aGuidancePtr)
Definition WsfIterativeRouteMover.hpp:64
double GetMinTurnRadius() const
Return the current value of minimum turn radius.
Definition WsfIterativeRouteMover.hpp:73
virtual void PostMoveUpdate(double aSimTime)
Definition WsfIterativeRouteMover.cpp:199
double CumSegmentDist() const
Definition WsfIterativeRouteMover.hpp:70
bool GetIsOnGround() const
Return an indication of whether this platform is currently sitting on terrain.
Definition WsfIterativeRouteMover.hpp:76
WsfIterativeRouteMover()=delete
WsfIterativeRouteMover & operator=(const WsfIterativeRouteMover &)=delete
double GetHeightOfTerrain() const
Definition WsfIterativeRouteMover.hpp:91
WsfPathGuidance * GetGuidance() const
Definition WsfIterativeRouteMover.hpp:58
void SetMinTurnRadius(double aValue)
Definition WsfIterativeRouteMover.hpp:85
void IncrSegmentTime(double aIncrement)
Definition WsfIterativeRouteMover.hpp:84
void AdvanceTime(double aSimTime, bool &aAdvanceToNextWaypoint)
Definition WsfIterativeRouteMover.cpp:172
void SetIsOnGround(bool aValue)
Definition WsfIterativeRouteMover.hpp:77
bool GetConverging() const
Definition WsfIterativeRouteMover.hpp:47
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
virtual bool TurnToRelativeHeading(double aSimTime, double aHeadingChange, double aRadialAccel, WsfPath::TurnDirection aTurnDirection)
Definition WsfMover.cpp:467
Definition WsfPathGuidance.hpp:39
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
bool GoToLocation(double aSimTime, double aLatitude, double aLongitude, double aAltitude) override
Definition WsfRouteMover.cpp:844
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 WsfWaypoint.hpp:57
TurnDirection
Turn direction for TurnToHeading and TurnToRelativeHeading.
Definition WsfPath.hpp:88