WSF
WsfOrbitalManeuver.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 2016 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 WSFORBITALMANEUVER_HPP
13#define WSFORBITALMANEUVER_HPP
14
15#include "wsf_space_export.h"
16
17class UtCalendar;
18class UtInput;
19#include "UtVec3.hpp"
20class WsfLocalTrack;
21#include "WsfOrbitalEvent.hpp"
22#include "WsfStringId.hpp"
23class WsfTrackId;
24
33class WSF_SPACE_EXPORT WsfOrbitalManeuver : public WsfOrbitalEvent
34{
35public:
36 WsfOrbitalManeuver(const WsfOrbitalManeuver& aSrc) = default;
38 ~WsfOrbitalManeuver() override = default;
39
41 WsfOrbitalManeuver* Clone() const override = 0;
42
43 bool VerifyCondition() const override;
44
45 bool EvaluatePreconditions(const wsf::space::OrbitalMissionContext& aContext) const override;
46
47 bool EvaluatePostconditions(const wsf::space::OrbitalMissionContext& aContext) const override;
48
65 virtual void ComputeDeltaV(const UtCalendar& aCurrentTime,
66 const UtCalendar& aEvaluationTime,
67 const UtOrbitalPropagatorBase& aPropagator,
68 UtVec3d& aDeltaV) const {}; // = 0;
69
71 const char* GetScriptClassName() const override { return "WsfOrbitalManeuver"; }
72
73 static WsfStringId GetTypeId();
74
77 double GetDeltaV() const override { return mDeltaV; }
78
79 double GetRequiredDeltaV(const UtOrbitalPropagatorBase& aPropagator) const override;
80
81protected:
82 WsfOrbitalManeuver(const WsfScenario& aScenario);
83
84 bool InitializeTimes(const UtCalendar& aEpoch, const wsf::space::OrbitalMissionContext& aContext) override;
85
86 bool ExecuteEvent(const UtCalendar& aEpoch, wsf::space::OrbitalMissionContext& aContext) override;
87 bool EvaluateCompletion(const UtCalendar& aEpoch, const UtOrbitalPropagatorBase& aPropagator) override;
88
89 const UtOrbitalPropagatorBase* GetTargetPropagatorPerception(WsfLocalTrack& aLocalTrack,
90 const wsf::space::OrbitalMissionContext& aContext) const;
91 const UtOrbitalPropagatorBase* GetTargetPropagatorTruth(WsfStringId aTargetName, WsfSimulation* aSimulationPtr) const;
92
93 double mDeltaV;
95};
96
97#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition WsfLocalTrack.hpp:32
WsfStringId GetTypeId() const
Get the string ID of the 'type' of the object.
Definition WsfObject.hpp:78
virtual bool ExecuteEvent(const UtCalendar &aCurrentTime, wsf::space::OrbitalMissionContext &aContext)=0
virtual bool EvaluateCompletion(const UtCalendar &aEpoch, const UtOrbitalPropagatorBase &aPropagator)
Definition WsfOrbitalEvent.cpp:351
WsfOrbitalEvent(const WsfOrbitalEvent &aSrc)
Definition WsfOrbitalEvent.cpp:361
virtual bool VerifyCondition() const
Definition WsfOrbitalEvent.cpp:224
virtual bool EvaluatePreconditions(const wsf::space::OrbitalMissionContext &aContext) const
Definition WsfOrbitalEvent.cpp:237
virtual bool InitializeTimes(const UtCalendar &aEpoch, const wsf::space::OrbitalMissionContext &aContext)
Definition WsfOrbitalEvent.cpp:283
virtual double GetRequiredDeltaV(const UtOrbitalPropagatorBase &aPropagator) const
Return the minimum required delta-v needed to complete this event; the default is to return 0....
Definition WsfOrbitalEvent.hpp:164
virtual bool EvaluatePostconditions(const wsf::space::OrbitalMissionContext &aContext) const
Definition WsfOrbitalEvent.cpp:247
Definition WsfOrbitalManeuver.hpp:34
double mRemainingDeltaV
Definition WsfOrbitalManeuver.hpp:94
virtual void ComputeDeltaV(const UtCalendar &aCurrentTime, const UtCalendar &aEvaluationTime, const UtOrbitalPropagatorBase &aPropagator, UtVec3d &aDeltaV) const
Definition WsfOrbitalManeuver.hpp:65
const char * GetScriptClassName() const override
Return the name of the script class associated with this class.
Definition WsfOrbitalManeuver.hpp:71
WsfOrbitalManeuver(const WsfOrbitalManeuver &aSrc)=default
WsfOrbitalManeuver & operator=(const WsfOrbitalManeuver &)=delete
double GetDeltaV() const override
Definition WsfOrbitalManeuver.hpp:77
~WsfOrbitalManeuver() override=default
double mDeltaV
Definition WsfOrbitalManeuver.hpp:93
WsfOrbitalManeuver * Clone() const override=0
Make a copy of this object.
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfTrackId.hpp:33
Definition WsfSpaceOrbitalMissionContext.hpp:38
Copyrights Multiple, All Rights Reserved