12#ifndef WSFSPACEORBITALMISSIONSIMULATIONCONTEXT_HPP
13#define WSFSPACEORBITALMISSIONSIMULATIONCONTEXT_HPP
15#include "UtCloneablePtr.hpp"
41 void Update(
const UtCalendar& aEpoch)
override;
42 bool Initialize(
const UtCalendar& aEpoch)
override;
43 const UtOrbitalPropagatorBase&
GetPropagator()
const override;
50 bool Maneuver(
const UtCalendar& aEpoch,
const UtVec3d& aCommandedDeltaV, UtVec3d& aActualDeltaV)
const override;
54 std::string
GetName()
const override;
72 void ScheduleMission(
const UtCalendar& aEpoch, std::unique_ptr<WsfOrbitalMissionSequence> aMissionEventsPtr);
83 ~Event()
override =
default;
90 size_t mPlatformIndex;
91 size_t mMissionEventId;
98 SetEvents(
const UtCalendar& aEpoch,
99 std::unique_ptr<WsfOrbitalMissionSequence> aMissionEventsPtr,
101 ~SetEvents()
override =
default;
106 std::unique_ptr<WsfOrbitalMissionSequence> mMissionEventsPtr;
118 void ScheduleNextMissionEvent(
const UtCalendar& aEpoch);
122 bool ScheduleMissionP(
const UtCalendar& aEpoch, std::unique_ptr<WsfOrbitalMissionSequence> aMissionEventsPtr);
128 UtCalendar mLastUpdateTime{};
129 ut::CloneablePtr<WsfOrbitalMissionSequence> mMissionEventsPtr;
Definition WsfEvent.hpp:29
virtual EventDisposition Execute()=0
EventDisposition
Definition WsfEvent.hpp:37
Definition WsfOrbitalEvent.hpp:50
Definition WsfOrbitalManeuver.hpp:34
Definition WsfOrbitalMissionSequence.hpp:32
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfSpaceMoverBase.hpp:70
OrbitalMissionContext()=default
Definition WsfSpaceOrbitalMissionSimulationContext.hpp:34
WsfSimulation * GetSimulation() const override
Definition WsfSpaceOrbitalMissionSimulationContext.cpp:84
UtCalendar GetLastUpdateTime() const
Definition WsfSpaceOrbitalMissionSimulationContext.hpp:62
std::string GetName() const override
Get a name identifying this orbital mission context.
Definition WsfSpaceOrbitalMissionSimulationContext.cpp:152
~OrbitalMissionSimulationContext() override=default
bool Maneuver(const UtCalendar &aEpoch, const UtVec3d &aCommandedDeltaV, UtVec3d &aActualDeltaV) const override
Definition WsfSpaceOrbitalMissionSimulationContext.cpp:130
void InitiateMissionEvent(const UtCalendar &aEpoch, const WsfOrbitalEvent &aMissionEvent) const override
Definition WsfSpaceOrbitalMissionSimulationContext.cpp:94
void ScheduleMission(const UtCalendar &aEpoch, std::unique_ptr< WsfOrbitalMissionSequence > aMissionEventsPtr)
Definition WsfSpaceOrbitalMissionSimulationContext.cpp:195
OrbitalMissionSimulationContext(const OrbitalMissionSimulationContext &aOther)=delete
bool ProcessInput(UtInput &aInput)
This method will read in a mission sequence from input.
Definition WsfSpaceOrbitalMissionSimulationContext.cpp:164
bool PerformStagingOperation() const override
Perform a staging operation.
Definition WsfSpaceOrbitalMissionSimulationContext.cpp:147
bool Initialize(const UtCalendar &aEpoch) override
Definition WsfSpaceOrbitalMissionSimulationContext.cpp:57
double GetRequiredDeltaV(double aDuration) const override
Get the delta-v required to maneuver for the given aDuration.
Definition WsfSpaceOrbitalMissionSimulationContext.cpp:142
void Update(const UtCalendar &aEpoch) override
Update the MissionEvents state to the specified absolute time.
Definition WsfSpaceOrbitalMissionSimulationContext.cpp:46
void CompleteMissionEvent(const UtCalendar &aEpoch, const WsfOrbitalEvent &aMissionEvent) const override
Definition WsfSpaceOrbitalMissionSimulationContext.cpp:112
double GetManeuverDuration(const UtCalendar &aEpoch, const WsfOrbitalManeuver &aManeuver, double aDeltaV) const override
Definition WsfSpaceOrbitalMissionSimulationContext.cpp:157
OrbitalMissionSimulationContext(WsfSpaceMoverBase &aMover)
Definition WsfSpaceOrbitalMissionSimulationContext.cpp:32
const UtOrbitalPropagatorBase & GetPropagator() const override
Definition WsfSpaceOrbitalMissionSimulationContext.cpp:79
const WsfOrbitalMissionSequence & GetMissionEvents() const
Return the mission events configured for this context.
Definition WsfSpaceOrbitalMissionSimulationContext.cpp:203
void CancelMissionEvent(const UtCalendar &aEpoch, const WsfOrbitalEvent &aMissionEvent) const override
Definition WsfSpaceOrbitalMissionSimulationContext.cpp:121
double GetAvailableDeltaV() const override
Get the available delta-v in the executing context.
Definition WsfSpaceOrbitalMissionSimulationContext.cpp:137
void Schedule(WsfOrbitalEvent *aMissionEventPtr)
Schedule the given orbital event as a simulation event.
Definition WsfSpaceOrbitalMissionSimulationContext.cpp:188
void UpdateMissionEvent(const UtCalendar &aEpoch, const WsfOrbitalEvent &aMissionEvent) const override
Definition WsfSpaceOrbitalMissionSimulationContext.cpp:103
WsfSpaceMoverBase * GetSpaceMover() const override
Definition WsfSpaceOrbitalMissionSimulationContext.cpp:89
Definition WsfAtmosphere.cpp:23
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32