12#ifndef WSFSCRIPTSTATEMACHINE_HPP
13#define WSFSCRIPTSTATEMACHINE_HPP
15#include "wsf_export.h"
21#include "UtCloneablePtr.hpp"
113 virtual int Evaluate(
bool aShowStateEvaluations);
134 void SetChildStateIndex(
int stateIndex);
186 static std::unique_ptr<UtScriptClass>
CreateScriptClass(
const std::string& aClassName, UtScriptTypes* aScriptTypesPtr);
189 const size_t Id()
const {
return mId; }
199 virtual int Evaluate(
int aCurrentStateIndex);
201 virtual int EvaluateState(
int aCurrentStateIndex,
bool aDoNewStateEntry =
true);
203 virtual void EnterState(
int aStateIndex);
205 virtual void ExitState(
int aStateIndex);
209 int GetInitialStateIndex()
const;
211 State* GetState(
int aStateIndex)
const;
220 virtual bool Initialize(
double aSimTime);
222 virtual bool ProcessInput(UtInput& aInput);
234 virtual void EnterState(State* aStatePtr);
235 virtual void ExitState(State* aStatePtr);
253 static size_t GetUniqueId() {
return ++mNextUniqueId; }
255 static size_t mNextUniqueId;
256 bool mTransitionToSelfMessage{
false};
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfAdvancedBehaviorTree.hpp:54
Definition WsfBehaviorTree.hpp:31
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 WsfScriptProcessor.hpp:43
Definition WsfScriptStateMachine.hpp:96
WsfStringId GetStateName() const
Return the name (ID) of this state.
Definition WsfScriptStateMachine.hpp:125
virtual State * Clone(WsfScriptContext &aContext) const
Definition WsfScriptStateMachine.cpp:543
ut::CloneablePtr< WsfAdvancedBehaviorTree > mAdvancedBehaviorTreePtr
Definition WsfScriptStateMachine.hpp:165
WsfScriptStateMachine * mChildFiniteStateMachinePtr
Definition WsfScriptStateMachine.hpp:168
virtual std::unique_ptr< Transition > CreateTransition(WsfStringId aNextStateName) const
Definition WsfScriptStateMachine.cpp:551
WsfScriptContext * mContextPtr
The script context.
Definition WsfScriptStateMachine.hpp:148
int mChildStateIndex
Definition WsfScriptStateMachine.hpp:169
void SetStateIndex(int aStateIndex)
Set the state index of this state within the state machine.
Definition WsfScriptStateMachine.hpp:122
State(const State &aSrc)=delete
int ChildStateIndex()
Definition WsfScriptStateMachine.hpp:133
TransitionList & GetTransitions()
Definition WsfScriptStateMachine.hpp:109
WsfScriptStateMachine * ChildStateMachine()
Definition WsfScriptStateMachine.hpp:132
virtual void RemoveTransition(WsfStringId aNextStateName)
Removes the specified transition from the state.
Definition WsfScriptStateMachine.cpp:557
UtScript * mOnEntryScriptPtr
Definition WsfScriptStateMachine.hpp:152
WsfAdvancedBehaviorTree * AdvancedBehaviorTree() const
Definition WsfScriptStateMachine.hpp:136
WsfStringId mStateName
The name (ID) of this state.
Definition WsfScriptStateMachine.hpp:142
UtScript * mOnExitScriptPtr
Definition WsfScriptStateMachine.hpp:157
WsfBehaviorTree * mBehaviorTreePtr
Definition WsfScriptStateMachine.hpp:163
int GetStateIndex() const
Definition WsfScriptStateMachine.hpp:119
int mStateIndex
The index of this state within the state machine.
Definition WsfScriptStateMachine.hpp:145
WsfStringId mOnEntryScriptName
Definition WsfScriptStateMachine.hpp:153
TransitionList mTransitionList
The rules that provide for transitions out of this state.
Definition WsfScriptStateMachine.hpp:161
WsfStringId mOnExitScriptName
Definition WsfScriptStateMachine.hpp:158
const State & operator=(const State &aRhs)=delete
UtScript * mScriptPtr
Definition WsfScriptStateMachine.hpp:86
WsfStringId mScriptName
The string ID of the name of the script that defines the transition rule.
Definition WsfScriptStateMachine.hpp:82
int GetNextStateIndex() const
Definition WsfScriptStateMachine.hpp:64
WsfStringId GetNextStateName() const
Definition WsfScriptStateMachine.hpp:68
WsfStringId mNextStateName
The name (ID) of next state.
Definition WsfScriptStateMachine.hpp:76
virtual ~Transition()=default
void SetNextStateIndex(int aNextStateIndex)
Definition WsfScriptStateMachine.hpp:66
virtual bool Evaluate(WsfScriptContext &aContext)
Definition WsfScriptStateMachine.cpp:958
int mNextStateIndex
The index of the next state in the state machine.
Definition WsfScriptStateMachine.hpp:79
virtual Transition * Clone() const
Definition WsfScriptStateMachine.cpp:949
virtual int Evaluate(int aCurrentStateIndex)
Definition WsfScriptStateMachine.cpp:97
int GetStateCount() const
Return the number of states in the state machine.
Definition WsfScriptStateMachine.hpp:214
StateList mStateList
The list of states.
Definition WsfScriptStateMachine.hpp:244
const size_t Id() const
Return the id for this state machine.
Definition WsfScriptStateMachine.hpp:189
WsfStringId mParentNameSpace
Definition WsfScriptStateMachine.hpp:241
virtual bool ProcessInput(UtInput &aInput)
Definition WsfScriptStateMachine.cpp:433
virtual void ExitStateNotify(int aStateIndex)
Definition WsfScriptStateMachine.hpp:197
WsfScriptProcessor * Processor()
Definition WsfScriptStateMachine.hpp:231
virtual void EnterState(int aStateIndex)
Definition WsfScriptStateMachine.cpp:276
virtual ~WsfScriptStateMachine()=default
bool mShowStateTransitions
Definition WsfScriptStateMachine.hpp:247
WsfScriptStateMachine()=default
void SetProcessor(WsfScriptProcessor *aProcessor)
Definition WsfScriptStateMachine.hpp:230
const WsfScriptStateMachine & operator=(const WsfScriptStateMachine &aRhs)=delete
WsfScriptProcessor * mParentProcessorPtr
Definition WsfScriptStateMachine.hpp:249
size_t mId
Unique integer id of this state machine.
Definition WsfScriptStateMachine.hpp:250
void ShowStateEvaluations(bool aShowStateEvaluations)
Definition WsfScriptStateMachine.hpp:224
bool ShowStateEvaluations() const
Definition WsfScriptStateMachine.hpp:225
std::vector< std::unique_ptr< Transition > > TransitionList
A list of transitions.
Definition WsfScriptStateMachine.hpp:90
bool mShowStateEvaluations
Definition WsfScriptStateMachine.hpp:246
virtual void ExitState(int aStateIndex)
Definition WsfScriptStateMachine.cpp:304
static std::unique_ptr< UtScriptClass > CreateScriptClass(const std::string &aClassName, UtScriptTypes *aScriptTypesPtr)
Definition WsfScriptStateMachine.cpp:1040
bool ShowStateTransitions() const
Definition WsfScriptStateMachine.hpp:228
virtual bool Initialize(double aSimTime)
Definition WsfScriptStateMachine.cpp:400
WsfScriptStateMachine(const WsfScriptStateMachine &aSrc)=delete
virtual void EnterStateNotify(int aStateIndex)
Definition WsfScriptStateMachine.hpp:193
std::vector< std::unique_ptr< State > > StateList
A collection of states.
Definition WsfScriptStateMachine.hpp:173
WsfScriptContext * mContextPtr
The context used for compiling and executing scripts.
Definition WsfScriptStateMachine.hpp:240
void ShowStateTransitions(bool aShowStateTransitions)
Definition WsfScriptStateMachine.hpp:227