Menge
Modular Pedestrian Simulation Framework for Research and Development
|
The base class for transition targets. More...
#include <Target.h>
Public Member Functions | |
TransitionTarget () | |
Constructor. | |
TransitionTarget (const TransitionTarget &tgt) | |
Copy constructor. More... | |
virtual void | onEnter (Agents::BaseAgent *agent) |
Called when an agent enters a state with this exiting transition. More... | |
virtual void | onLeave (Agents::BaseAgent *agent) |
Called when an agent exits the state with this transition. More... | |
virtual State * | nextState (Agents::BaseAgent *agent)=0 |
Determines the next state for the given agent. More... | |
virtual bool | connectStates (std::map< std::string, State * > &stateMap)=0 |
Performs any necessary connections to the target state(s). More... | |
virtual TransitionTarget * | copy ()=0 |
Create a copy of this target. More... | |
Public Member Functions inherited from Menge::Element | |
void | destroy () |
This supplants the destructor. More... | |
virtual BFSM::Task * | getTask () |
Return an optional task associated with this element. More... | |
virtual SceneGraph::GLNode * | getSGNode () |
Returns an optional visualization element associated with the element. More... | |
Protected Member Functions | |
virtual | ~TransitionTarget () |
Protected destructor. | |
The base class for transition targets.
A transition target is the state a transition moves an agent to. In the simplest case, the transition simply connects two states and when the transition is active, the agent moves from the source state to the destination state.
However, Target's can be more complex. The destination can be one of a set of states selected by arbitrary criteria (such as probability). The target is responsible for providing a next state according to its criteria upon request.
Menge::BFSM::TransitionTarget::TransitionTarget | ( | const TransitionTarget & | tgt | ) |
Copy constructor.
tgt | TransitionTarget to copy. |
|
pure virtual |
Performs any necessary connections to the target state(s).
Sub-classes must override this because a transition must transition to a state. See the sub-classes SingleTransition for an example.
stateMap | A mapping from state names to state pointers. |
Implemented in Menge::BFSM::SingleTarget, Menge::BFSM::ReturnTarget, and Menge::BFSM::ProbTarget.
|
pure virtual |
Create a copy of this target.
It is the responsibility of the caller to delete the object.
Implemented in Menge::BFSM::SingleTarget, Menge::BFSM::ReturnTarget, and Menge::BFSM::ProbTarget.
|
pure virtual |
Determines the next state for the given agent.
This function defines the main functionality of the target. Given the current agent and the class's internal state, it determines The state to move the agent into. This should be overridden by each sub-class.
agent | The agent to test the transition for. |
Implemented in Menge::BFSM::SingleTarget, Menge::BFSM::ReturnTarget, and Menge::BFSM::ProbTarget.
|
inlinevirtual |
Called when an agent enters a state with this exiting transition.
Sub-classes should use this function as the opportunity to cache any particular per-agent data.
agent | The agent who has entered the state which uses this transition. |
Reimplemented in Menge::BFSM::ReturnTarget.
|
inlinevirtual |
Called when an agent exits the state with this transition.
agent | The agent who left the state. |
Reimplemented in Menge::BFSM::ReturnTarget.