WSF
WsfOrbitalScriptEvent.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 WSFORBITALSCRIPTEVENT_HPP
13#define WSFORBITALSCRIPTEVENT_HPP
14
15#include "wsf_space_export.h"
16
17#include <string>
18
19class UtCalendar;
20class UtInput;
21class UtScript;
23#include "UtScriptData.hpp"
24#include "WsfOrbitalEvent.hpp"
25class WsfScenario;
26
28class WSF_SPACE_EXPORT WsfOrbitalScriptEvent : public WsfOrbitalEvent
29{
30public:
31 explicit WsfOrbitalScriptEvent(const WsfScenario& aScenario);
34 ~WsfOrbitalScriptEvent() override;
35
36 bool ProcessInput(UtInput& aInput) override;
37 bool Initialize(const UtCalendar& aEpoch, const wsf::space::OrbitalMissionContext& aContext) override;
38
40 WsfOrbitalEvent* Clone() const override;
41
42 const char* GetScriptClassName() const override { return "WsfOrbitalScriptEvent"; }
43
44 static WsfStringId GetTypeId();
45
46 bool GetNextExecutionTime(const UtCalendar& aCurrentTime,
47 const UtOrbitalPropagatorBase& aPropagator,
48 UtCalendar& aNextTime) override;
49
50 const std::string& GetOnInitializeInput() const { return mOnInitializeInput; }
51 const std::string& GetOnUpdateInput() const { return mOnUpdateInput; }
52 const std::string& GetOnCompleteInput() const { return mOnCompleteInput; }
53 const std::string& GetIsCompleteInput() const { return mIsCompleteInput; }
54
57 void SetOnInitializeInput(const std::string& aInput) { mOnInitializeInput = aInput; }
58
59
62 void SetOnUpdateInput(const std::string& aInput) { mOnUpdateInput = aInput; }
63
66 void SetOnCompleteInput(const std::string& aInput) { mOnCompleteInput = aInput; }
67
70 void SetIsCompleteInput(const std::string& aInput) { mIsCompleteInput = aInput; }
71
72 void Accept(WsfOrbitalEventVisitor* aVisitorPtr) override;
73
74protected:
75 bool ExecuteEvent(const UtCalendar& aEpoch, wsf::space::OrbitalMissionContext& aContext) override;
76
77 bool EvaluateCompletion(const UtCalendar& aEpoch, const UtOrbitalPropagatorBase& aPropagator) override;
78
79private:
80 static void InputBlockToString(UtInput& aInput, std::string& aString, bool aIncludeBlock = true);
81
82 const WsfScenario& mScenario; // Needed to create the script context before ProcessInput is called.
83 WsfScriptContext* mContextPtr;
84
85 std::string mOnInitializeInput;
86 std::string mOnUpdateInput;
87 std::string mOnCompleteInput;
88 std::string mIsCompleteInput;
89
90 UtScript* mOnUpdateScriptPtr;
91 UtScript* mOnCompleteScriptPtr;
92 UtScript* mIsCompleteScriptPtr;
93};
94
95#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
WsfStringId GetTypeId() const
Get the string ID of the 'type' of the object.
Definition WsfObject.hpp:78
Definition WsfOrbitalEventVisitor.hpp:41
virtual bool ExecuteEvent(const UtCalendar &aCurrentTime, wsf::space::OrbitalMissionContext &aContext)=0
virtual bool EvaluateCompletion(const UtCalendar &aEpoch, const UtOrbitalPropagatorBase &aPropagator)
Definition WsfOrbitalEvent.cpp:351
virtual void Accept(WsfOrbitalEventVisitor *aVisitorPtr)=0
bool ProcessInput(UtInput &aInput) override
Definition WsfOrbitalEvent.cpp:29
WsfOrbitalEvent(const WsfOrbitalEvent &aSrc)
Definition WsfOrbitalEvent.cpp:361
virtual bool GetNextExecutionTime(const UtCalendar &aCurrentTime, const UtOrbitalPropagatorBase &aPropagator, UtCalendar &aNextExecutionTime)
For finite events, return the next time the event should be executed.
Definition WsfOrbitalEvent.cpp:301
virtual bool Initialize(const UtCalendar &aEpoch, const wsf::space::OrbitalMissionContext &aContext)
Definition WsfOrbitalEvent.cpp:202
WsfOrbitalEvent * Clone() const override=0
Make a copy of this object.
const std::string & GetOnCompleteInput() const
Definition WsfOrbitalScriptEvent.hpp:52
void SetOnCompleteInput(const std::string &aInput)
Definition WsfOrbitalScriptEvent.hpp:66
const char * GetScriptClassName() const override
Definition WsfOrbitalScriptEvent.hpp:42
WsfOrbitalScriptEvent & operator=(const WsfOrbitalScriptEvent &)=delete
const std::string & GetIsCompleteInput() const
Definition WsfOrbitalScriptEvent.hpp:53
void SetOnInitializeInput(const std::string &aInput)
Definition WsfOrbitalScriptEvent.hpp:57
void SetIsCompleteInput(const std::string &aInput)
Definition WsfOrbitalScriptEvent.hpp:70
WsfOrbitalScriptEvent(const WsfScenario &aScenario)
Definition WsfOrbitalScriptEvent.cpp:30
void SetOnUpdateInput(const std::string &aInput)
Definition WsfOrbitalScriptEvent.hpp:62
const std::string & GetOnInitializeInput() const
Definition WsfOrbitalScriptEvent.hpp:50
const std::string & GetOnUpdateInput() const
Definition WsfOrbitalScriptEvent.hpp:51
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Definition WsfScriptContext.hpp:71
Definition WsfSpaceOrbitalMissionContext.hpp:38
Copyrights Multiple, All Rights Reserved