18#include "wsf_export.h"
67 void Update(
double aSimTime)
override;
72 void TurnOff(
double aSimTime)
override;
73 void TurnOn(
double aSimTime)
override;
77 void Restore(
double aSimTime)
override;
87 virtual void SetPitch(
double aPitch);
88 virtual void SetRoll(
double aRoll);
124 virtual bool UpdateAllowed()
const;
137 virtual const WsfRoute* GetRoute()
const;
139 virtual const WsfRoute* GetDefaultRoute()
const;
143 virtual bool GoToAltitude(
double aSimTime,
double aAltitude,
double aClimbDiveRate,
bool aKeepRoute);
145 virtual bool ReturnToRoute(
double aSimTime);
147 virtual bool GoToClosestPoint(
double aSimTime);
149 virtual bool GoToLabel(
double aSimTime,
WsfStringId aLabelId);
151 virtual bool GoToLocation(
double aSimTime,
double aLatitude,
double aLongitude,
double aAltitude);
153 virtual bool GoToSpeed(
double aSimTime,
double aSpeed,
double aLinearAccel,
bool aKeepRoute);
155 virtual bool TurnToHeading(
double aSimTime,
double aHeading,
double aRadialAccel,
WsfPath::TurnDirection aTurnDirection);
157 virtual bool TurnToRelativeHeading(
double aSimTime,
158 double aHeadingChange,
162 virtual bool SetRoute(
double aSimTime,
const WsfRoute& aRoute);
164 virtual bool UpdateRoute(
double aSimTime,
const WsfRoute& aRoute);
166 virtual bool UpdateDefaultRoute();
168 virtual bool GoToWaypoint(
double aSimTime,
unsigned int aDestination);
172 virtual bool FlyRates(
const UtVec3d& aAngularRates,
173 const UtVec3d& aLongitudinalAccel)
218 virtual bool ExecuteTriggers(
double aSimTime,
unsigned int aPointIndex);
220 virtual bool GetFutureLocationWCS(
double aSimTime,
double aLocationWCS[3]);
244 virtual bool PropertyExists(
const std::string& aPropertyName);
247 virtual void RegisterProperty(
const std::string& aPropertyName,
const int& aProperty);
249 virtual void RegisterProperty(
const std::string& aPropertyName,
const double& aProperty);
251 virtual void RegisterProperty(
const std::string& aPropertyName,
const std::string& aProperty);
255 virtual bool GetPropertyInt(
const std::string& aPropertyName,
int& aProperty);
258 virtual bool GetPropertyDouble(
const std::string& aPropertyName,
double& aProperty);
261 virtual bool GetPropertyString(
const std::string& aPropertyName, std::string& aProperty);
281 virtual void TriggerExtrapolation();
310 const double aModelLocXYZ[3],
337 const double aLocationWCS[3],
338 const double aVelocityWCS[3],
370 bool HasProperties()
const {
return mPropertiesPtr !=
nullptr; }
383 bool mUpdateWhenBroken;
@ cWSF_INITIALIZE_ORDER_MOVER
The mover must be initialized prior to just about everything else because it defines the initial loca...
Definition WsfComponentRoles.hpp:168
#define WSF_DECLARE_COMPONENT_ROLE_TYPE(TYPE, ROLE)
Definition WsfComponentRoles.hpp:44
@ cWSF_COMPONENT_MOVER
A 'mover' component (WsfMover).
Definition WsfComponentRoles.hpp:100
aObjectPtr GetPropertyDouble("maximum_radial_acceleration", radialAccel)
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
WsfSpatialDomain
A collection of enumerations and type definitions that are used across a number of components.
Definition WsfTypes.hpp:32
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfAttributeContainer.hpp:24
Definition WsfComponent.hpp:39
Provides the capability to draw shapes into the WSF replay file.
Definition WsfDraw.hpp:35
Definition WsfGeoPoint.hpp:29
Definition WsfModeList.hpp:31
Definition WsfMoverMode.hpp:29
Definition WsfMover.hpp:286
WsfStringId mModelTypeId
Definition WsfMover.hpp:320
double GetApogeeTime() const
Definition WsfMover.hpp:292
double mApogeeTime
Definition WsfMover.hpp:318
double mTimeAtLocation
Definition WsfMover.hpp:319
double GetStartTime() const
Definition WsfMover.hpp:294
static void GetRangeAndAltitude(const double aOriginLocXYZ[3], const double aModelLocXYZ[3], double &aRange, double &aAltitude)
Definition WsfMover.cpp:658
virtual bool GetVelocityXYZ(double aTime, double aVelXYZ[3]) const =0
double GetTimeAtLocation() const
Definition WsfMover.hpp:293
virtual bool GetLocationXYZ(double aTime, double aLocXYZ[3]) const =0
double mStartTime
Definition WsfMover.hpp:317
KinematicModel(const KinematicModel &aSrc)=default
Definition WsfMover.hpp:37
void SetUpdateWhenBroken()
Definition WsfMover.hpp:127
virtual void InitializeProperties()
Add any input properties and its default value common properties list.
Definition WsfMover.hpp:241
bool UpdateWhenBroken() const
Definition WsfMover.hpp:126
virtual bool FlyVectorWithSpeed(const UtVec3d &aVelocityVector, double aMaxGees, double aSpeed)
Definition WsfMover.hpp:201
void SetThreadSafe()
Definition WsfMover.hpp:231
WsfModeList * GetModeList() const
Definition WsfMover.hpp:277
bool mThreadSafe
Definition WsfMover.hpp:360
WsfVariable< double > mUpdateTimeTolerance
Definition WsfMover.hpp:355
void SetNoUpdateWhenBroken()
Definition WsfMover.hpp:128
double GetLastUpdateTime() const
Definition WsfMover.hpp:101
int GetComponentInitializationOrder() const override
Definition WsfMover.hpp:50
virtual bool IsStopped() const
Return whether the mover (and its attached platform) is stopped.
Definition WsfMover.cpp:551
double mLastUpdateTime
The simulation time when Update was last called.
Definition WsfMover.hpp:351
virtual bool FlyHeadingSpeedAltitude(double aHeading, double aSpeed, double aAltitude, double aMaxGees, double aMaxClimb)
Definition WsfMover.hpp:178
double GetUpdateInterval() const override
Definition WsfMover.hpp:105
WsfMover & operator=(const WsfMover &)=delete
virtual WsfSpatialDomain GetSpatialDomain() const
Definition WsfMover.cpp:339
virtual void SetPitch(double aPitch)
Definition WsfMover.cpp:218
WsfMover * Clone() const override=0
virtual KinematicModel * CreateKinematicModel(double aSimTime, WsfStringId aPlatformTypeId, const double aLocationWCS[3], const double aVelocityWCS[3], WsfMover *aMoverPtr, WsfDraw *aDrawPtr) const
Definition WsfMover.hpp:335
virtual void SetOrientationNED(double aHeading, double aPitch, double aRoll)
Definition WsfMover.cpp:240
virtual bool TurnInPlaneWithThrottle(const UtVec3d &aPlane, double aGees, double aThrottle)
Definition WsfMover.hpp:194
double GetUpdateTimeTolerance() const
Definition WsfMover.hpp:113
static const char * cTYPE_KIND
Definition WsfMover.hpp:39
virtual bool IsExtrapolating() const
Definition WsfMover.cpp:576
virtual bool FlyVectorWithThrottle(const UtVec3d &aVelocityVector, double aMaxGees, double aThrottle)
Definition WsfMover.hpp:209
virtual void SetRoll(double aRoll)
Definition WsfMover.cpp:229
std::vector< WsfMoverMode * > mMoverModeList
The generic list of modes (not valid until Initialize is called).
Definition WsfMover.hpp:363
virtual void ResetPosition(double aSimTime)
Informs the mover to use the current platform state.
Definition WsfMover.hpp:94
virtual bool TurnInPlaneWithSpeed(const UtVec3d &aPlane, double aGees, double aSpeed)
Definition WsfMover.hpp:187
void SetUpdateTimeTolerance(double aDt)
Revise the internal time tolerance allowed for Update() sequencing logic.
Definition WsfMover.hpp:349
virtual bool FlyRates(const UtVec3d &aAngularRates, const UtVec3d &aLongitudinalAccel)
Definition WsfMover.hpp:172
void SetNotThreadSafe()
Definition WsfMover.hpp:232
virtual bool IsPaused() const
Definition WsfMover.cpp:561
WsfStringId GetModeId() const
Definition WsfMover.hpp:226
void SetLastUpdateTime(double aLastUpdateTime)
Definition WsfMover.hpp:122
virtual void SetHeading(double aHeading)
Definition WsfMover.cpp:207
void SetUpdateInterval(double aUpdateInterval) override
Definition WsfMover.hpp:117
WsfStringId mModeId
Definition WsfMover.hpp:365
virtual double GetThrottlePosition()
Definition WsfMover.hpp:267
bool ThreadSafe() const
Returns true if the mover update is thread safe.
Definition WsfMover.hpp:230
virtual void SwapMoverInitiated(double aSimTime, WsfMover *aOldMoverPtr)
Definition WsfMover.cpp:99
virtual int RoutePointIndex() const
Definition WsfMover.hpp:141
WsfComponent * CloneComponent() const override
Definition WsfMover.hpp:49
virtual double TurnRadius(double atSpeed)
Definition WsfMover.hpp:274
virtual WsfObject * Clone() const =0
A collection of WsfWaypoint objects that represent a path to be followed.
Definition WsfRoute.hpp:40
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Definition WsfVariable.hpp:149
TurnDirection
Turn direction for TurnToHeading and TurnToRelativeHeading.
Definition WsfPath.hpp:88