WSF
WsfSpaceOrbitalMissionContext.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2021 Infoscitex, a DCS Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFSPACEORBITALMISSIONCONTEXT_HPP
13#define WSFSPACEORBITALMISSIONCONTEXT_HPP
14
15#include <string>
16
17class UtCalendar;
18class UtOrbitalPropagatorBase;
19#include "UtVec3.hpp"
20
21class WsfOrbitalEvent;
23class WsfSimulation;
25
26namespace wsf
27{
28namespace space
29{
30
38{
39public:
41 virtual ~OrbitalMissionContext() = default;
42
49 virtual void Update(const UtCalendar& aEpoch) = 0;
50
55 virtual bool Initialize(const UtCalendar& aEpoch) = 0;
56
64 virtual const UtOrbitalPropagatorBase& GetPropagator() const = 0;
65
73 virtual WsfSimulation* GetSimulation() const { return nullptr; }
74
82 virtual WsfSpaceMoverBase* GetSpaceMover() const { return nullptr; }
83
91 virtual void InitiateMissionEvent(const UtCalendar& aEpoch, const WsfOrbitalEvent& aMissionEvent) const {}
92
100 virtual void UpdateMissionEvent(const UtCalendar& aEpoch, const WsfOrbitalEvent& aMissionEvent) const {}
101
109 virtual void CompleteMissionEvent(const UtCalendar& aEpoch, const WsfOrbitalEvent& aMissionEvent) const {}
110
118 virtual void CancelMissionEvent(const UtCalendar& aEpoch, const WsfOrbitalEvent& aMissionEvent) const {}
119
132 virtual bool Maneuver(const UtCalendar& aEpoch, const UtVec3d& aCommandedDeltaV, UtVec3d& aActualDeltaV) const
133 {
134 return false;
135 }
136
138 virtual double GetAvailableDeltaV() const { return -1.0; }
139
141 virtual double GetRequiredDeltaV(double aDuration) const { return -1.0; }
142
144 virtual bool PerformStagingOperation() const { return false; }
145
147 virtual std::string GetName() const { return std::string{}; }
148
155 virtual double GetManeuverDuration(const UtCalendar& aEpoch, const WsfOrbitalManeuver& aManeuver, double aDeltaV) const
156 {
157 return -1.0;
158 }
159};
160
161} // namespace space
162} // namespace wsf
163
164#endif // WSFSPACEORBITALMISSIONCONTEXT_HPP
Definition WsfOrbitalEvent.hpp:50
Definition WsfOrbitalManeuver.hpp:34
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfSpaceMoverBase.hpp:70
virtual void UpdateMissionEvent(const UtCalendar &aEpoch, const WsfOrbitalEvent &aMissionEvent) const
Definition WsfSpaceOrbitalMissionContext.hpp:100
virtual ~OrbitalMissionContext()=default
virtual bool Initialize(const UtCalendar &aEpoch)=0
virtual bool Maneuver(const UtCalendar &aEpoch, const UtVec3d &aCommandedDeltaV, UtVec3d &aActualDeltaV) const
Definition WsfSpaceOrbitalMissionContext.hpp:132
virtual void InitiateMissionEvent(const UtCalendar &aEpoch, const WsfOrbitalEvent &aMissionEvent) const
Definition WsfSpaceOrbitalMissionContext.hpp:91
virtual void Update(const UtCalendar &aEpoch)=0
virtual std::string GetName() const
Get a name identifying this orbital mission context.
Definition WsfSpaceOrbitalMissionContext.hpp:147
virtual double GetAvailableDeltaV() const
Get the available delta-v in the executing context.
Definition WsfSpaceOrbitalMissionContext.hpp:138
virtual const UtOrbitalPropagatorBase & GetPropagator() const =0
virtual double GetManeuverDuration(const UtCalendar &aEpoch, const WsfOrbitalManeuver &aManeuver, double aDeltaV) const
Definition WsfSpaceOrbitalMissionContext.hpp:155
virtual bool PerformStagingOperation() const
Perform a staging operation.
Definition WsfSpaceOrbitalMissionContext.hpp:144
virtual void CompleteMissionEvent(const UtCalendar &aEpoch, const WsfOrbitalEvent &aMissionEvent) const
Definition WsfSpaceOrbitalMissionContext.hpp:109
virtual WsfSpaceMoverBase * GetSpaceMover() const
Definition WsfSpaceOrbitalMissionContext.hpp:82
virtual WsfSimulation * GetSimulation() const
Definition WsfSpaceOrbitalMissionContext.hpp:73
virtual void CancelMissionEvent(const UtCalendar &aEpoch, const WsfOrbitalEvent &aMissionEvent) const
Definition WsfSpaceOrbitalMissionContext.hpp:118
virtual double GetRequiredDeltaV(double aDuration) const
Get the delta-v required to maneuver for the given aDuration.
Definition WsfSpaceOrbitalMissionContext.hpp:141
Definition WsfAtmosphere.cpp:23
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Copyrights Multiple, All Rights Reserved