WSF
WsfMover Class Referenceabstract

#include <WsfMover.hpp>

Inheritance diagram for WsfMover:
Collaboration diagram for WsfMover:

Classes

class  KinematicModel

Public Member Functions

 WsfMover ()=delete
 WsfMover (const WsfScenario &aScenario)
 WsfMover (const WsfMover &aSrc)
WsfMoveroperator= (const WsfMover &)=delete
 ~WsfMover () override
Public Member Functions inherited from WsfPlatformPart
 WsfPlatformPart (const WsfScenario &aScenario, int aPartType)
WsfPlatformPartoperator= (const WsfPlatformPart &aRhs)=delete
 ~WsfPlatformPart () override
const int * GetComponentRoles () const override
void * QueryInterface (int aRole) override
bool DebugEnabled () const
 Returns 'true' if debugging is enabled for this instance.
void SetDebugEnabled (bool aDebugEnabled)
unsigned int GetDebugMask ()
bool IsExternallyControlled () const
virtual void SetExternallyControlled (double aSimTime, bool aIsExternallyControlled)
int GetPartType () const
const char * GetScriptClassName () const override
WsfSimulationGetSimulation () const
const WsfScenarioGetScenario () const
WsfStringId GetComponentName () const override
void ComponentParentChanged (WsfPlatform *aPlatformPtr) override
bool Initialize (double aSimTime) override
bool Initialize2 (double aSimTime) override
bool ProcessInput (UtInput &aInput) override
WsfPlatformGetPlatform () const
virtual void SetPlatform (WsfPlatform *aPlatformPtr)
virtual void PlatformAdded (double aSimTime, WsfPlatform *aPlatformPtr)
virtual void PlatformDeleted (WsfPlatform *aPlatformPtr)
double GetLastStatusChangeTime () const
void SetLastStatusChangeTime (double aSimTime)
 Allows a system to set the time at which the device was initialized.
bool CanBeMadeOperational () const
 Returns an indication that this system can be made operational.
bool CanBeMadeNonOperational () const
 Returns an indication that this system can be made non-operational.
bool CanBeTurnedOn () const
 Returns an indication that this system can be turned on.
bool CanBeTurnedOff () const
 Returns an indication that this system can be turned off.
bool IsTurnedOn () const
bool InitiallyTurnedOn () const
 Is the system to be turned 'on' when added to the simulation?
void SetInitiallyTurnedOn (bool aInitiallyTurnedOn)
 Sets if the system is turned on when added to the simulation.
bool IsOperational () const
bool SetOperational (double aSimTime, bool aMakeOperational)
double GetDamageFactor () const
bool SetDamageFactor (double aSimTime, double aDamageFactor)
bool IsCritical () const
void SetCritical (bool aValue)
virtual void OnPlatformBrokenEvent (double aSimTime)
 Owning platform has issued a broken event.
bool IsBroken () const
WsfInternalLinksGetInternalLinks ()
 Return the internal links for this part.
virtual bool HasInternalLinks () const
 Does this platform part have a communication link to other platform parts?
virtual bool ProcessMessage (double aSimTime, const WsfMessage &aMessage)
virtual bool ReceiveMessage (double aSimTime, const WsfMessage &aMessage)
virtual void SendMessage (double aSimTime, const WsfMessage &aMessage)
virtual void SendMessageTo (double aSimTime, const WsfMessage &aMessage, WsfStringId aRecipientId)
void SendMessageToProcessor (double aSimTime, const WsfMessage &aMessage, WsfStringId aRecipientId)
virtual void SendQueuedMessages (double aSimTime)
const WsfCategoryListGetCategories () const
 Get the categories to which this part belongs.
void AddCategory (WsfStringId aCategoryId)
 Adds the provided category to the platform part's category list.
bool IsCategoryMember (WsfStringId aCategoryId) const
const WsfGroupListGetGroups () const
 Get the groups to which this platform part belongs.
void JoinGroup (WsfGroup *aGroupPtr)
 Join the given group.
void LeaveGroup (WsfGroup *aGroupPtr)
 Leave the given group.
bool IsGroupMember (WsfStringId aGroupId)
unsigned int GetUpdateEventEpoch () const
void IncrementUpdateEventEpoch ()
bool UpdateEventActive () const
 Is an 'Update' event active?
void SetUpdateEventActive (bool aUpdateEventActive)
 Indicate if the 'Update' event is active.
Public Member Functions inherited from WsfObject
 WsfObject ()
 This is the constructor for the WsfObject class.
 ~WsfObject () override
 This is the destructor for the WsfObject class.
const char * GetScriptClassName () const override
const std::string & GetType () const
WsfStringId GetTypeId () const
 Get the string ID of the 'type' of the object.
void SetType (WsfStringId aType)
const std::string & GetBaseType () const
WsfStringId GetBaseTypeId () const
const TypeListGetTypeList () const
bool IsA_TypeOf (WsfStringId aType) const
WsfObjectoperator= (const WsfObject &aRhs)
 Assignment operator.
template<typename T>
void Serialize (T &aBuff)
 For XIO (de)serialization.
const std::string & GetName () const
WsfStringId GetNameId () const
void SetName (WsfStringId aName)
Public Member Functions inherited from WsfComponentT< WsfPlatform >
 WsfComponentT ()
 WsfComponentT (const WsfComponentT &) noexcept
WsfComponentToperator= (const WsfComponentT &) noexcept
 ~WsfComponentT () override=default
ParentTypeGetComponentParent () const
void SetComponentParent (ParentType *aParentPtr)
Public Member Functions inherited from WsfComponent
virtual ~WsfComponent ()=default
template<typename T>
bool QueryInterfaceT (T *&aRolePtr)
bool ComponentHasRole (int aRole)
 Returns true if the component has the specified role.
virtual bool PreInitialize (double aSimTime)
virtual void PreInput ()
Public Member Functions inherited from WsfUniqueId
 WsfUniqueId ()
 Construtor initializes the unique identifier to 0.
 WsfUniqueId (const WsfUniqueId &)
 Copy constructor initializes the unique identifier to 0.
WsfUniqueIdoperator= (const WsfUniqueId &)
unsigned int GetUniqueId () const
 Get the unique identifier assigned to this object.
template<typename T>
void Serialize (T &aBuff)
 For XIO (de)serialization.
Public Member Functions inherited from WsfAuxDataEnabled
 WsfAuxDataEnabled ()=default
 WsfAuxDataEnabled (const WsfAuxDataEnabled &aSrc)=default
WsfAuxDataEnabledoperator= (const WsfAuxDataEnabled &aRhs)
 WsfAuxDataEnabled (WsfAuxDataEnabled &&)=default
WsfAuxDataEnabledoperator= (WsfAuxDataEnabled &&)=default
virtual ~WsfAuxDataEnabled () noexcept
void SetAuxData (const WsfAttributeContainer &aAuxData)
void DeleteAuxData ()
 Delete the aux data container from the object.
void MergeAuxData (const WsfAuxDataEnabled &aSrc)
 Merge the object's aux data with aux data from an existing object.
void UpdateAuxData (const WsfAuxDataEnabled &aSrc)
 Update the object's aux data with aux data from an existing object.
bool HasAuxData () const
 Returns true if this object has aux data.
bool ProcessInput (UtInput &aInput)
template<typename T>
void Serialize (T &aBuff)
 (De)serialization for XIO
WsfAttributeContainerGetAuxData ()
const WsfAttributeContainerGetAuxData () const noexcept
const WsfAttributeContainerGetAuxDataConst () const noexcept

Static Public Attributes

static const char * cTYPE_KIND = "mover"
Static Public Attributes inherited from WsfAuxDataEnabled
static UtCallbackListN< void(const WsfAuxDataEnabled *)> AuxDataAccessed
static UtCallbackListN< void(const WsfAuxDataEnabled *)> AuxDataDestroyed

Deprecated methods

These should not be used in new code. They have been replaced with the property methods.

double mLastUpdateTime
 The simulation time when Update was last called.
WsfVariable< double > mUpdateTimeTolerance
bool mThreadSafe
std::vector< WsfMoverMode * > mMoverModeList
 The generic list of modes (not valid until Initialize is called).
WsfStringId mModeId
virtual double TurnRadius (double atSpeed)
WsfModeListGetModeList () const
virtual void TriggerExtrapolation ()
virtual KinematicModelCreateKinematicModel (double aSimTime, WsfStringId aPlatformTypeId, const double aLocationWCS[3], const double aVelocityWCS[3], WsfMover *aMoverPtr, WsfDraw *aDrawPtr) const
void SetModeList (WsfModeList *aModeListPtr)
void SetUpdateTimeTolerance (double aDt)
 Revise the internal time tolerance allowed for Update() sequencing logic.

Component infrastructure methods not provided by WsfPlatformPart.

WsfComponentCloneComponent () const override
int GetComponentInitializationOrder () const override
const int * GetComponentRoles () const override
void * QueryInterface (int aRole) override

Common infrastructure methods.

WsfMoverClone () const override=0
const char * GetScriptClassName () const override
virtual void SwapMoverInitiated (double aSimTime, WsfMover *aOldMoverPtr)
bool Initialize (double aSimTime) override
bool ProcessInput (UtInput &aInput) override
void Update (double aSimTime) override
bool Initialize2 (double aSimTime) override

Status methods.

void TurnOff (double aSimTime) override
void TurnOn (double aSimTime) override
void SetNonOperational (double aSimTime) override
void SetOperational (double aSimTime) override
void PartBroken (double aSimTime) override
void Restore (double aSimTime) override
virtual WsfSpatialDomain GetSpatialDomain () const
virtual bool IsStopped () const
 Return whether the mover (and its attached platform) is stopped.
virtual bool IsPaused () const
virtual bool IsExtrapolating () const
virtual void SetHeading (double aHeading)
virtual void SetPitch (double aPitch)
virtual void SetRoll (double aRoll)
virtual void SetOrientationNED (double aHeading, double aPitch, double aRoll)
virtual void ResetPosition (double aSimTime)
 Informs the mover to use the current platform state.

Mover update control

double GetLastUpdateTime () const
double GetUpdateInterval () const override
double GetUpdateTimeTolerance () const
void SetUpdateInterval (double aUpdateInterval) override
void SetLastUpdateTime (double aLastUpdateTime)
virtual bool UpdateAllowed () const
bool UpdateWhenBroken () const
void SetUpdateWhenBroken ()
void SetNoUpdateWhenBroken ()

Navigation methods.

These methods provide the interface for external control of the mover. It is up to each mover implement these as desired. The methods should return 'false' if the method is not implemented.

virtual const WsfRouteGetRoute () const
virtual const WsfRouteGetDefaultRoute () const
virtual int RoutePointIndex () const
virtual bool GoToAltitude (double aSimTime, double aAltitude, double aClimbDiveRate, bool aKeepRoute)
virtual bool ReturnToRoute (double aSimTime)
virtual bool GoToClosestPoint (double aSimTime)
virtual bool GoToLabel (double aSimTime, WsfStringId aLabelId)
virtual bool GoToLocation (double aSimTime, double aLatitude, double aLongitude, double aAltitude)
virtual bool GoToSpeed (double aSimTime, double aSpeed, double aLinearAccel, bool aKeepRoute)
virtual bool TurnToHeading (double aSimTime, double aHeading, double aRadialAccel, WsfPath::TurnDirection aTurnDirection)
virtual bool TurnToRelativeHeading (double aSimTime, double aHeadingChange, double aRadialAccel, WsfPath::TurnDirection aTurnDirection)
virtual bool SetRoute (double aSimTime, const WsfRoute &aRoute)
virtual bool UpdateRoute (double aSimTime, const WsfRoute &aRoute)
virtual bool UpdateDefaultRoute ()
virtual bool GoToWaypoint (double aSimTime, unsigned int aDestination)
virtual bool FindAndSetPath (double aSimTime, WsfGeoPoint *aStartPtr, WsfGeoPoint *aEndPtr)
virtual bool FlyRates (const UtVec3d &aAngularRates, const UtVec3d &aLongitudinalAccel)
virtual bool FlyHeadingSpeedAltitude (double aHeading, double aSpeed, double aAltitude, double aMaxGees, double aMaxClimb)
virtual bool TurnInPlaneWithSpeed (const UtVec3d &aPlane, double aGees, double aSpeed)
virtual bool TurnInPlaneWithThrottle (const UtVec3d &aPlane, double aGees, double aThrottle)
virtual bool FlyVectorWithSpeed (const UtVec3d &aVelocityVector, double aMaxGees, double aSpeed)
virtual bool FlyVectorWithThrottle (const UtVec3d &aVelocityVector, double aMaxGees, double aThrottle)
virtual bool ExecuteTriggers (double aSimTime, unsigned int aPointIndex)
virtual bool GetFutureLocationWCS (double aSimTime, double aLocationWCS[3])
WsfStringId GetModeId () const
virtual void SetMode (WsfStringId aModeName)
bool ThreadSafe () const
 Returns true if the mover update is thread safe.
void SetThreadSafe ()
void SetNotThreadSafe ()

Property Methods

These methods are used for the defining and accessing named 'properties' (key/value pairs) that represent capabilities of the mover. The base class maintains a set of 'common' properties, but a derived class can override the GetProperty method to access class-specific properties.

virtual void InitializeProperties ()
 Add any input properties and its default value common properties list.
virtual bool PropertyExists (const std::string &aPropertyName)
 Return true if the given property exists in the set of properties.
virtual void RegisterProperty (const std::string &aPropertyName, const int &aProperty)
 Add an integer property to the common set of properties.
virtual void RegisterProperty (const std::string &aPropertyName, const double &aProperty)
 Add an floating point property to the common set of properties.
virtual void RegisterProperty (const std::string &aPropertyName, const std::string &aProperty)
 Add an string property to the set of common properties.
virtual bool GetPropertyInt (const std::string &aPropertyName, int &aProperty)
virtual bool GetPropertyDouble (const std::string &aPropertyName, double &aProperty)
virtual bool GetPropertyString (const std::string &aPropertyName, std::string &aProperty)
virtual double GetThrottlePosition ()

Additional Inherited Members

Public Types inherited from WsfPlatformPart
enum  { cLEVEL_ONE_DEBUG = 0x00000001 , cLEVEL_TWO_DEBUG = 0x00000002 }
using InternalMessageQueue = std::queue<WsfMessage*>
using RecipientMessageQueue = std::queue<std::pair<WsfPlatformPart*, WsfMessage*>>
Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.
Public Types inherited from WsfComponentT< WsfPlatform >
typedef WsfPlatform ParentType
 This is needed to support the WsfComponentList template.
 WsfPlatformPart (const WsfPlatformPart &aSrc)
 Copy constructor (for Clone()).
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).
Protected Member Functions inherited from WsfUniqueId
void AssignUniqueId (WsfSimulation *aSimulationPtr)

Detailed Description

A platform part that moves the platform to which it is attached. A 'mover' is a platform part that is responsible for maintaining the kinematic state (position, orientation, speed, acceleration, etc) of the platform to which it is attached. It is called by the simulation to effect the movement of platforms within the simulation.

Constructor & Destructor Documentation

◆ WsfMover() [1/3]

WsfMover::WsfMover ( )
delete

References WsfMover().

Referenced by Fires::FiresMover::Clone(), TargetMover::Clone(), wsf::six_dof::PointMassMover::Clone(), wsf::six_dof::RigidBodyMover::Clone(), WsfAirMover::Clone(), WsfARGO8_Mover::Clone(), WsfBrawlerMover::Clone(), WsfChaffMover::Clone(), WsfDisMover::Clone(), WsfFollower::Clone(), WsfFormationFlyer::Clone(), WsfGroundMover::Clone(), WsfGuidedMover::Clone(), WsfHybridMover::Clone(), WsfIntegratingSpaceMover::Clone(), WsfMath3D_Mover::Clone(), Clone(), WsfNORAD_SpaceMover::Clone(), WsfOffsetMover::Clone(), WsfP6DOF_Mover::Clone(), WsfParabolicMover::Clone(), WsfRotorcraftMover::Clone(), WsfShadowMover::Clone(), WsfSpaceMover::Clone(), WsfSpaceMoverBase::Clone(), WsfStraightLineMover::Clone(), WsfSubsurfaceMover::Clone(), WsfSurfaceMover::Clone(), WsfTBM_Mover::Clone(), WsfTowedMover::Clone(), WsfTSPI_Mover::Clone(), WsfWaypointMover::Clone(), WsfP6DOF_Mover::CommonSubobjectJettisonTasks(), CreateKinematicModel(), WsfSpaceMoverBase::CreateKinematicModel(), WsfTSPI_Mover::CreateKinematicModel(), Fires::FiresMover::FiresMover(), Fires::FiresMover::FiresMover(), WsfHybridMover::Get(), WsfHybridMover::GetCurrent(), wsf::six_dof::Mover::Mover(), wsf::six_dof::Mover::Mover(), Fires::FiresMover::operator=(), TargetMover::operator=(), wsf::six_dof::PointMassMover::operator=(), wsf::six_dof::RigidBodyMover::operator=(), WsfBrawlerMover::operator=(), WsfGuidedMover::operator=(), WsfHybridMover::operator=(), WsfIntegratingSpaceMover::operator=(), WsfMath3D_Mover::operator=(), operator=(), WsfOffsetMover::operator=(), WsfP6DOF_Mover::operator=(), WsfParabolicMover::operator=(), WsfRotorcraftMover::operator=(), WsfSpaceMoverBase::operator=(), WsfStraightLineMover::operator=(), WsfTBM_Mover::operator=(), WsfWaypointMover::operator=(), WsfHybridMover::ProcessInput(), WsfHybridMover::SetWaypointMover(), WsfSpaceMoverBase::SpaceModel::SpaceModel(), WsfBrawlerMover::SwapMoverInitiated(), SwapMoverInitiated(), TargetMover::TargetMover(), TargetMover::TargetMover(), WsfTSPI_Mover::TSPI_Model::TSPI_Model(), WsfHybridMover::Update(), WsfAirMover::WsfAirMover(), WsfARGO8_Mover::WsfARGO8_Mover(), WsfARGO8_Mover::WsfARGO8_Mover(), WsfBrawlerMover::WsfBrawlerMover(), WsfBrawlerMover::WsfBrawlerMover(), WsfChaffMover::WsfChaffMover(), WsfDisMover::WsfDisMover(), WsfDisMover::WsfDisMover(), WsfFollower::WsfFollower(), WsfFollower::WsfFollower(), WsfGroundMover::WsfGroundMover(), WsfGuidedMoverBase::WsfGuidedMoverBase(), WsfGuidedMoverBase::WsfGuidedMoverBase(), WsfHybridMover::WsfHybridMover(), WsfMover(), WsfMover(), WsfMover(), WsfOffsetMover::WsfOffsetMover(), WsfOffsetMover::WsfOffsetMover(), WsfP6DOF_Mover::WsfP6DOF_Mover(), WsfP6DOF_Mover::WsfP6DOF_Mover(), WsfParabolicMover::WsfParabolicMover(), WsfParabolicMover::WsfParabolicMover(), WsfRouteMover::WsfRouteMover(), WsfRouteMover::WsfRouteMover(), WsfShadowMover::WsfShadowMover(), WsfSpaceMoverBase::WsfSpaceMoverBase(), WsfSpaceMoverBase::WsfSpaceMoverBase(), WsfStraightLineMover::WsfStraightLineMover(), WsfStraightLineMover::WsfStraightLineMover(), WsfSurfaceMover::WsfSurfaceMover(), WsfTBM_Mover::WsfTBM_Mover(), WsfTBM_Mover::WsfTBM_Mover(), WsfTSPI_Mover::WsfTSPI_Mover(), WsfTSPI_Mover::WsfTSPI_Mover(), WsfChaffMover::~WsfChaffMover(), WsfFollower::~WsfFollower(), WsfFormationFlyer::~WsfFormationFlyer(), WsfNORAD_SpaceMover::~WsfNORAD_SpaceMover(), WsfShadowMover::~WsfShadowMover(), WsfSubsurfaceMover::~WsfSubsurfaceMover(), and WsfTowedMover::~WsfTowedMover().

◆ WsfMover() [2/3]

◆ WsfMover() [3/3]

◆ ~WsfMover()

WsfMover::~WsfMover ( )
override

Member Function Documentation

◆ Clone()

◆ CloneComponent()

WsfComponent * WsfMover::CloneComponent ( ) const
inlineoverridevirtual

Clones a component. May return null if component does not support clone.

Implements WsfComponent.

References WsfObject::Clone().

◆ CreateKinematicModel()

virtual KinematicModel * WsfMover::CreateKinematicModel ( double aSimTime,
WsfStringId aPlatformTypeId,
const double aLocationWCS[3],
const double aVelocityWCS[3],
WsfMover * aMoverPtr,
WsfDraw * aDrawPtr ) const
inlinevirtual

Get the kinematic model of this mover if available. If aMoverPtr is null, "this" has been initialized (i.e., GetPlatform(), etc. will work); however, if aMoverPtr is non-null, "this" has not been initialized, so that any data needed from the simulation or scenario should be retrieved using aMoverPtr instead. In either case, the kinematic model needs to be extracted without disturbing the state of the platform to which either of "this" or aMoverPtr is attached.

Parameters
aSimTimeThe current simulation time.
aPlatformTypeIdThe platform type id that is being propagated kinematically.
aLocationWCSThe location of the platform at aSimTime.
aVelocityWCSThe velocity of the platform at aSimTime.
aMoverPtrIf non-null, a valid mover from which "this" should be initialized.
aDrawPtrA WsfDraw object that can be used for custom visualization.
Returns
The kinematic model pointer if available, otherwise nullptr.

Reimplemented in WsfSpaceMoverBase, and WsfTSPI_Mover.

References WsfMover().

◆ ExecuteTriggers()

bool WsfMover::ExecuteTriggers ( double aSimTime,
unsigned int aPointIndex )
virtual

Executes scripts, callbacks, and mode changes (if any) for the given route index waypoint.

Parameters
aSimTimeCurrent simulated time.
aPointIndexRoute waypoint array index to execute a script or callback for.
Returns
Indicates whether a script, or callback was executed, or a Mover mode was changed.
Note
Executing a script or callback may possibly change the current or destination waypoint.

Reimplemented in wsf::six_dof::Mover, and WsfP6DOF_Mover.

◆ FindAndSetPath()

bool WsfMover::FindAndSetPath ( double aSimTime,
WsfGeoPoint * aStartPtr,
WsfGeoPoint * aEndPtr )
virtual

Reimplemented in WsfRouteMover.

◆ FlyHeadingSpeedAltitude()

virtual bool WsfMover::FlyHeadingSpeedAltitude ( double aHeading,
double aSpeed,
double aAltitude,
double aMaxGees,
double aMaxClimb )
inlinevirtual

Reimplemented in wsf::six_dof::Mover, and WsfBrawlerMover.

◆ FlyRates()

virtual bool WsfMover::FlyRates ( const UtVec3d & aAngularRates,
const UtVec3d & aLongitudinalAccel )
inlinevirtual

Reimplemented in wsf::six_dof::Mover, and WsfBrawlerMover.

◆ FlyVectorWithSpeed()

virtual bool WsfMover::FlyVectorWithSpeed ( const UtVec3d & aVelocityVector,
double aMaxGees,
double aSpeed )
inlinevirtual

Reimplemented in wsf::six_dof::Mover, and WsfBrawlerMover.

◆ FlyVectorWithThrottle()

virtual bool WsfMover::FlyVectorWithThrottle ( const UtVec3d & aVelocityVector,
double aMaxGees,
double aThrottle )
inlinevirtual

Reimplemented in wsf::six_dof::Mover, and WsfBrawlerMover.

◆ GetComponentInitializationOrder()

int WsfMover::GetComponentInitializationOrder ( ) const
inlineoverridevirtual

Forces a specific initialization order. Components are initialized in increasing initialization order value.

Reimplemented from WsfComponent.

References cWSF_INITIALIZE_ORDER_MOVER.

◆ GetComponentRoles()

const int * WsfMover::GetComponentRoles ( ) const
overridevirtual

Returns a zero-terminated array of component roles. Note that the array should be in decreasing order of specificity and should generally the inheritance hierarchy. The first entry should be the components 'primary' role. For example a sensor would do the following:

return roles;
@ cWSF_COMPONENT_SENSOR
A 'sensor' component (WsfSensor).
Definition WsfComponentRoles.hpp:105
@ cWSF_COMPONENT_PLATFORM_PART
The component derives from WsfPlatformPart.
Definition WsfComponentRoles.hpp:98
@ cWSF_COMPONENT_ARTICULATED_PART
The component derives from WsfArticulatedPart.
Definition WsfComponentRoles.hpp:99

Implements WsfComponent.

Reimplemented in WsfSpaceMoverBase.

References cWSF_COMPONENT_MOVER, cWSF_COMPONENT_NULL, and cWSF_COMPONENT_PLATFORM_PART.

◆ GetDefaultRoute()

const WsfRoute * WsfMover::GetDefaultRoute ( ) const
virtual

Return the pointer to the default route. Some movers implement the concept of a 'default' route, which is the initial route.

Returns
A pointer to the default route or zero if a default route is not defined.

Reimplemented in wsf::six_dof::Mover, WsfHybridMover, WsfP6DOF_Mover, and WsfRouteMover.

Referenced by WsfPathFinder::ComputeExtrapolate(), WsfNavigationMesh::ComputeSetRoute(), and WsfPathFinder::ReturnToRoute().

◆ GetFutureLocationWCS()

bool WsfMover::GetFutureLocationWCS ( double aSimTime,
double aLocationWCS[3] )
virtual

Get the anticipated location at some future time

Parameters
aSimTimeA time in the future for which the location is to be determined.
aLocationWCSThe location at the time specified by aSimTime.
Returns
false if the future location cannot be determined.
Note
Not all movers support this method.

Reimplemented in WsfSpaceMoverBase, and WsfWaypointMover.

◆ GetLastUpdateTime()

double WsfMover::GetLastUpdateTime ( ) const
inline

Get the simulation time when this mover was last updated.

Returns
The simulation time the Update method was last called.

References mLastUpdateTime.

Referenced by WsfExtEntityDeadReckon::DR_State::LoadFromPlatform(), and WsfWaypointMover::UpdatePosition().

◆ GetModeId()

WsfStringId WsfMover::GetModeId ( ) const
inline

Get the current mode ID of the Mover. This value is implementation defined, and may be used to indicate "Stopped", "Idle", "Taxi", "Climb", or any other state or mode of interest. Derived WsfMover implementations may modify their behavior based upon this value.

References mModeId.

◆ GetModeList()

WsfModeList * WsfMover::GetModeList ( ) const
inline

◆ GetPropertyDouble()

bool WsfMover::GetPropertyDouble ( const std::string & aPropertyName,
double & aProperty )
virtual

Get the value of a floating point property from either a derived-class set of properties or the common set of properties.

Reimplemented in WsfGuidedMover, and WsfWaypointMover.

References PropertyExists().

Referenced by WsfGuidedMover::GetPropertyDouble(), and WsfWaypointMover::GetPropertyDouble().

◆ GetPropertyInt()

bool WsfMover::GetPropertyInt ( const std::string & aPropertyName,
int & aProperty )
virtual

Get the value of an integer property from either a derived-class set of properties or the common set of properties.

References PropertyExists().

◆ GetPropertyString()

bool WsfMover::GetPropertyString ( const std::string & aPropertyName,
std::string & aProperty )
virtual

Get the value of a string property from either a derived-class set of properties or the common set of properties.

References PropertyExists().

◆ GetRoute()

const WsfRoute * WsfMover::GetRoute ( ) const
virtual

Return the pointer to the current route.

Returns
A pointer to the current route or zero if a current route is not defined.

Reimplemented in wsf::six_dof::Mover, WsfBrawlerMover, WsfGuidedMoverBase, WsfHybridMover, WsfP6DOF_Mover, and WsfRouteMover.

Referenced by XWsfOSM_Traffic::ChangeScriptedLane(), XWsfOSM_Traffic::ScriptGoOffroad(), WsfSA_Processor::UpdateNavData(), and UT_DEFINE_SCRIPT_METHOD().

◆ GetScriptClassName()

const char * WsfMover::GetScriptClassName ( ) const
override

◆ GetSpatialDomain()

WsfSpatialDomain WsfMover::GetSpatialDomain ( ) const
virtual

Return the spatial domain in which the mover is operating.

The spatial domain is the domain in which the mover is operating (land, sea, space, etc.).

Returns
The spatial domain in which the platform is operating. WSF_SPATIAL_DOMAIN_LAND is returned if this method is not overridden by a derived class.

Reimplemented in Fires::FiresMover, wsf::six_dof::Mover, WsfAirMover, WsfARGO8_Mover, WsfBrawlerMover, WsfDisMover, WsfFollower, WsfFormationFlyer, WsfGroundMover, WsfGuidedMoverBase, WsfHybridMover, WsfMath3D_Mover, WsfOffsetMover, WsfP6DOF_Mover, WsfParabolicMover, WsfRoadMover, WsfRotorcraftMover, WsfSpaceMoverBase, WsfStraightLineMover, WsfSubsurfaceMover, WsfSurfaceMover, WsfTBM_Mover, and WsfTSPI_Mover.

References WSF_SPATIAL_DOMAIN_LAND.

Referenced by Clone(), WsfOffsetMover::GetSpatialDomain(), WsfPlatformAvailability::PlatformIsAvailable(), and WsfWaypointMover::UpdatePosition().

◆ GetThrottlePosition()

virtual double WsfMover::GetThrottlePosition ( )
inlinevirtual

Get the throttle position that the mover is commanding A throttle position x such that 1.0 <= x < 2.0 indicates military power A throttle position x such that x == 2.0 indicates max power A throttle position x such that 2.0 < x <= 3.0 indicates afterburner

Reimplemented in WsfAirMover, and WsfBrawlerMover.

◆ GetUpdateInterval()

◆ GetUpdateTimeTolerance()

double WsfMover::GetUpdateTimeTolerance ( ) const
inline

Get the update time tolerance. The mover will not perform an update if the time since the last update is less than this value. Some processors need this so they do not schedule updates that will not do anything.

Returns
The update time tolerance (in seconds).
Note
This value can be zero.

References mUpdateTimeTolerance.

◆ GoToAltitude()

bool WsfMover::GoToAltitude ( double aSimTime,
double aAltitude,
double aClimbDiveRate,
bool aKeepRoute )
virtual

Command the mover change its altitude.

Parameters
aSimTimeThe current simulated time (seconds).
aAltitudeThe desired altitude to attempt to achieve (in meters).
aClimbDiveRateThe desired climb/dive rate (meters/second). If zero then use the mover default.
aKeepRoute'true' if the mover should maintain current route. 'false' to extrapolate.
Returns
true if successful.

Reimplemented in wsf::six_dof::Mover, WsfBrawlerMover, WsfHybridMover, WsfIterativeRouteMover, WsfMath3D_Mover, WsfP6DOF_Mover, WsfRotorcraftMover, and WsfWaypointMover.

Referenced by WsfRouteMover::Initialize().

◆ GoToClosestPoint()

bool WsfMover::GoToClosestPoint ( double aSimTime)
virtual

Go to the closest point in the current route.

Parameters
aSimTimeThe current simulated clock time (seconds).
Returns
true if successful.

Reimplemented in WsfBrawlerMover, WsfHybridMover, and WsfRouteMover.

◆ GoToLabel()

bool WsfMover::GoToLabel ( double aSimTime,
WsfStringId aLabelId )
virtual

Go to the point with the specified label in the current route.

Parameters
aSimTimeThe current simulated clock time (seconds).
aLabelIdThe name (string id) of the point.
Returns
true if successful.

Reimplemented in WsfBrawlerMover, WsfHybridMover, and WsfRouteMover.

◆ GoToLocation()

bool WsfMover::GoToLocation ( double aSimTime,
double aLatitude,
double aLongitude,
double aAltitude )
virtual

Command the mover to move towards a specified location.

Parameters
aSimTimeThe current simulated clock time (seconds).
aLatitudeThe desired latitude.
aLongitudeThe desired longitude.
aAltitudeThe desired altitude. If -1 is used for aAltitude the current altitude is used.
Returns
true if successful.

Reimplemented in wsf::six_dof::Mover, WsfBrawlerMover, WsfHybridMover, WsfIterativeRouteMover, WsfP6DOF_Mover, WsfRoadMover, WsfRotorcraftMover, and WsfRouteMover.

Referenced by XWsfOSM_Traffic::ScriptGoOffroad().

◆ GoToSpeed()

bool WsfMover::GoToSpeed ( double aSimTime,
double aSpeed,
double aLinearAccel,
bool aKeepRoute )
virtual

Command the mover to change its speed.

Parameters
aSimTimeThe current simulated clock time (seconds).
aSpeedThe desired speed (in meters/second).
aLinearAccelThe desired acceleration (meters/second^2). If zero then use the mover default.
aKeepRoute'true' if the mover should maintain current route. 'false' to extrapolate.
Returns
true if successful.

Reimplemented in wsf::six_dof::Mover, WsfBrawlerMover, WsfHybridMover, WsfIterativeRouteMover, WsfMath3D_Mover, WsfP6DOF_Mover, WsfRotorcraftMover, WsfRouteMover, and WsfWaypointMover.

◆ GoToWaypoint()

bool WsfMover::GoToWaypoint ( double aSimTime,
unsigned int aDestination )
virtual

Attempt to find a WsfWaypoint index, and go there.

Parameters
aSimTimeThe current simulated clock time (seconds).
aDestinationWaypoint index to find.
Returns
true if successful.

Reimplemented in wsf::six_dof::Mover, WsfBrawlerMover, WsfP6DOF_Mover, and WsfRouteMover.

◆ Initialize()

bool WsfMover::Initialize ( double aSimTime)
overridevirtual

◆ Initialize2()

bool WsfPlatformPart::Initialize2 ( double aSimTime)
overridevirtual

Perform phase 2 initialization of the part. This is invoked by WsfPlatform::Initialize() during phase 2 initialization of the platform. During phase 2, platform components may assume that the platform location has been defined, initial tracks have been loaded and that all components have completed phase 1 initialization.

Parameters
aSimTimeThe current simulation time.
Returns
'true' if successful or 'false' if some sort of error occurred.

Reimplemented from WsfComponent.

Reimplemented in WsfRotorcraftMover, WsfRouteMover, WsfSpaceMoverBase, and WsfTBM_Mover.

References WsfPlatform::GetIndex(), and WsfPlatformPart::GetPlatform().

Referenced by Fires::FiresMover::Initialize2(), WsfGuidedMoverBase::Initialize2(), WsfRouteMover::Initialize2(), WsfTBM_Mover::Initialize2(), and WsfPlatform::SwapMover().

◆ InitializeProperties()

virtual void WsfMover::InitializeProperties ( )
inlinevirtual

Add any input properties and its default value common properties list.

Referenced by Initialize().

◆ IsExtrapolating()

bool WsfMover::IsExtrapolating ( ) const
virtual

Return whether the mover is "extrapolating". 'Extrapolating' has a slightly different meaning depending on the mover, but it fundamentally means it is moving without any form of external guidance. In the case of a simple waypoint- following mover this means it has reached its final waypoint and has either stopped there or is continuing on at a specified direction, speed, and altitude. For movers that do not follow waypoints it is a little murkier, but it typically means that the motion is occuring without any propulsion. In this latter case it basically means that with a little knowledge an external observer could take the position at any time and use Newton's Laws to estimate future positions.

Reimplemented in WsfGuidedMoverBase, WsfSpaceMoverBase, WsfTBM_Mover, WsfTSPI_Mover, and WsfWaypointMover.

Referenced by Clone().

◆ IsPaused()

bool WsfMover::IsPaused ( ) const
virtual

Indicates that the platform is currently in "pause" mode, and is not moving, but may begin moving at some future time. Note that a "paused" platform may supply a non-zero velocity and/or acceleration, but still not move through space with advancing time.

Reimplemented in WsfGuidedMoverBase, WsfRouteMover, and WsfTSPI_Mover.

Referenced by Clone().

◆ IsStopped()

bool WsfMover::IsStopped ( ) const
virtual

Return whether the mover (and its attached platform) is stopped.

Reimplemented in WsfGuidedMoverBase, and WsfTSPI_Mover.

Referenced by Clone(), and WsfIterativeRouteMover::UpdatePosition().

◆ operator=()

WsfMover & WsfMover::operator= ( const WsfMover & )
delete

References WsfMover().

◆ PartBroken()

void WsfMover::PartBroken ( double aSimTime)
overridevirtual

Set the status to Broken.

Parameters
aSimTimeThe current simulation time.
Note
This method should not be invoked directly by application code.

Reimplemented from WsfPlatformPart.

References WsfPlatformPart::GetPlatform(), WsfPlatformPart::GetSimulation(), WsfObserver::MoverBroken(), WsfPlatformPart::PartBroken(), and WsfPlatform::SetAppearance().

Referenced by WsfGuidedMoverBase::PartBroken().

◆ ProcessInput()

bool WsfMover::ProcessInput ( UtInput & aInput)
overridevirtual

Process input from a generic source.

Examine the current input command. If it is NOT one of the commands recognized by this class then it simply returns 'false'. If it is one of the commands recognized by this class then it processes the command and returns 'true'.

Parameters
aInputa reference to a UtInput object.
Returns
'true' if the command was one recognized by the class or 'false' if not.
Exceptions
UtInput::ExceptionBase(or an object derived from it) if the command was recognized but contains some sort of error.
Note
If a derived class does not recognize the command (i.e.: the return value is false) then it should call the base class ProcessInput method. This chain should continue until either the command is recognized or the top-level base class is encountered.

Reimplemented from WsfObject.

Reimplemented in WsfNORAD_SpaceMover, WsfOffsetMover, WsfP6DOF_Mover, WsfParabolicMover, WsfRoadMover, WsfRotorcraftMover, WsfRouteMover, WsfShadowMover, WsfSpaceMover, WsfSpaceMoverBase, WsfStraightLineMover, WsfSurfaceMover, WsfTBM_Mover, WsfTowedMover, WsfTSPI_Mover, and WsfWaypointMover.

References mUpdateTimeTolerance, and WsfPlatformPart::ProcessInput().

Referenced by Fires::FiresMover::ProcessInput(), TargetMover::ProcessInput(), wsf::six_dof::Mover::ProcessInput(), WsfARGO8_Mover::ProcessInput(), WsfBrawlerMover::ProcessInput(), WsfFollower::ProcessInput(), WsfGuidedMoverBase::ProcessInput(), WsfHybridMover::ProcessInput(), WsfIterativeRouteMover::ProcessInput(), WsfOffsetMover::ProcessInput(), WsfP6DOF_Mover::ProcessInput(), WsfParabolicMover::ProcessInput(), WsfRouteMover::ProcessInput(), WsfShadowMover::ProcessInput(), WsfSpaceMoverBase::ProcessInput(), WsfStraightLineMover::ProcessInput(), WsfTBM_Mover::ProcessInput(), WsfTowedMover::ProcessInput(), and WsfTSPI_Mover::ProcessInput().

◆ PropertyExists()

bool WsfMover::PropertyExists ( const std::string & aPropertyName)
virtual

Return true if the given property exists in the set of properties.

Referenced by GetPropertyDouble(), GetPropertyInt(), and GetPropertyString().

◆ QueryInterface()

void * WsfMover::QueryInterface ( int aRole)
overridevirtual

Requests a component's role interface. A component can support one or more roles.

Parameters
aRoleThe role whose interface is to be returned.
Returns
A pointer to the object if it supports the indicated role, or 'null' if it does not. Usage: WsfProcessor* procPtrOrNull = (WsfProcessor*)componentPtr->QueryComponentInterface(cWSF_COMPONENT_PROCESSOR);

Implements WsfComponent.

Reimplemented in WsfSpaceMoverBase.

References cWSF_COMPONENT_MOVER, and WsfPlatformPart::QueryInterface().

Referenced by WsfSpaceMoverBase::QueryInterface().

◆ RegisterProperty() [1/3]

void WsfMover::RegisterProperty ( const std::string & aPropertyName,
const double & aProperty )
virtual

Add an floating point property to the common set of properties.

◆ RegisterProperty() [2/3]

void WsfMover::RegisterProperty ( const std::string & aPropertyName,
const int & aProperty )
virtual

Add an integer property to the common set of properties.

Referenced by WsfMath3D_Mover::Initialize().

◆ RegisterProperty() [3/3]

void WsfMover::RegisterProperty ( const std::string & aPropertyName,
const std::string & aProperty )
virtual

Add an string property to the set of common properties.

◆ ResetPosition()

virtual void WsfMover::ResetPosition ( double aSimTime)
inlinevirtual

Informs the mover to use the current platform state.

Reimplemented in wsf::six_dof::Mover, WsfMath3D_Mover, WsfP6DOF_Mover, and WsfWaypointMover.

◆ Restore()

void WsfMover::Restore ( double aSimTime)
overridevirtual

Perform process of Restoring a part (return to Operational from non-Operational). This virtual function will usually be a response to a time-queued event. If the Damage Factor of the part is totally damaged, it will be set to "slightly" less than totally damaged, to permit the part to become Operational again.

Parameters
aSimTimeThe current simulation time.

Reimplemented from WsfPlatformPart.

References WsfPlatformPart::GetDamageFactor(), WsfPlatformPart::GetPlatform(), WsfPlatformPart::Restore(), and WsfPlatform::SetAppearance().

◆ ReturnToRoute()

bool WsfMover::ReturnToRoute ( double aSimTime)
virtual

After going elsewhere, rejoin the route, reverting to the previous waypoint.

Parameters
aSimTimeThe current simulated time (seconds).
Returns
true if successful.

Reimplemented in wsf::six_dof::Mover, WsfBrawlerMover, WsfP6DOF_Mover, and WsfRouteMover.

◆ RoutePointIndex()

virtual int WsfMover::RoutePointIndex ( ) const
inlinevirtual

◆ SetHeading()

void WsfMover::SetHeading ( double aHeading)
virtual

Request the platform mover to go to a desired NED heading angle (radians). This is merely a request, and the mover may not be able to comply.

Reimplemented in wsf::six_dof::Mover, WsfFollower, WsfP6DOF_Mover, and WsfRotorcraftMover.

References WsfPlatformPart::GetPlatform().

Referenced by Clone().

◆ SetLastUpdateTime()

void WsfMover::SetLastUpdateTime ( double aLastUpdateTime)
inline

Externally set the Sim Time when the WsfMover was last updated. This method is not for general use, but was required for the WsfHybridMover.

Parameters
aLastUpdateTimeThe new update time (in seconds).

References mLastUpdateTime.

Referenced by WsfPlatform::SwapMover(), WsfMath3D_Mover::UpdatePosition(), and WsfWaypointMover::UpdatePosition().

◆ SetMode()

void WsfMover::SetMode ( WsfStringId aModeName)
virtual

Set the current mode ID of the WsfMover. This value is implementation defined, and may be used to indicate "Stopped", "Idle", "Taxi", "Climb", or any other state or mode of interest. Derived WsfMover implementations may modify their behavior based upon this value.

Reimplemented in WsfRotorcraftMover.

References mModeId.

Referenced by WsfRotorcraftMover::SetMode().

◆ SetModeList()

void WsfMover::SetModeList ( WsfModeList * aModeListPtr)
protected

◆ SetNonOperational()

void WsfMover::SetNonOperational ( double aSimTime)
overridevirtual

Set the system status as Non-Operational.

Parameters
aSimTimeThe current simulation time.

Reimplemented from WsfPlatformPart.

References WsfPlatformPart::GetSimulation(), WsfObserver::MoverNonOperational(), and WsfPlatformPart::SetNonOperational().

◆ SetNotThreadSafe()

void WsfMover::SetNotThreadSafe ( )
inline

References mThreadSafe.

◆ SetNoUpdateWhenBroken()

void WsfMover::SetNoUpdateWhenBroken ( )
inline

◆ SetOperational()

void WsfMover::SetOperational ( double aSimTime)
overridevirtual

Set the system status as Operational.

Parameters
aSimTimeThe current simulation time.

Reimplemented from WsfPlatformPart.

References WsfPlatformPart::GetSimulation(), WsfObserver::MoverOperational(), and WsfPlatformPart::SetOperational().

◆ SetOrientationNED()

void WsfMover::SetOrientationNED ( double aHeading,
double aPitch,
double aRoll )
virtual

Request the platform mover to go to a desired NED orientation (radians). This is merely a request, and the mover may not be able to comply fully.

Reimplemented in wsf::six_dof::Mover, WsfP6DOF_Mover, and WsfRotorcraftMover.

References WsfPlatformPart::GetPlatform().

Referenced by Clone().

◆ SetPitch()

void WsfMover::SetPitch ( double aPitch)
virtual

Request the platform mover to go to a desired NED pitch angle (radians). This is merely a request, and the mover may not be able to comply.

Reimplemented in wsf::six_dof::Mover, and WsfP6DOF_Mover.

References WsfPlatformPart::GetPlatform().

Referenced by Clone().

◆ SetRoll()

void WsfMover::SetRoll ( double aRoll)
virtual

Request the platform mover to go to a desired NED roll (bank) angle (radians). This is merely a request, and the mover may not be able to comply.

Reimplemented in wsf::six_dof::Mover, and WsfP6DOF_Mover.

References WsfPlatformPart::GetPlatform().

Referenced by Clone().

◆ SetRoute()

bool WsfMover::SetRoute ( double aSimTime,
const WsfRoute & aRoute )
virtual

Set the route. Replaces any that might have already been set.

Parameters
aSimTimeThe current simulated clock time (seconds).
aRouteThe new route.
Returns
true if successful.

Reimplemented in wsf::six_dof::Mover, WsfGuidedMoverBase, WsfP6DOF_Mover, and WsfRouteMover.

Referenced by XWsfOSM_Traffic::AddScriptedVehicle().

◆ SetThreadSafe()

void WsfMover::SetThreadSafe ( )
inline

References mThreadSafe.

◆ SetUpdateInterval()

void WsfMover::SetUpdateInterval ( double aUpdateInterval)
inlineoverridevirtual

◆ SetUpdateTimeTolerance()

void WsfMover::SetUpdateTimeTolerance ( double aDt)
inlineprotected

Revise the internal time tolerance allowed for Update() sequencing logic.

References mUpdateTimeTolerance.

Referenced by wsf::six_dof::Mover::Initialize(), and WsfP6DOF_Mover::Initialize().

◆ SetUpdateWhenBroken()

void WsfMover::SetUpdateWhenBroken ( )
inline

◆ SwapMoverInitiated()

void WsfMover::SwapMoverInitiated ( double aSimTime,
WsfMover * aOldMoverPtr )
virtual

A mover swap has been initiated (i.e.: a call to WsfPlatform::SwapMover). This is called during the execution of WsfPlatform::SwapMover while the old mover is still the active mover. After this is called the new mover is initialized (Initialize and Initialize2 are called) and then made the active mover. The new mover typically uses this call to establish an environment to be used during subsequent Update calls to blend the old state data with the new state data for some small period of time.

Parameters
aSimTimeThe current simulation time.
aOldMoverPtrPointer to the old mover.
Note
This method is not called if there is no old mover. virtual

Reimplemented in WsfBrawlerMover.

References WsfMover().

Referenced by Clone(), and WsfPlatform::SwapMover().

◆ ThreadSafe()

bool WsfMover::ThreadSafe ( ) const
inline

Returns true if the mover update is thread safe.

References mThreadSafe.

Referenced by WsfMultiThreadManager::AddPlatform().

◆ TriggerExtrapolation()

void WsfMover::TriggerExtrapolation ( )
virtual

Way to artificially inject an extrapolation event into the simulation. (Primarily for script-driven TSPI Movers, to inform of a burnout event.)

Reimplemented in WsfTSPI_Mover.

◆ TurnInPlaneWithSpeed()

virtual bool WsfMover::TurnInPlaneWithSpeed ( const UtVec3d & aPlane,
double aGees,
double aSpeed )
inlinevirtual

Reimplemented in wsf::six_dof::Mover, and WsfBrawlerMover.

◆ TurnInPlaneWithThrottle()

virtual bool WsfMover::TurnInPlaneWithThrottle ( const UtVec3d & aPlane,
double aGees,
double aThrottle )
inlinevirtual

Reimplemented in wsf::six_dof::Mover, and WsfBrawlerMover.

◆ TurnOff()

void WsfMover::TurnOff ( double aSimTime)
overridevirtual

Turn off the platform part (system).

Parameters
aSimTimeThe current simulation time.

Reimplemented from WsfPlatformPart.

Reimplemented in WsfRouteMover.

References WsfPlatformPart::GetSimulation(), WsfObserver::MoverTurnedOff(), and WsfPlatformPart::TurnOff().

Referenced by WsfRouteMover::TurnOff().

◆ TurnOn()

void WsfMover::TurnOn ( double aSimTime)
overridevirtual

Turn on the platform part (system).

Parameters
aSimTimeThe current simulation time.

Reimplemented from WsfPlatformPart.

Reimplemented in WsfRouteMover.

References WsfPlatformPart::GetSimulation(), WsfObserver::MoverTurnedOn(), and WsfPlatformPart::TurnOn().

Referenced by WsfBrawlerMover::TurnOn(), and WsfRouteMover::TurnOn().

◆ TurnRadius()

virtual double WsfMover::TurnRadius ( double atSpeed)
inlinevirtual

Reimplemented in WsfMath3D_Mover, and WsfWaypointMover.

Referenced by WsfMath3D_Mover::TurnRadius().

◆ TurnToHeading()

bool WsfMover::TurnToHeading ( double aSimTime,
double aHeading,
double aRadialAccel,
WsfPath::TurnDirection aTurnDirection )
virtual

Command the mover to change its heading.

Parameters
aSimTimeThe current simulated clock time (seconds).
aHeadingThe desired heading (in radians).
aRadialAccelThe desired radial acceleration (meters/second^2). If zero then use the mover default.
aTurnDirectionThe direction in which to turn.
Returns
true if successful.

Reimplemented in wsf::six_dof::Mover, WsfBrawlerMover, WsfHybridMover, WsfIterativeRouteMover, WsfMath3D_Mover, WsfP6DOF_Mover, WsfRotorcraftMover, and WsfWaypointMover.

◆ TurnToRelativeHeading()

bool WsfMover::TurnToRelativeHeading ( double aSimTime,
double aHeadingChange,
double aRadialAccel,
WsfPath::TurnDirection aTurnDirection )
virtual

Command the mover to change its relative heading.

Parameters
aSimTimeThe current simulated clock time (seconds).
aHeadingChangeThe desired heading change with positive clockwise, negative counter-clockwise. (in radians).
aRadialAccelThe desired radial acceleration (meters/second^2). If zero then use the mover default.
aTurnDirectionThe direction in which to turn.
Returns
true if successful.

Reimplemented in wsf::six_dof::Mover, WsfBrawlerMover, WsfHybridMover, WsfIterativeRouteMover, WsfMath3D_Mover, WsfP6DOF_Mover, and WsfWaypointMover.

◆ Update()

void WsfMover::Update ( double aSimTime)
overridevirtual

Update the kinematic state of the associated platform. Update the location, orientation, speed and acceleration of the attached platform to what it should be at the supplied time.

Parameters
aSimTimeThe current simulation time.
Note
The derived class MUST update the protected variable mLastUpdateTime to be the current simulation time.

Reimplemented from WsfPlatformPart.

Reimplemented in WsfOffsetMover, WsfP6DOF_Mover, WsfParabolicMover, WsfRouteMover, WsfShadowMover, WsfSpaceMoverBase, WsfStraightLineMover, WsfTBM_Mover, WsfTowedMover, and WsfTSPI_Mover.

References mLastUpdateTime.

Referenced by WsfRotorcraftMover::LocalUpdate(), WsfRouteMover::SetRoutePoint(), WsfRouteMover::Unpause(), Fires::FiresMover::Update(), TargetMover::Update(), WsfARGO8_Mover::Update(), WsfBrawlerMover::Update(), WsfChaffMover::Update(), WsfFollower::Update(), and WsfRouteMover::Update().

◆ UpdateAllowed()

bool WsfMover::UpdateAllowed ( ) const
virtual

Should the mover update calls by WsfPlatform be allowed? WsfPlatform::Update will invoke this to determine if the mover should be updated as part of the call. Normally a mover will update as long as it is turned on. If the mover at sometime gets marked as 'broken' it gets turned off and by default future mover updates will be suppressed. But some movers still should get updated even if broken (for example, to fall from the sky). If the mover desires, they can suppress this action and let it get called even when broken by calling SetUpdateWhenBroken() in its constructor.

A derived class may also override this method to provide custom behavior.

Returns
true if calls to the Update method should be allowed.

References WsfPlatformPart::GetDamageFactor(), and WsfPlatformPart::IsTurnedOn().

◆ UpdateDefaultRoute()

bool WsfMover::UpdateDefaultRoute ( )
virtual

Update the default route to the current route.

Returns
true if successful.

Reimplemented in WsfRouteMover.

◆ UpdateRoute()

bool WsfMover::UpdateRoute ( double aSimTime,
const WsfRoute & aRoute )
virtual

Update the route.

Parameters
aSimTimeThe current simulated clock time (seconds).
aRouteThe new route.
Returns
true if successful.

Reimplemented in wsf::six_dof::Mover, WsfBrawlerMover, WsfGuidedMoverBase, WsfHybridMover, WsfP6DOF_Mover, WsfRoadMover, and WsfRouteMover.

Referenced by WsfRoadMover::UpdateRoute().

◆ UpdateWhenBroken()

bool WsfMover::UpdateWhenBroken ( ) const
inline

Member Data Documentation

◆ cTYPE_KIND

const char * WsfMover::cTYPE_KIND = "mover"
static

◆ mLastUpdateTime

◆ mModeId

WsfStringId WsfMover::mModeId
protected

Referenced by GetModeId(), SetMode(), WsfMover(), and WsfMover().

◆ mMoverModeList

std::vector<WsfMoverMode*> WsfMover::mMoverModeList
protected

The generic list of modes (not valid until Initialize is called).

Referenced by Initialize(), WsfMover(), and WsfMover().

◆ mThreadSafe

bool WsfMover::mThreadSafe
protected

Identifies the mover as thread safe; mover updates can be multi-threaded. Certain types of derived movers may have dependencies that may not make them thread-safe, i.e. formation flyer, hybrid mover

Referenced by SetNotThreadSafe(), SetThreadSafe(), ThreadSafe(), WsfFormationFlyer::WsfFormationFlyer(), WsfHybridMover::WsfHybridMover(), WsfMover(), WsfMover(), WsfOffsetMover::WsfOffsetMover(), and WsfShadowMover::WsfShadowMover().

◆ mUpdateTimeTolerance


The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved