StateNode Class Reference#include <StateNode.h>
Inheritance diagram for StateNode:
[legend]List of all members.
Detailed Description
Recursive data structure - both a state machine controller as well as a node within a state machine itself.
Override setup() to setup your own Transition and StateNode network.
Definition at line 12 of file StateNode.h.
|
Public Member Functions |
| | StateNode () |
| | constructor
|
| | StateNode (const std::string &n, StateNode *p=NULL) |
| | constructor, pass a name to use, calls setName(n)
|
| virtual | ~StateNode () |
| | destructor, removes references to its outgoing transitions (be careful of incoming ones - they're still around!), and calls RemoveReference() on subnodes
|
| virtual void | addTransition (Transition *trans) |
| | Adds the specified StateTransition to the transition table.
|
| std::vector< Transition * > & | getTransitions () |
| | Returns the std::vector of transitions so you can modify them yourself if need be.
|
| virtual StateNode * | addNode (StateNode *node) |
| | Adds a StateNode to nodes so it can be automatically dereferenced later, returns what it's passed (for convenience), calls AddReference() on node.
|
| std::vector< StateNode * > & | getNodes () |
| | Returns the std::vector of nodes so you can modify them yourself if need be.
|
| void | setRetain (bool f) |
| | Sets the retain flag - if not retained, will RemoveReference() subnodes upon DoStop() and recreate them on DoStart (by calling setup()) - may be too expensive to be worth saving memory...
|
| virtual void | DoStart () |
| | Transitions should call this when you are entering the state, so it can enable its transitions.
|
| virtual void | setup () |
| | This is called by DoStart() when you should setup the network of subnodes.
|
| virtual void | DoStop () |
| | Transitions should call this when you are leaving the state, so it can disable its transitions.
|
| virtual void | teardown () |
| | This is called by DoStop() when you should destruct subnodes.
|
| void | setName (const std::string &n) |
| | set name to n. Makes a copy of n, so you can throw it away later.
|
| virtual std::string | getName () const |
| | returns name of StateNode
|
| virtual std::string | getDescription () const |
| | returns name again (you should override this for top-level nodes to give users better descriptions)
|
Protected Member Functions |
| virtual void | transitionTo (StateNode *n) |
| | called by a subnode when it is being DoStart()'ed
|
| virtual void | transitionFrom (StateNode *n) |
| | called by a subnode when it is being DoStop()'ed
|
Protected Attributes |
| StateNode * | parent |
| | pointer to the machine that contains this node
|
| std::vector< Transition * > | transitions |
| | a vector of outgoing transitions
|
| bool | issetup |
| | this is set to true if the network has been setup but not destroyed (i.e. don't need to call setupSubNodes again)
|
| bool | retain |
| | this is set to true if the network should be retained between activations. Otherwise it's dereferenced upon DoStop(). (or at least RemoveReference() is called on subnodes)
|
| std::vector< StateNode * > | nodes |
| | vector of StateNodes, just so they can be dereferenced again on DoStop() (unless retained) or ~StateNode()
|
| std::string | name |
| | holds the name of the Node/Machine
|
Private Member Functions |
| | StateNode (const StateNode &node) |
| | don't call this
|
| StateNode | operator= (const StateNode &node) |
| | don't call this
|
Constructor & Destructor Documentation
| StateNode::StateNode |
( |
|
) |
[inline] |
|
| StateNode::StateNode |
( |
const std::string & |
n, |
|
|
StateNode * |
p = NULL |
|
) |
[inline] |
|
|
|
constructor, pass a name to use, calls setName(n)
Definition at line 18 of file StateNode.h. |
|
|
destructor, removes references to its outgoing transitions (be careful of incoming ones - they're still around!), and calls RemoveReference() on subnodes
Definition at line 5 of file StateNode.cc. |
| StateNode::StateNode |
( |
const StateNode & |
node |
) |
[private] |
|
Member Function Documentation
| void StateNode::addTransition |
( |
Transition * |
trans |
) |
[virtual] |
|
| void StateNode::DoStart |
( |
|
) |
[virtual] |
|
|
|
Transitions should call this when you are entering the state, so it can enable its transitions.
Reimplemented from BehaviorBase.
Reimplemented in BanditMachine, BanditMachine::PressNode, BanditMachine::DecideNode, BanditMachine::WaitNode, ExploreMachine, PaceTargetsMachine, WalkToTargetMachine, GroupNode, OutputNode, PlayMotionSequenceNode< SIZE >, and WalkNode.
Definition at line 21 of file StateNode.cc.
Referenced by WalkToTargetMachine::DoStart(), WalkNode::DoStart(), PlayMotionSequenceNode< SIZE >::DoStart(), PaceTargetsMachine::DoStart(), OutputNode::DoStart(), GroupNode::DoStart(), ExploreMachine::DoStart(), BanditMachine::WaitNode::DoStart(), BanditMachine::DecideNode::DoStart(), BanditMachine::PressNode::DoStart(), and BanditMachine::DoStart(). |
| void StateNode::DoStop |
( |
|
) |
[virtual] |
|
|
|
Transitions should call this when you are leaving the state, so it can disable its transitions.
Reimplemented from BehaviorBase.
Reimplemented in BanditMachine, BanditMachine::PressNode, BanditMachine::WaitNode, ExploreMachine, WalkToTargetMachine, PlayMotionSequenceNode< SIZE >, and WalkNode.
Definition at line 34 of file StateNode.cc.
Referenced by OutputNode::DoStart(), BanditMachine::DecideNode::DoStart(), WalkToTargetMachine::DoStop(), WalkNode::DoStop(), PlayMotionSequenceNode< SIZE >::DoStop(), ExploreMachine::DoStop(), BanditMachine::WaitNode::DoStop(), BanditMachine::PressNode::DoStop(), and BanditMachine::DoStop(). |
| virtual std::string StateNode::getDescription |
( |
|
) |
const [inline, virtual] |
|
|
|
returns name again (you should override this for top-level nodes to give users better descriptions)
Reimplemented from BehaviorBase.
Definition at line 59 of file StateNode.h. |
| virtual std::string StateNode::getName |
( |
|
) |
const [inline, virtual] |
|
| std::vector<StateNode*>& StateNode::getNodes |
( |
|
) |
[inline] |
|
|
|
Returns the std::vector of nodes so you can modify them yourself if need be.
Definition at line 35 of file StateNode.h. |
| std::vector<Transition*>& StateNode::getTransitions |
( |
|
) |
[inline] |
|
|
|
Returns the std::vector of transitions so you can modify them yourself if need be.
Definition at line 29 of file StateNode.h. |
| void StateNode::setName |
( |
const std::string & |
n |
) |
|
|
| void StateNode::setRetain |
( |
bool |
f |
) |
[inline] |
|
| virtual void StateNode::setup |
( |
|
) |
[inline, virtual] |
|
| virtual void StateNode::teardown |
( |
|
) |
[inline, virtual] |
|
| void StateNode::transitionFrom |
( |
StateNode * |
n |
) |
[protected, virtual] |
|
| void StateNode::transitionTo |
( |
StateNode * |
n |
) |
[protected, virtual] |
|
Member Data Documentation
The documentation for this class was generated from the following files:
|