|
WSF
|
An abstract base class that defines an interface for guided movers. More...
#include <WsfGuidedMoverBase.hpp>


Public Member Functions | |
| WsfGuidedMoverBase (WsfScenario &aScenario) | |
| ~WsfGuidedMoverBase () override | |
| WsfGuidedMoverBase & | operator= (const WsfGuidedMoverBase &)=delete |
| Public Member Functions inherited from WsfMover | |
| WsfMover ()=delete | |
| WsfMover (const WsfScenario &aScenario) | |
| WsfMover (const WsfMover &aSrc) | |
| WsfMover & | operator= (const WsfMover &)=delete |
| ~WsfMover () override | |
| virtual double | TurnRadius (double atSpeed) |
| WsfModeList * | GetModeList () const |
| virtual void | TriggerExtrapolation () |
| virtual KinematicModel * | CreateKinematicModel (double aSimTime, WsfStringId aPlatformTypeId, const double aLocationWCS[3], const double aVelocityWCS[3], WsfMover *aMoverPtr, WsfDraw *aDrawPtr) const |
| WsfComponent * | CloneComponent () const override |
| int | GetComponentInitializationOrder () const override |
| const int * | GetComponentRoles () const override |
| void * | QueryInterface (int aRole) override |
| WsfMover * | Clone () 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 |
| 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 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. | |
| 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 () |
| virtual const WsfRoute * | GetDefaultRoute () 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 | 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 () |
| 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 () |
| Public Member Functions inherited from WsfPlatformPart | |
| WsfPlatformPart (const WsfScenario &aScenario, int aPartType) | |
| WsfPlatformPart & | operator= (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 |
| WsfSimulation * | GetSimulation () const |
| const WsfScenario & | GetScenario () 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 |
| WsfPlatform * | GetPlatform () 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 |
| WsfInternalLinks & | GetInternalLinks () |
| 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 WsfCategoryList & | GetCategories () 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 WsfGroupList & | GetGroups () 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 TypeList & | GetTypeList () const |
| bool | IsA_TypeOf (WsfStringId aType) const |
| WsfObject & | operator= (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 | |
| WsfComponentT & | operator= (const WsfComponentT &) noexcept |
| ~WsfComponentT () override=default | |
| ParentType * | GetComponentParent () 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. | |
| WsfUniqueId & | operator= (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 | |
| WsfAuxDataEnabled & | operator= (const WsfAuxDataEnabled &aRhs) |
| WsfAuxDataEnabled (WsfAuxDataEnabled &&)=default | |
| WsfAuxDataEnabled & | operator= (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 | |
| WsfAttributeContainer & | GetAuxData () |
| const WsfAttributeContainer & | GetAuxData () const noexcept |
| const WsfAttributeContainer & | GetAuxDataConst () const noexcept |
Callback objects for route changes and stage transitions. | |
Another object can 'connect' to these objects to receive notification when a stage transition occurs. The first argument in the callback is the current simulation time. The second argument is the actual time of the event. This may less than the current simulation time. | |
| enum | Phase { cPHASE_PRE_BURN , cPHASE_BURN , cPHASE_POST_BURN , cPHASE_FAIL } |
| UtCallbackListN< void(double)> | RouteChanged |
| UtCallbackListN< void(double, double)> | StageIgnition |
| UtCallbackListN< void(double, double)> | StageBurnout |
| UtCallbackListN< void(double, double)> | StageSeparation |
| double | mLaunchTime |
| UtEntity | mExternalState |
| double | mLastAdvanceTime |
| The time to which 'mExternalState' is applicable. | |
| double | mIntegrationTimestep |
| The timestep for fixed-timestep movement. | |
| size_t | mStageIndex |
| The index of the current stage. | |
| size_t | mBoostCompleteStageIndex |
| The index of the stage, which when the burn completes, signifies the boost phase is complete. | |
| bool | mBoostComplete |
| 'true' if the boost phase has been declared complete. | |
| WsfRoute | mRoute |
| A route to follow (if guidance supports it). | |
| void | WriteKinematicStatus (ut::log::MessageStream &aStream) |
| WsfGuidedMoverBase (const WsfGuidedMoverBase &aSrc) | |
| virtual void | AdvanceTime (double aSimTime, double aBegTime, double &aEndTime, Phase &aNextPhase)=0 |
| void | CallStagingEventScript (double aSimTime, const std::string &aScriptName) |
| virtual void | InitiateMotion (double aSimTime, double aCurTime) |
| virtual bool | SeparateStage (double aSimTime, size_t aStageIndex) |
| The base mover only supports a single stage. | |
| virtual bool | IgniteStage (double aSimTime, size_t aStageIndex) |
| The base mover only supports a single stage. | |
| virtual void | InitiateStage (double aSimTime, double aCurTime, size_t aStageIndex) |
| virtual void | PostUpdate (double aSimTime) |
| void | PrelaunchAdvanceTime (double aSimTime, double aCurTime) |
| Advance time while still attached to the launch platform. | |
| void | PrelaunchComplete (double aSimTime, double aCurTime) |
| void | SetInitialState (double aSimTime, double aCurTime, bool aInitiatingMotion) |
| virtual void | WriteStagingMessage (ut::log::MessageStream &aStream, double aSimTime, double aCurTime, const std::string &aStatus, size_t aStageIndex) |
| virtual void | WriteTrajectoryOutput (double aSimTime, double aCurTime, const double aECS_Forces[3]) |
| Write trajectory output if requested by the user. | |
Phase control | |
| Phase | mPhase |
| double | mPhaseStartTime |
| The simulation time when the phase started. | |
| double | mPreIgnitionCoastTime |
| The amount of time that must elapse prior to ignition. | |
| double | mPreSeparationCoastTime |
| The amount of tame that must elapse after the motor turns off and stage separation. | |
| double | mLaunchComputerBurnTime |
| The time (relative to launch) when then launch computer has indicated the engines are to shut down. | |
| WsfMoverGuidance * | mGuidancePtr |
| double | mYForce |
| double | mZForce |
| double | mCommandedRollRate |
| double | mCommandedPitchRate |
| double | mCommandedYawRate |
| double | mCommandedSpeed |
| double | mCommandedThrottle |
| double | mCommandedEngineStopTime |
| double | mCommandedPreSeparationCoastTime |
| Override of the pre_separation_coast_time for the NEXT stage (from EjectStage). | |
| double | mCommandedPreIgnitionCoastTime |
| Override of the pre_ignition_coast_time for the CURRENT stage (from EjectStage). | |
| double | mMinimumHeightAboveTerrain |
| The minimum height above terrain required for terrain following. | |
| bool | mShowStatus |
| show initial conditions on standard output | |
| bool | mShowTrajectory |
| bool | mMatchOwningPlatHeading |
| If true, sets unguided mover heading to match owning platform's velocity vector, rather than orientation. | |
| bool | mCheckForGroundImpact |
| If true, check for ground impact directly instead of relying on a 'fuse' processor. | |
| UtAtmosphere | mAtmosphere |
| double | mSeaLevelPressure |
| double | mFMM_Time |
| Information captured at time of 'first missile motion' (needed by trajectory output). | |
| double | mFMM_LocWCS [3] |
| double | mFMM_Heading |
| std::string | mTimeHistoryPath |
| std::ofstream | mTimeHistoryOfs |
| size_t | mLaunchPlatformIndex |
| WsfWeapon * | mLaunchWeaponPtr |
Common framework methods. | |
| bool | Initialize (double aSimTime) override |
| bool | Initialize2 (double aSimTime) override |
| bool | ProcessInput (UtInput &aInput) override |
| void | Update (double aSimTime) override |
Status (on/off) methods. | |
| void | PartBroken (double aSimTime) override |
Base class mover methods | |
| WsfSpatialDomain | GetSpatialDomain () const override |
| const WsfRoute * | GetRoute () const override |
| bool | IsExtrapolating () const override |
| bool | IsPaused () const override |
| bool | IsStopped () const override |
| Return whether the mover (and its attached platform) is stopped. | |
| bool | SetRoute (double aSimTime, const WsfRoute &aRoute) override |
| bool | UpdateRoute (double aSimTime, const WsfRoute &aRoute) override |
| virtual void | SetGuidance (WsfMoverGuidance *aGuidancePtr) |
| virtual WsfMoverGuidance * | GetGuidance () const |
| Get the pointer to the mover guidance object. | |
Command functions from the guidance computer. | |
| virtual void | SetYandZForces (double aYForce, double aZForce) |
| virtual void | SetCommandedYawRate (double aRate) |
| Set the commanded yaw rate. | |
| virtual void | SetCommandedPitchRate (double aRate) |
| Set the commanded pitch rate. | |
| virtual void | SetCommandedRollRate (double aRate) |
| Set the commanded roll rate. | |
| virtual void | SetCommandedSpeed (double aCommandedSpeed) |
| virtual void | SetCommandedThrottle (double aCommandedThrottle) |
| virtual void | SetCommandedEngineStopTime (double aStopTime) |
| virtual void | SetMinimumHeightAboveTerrain (double aMinimum) |
| virtual size_t | CurrentStage () const |
| Currently active Stage for this object. | |
| virtual void | EjectStage (double aSimTime, double aPreSeparationCoastTime, double aPreIgnitionCoastTime) |
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< WsfStringId > | TypeList |
| The list of types returned by GetTypeList. | |
| Public Types inherited from WsfComponentT< WsfPlatform > | |
| typedef WsfPlatform | ParentType |
| This is needed to support the WsfComponentList template. | |
| Static Public Attributes inherited from WsfMover | |
| static const char * | cTYPE_KIND = "mover" |
| Static Public Attributes inherited from WsfAuxDataEnabled | |
| static UtCallbackListN< void(const WsfAuxDataEnabled *)> | AuxDataAccessed |
| static UtCallbackListN< void(const WsfAuxDataEnabled *)> | AuxDataDestroyed |
| void | SetModeList (WsfModeList *aModeListPtr) |
| void | SetUpdateTimeTolerance (double aDt) |
| Revise the internal time tolerance allowed for Update() sequencing logic. | |
| 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) |
| 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 |
An abstract base class that defines an interface for guided movers.
|
protected |
| WsfGuidedMoverBase::WsfGuidedMoverBase | ( | WsfScenario & | aScenario | ) |
References cPHASE_PRE_BURN, mAtmosphere, mBoostComplete, mBoostCompleteStageIndex, mCheckForGroundImpact, mCommandedEngineStopTime, mCommandedPitchRate, mCommandedPreIgnitionCoastTime, mCommandedPreSeparationCoastTime, mCommandedRollRate, mCommandedSpeed, mCommandedThrottle, mCommandedYawRate, mExternalState, mFMM_Heading, mFMM_LocWCS, mFMM_Time, mGuidancePtr, mIntegrationTimestep, mLastAdvanceTime, mLaunchComputerBurnTime, mLaunchPlatformIndex, mLaunchTime, mLaunchWeaponPtr, mMatchOwningPlatHeading, mMinimumHeightAboveTerrain, mPhase, mPhaseStartTime, mPreIgnitionCoastTime, mPreSeparationCoastTime, mRoute, mSeaLevelPressure, mShowStatus, mShowTrajectory, mStageIndex, mTimeHistoryOfs, mTimeHistoryPath, mYForce, mZForce, RouteChanged, StageBurnout, StageIgnition, StageSeparation, and WsfMover::WsfMover().
Referenced by operator=(), WsfGuidedMover::WsfGuidedMover(), WsfGuidedMover::WsfGuidedMover(), and WsfGuidedMoverBase().
|
override |
|
protected |
References mAtmosphere, mBoostComplete, mBoostCompleteStageIndex, mCheckForGroundImpact, mCommandedEngineStopTime, mCommandedPitchRate, mCommandedPreIgnitionCoastTime, mCommandedPreSeparationCoastTime, mCommandedRollRate, mCommandedSpeed, mCommandedThrottle, mCommandedYawRate, mExternalState, mFMM_Heading, mFMM_LocWCS, mFMM_Time, mGuidancePtr, mIntegrationTimestep, mLastAdvanceTime, mLaunchComputerBurnTime, mLaunchPlatformIndex, mLaunchTime, mLaunchWeaponPtr, mMatchOwningPlatHeading, mMinimumHeightAboveTerrain, mPhase, mPhaseStartTime, mPreIgnitionCoastTime, mPreSeparationCoastTime, mRoute, mSeaLevelPressure, mShowStatus, mShowTrajectory, mStageIndex, mTimeHistoryOfs, mTimeHistoryPath, mYForce, mZForce, RouteChanged, StageBurnout, StageIgnition, StageSeparation, WsfGuidedMoverBase(), and WsfMover::WsfMover().
|
protectedpure virtual |
Advance forward in time.
This is the main function of this class. The derived class is responsible for moving time forward and pushing the updated kinematic state into the protected data member 'mExternalState'.
| aSimTime | The true current simulation time. |
| aBegTime | The beginning of the integration interval. |
| aEndTime | The ending of the integration interval. This will be updated if in burn phase and the fuel source becomes empty during this interval. |
| aNextPhase | The current phase. This will be updated if in the burn phase and the fuel source becomes empty during this interval. |
Implemented in WsfGuidedMover.
References CallStagingEventScript(), IgniteStage(), InitiateMotion(), InitiateStage(), PostUpdate(), PrelaunchAdvanceTime(), PrelaunchComplete(), SeparateStage(), SetInitialState(), WriteStagingMessage(), and WriteTrajectoryOutput().
|
protected |
References WsfScriptContext::ExecuteScript(), WsfScriptContext::FindScript(), WsfPlatformPart::GetPlatform(), WsfPlatform::GetScriptContext(), and mStageIndex.
Referenced by AdvanceTime().
|
inlinevirtual |
Currently active Stage for this object.
References mStageIndex.
|
virtual |
|
inlinevirtual |
Get the pointer to the mover guidance object.
References mGuidancePtr.
|
overridevirtual |
|
inlineoverridevirtual |
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.).
Reimplemented from WsfMover.
References WSF_SPATIAL_DOMAIN_AIR.
|
protectedvirtual |
The base mover only supports a single stage.
Reimplemented in WsfGuidedMover.
Referenced by AdvanceTime().
|
overridevirtual |
Perform phase 1 initialization. This is called by WsfPlatform::Initialize() during phase 1 initialization of the platform. The component should complete validation of input data that could not be done by ProcessInput, as well as any other functions to prepare for simulation use (subject to the next paragraph).
The order in which components are initialized is defined by GetComponentInitializationOrder. In general a component implementation of this method should not be dependent on the state of another component, i.e.: it should not assume that the other components Initialize() method has been called. If such a dependency exists one should use Initialize2() if possible, or specify a value GetComponentInitializationOrder to force things to initialize in a particular order.
| aSimTime | The current simulation time. |
Reimplemented from WsfComponent.
References WsfPlatformPart::DebugEnabled(), WsfPlatformPart::GetPlatform(), WsfMover::Initialize(), mAtmosphere, mExternalState, mIntegrationTimestep, mLastAdvanceTime, mLaunchTime, mSeaLevelPressure, mShowStatus, WsfMover::mUpdateTimeTolerance, and ok.
Referenced by WsfGuidedMover::Initialize().
|
overridevirtual |
Perform phase 2 initialization. This is called by WsfPlatform::Initialize() during phase 2 of platform initialization. This method is typically used when a component may have some dependency on another component having completed its phase 1 initialization. The component should be ready for use in the simulation upon completion of this method.
The order in which components are initialized is defined by GetComponentInitializationOrder.
| aSimTime | The current simulation time. |
Reimplemented from WsfComponent.
References WsfWeaponEngagement::Find(), WsfLaunchComputer::GetBurnTime(), WsfComponentList::GetComponent(), WsfTrackManager::GetCurrentTarget(), WsfWeaponEngagement::GetFiringPlatformIndex(), WsfObject::GetName(), WsfPlatformPart::GetPlatform(), WsfSimulation::GetPlatformByIndex(), WsfPlatformPart::GetSimulation(), WsfPlatform::GetTrackManager(), WsfWeaponEngagement::GetWeaponSystemName(), WsfMover::Initialize2(), InitiateStage(), mCommandedEngineStopTime, mLaunchPlatformIndex, mLaunchWeaponPtr, mPreIgnitionCoastTime, mTimeHistoryOfs, mTimeHistoryPath, ok, SetInitialState(), and trackPtr.
Referenced by WsfGuidedMover::Initialize2().
|
protectedvirtual |
Stub method that is called when the first stage ignition actually occurs.
| aSimTime | The current simulation time. |
| aCurTime | The current missile time. May be less than the simulation time. |
Reimplemented in WsfGuidedMover.
Referenced by AdvanceTime(), and PrelaunchComplete().
|
protectedvirtual |
Reimplemented in WsfGuidedMover.
References cPHASE_PRE_BURN, WsfObject::GetName(), WsfPlatformPart::GetPlatform(), mPhase, mPhaseStartTime, mPreIgnitionCoastTime, mPreSeparationCoastTime, and mStageIndex.
Referenced by AdvanceTime(), and Initialize2().
|
inlineoverridevirtual |
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 from WsfMover.
References mBoostComplete.
|
inlineoverridevirtual |
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 from WsfMover.
References mFMM_Time.
|
inlineoverridevirtual |
|
delete |
References WsfGuidedMoverBase().
|
overridevirtual |
Inform the internal systems that this part is broken.
| aSimTime | The current simulation time. |
Reimplemented from WsfPlatformPart.
References cPHASE_FAIL, mBoostComplete, mBoostCompleteStageIndex, mPhase, mStageIndex, and WsfMover::PartBroken().
|
protectedvirtual |
Perform any post update actions to the platform. This is called by the WsfGuidedMoverBase::Update just prior to exiting. Its main purpose is to allow the derived class to perform any additional updates to the platform that could not easily be See the derived class descriptions for the actions.
| aSimTime | The current simulation time. |
Reimplemented in WsfGuidedMover.
Referenced by AdvanceTime(), and Update().
|
protected |
Advance time while still attached to the launch platform.
References WsfWeaponEngagement::cDUD, WsfSimulation::DeletePlatform(), WsfWeaponEngagement::Find(), WsfPlatformPart::GetPlatform(), WsfSimulation::GetPlatformByIndex(), WsfPlatformPart::GetSimulation(), mLaunchPlatformIndex, SetInitialState(), WsfWeaponEngagement::Terminate(), and WsfPlatform::Update().
Referenced by AdvanceTime().
|
protected |
Sever the attachment to the launch platform. This is called once the 'pre-ignition coast time' for the first stage has expired. It initializes the kinematic state of the weapon in preparation for free flight.
References InitiateMotion(), mLaunchPlatformIndex, mLaunchWeaponPtr, and SetInitialState().
Referenced by AdvanceTime().
|
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'.
| aInput | a reference to a UtInput object. |
| UtInput::ExceptionBase | (or an object derived from it) if the command was recognized but contains some sort of error. |
Reimplemented from WsfObject.
References WsfRouteTypes::Get(), WsfPlatformPart::GetScenario(), mAtmosphere, mCheckForGroundImpact, mIntegrationTimestep, mMatchOwningPlatHeading, mShowStatus, mShowTrajectory, mTimeHistoryPath, WsfMover::ProcessInput(), and SetRoute().
Referenced by WsfGuidedMover::ProcessInput().
|
protectedvirtual |
The base mover only supports a single stage.
Reimplemented in WsfGuidedMover.
Referenced by AdvanceTime().
|
inlinevirtual |
Explicitly define when the engines are to be stopped. This allows either the launch computer or user to define when the engines are to be stop.
References mCommandedEngineStopTime.
|
inlinevirtual |
Set the commanded pitch rate.
References mCommandedPitchRate.
|
inlinevirtual |
Set the commanded roll rate.
References mCommandedRollRate.
|
inlinevirtual |
Set the commanded speed.
| aCommandedSpeed | The commanded speed (m/s). A value less than zero indicates there is no commanded speed (use the value as determined by the mover). |
References mCommandedSpeed.
|
inlinevirtual |
Set the commanded throttle setting.
| aCommandedThrottle | The commanded throttle setting in the range [0..1]. A value less than zero indicates the mover should revert to the value defined by input. |
References mCommandedThrottle.
|
inlinevirtual |
Set the commanded yaw rate.
References mCommandedYawRate.
|
inlinevirtual |
Set the pointer to the mover guidance object. Ownership is retained by the caller.
References mGuidancePtr.
|
protected |
Set/update the initial kinematic state of the platform.
This method is called AT LEAST ONCE while the platform is still attached to the launching platform (i.e.: on the pad or rail). While still attached to the launching platform, the state of this platform is moved along with the motion of the launching platform. The final call to this method is made just when this platform is to start moving on its own.
A platform which has a non-zero value for 'pre_ignition_coast_time' for the first stage will result in this routine being called repeatedly to move this platform along with the launching platform. If the value is zero it will be called only once during initialization.
| aSimTime | The current simulation time. |
| aCurTime | The current missile time (may be less than aSimTime) |
| aInitiatingMotion | true if this is the final call and this platform is about to start moving on its own. |
References WsfPlatformPart::GetPlatform(), mExternalState, mFMM_Heading, mFMM_LocWCS, mFMM_Time, mLaunchWeaponPtr, WsfArticulatedPart::UpdatePosition(), and vel.
Referenced by AdvanceTime(), Initialize2(), PrelaunchAdvanceTime(), and PrelaunchComplete().
|
inlinevirtual |
Set the minimum required height above terrain. This is a very crude mechanism for doing terrain following. When the guidance computer is commanded to an AGL altitude, it will set this to a 'small' positive non-zero value which the mover will then use to prevent the platform from crashing into the ground. This is necessary because the guidance doesn't do look-ahead and thus may not pull up quick enough to avoid an obstacle.
| aMinimum | The required minimum offset from the terrain. If zero then avoidance is not performed. |
References mMinimumHeightAboveTerrain.
|
overridevirtual |
Set the route. Replaces any that might have already been set.
| aSimTime | The current simulated clock time (seconds). |
| aRoute | The new route. |
Reimplemented from WsfMover.
References WsfPlatformPart::GetSimulation(), mRoute, RouteChanged, and WsfObserver::RouteChanged().
Referenced by ProcessInput().
|
inlinevirtual |
|
overridevirtual |
Update the state of an platform part. Updates the platform part to reflect the state at the specified simulation time.
| aSimTime | The current simulation time. |
Reimplemented from WsfPlatformPart.
References WsfSimulation::DeletePlatform(), wsf::Terrain::GetElevInterp(), WsfPlatformPart::GetPlatform(), WsfPlatformPart::GetSimulation(), WsfPlatform::GetTerrain(), mCheckForGroundImpact, mExternalState, mIntegrationTimestep, mLastAdvanceTime, WsfMover::mLastUpdateTime, mMinimumHeightAboveTerrain, WsfMover::mUpdateTimeTolerance, and PostUpdate().
|
overridevirtual |
Update the route.
| aSimTime | The current simulated clock time (seconds). |
| aRoute | The new route. |
Reimplemented from WsfMover.
References WsfPlatformPart::GetSimulation(), mRoute, RouteChanged, and WsfObserver::RouteChanged().
| void WsfGuidedMoverBase::WriteKinematicStatus | ( | ut::log::MessageStream & | aStream | ) |
A helper function to write the kinematic status of the mover to stdout. This function is invoked by the mover and the guidance computer to write out a common status message at important events. It is expected that the caller has already written out the introductory line that indicates the event that occurred.
References WsfPlatform::GetMass(), WsfPlatformPart::GetPlatform(), mAtmosphere, mFMM_LocWCS, and mFMM_Time.
Referenced by WsfGuidedMover::JettisonEjectables(), WriteStagingMessage(), and ~WsfGuidedMoverBase().
|
protectedvirtual |
References WsfObject::GetName(), WsfPlatformPart::GetPlatform(), mLaunchTime, mShowStatus, and WriteKinematicStatus().
Referenced by AdvanceTime(), and WsfGuidedMover::InitiateStage().
|
protectedvirtual |
Write trajectory output if requested by the user.
References WsfPlatformPart::DebugEnabled(), WsfPlatform::GetMass(), WsfObject::GetName(), WsfPlatformPart::GetPlatform(), mAtmosphere, mExternalState, mFMM_LocWCS, mFMM_Time, mShowTrajectory, mTimeHistoryOfs, mYForce, and mZForce.
Referenced by WsfGuidedMover::AdvanceTime(), and AdvanceTime().
|
protected |
Referenced by WsfGuidedMover::AdvanceTime(), WsfGuidedMover::Stage::CompletePairedValues(), WsfGuidedMover::GetDynamicPressure(), WsfGuidedMover::GetHorizontalThrust(), WsfGuidedMover::GetLevelFlightFuelBurnRate(), Initialize(), WsfGuidedMover::InitiateMotion(), ProcessInput(), WriteKinematicStatus(), WriteTrajectoryOutput(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
'true' if the boost phase has been declared complete.
Referenced by IsExtrapolating(), PartBroken(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
The index of the stage, which when the burn completes, signifies the boost phase is complete.
Referenced by WsfGuidedMover::GetPropertyDouble(), WsfGuidedMover::Initialize(), WsfGuidedMover::InitiateStage(), PartBroken(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
If true, check for ground impact directly instead of relying on a 'fuse' processor.
Referenced by ProcessInput(), Update(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
The absolute simulation time when the engines are commanded explicitly commanded to stop. It can be set either from the launch computer or via explicit script command. If not defined then the engines will burn until they run out of fuel.
Referenced by EjectStage(), Initialize2(), SetCommandedEngineStopTime(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
Referenced by WsfGuidedMover::AdvanceTime(), SetCommandedPitchRate(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
Override of the pre_ignition_coast_time for the CURRENT stage (from EjectStage).
Referenced by EjectStage(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
Override of the pre_separation_coast_time for the NEXT stage (from EjectStage).
Referenced by EjectStage(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
Referenced by WsfGuidedMover::AdvanceTime(), SetCommandedRollRate(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
|
protected |
Referenced by WsfGuidedMover::ComputeThrustForces(), SetCommandedThrottle(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
Referenced by WsfGuidedMover::AdvanceTime(), SetCommandedYawRate(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
The following is the entity state into which derived class AdvanceTime method should push their final kinematic state. The base class Update will use this to maintain the state of the entity as seen by the simulation. The two may differ because the derived class may run only on fixed time steps and the base class must extrapolate from the last timestep to get an intermediate position before the next timestep.
Referenced by WsfGuidedMover::Initialize(), Initialize(), SetInitialState(), Update(), WsfGuidedMover::UpdateExternalState(), WriteTrajectoryOutput(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
Referenced by WsfGuidedMover::InitiateMotion(), SetInitialState(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
|
protected |
Information captured at time of 'first missile motion' (needed by trajectory output).
Referenced by WsfGuidedMover::InitiateMotion(), IsPaused(), IsStopped(), SetInitialState(), WriteKinematicStatus(), WriteTrajectoryOutput(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
|
protected |
The timestep for fixed-timestep movement.
Referenced by WsfGuidedMover::Initialize(), Initialize(), WsfGuidedMover::InitiateStage(), ProcessInput(), Update(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
The time to which 'mExternalState' is applicable.
Referenced by Initialize(), Update(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
The time (relative to launch) when then launch computer has indicated the engines are to shut down.
Referenced by WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
The following is true if the weapon to be held on the pad/rail during the pre-ignition time for the first stage.
Referenced by Initialize2(), PrelaunchAdvanceTime(), PrelaunchComplete(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
The time when the platform was 'launched' (when the platform was created). This is NOT the time of first missile motion. That is in mFMM_Time.
Referenced by WsfGuidedMover::AdvanceTime(), Initialize(), WsfGuidedMover::InitiateMotion(), WsfGuidedMover::InitiateStage(), WsfGuidedMover::JettisonEjectables(), WsfGuidedMover::SwitchCoordinateFrame(), WsfGuidedMover::UpdateExternalState(), WriteStagingMessage(), WsfGuidedMoverBase(), WsfGuidedMoverBase(), and ~WsfGuidedMoverBase().
|
protected |
Referenced by Initialize2(), PrelaunchComplete(), SetInitialState(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
If true, sets unguided mover heading to match owning platform's velocity vector, rather than orientation.
Referenced by WsfGuidedMover::InitiateMotion(), ProcessInput(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
The minimum height above terrain required for terrain following.
Referenced by SetMinimumHeightAboveTerrain(), Update(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
|
protected |
The simulation time when the phase started.
Referenced by WsfGuidedMover::AdvanceTimeMultistep(), WsfGuidedMover::AdvanceTimeSinglestep(), WsfGuidedMover::ComputeVectoredThrustForces(), WsfGuidedMover::GetHorizontalThrust(), WsfGuidedMover::GetPropertyDouble(), WsfGuidedMover::InitiateStage(), InitiateStage(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
The amount of time that must elapse prior to ignition.
Referenced by Initialize2(), WsfGuidedMover::InitiateStage(), InitiateStage(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
The amount of tame that must elapse after the motor turns off and stage separation.
Referenced by WsfGuidedMover::InitiateStage(), InitiateStage(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
A route to follow (if guidance supports it).
Referenced by GetRoute(), SetRoute(), UpdateRoute(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
|
protected |
show initial conditions on standard output
Referenced by WsfGuidedMover::AdvanceTime(), WsfGuidedMover::Initialize(), Initialize(), WsfGuidedMover::InitiateMotion(), WsfGuidedMover::InitiateStage(), WsfGuidedMover::JettisonEjectables(), ProcessInput(), WsfGuidedMover::SwitchCoordinateFrame(), WsfGuidedMover::UpdateExternalState(), WriteStagingMessage(), WsfGuidedMoverBase(), WsfGuidedMoverBase(), and ~WsfGuidedMoverBase().
|
protected |
Referenced by ProcessInput(), WriteTrajectoryOutput(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
The index of the current stage.
Referenced by WsfGuidedMover::AdvanceTimeMultistep(), WsfGuidedMover::AdvanceTimeRK(), WsfGuidedMover::AdvanceTimeSinglestep(), CallStagingEventScript(), CurrentStage(), WsfGuidedMover::GetEmptyMass(), WsfGuidedMover::GetFuelMass(), WsfGuidedMover::GetLevelFlightDrag(), WsfGuidedMover::GetLevelFlightFuelBurnRate(), WsfGuidedMover::GetLevelFlightThrust(), WsfGuidedMover::GetMaximumLateralAerodynamicForce(), WsfGuidedMover::GetPayloadMass(), WsfGuidedMover::GetPropertyDouble(), WsfGuidedMover::InitiateStage(), InitiateStage(), PartBroken(), WsfGuidedMover::PostUpdate(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
Referenced by Initialize2(), WriteTrajectoryOutput(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
Referenced by Initialize2(), ProcessInput(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
|
protected |
|
protected |
| UtCallbackListN<void(double)> WsfGuidedMoverBase::RouteChanged |
Referenced by SetRoute(), UpdateRoute(), WsfGuidedMoverBase(), and WsfGuidedMoverBase().
| UtCallbackListN<void(double, double)> WsfGuidedMoverBase::StageBurnout |
Referenced by WsfGuidedMoverBase(), and WsfGuidedMoverBase().
| UtCallbackListN<void(double, double)> WsfGuidedMoverBase::StageIgnition |
Referenced by WsfGuidedMoverBase(), and WsfGuidedMoverBase().
| UtCallbackListN<void(double, double)> WsfGuidedMoverBase::StageSeparation |
Referenced by WsfGuidedMoverBase(), and WsfGuidedMoverBase().