WSF
WsfSpaceEventResults.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 2019 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 WSFSPACEEVENTRESULTS_HPP
13#define WSFSPACEEVENTRESULTS_HPP
14
15#include "wsf_space_export.h"
16
17#include <ostream>
18
19class UtOrbitalPropagatorBase;
20
21#include "WsfEventResult.hpp"
22class WsfLocalTrack;
23class WsfOrbitalEvent;
24class WsfPlatform;
25class WsfSimulation;
27
28namespace wsf
29{
30namespace event
31{
32// ===================================================================================================
33class WSF_SPACE_EXPORT EclipseEntry : public Result
34{
35public:
36 static constexpr const char* cNAME = "ECLIPSE_ENTRY";
37 EclipseEntry(double aSimTime, WsfSpaceMoverBase* aSpaceMoverPtr, Settings aSettings = Settings())
38 : Result(aSimTime, std::move(aSettings), cNAME)
39 , mSpaceMoverPtr(aSpaceMoverPtr)
40 {
41 }
42
43 void Print(std::ostream& aStream) const override;
44 void PrintCSV(std::ostream& aStream) const override;
45
46 const WsfSpaceMoverBase* GetSpaceMover() const { return mSpaceMoverPtr; }
47
48private:
49 WsfSpaceMoverBase* mSpaceMoverPtr;
50};
51
52// ===================================================================================================
53class WSF_SPACE_EXPORT EclipseExit : public Result
54{
55public:
56 static constexpr const char* cNAME = "ECLIPSE_EXIT";
57 EclipseExit(double aSimTime, WsfSpaceMoverBase* aSpaceMoverPtr, Settings aSettings = Settings())
58 : Result(aSimTime, std::move(aSettings), cNAME)
59 , mSpaceMoverPtr(aSpaceMoverPtr)
60 {
61 }
62
63 void Print(std::ostream& aStream) const override;
64 void PrintCSV(std::ostream& aStream) const override;
65
66 const WsfSpaceMoverBase* GetSpaceMover() const { return mSpaceMoverPtr; }
67
68private:
69 WsfSpaceMoverBase* mSpaceMoverPtr;
70};
71
72// ===================================================================================================
73class WSF_SPACE_EXPORT OrbitalManeuverInitiated : public Result
74{
75public:
76 static constexpr const char* cNAME = "ORBITAL_MANEUVER_INITIATED";
77 OrbitalManeuverInitiated(double aSimTime,
78 WsfSpaceMoverBase* aSpaceMoverPtr,
79 const WsfOrbitalEvent& aManeuver,
80 Settings aSettings = Settings())
81 : Result(aSimTime, std::move(aSettings), cNAME)
82 , mSpaceMoverPtr(aSpaceMoverPtr)
83 , mManeuver(aManeuver)
84 {
85 }
86
87 void Print(std::ostream& aStream) const override;
88 void PrintCSV(std::ostream& aStream) const override;
89
90 const WsfSpaceMoverBase* GetSpaceMover() const { return mSpaceMoverPtr; }
91 const WsfOrbitalEvent& GetManeuver() const { return mManeuver; }
92
93private:
94 WsfSpaceMoverBase* mSpaceMoverPtr;
95 const WsfOrbitalEvent& mManeuver;
96};
97
98// ===================================================================================================
99class WSF_SPACE_EXPORT OrbitalManeuverUpdated : public Result
100{
101public:
102 static constexpr const char* cNAME = "ORBITAL_MANEUVER_UPDATED";
103 OrbitalManeuverUpdated(double aSimTime,
104 WsfSpaceMoverBase* aSpaceMoverPtr,
105 const WsfOrbitalEvent& aManeuver,
106 Settings aSettings = Settings())
107 : Result(aSimTime, std::move(aSettings), cNAME)
108 , mSpaceMoverPtr(aSpaceMoverPtr)
109 , mManeuver(aManeuver)
110 {
111 }
112
113 void Print(std::ostream& aStream) const override;
114 void PrintCSV(std::ostream& aStream) const override;
115
116 const WsfSpaceMoverBase* GetSpaceMover() const { return mSpaceMoverPtr; }
117 const WsfOrbitalEvent& GetManeuver() const { return mManeuver; }
118
119private:
120 WsfSpaceMoverBase* mSpaceMoverPtr;
121 const WsfOrbitalEvent& mManeuver;
122};
123
124// ===================================================================================================
125class WSF_SPACE_EXPORT OrbitalManeuverCanceled : public Result
126{
127public:
128 static constexpr const char* cNAME = "ORBITAL_MANEUVER_CANCELED";
129 OrbitalManeuverCanceled(double aSimTime,
130 WsfSpaceMoverBase* aSpaceMoverPtr,
131 const WsfOrbitalEvent& aManeuver,
132 Settings aSettings = Settings())
133 : Result(aSimTime, std::move(aSettings), cNAME)
134 , mSpaceMoverPtr(aSpaceMoverPtr)
135 , mManeuver(aManeuver)
136 {
137 }
138
139 void Print(std::ostream& aStream) const override;
140 void PrintCSV(std::ostream& aStream) const override;
141
142 const WsfSpaceMoverBase* GetSpaceMover() const { return mSpaceMoverPtr; }
143 const WsfOrbitalEvent& GetManeuver() const { return mManeuver; }
144
145private:
146 WsfSpaceMoverBase* mSpaceMoverPtr;
147 const WsfOrbitalEvent& mManeuver;
148};
149
150// ===================================================================================================
151class WSF_SPACE_EXPORT OrbitalManeuverCompleted : public Result
152{
153public:
154 static constexpr const char* cNAME = "ORBITAL_MANEUVER_COMPLETED";
156 WsfSpaceMoverBase* aSpaceMoverPtr,
157 const WsfOrbitalEvent& aManeuver,
158 Settings aSettings = Settings())
159 : Result(aSimTime, std::move(aSettings), cNAME)
160 , mSpaceMoverPtr(aSpaceMoverPtr)
161 , mManeuver(aManeuver)
162 {
163 }
164
165 void Print(std::ostream& aStream) const override;
166 void PrintCSV(std::ostream& aStream) const override;
167
168 const WsfSpaceMoverBase* GetSpaceMover() const { return mSpaceMoverPtr; }
169 const WsfOrbitalEvent& GetManeuver() const { return mManeuver; }
170
171private:
172 WsfSpaceMoverBase* mSpaceMoverPtr;
173 const WsfOrbitalEvent& mManeuver;
174};
175
176// ===================================================================================================
177class WSF_SPACE_EXPORT OrbitDeterminationInitiated : public Result
178{
179public:
180 static constexpr const char* cNAME = "ORBITAL_DETERMINATION_INITIATED";
182 WsfPlatform* aPlatformPtr,
183 const WsfLocalTrack& aLocalTrack,
184 const UtOrbitalPropagatorBase& aPropagator,
185 Settings aSettings = Settings())
186 : Result(aSimTime, std::move(aSettings), cNAME)
187 , mPlatformPtr(aPlatformPtr)
188 , mLocalTrack(aLocalTrack)
189 , mPropagator(aPropagator)
190 {
191 }
192
193 void Print(std::ostream& aStream) const override;
194 void PrintCSV(std::ostream& aStream) const override;
195
196 const WsfPlatform* GetPlatform() const { return mPlatformPtr; }
197 const WsfLocalTrack& GetLocalTrack() const { return mLocalTrack; }
198 const UtOrbitalPropagatorBase& GetPropagator() const { return mPropagator; }
199
200private:
201 WsfPlatform* mPlatformPtr;
202 const WsfLocalTrack& mLocalTrack;
203 const UtOrbitalPropagatorBase& mPropagator;
204};
205
206// ===================================================================================================
207class WSF_SPACE_EXPORT OrbitDeterminationUpdated : public Result
208{
209public:
210 static constexpr const char* cNAME = "ORBITAL_DETERMINATION_UPDATED";
212 WsfPlatform* aPlatformPtr,
213 const WsfLocalTrack& aLocalTrack,
214 const UtOrbitalPropagatorBase& aPropagator,
215 Settings aSettings = Settings())
216 : Result(aSimTime, std::move(aSettings), cNAME)
217 , mPlatformPtr(aPlatformPtr)
218 , mLocalTrack(aLocalTrack)
219 , mPropagator(aPropagator)
220 {
221 }
222
223 void Print(std::ostream& aStream) const override;
224 void PrintCSV(std::ostream& aStream) const override;
225
226 const WsfPlatform* GetPlatform() const { return mPlatformPtr; }
227 const WsfLocalTrack& GetLocalTrack() const { return mLocalTrack; }
228 const UtOrbitalPropagatorBase& GetPropagator() const { return mPropagator; }
229
230private:
231 WsfPlatform* mPlatformPtr;
232 const WsfLocalTrack& mLocalTrack;
233 const UtOrbitalPropagatorBase& mPropagator;
234};
235
236} // namespace event
237} // namespace wsf
238
239#endif
Definition WsfLocalTrack.hpp:32
Definition WsfOrbitalEvent.hpp:50
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfSpaceMoverBase.hpp:70
EclipseEntry(double aSimTime, WsfSpaceMoverBase *aSpaceMoverPtr, Settings aSettings=Settings())
Definition WsfSpaceEventResults.hpp:37
static constexpr const char * cNAME
Definition WsfSpaceEventResults.hpp:36
const WsfSpaceMoverBase * GetSpaceMover() const
Definition WsfSpaceEventResults.hpp:46
static constexpr const char * cNAME
Definition WsfSpaceEventResults.hpp:56
const WsfSpaceMoverBase * GetSpaceMover() const
Definition WsfSpaceEventResults.hpp:66
EclipseExit(double aSimTime, WsfSpaceMoverBase *aSpaceMoverPtr, Settings aSettings=Settings())
Definition WsfSpaceEventResults.hpp:57
const WsfPlatform * GetPlatform() const
Definition WsfSpaceEventResults.hpp:196
const WsfLocalTrack & GetLocalTrack() const
Definition WsfSpaceEventResults.hpp:197
static constexpr const char * cNAME
Definition WsfSpaceEventResults.hpp:180
OrbitDeterminationInitiated(double aSimTime, WsfPlatform *aPlatformPtr, const WsfLocalTrack &aLocalTrack, const UtOrbitalPropagatorBase &aPropagator, Settings aSettings=Settings())
Definition WsfSpaceEventResults.hpp:181
const UtOrbitalPropagatorBase & GetPropagator() const
Definition WsfSpaceEventResults.hpp:198
const UtOrbitalPropagatorBase & GetPropagator() const
Definition WsfSpaceEventResults.hpp:228
static constexpr const char * cNAME
Definition WsfSpaceEventResults.hpp:210
OrbitDeterminationUpdated(double aSimTime, WsfPlatform *aPlatformPtr, const WsfLocalTrack &aLocalTrack, const UtOrbitalPropagatorBase &aPropagator, Settings aSettings=Settings())
Definition WsfSpaceEventResults.hpp:211
const WsfPlatform * GetPlatform() const
Definition WsfSpaceEventResults.hpp:226
const WsfLocalTrack & GetLocalTrack() const
Definition WsfSpaceEventResults.hpp:227
const WsfOrbitalEvent & GetManeuver() const
Definition WsfSpaceEventResults.hpp:143
const WsfSpaceMoverBase * GetSpaceMover() const
Definition WsfSpaceEventResults.hpp:142
static constexpr const char * cNAME
Definition WsfSpaceEventResults.hpp:128
OrbitalManeuverCanceled(double aSimTime, WsfSpaceMoverBase *aSpaceMoverPtr, const WsfOrbitalEvent &aManeuver, Settings aSettings=Settings())
Definition WsfSpaceEventResults.hpp:129
static constexpr const char * cNAME
Definition WsfSpaceEventResults.hpp:154
const WsfSpaceMoverBase * GetSpaceMover() const
Definition WsfSpaceEventResults.hpp:168
const WsfOrbitalEvent & GetManeuver() const
Definition WsfSpaceEventResults.hpp:169
OrbitalManeuverCompleted(double aSimTime, WsfSpaceMoverBase *aSpaceMoverPtr, const WsfOrbitalEvent &aManeuver, Settings aSettings=Settings())
Definition WsfSpaceEventResults.hpp:155
OrbitalManeuverInitiated(double aSimTime, WsfSpaceMoverBase *aSpaceMoverPtr, const WsfOrbitalEvent &aManeuver, Settings aSettings=Settings())
Definition WsfSpaceEventResults.hpp:77
static constexpr const char * cNAME
Definition WsfSpaceEventResults.hpp:76
const WsfOrbitalEvent & GetManeuver() const
Definition WsfSpaceEventResults.hpp:91
const WsfSpaceMoverBase * GetSpaceMover() const
Definition WsfSpaceEventResults.hpp:90
static constexpr const char * cNAME
Definition WsfSpaceEventResults.hpp:102
const WsfOrbitalEvent & GetManeuver() const
Definition WsfSpaceEventResults.hpp:117
const WsfSpaceMoverBase * GetSpaceMover() const
Definition WsfSpaceEventResults.hpp:116
OrbitalManeuverUpdated(double aSimTime, WsfSpaceMoverBase *aSpaceMoverPtr, const WsfOrbitalEvent &aManeuver, Settings aSettings=Settings())
Definition WsfSpaceEventResults.hpp:103
Result(double aSimTime, Settings aSettings=Settings{}, std::string aEventName="UNSET")
Definition WsfEventResult.hpp:119
Definition WsfEventResult.hpp:35
Template specialization for wsf::comm::Address. Allows usage of Address in std::unordered_map/set.
Definition WsfCommAddress.hpp:185
Definition WsfXIO_EventResults.cpp:33
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Copyrights Multiple, All Rights Reserved