16 : m_Name(stateName), m_StateMode(stateMode)
27 m_Transitions.clear();
32 for (
auto it = m_Transitions.begin(); it != m_Transitions.end(); ++it)
34 if (transition.GetPointer() == (*it).GetPointer())
37 m_Transitions.push_back(transition);
42 const std::string &eventVariant)
46 if (transitions.size() > 1)
48 MITK_WARN <<
"Multiple transitions have been found for event. Use non-deprecated method " 49 "StateMachineState::GetTransitionList() instead!";
52 if (transitions.empty())
58 return transitions.at(0);
63 const std::string &eventVariant)
67 for (
auto it = m_Transitions.begin(); it != m_Transitions.end(); ++it)
70 transitions.push_back(*it);
86 for (
auto transIt = m_Transitions.begin(); transIt != m_Transitions.end(); ++transIt)
89 for (
auto stateIt = allStates->begin(); stateIt != allStates->end(); ++stateIt)
91 if ((*stateIt)->GetName() == (*transIt)->GetNextStateName())
93 (*transIt)->SetNextState(*stateIt);
100 MITK_WARN <<
"Target State not found in StateMachine.";
StateMachineState(const std::string &name, const std::string &stateMode)
~StateMachineState() override
bool AddTransition(StateMachineTransition::Pointer transition)
TransitionVector GetTransitionList(const std::string &eventClass, const std::string &eventVariant)
Return Transitions that match given event description.
std::string GetMode() const
std::string GetName() const
Returns the name.
std::vector< mitk::StateMachineState::Pointer > StateMap
static Pointer New(const std::string &_arga, const std::string &_argb, const std::string &_argc)
bool ConnectTransitions(StateMap *allStates)
Searches dedicated States of all Transitions and sets *nextState of these Transitions. Required for this is a List of all build States of that StateMachine (allStates). This way the StateMachine can be build up.
std::vector< StateMachineTransition::Pointer > TransitionVector
StateMachineTransition::Pointer GetTransition(const std::string &eventClass, const std::string &eventVariant)
Return Transition which matches given event description.