WSF
WsfSpaceOrbitalMissionVerificationContext.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 WSFSPACEORBITALMISSIONVERIFICATIONCONTEXT_HPP
13#define WSFSPACEORBITALMISSIONVERIFICATIONCONTEXT_HPP
14
15#include "wsf_space_export.h"
16
17#include <string>
18
19#include "UtMemory.hpp"
20#include "UtOrbitalPropagatorBase.hpp"
25
26namespace wsf
27{
28namespace space
29{
30
39{
40public:
42 const UtOrbitalPropagatorBase& aPropagator,
43 const WsfOrbitalMissionSequence& aMissionEvents,
44 const std::string& aPlatformName)
45 : mManeuveringPtr{ut::clone(aManeuvering)}
46 , mPropagatorPtr{ut::clone(aPropagator)}
47 , mMissionEventsPtr{ut::clone(aMissionEvents)}
48 , mPlatformName{aPlatformName}
49 {
50 }
51
53
54 void Update(const UtCalendar& aEpoch) override;
55
56 bool Initialize(const UtCalendar& aEpoch) override;
57
58 const UtOrbitalPropagatorBase& GetPropagator() const override { return *(mPropagatorPtr); }
59 WsfSimulation* GetSimulation() const override { return nullptr; }
60 WsfSpaceMoverBase* GetSpaceMover() const override { return nullptr; }
61 void InitiateMissionEvent(const UtCalendar& aEpoch, const WsfOrbitalEvent& aMissionEvent) const override {}
62 void UpdateMissionEvent(const UtCalendar& aEpoch, const WsfOrbitalEvent& aMissionEvent) const override {}
63 void CompleteMissionEvent(const UtCalendar& aEpoch, const WsfOrbitalEvent& aMissionEvent) const override {}
64 void CancelMissionEvent(const UtCalendar& aEpoch, const WsfOrbitalEvent& aMissionEvent) const override {}
65 bool Maneuver(const UtCalendar& aEpoch, const UtVec3d& aCommandedDeltaV, UtVec3d& aActualDeltaV) const override;
66 double GetAvailableDeltaV() const override;
67 double GetRequiredDeltaV(double aDuration) const override;
68 bool PerformStagingOperation() const override;
69 std::string GetName() const override;
70 double GetManeuverDuration(const UtCalendar& aEpoch, const WsfOrbitalManeuver& aManeuver, double aDeltaV) const override;
71
80 bool VerifyMission(verify::PreOperation aPreVerifyOp = verify::PreOperation{},
81 verify::PostOperation aPostVerifyOp = verify::PostOperation{});
82
83private:
85 WsfOrbitalEvent* GetCurrentMissionEvent() const;
86
88 WsfOrbitalEvent* AdvanceMission(const UtCalendar& aEpoch) const;
89
90 verify::Status VerifyEvent(WsfOrbitalEvent& aEvent);
91
92 std::unique_ptr<WsfOrbitalManeuvering> mManeuveringPtr;
93 std::unique_ptr<UtOrbitalPropagatorBase> mPropagatorPtr;
94 std::unique_ptr<WsfOrbitalMissionSequence> mMissionEventsPtr;
95 std::string mPlatformName;
96};
97
98} // namespace space
99} // namespace wsf
100
101#endif // WSFSPACEORBITALMISSIONVERIFICATIONCONTEXT_HPP
aObjectPtr Update(simTime)
Definition WsfOrbitalEvent.hpp:50
Definition WsfOrbitalManeuver.hpp:34
Definition WsfOrbitalManeuvering.hpp:30
Definition WsfOrbitalMissionSequence.hpp:32
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfSpaceMoverBase.hpp:70
void InitiateMissionEvent(const UtCalendar &aEpoch, const WsfOrbitalEvent &aMissionEvent) const override
Definition WsfSpaceOrbitalMissionVerificationContext.hpp:61
void UpdateMissionEvent(const UtCalendar &aEpoch, const WsfOrbitalEvent &aMissionEvent) const override
Definition WsfSpaceOrbitalMissionVerificationContext.hpp:62
OrbitalMissionVerificationContext(const WsfOrbitalManeuvering &aManeuvering, const UtOrbitalPropagatorBase &aPropagator, const WsfOrbitalMissionSequence &aMissionEvents, const std::string &aPlatformName)
Definition WsfSpaceOrbitalMissionVerificationContext.hpp:41
WsfSpaceMoverBase * GetSpaceMover() const override
Definition WsfSpaceOrbitalMissionVerificationContext.hpp:60
void CancelMissionEvent(const UtCalendar &aEpoch, const WsfOrbitalEvent &aMissionEvent) const override
Definition WsfSpaceOrbitalMissionVerificationContext.hpp:64
void CompleteMissionEvent(const UtCalendar &aEpoch, const WsfOrbitalEvent &aMissionEvent) const override
Definition WsfSpaceOrbitalMissionVerificationContext.hpp:63
const UtOrbitalPropagatorBase & GetPropagator() const override
Definition WsfSpaceOrbitalMissionVerificationContext.hpp:58
WsfSimulation * GetSimulation() const override
Definition WsfSpaceOrbitalMissionVerificationContext.hpp:59
bool Initialize(const UtCalendar &aEpoch) override
Definition WsfSpaceOrbitalMissionVerificationContext.cpp:26
Definition WsfSensorErrorModel.hpp:21
std::function< void(int, const WsfOrbitalEvent *, const UtCalendar &, const UtOrbitalElements &, double)> PreOperation
Definition WsfSpaceVerifyTypes.hpp:37
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