WSF
wsf::space::OrbitalMissionContext Class Referenceabstract

#include <WsfSpaceOrbitalMissionContext.hpp>

Inheritance diagram for wsf::space::OrbitalMissionContext:

Public Member Functions

 OrbitalMissionContext ()=default
virtual ~OrbitalMissionContext ()=default
virtual void Update (const UtCalendar &aEpoch)=0
virtual bool Initialize (const UtCalendar &aEpoch)=0
virtual const UtOrbitalPropagatorBase & GetPropagator () const =0
virtual WsfSimulationGetSimulation () const
virtual WsfSpaceMoverBaseGetSpaceMover () const
virtual void InitiateMissionEvent (const UtCalendar &aEpoch, const WsfOrbitalEvent &aMissionEvent) const
virtual void UpdateMissionEvent (const UtCalendar &aEpoch, const WsfOrbitalEvent &aMissionEvent) const
virtual void CompleteMissionEvent (const UtCalendar &aEpoch, const WsfOrbitalEvent &aMissionEvent) const
virtual void CancelMissionEvent (const UtCalendar &aEpoch, const WsfOrbitalEvent &aMissionEvent) const
virtual bool Maneuver (const UtCalendar &aEpoch, const UtVec3d &aCommandedDeltaV, UtVec3d &aActualDeltaV) const
virtual double GetAvailableDeltaV () const
 Get the available delta-v in the executing context.
virtual double GetRequiredDeltaV (double aDuration) const
 Get the delta-v required to maneuver for the given aDuration.
virtual bool PerformStagingOperation () const
 Perform a staging operation.
virtual std::string GetName () const
 Get a name identifying this orbital mission context.
virtual double GetManeuverDuration (const UtCalendar &aEpoch, const WsfOrbitalManeuver &aManeuver, double aDeltaV) const

Detailed Description

This class defines the interface for an execution context for orbital missions.

Concrete subclasses of this class provides the needed data for orbital mission execution for a particular use case. For example, one subclass will provide the needed dependencies when executing the mission in the simulation, and one will provide the needed dependencies when executing the mission when verifying it.

Constructor & Destructor Documentation

◆ OrbitalMissionContext()

wsf::space::OrbitalMissionContext::OrbitalMissionContext ( )
default

◆ ~OrbitalMissionContext()

virtual wsf::space::OrbitalMissionContext::~OrbitalMissionContext ( )
virtualdefault

Member Function Documentation

◆ CancelMissionEvent()

virtual void wsf::space::OrbitalMissionContext::CancelMissionEvent ( const UtCalendar & aEpoch,
const WsfOrbitalEvent & aMissionEvent ) const
inlinevirtual

Indicate that an orbital mission event was cancelled.

This method offers a means for this context to take action whenever a mission event is cancelled, such as triggering observers.

Parameters
aEpochThe epoch at which point a mission event was cancelled.
aMissionEventThe mission event being cancelled.

Reimplemented in wsf::space::OrbitalMissionSimulationContext, and wsf::space::OrbitalMissionVerificationContext.

◆ CompleteMissionEvent()

virtual void wsf::space::OrbitalMissionContext::CompleteMissionEvent ( const UtCalendar & aEpoch,
const WsfOrbitalEvent & aMissionEvent ) const
inlinevirtual

Indicate that an orbital mission event was completed.

This method offers a means for this context to take action whenever a mission event is completed, such as triggering observers.

Parameters
aEpochThe epoch at which point a mission event was completed.
aMissionEventThe mission event being completed.

Reimplemented in wsf::space::OrbitalMissionSimulationContext, and wsf::space::OrbitalMissionVerificationContext.

Referenced by WsfOrbitalMissionSequence::AdvanceMissionEvent(), and WsfOrbitalEvent::Execute().

◆ GetAvailableDeltaV()

virtual double wsf::space::OrbitalMissionContext::GetAvailableDeltaV ( ) const
inlinevirtual

◆ GetManeuverDuration()

virtual double wsf::space::OrbitalMissionContext::GetManeuverDuration ( const UtCalendar & aEpoch,
const WsfOrbitalManeuver & aManeuver,
double aDeltaV ) const
inlinevirtual

Return the duration of the given maneuver for the given delta-v in this context.

Parameters
aEpochThe epoch at which the maneuver is executing.
aManeuverThe maneuver in question.
aDeltaVThe delta-v to be expended in the maneuver.
Returns
The expected duration of the maneuver.

Reimplemented in wsf::space::OrbitalMissionSimulationContext, and wsf::space::OrbitalMissionVerificationContext.

Referenced by WsfOrbitalManeuver::InitializeTimes().

◆ GetName()

virtual std::string wsf::space::OrbitalMissionContext::GetName ( ) const
inlinevirtual

Get a name identifying this orbital mission context.

Reimplemented in wsf::space::OrbitalMissionSimulationContext, and wsf::space::OrbitalMissionVerificationContext.

Referenced by WsfOrbitalManeuver::InitializeTimes().

◆ GetPropagator()

virtual const UtOrbitalPropagatorBase & wsf::space::OrbitalMissionContext::GetPropagator ( ) const
pure virtual

Return the propagator representing the current state of the executing platform.

In some contexts, this will not be a propagator owned by any platform, but will instead be the propagator a platform would have were it executing the mission sequence during a simulation.

Returns
The propagator giving the current state during the execution of the mission.

Implemented in wsf::space::OrbitalMissionSimulationContext, and wsf::space::OrbitalMissionVerificationContext.

Referenced by WsfOrbitalManeuver::EvaluatePostconditions(), WsfOrbitalEvent::Execute(), WsfOrbitalManeuver::ExecuteEvent(), WsfOrbitalManeuver::GetTargetPropagatorPerception(), WsfOrbitalMissionSequence::Initialize(), WsfOrbitalEvent::InitializeTimes(), and WsfOrbitalManeuver::InitializeTimes().

◆ GetRequiredDeltaV()

virtual double wsf::space::OrbitalMissionContext::GetRequiredDeltaV ( double aDuration) const
inlinevirtual

Get the delta-v required to maneuver for the given aDuration.

Reimplemented in wsf::space::OrbitalMissionSimulationContext, and wsf::space::OrbitalMissionVerificationContext.

◆ GetSimulation()

virtual WsfSimulation * wsf::space::OrbitalMissionContext::GetSimulation ( ) const
inlinevirtual

Return the simulation to which this context refers.

Some OrbitalMissionContexts will be associated with a simulation, either because the mission is executing in the simulation, or because the simulation is available as a source of information.

Returns
The simulation to which this context refers, or nullptr.

Reimplemented in wsf::space::OrbitalMissionSimulationContext, and wsf::space::OrbitalMissionVerificationContext.

Referenced by WsfOrbitalScriptEvent::ExecuteEvent(), WsfOrbitalManeuver::GetTargetPropagatorPerception(), WsfOrbitalEvent::Initialize(), WsfOrbitalMissionSequence::Initialize(), and WsfOrbitalScriptEvent::Initialize().

◆ GetSpaceMover()

virtual WsfSpaceMoverBase * wsf::space::OrbitalMissionContext::GetSpaceMover ( ) const
inlinevirtual

Return the space mover to which this context refers.

Some OrbitalMissionContexts will be associtated with a space mover, typically because the context is on in which a space mover's state is actually being updated by the mission sequence.

Returns
The space mover to which this context refers, or nullptr.

Reimplemented in wsf::space::OrbitalMissionSimulationContext, and wsf::space::OrbitalMissionVerificationContext.

Referenced by WsfOrbitalAttitudeChangeEvent::ExecuteEvent(), WsfOrbitalScriptEvent::ExecuteEvent(), WsfOrbitalAttitudeChangeEvent::Initialize(), and WsfOrbitalScriptEvent::Initialize().

◆ Initialize()

virtual bool wsf::space::OrbitalMissionContext::Initialize ( const UtCalendar & aEpoch)
pure virtual

Initialize the context at the given aEpoch.

Parameters
aEpochThe epoch at which this context is being initialized.
Returns
true if initialization was successful, false otherwise.

Implemented in wsf::space::OrbitalMissionSimulationContext, and wsf::space::OrbitalMissionVerificationContext.

◆ InitiateMissionEvent()

virtual void wsf::space::OrbitalMissionContext::InitiateMissionEvent ( const UtCalendar & aEpoch,
const WsfOrbitalEvent & aMissionEvent ) const
inlinevirtual

Indicate that an orbital mission event was initiated.

This method offers a means for this context to take action whenever a mission event is initiated, such as triggering observers.

Parameters
aEpochThe epoch at which point a mission event was initiated.
aMissionEventThe mission event being initiated.

Reimplemented in wsf::space::OrbitalMissionSimulationContext, and wsf::space::OrbitalMissionVerificationContext.

Referenced by WsfOrbitalEvent::Execute().

◆ Maneuver()

virtual bool wsf::space::OrbitalMissionContext::Maneuver ( const UtCalendar & aEpoch,
const UtVec3d & aCommandedDeltaV,
UtVec3d & aActualDeltaV ) const
inlinevirtual

Command a maneuver at the given epoch.

Indicate to the context that a maneuver should occur at the given aEpoch and there should be a change in ECI velocity of the given aCommandedDeltaV. The actual execution of the maneuver may be unable to achieve the commanded delta-v, so the actually achieved delta-v is returned via aActualDeltaV. If the maneuver was unsuccessful completely, false is returned.

Parameters
aEpochThe epoch at which the maneuver is to occur.
aCommandedDeltaVThe delta-v commanded for the maneuver.
aActualDeltaV[out] The actual delta-v that was possible.
Returns
true if the maneuver was successful, false otherwise.

Reimplemented in wsf::space::OrbitalMissionSimulationContext, and wsf::space::OrbitalMissionVerificationContext.

Referenced by WsfOrbitalManeuver::ExecuteEvent().

◆ PerformStagingOperation()

virtual bool wsf::space::OrbitalMissionContext::PerformStagingOperation ( ) const
inlinevirtual

◆ Update()

virtual void wsf::space::OrbitalMissionContext::Update ( const UtCalendar & aEpoch)
pure virtual

Update to the given aEpoch.

This typically will update member variables for those subclasses that hold any.

Parameters
aEpochThe epoch to which to update this context.

Implemented in wsf::space::OrbitalMissionSimulationContext, and wsf::space::OrbitalMissionVerificationContext.

Referenced by WsfOrbitalManeuver::ExecuteEvent().

◆ UpdateMissionEvent()

virtual void wsf::space::OrbitalMissionContext::UpdateMissionEvent ( const UtCalendar & aEpoch,
const WsfOrbitalEvent & aMissionEvent ) const
inlinevirtual

Indicate that an orbital mission event was updated.

This method offers a means for this context to take action whenever a mission event is updated, such as triggering observers.

Parameters
aEpochThe epoch at which point a mission event was updated.
aMissionEventThe mission event being updated.

Reimplemented in wsf::space::OrbitalMissionSimulationContext, and wsf::space::OrbitalMissionVerificationContext.

Referenced by WsfOrbitalEvent::Execute().


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