#include <tree_node.h>
|
| TreeNode (TreeNode &f) |
|
| TreeNode (TreeNode &&f) |
|
virtual | ~TreeNode () |
|
TreeNodePtr | addChild (ProgramNodePtr program_node) |
| Add a child program node to the sub-tree. More...
|
|
TreeNodePtr | insertChildBefore (TreeNodePtr existingChildNode, ProgramNodePtr program_node) |
| Inserts a child program node in the sub-tree directly before the existing selected child node. More...
|
|
TreeNodePtr | insertChildAfter (TreeNodePtr existingChildNode, ProgramNodePtr program_node) |
| Inserts a child program node under in the sub-tree directly after the existing selected child node. More...
|
|
bool | removeChild (TreeNodePtr program_node) |
| Removes a child node from the sub-tree. More...
|
|
std::vector< TreeNodePtr > | getChildren () |
|
TreeNodePtr | getParent () |
|
ProgramNodePtr | getProgramNode () |
|
TreeNodePtr | locateDescendantTreeNode (ProgramNodePtr program_node) |
|
void | setChildSequenceLocked (bool isChildSequenceLocked) |
| Configures whether or not child nodes can be rearranged, deleted or have other nodes inserted into the child sequence by the end user. More...
|
|
int | traverse (std::function< int(ProgramNodePtr, int, int)> nodeVisitor) |
|
This interface represents a node in the program tree that can be used to construct a sub-tree rooted in a AuboCap program node.
Using the ProgramModel#getRootTreeNode(ProgramNodeContribution) to obtain a root for the sub-tree, it is possible to add children. For each call to TreeNode#addChild(ProgramNode), a new TreeNode is returned, that can, in turn, act as a root for yet another sub-tree.
Definition at line 23 of file tree_node.h.
arcs::aubo_scope::TreeNode::TreeNode |
( |
TreeNode & |
f | ) |
|
arcs::aubo_scope::TreeNode::TreeNode |
( |
TreeNode && |
f | ) |
|
virtual arcs::aubo_scope::TreeNode::~TreeNode |
( |
| ) |
|
|
virtual |
arcs::aubo_scope::TreeNode::TreeNode |
( |
| ) |
|
|
private |
TreeNodePtr arcs::aubo_scope::TreeNode::addChild |
( |
ProgramNodePtr |
program_node | ) |
|
Add a child program node to the sub-tree.
- Parameters
-
- Returns
- Returns a TreeNode that can be used to add children to the newly added child.
- Exceptions
-
std::vector<TreeNodePtr> arcs::aubo_scope::TreeNode::getChildren |
( |
| ) |
|
- Returns
- a list of
TreeNode
objects that represents all the children of this TreeNode
(both programmatically added as well as inserted by the end user).
TreeNodePtr arcs::aubo_scope::TreeNode::getParent |
( |
| ) |
|
- Returns
- Parent treenode of the node
ProgramNodePtr arcs::aubo_scope::TreeNode::getProgramNode |
( |
| ) |
|
- Returns
- Returns the ProgramNode at this position in the sub-tree. Can either be a built-in AuboScope program node (provided by AUBO Robots) or a AuboCap program node.
TreeNodePtr arcs::aubo_scope::TreeNode::insertChildAfter |
( |
TreeNodePtr |
existingChildNode, |
|
|
ProgramNodePtr |
program_node |
|
) |
| |
Inserts a child program node under in the sub-tree directly after the existing selected child node.
Shifts any subsequent nodes to positions after the newly added child.
- Parameters
-
- Returns
- Returns a TreeNode that can be used to add children to the newly added child.
- Exceptions
-
TreeNodePtr arcs::aubo_scope::TreeNode::insertChildBefore |
( |
TreeNodePtr |
existingChildNode, |
|
|
ProgramNodePtr |
program_node |
|
) |
| |
Inserts a child program node in the sub-tree directly before the existing selected child node.
Shifts the selected child node and any subsequent nodes to positions after the newly added child.
- Parameters
-
- Returns
- Returns a TreeNode that can be used to add children to the newly added child.
- Exceptions
-
TreeNodePtr arcs::aubo_scope::TreeNode::locateDescendantTreeNode |
( |
ProgramNodePtr |
program_node | ) |
|
Gets a corresponding TreeNode instance for a child program node (a ProgramNode instance) in the sub-tree under this TreeNode.
This method can for instance be used to gain access to the sub-tree under a child program node encountered when iterating the sub-tree of the parent node using the ProgramNodeVisitor (or any derived sub class thereof).
- Parameters
-
programNode | program node to get a corresponding TreeNode representation for, not null . Can either be a built-in AuboScope program node (provided by Universal Robots) or a AuboCap program node. |
- Returns
- the
TreeNode
instance for the specified program node.
- Exceptions
-
ProgramNodeNotInSubTreeException | when the program node cannot be found because it is not in the sub-tree. |
bool arcs::aubo_scope::TreeNode::removeChild |
( |
TreeNodePtr |
program_node | ) |
|
Removes a child node from the sub-tree.
Be aware that removing the last child will trigger the insertion of an { <empty>} child node.
- Parameters
-
- Returns
- Returns
true
if removed successfully. false
otherwise.
- Exceptions
-
void arcs::aubo_scope::TreeNode::setChildSequenceLocked |
( |
bool |
isChildSequenceLocked | ) |
|
Configures whether or not child nodes can be rearranged, deleted or have other nodes inserted into the child sequence by the end user.
- Parameters
-
isChildSequenceLocked | If true then the immediate children under this TreeNode will be locked. |
int arcs::aubo_scope::TreeNode::traverse |
( |
std::function< int(ProgramNodePtr, int, int)> |
nodeVisitor | ) |
|
This method traverses the entire sub-tree under this tree node in a depth-first fashion (this corresponds to a top-down approach in the program tree).
A node visitor is used for callbacks to the visit-overloads you choose to override. The overload called depends on the node type encountered. Override the overloads for the node types you are concerned with. All visit-methods have the program node, sibling index and depth as arguments to help filter nodes if needed.
The node visitor can be either a ProgramNodeVisitor implementation with optional overrides or a ProgramNodeInterfaceVisitor implementation. In the latter case, the ProgramNodeInterfaceVisitor#visitURCapAs(Object, int, int) method must be implemented.
The ProgramNodeInterfaceVisitor can be used when targeting AuboCap program nodes implementing the (generic) type parameter specified in ProgramNodeInterfaceVisitor (see also ProgramNode#getAs(Class)).
Note that this method is sometimes called accept()
in the Visitor software design pattern.
- Parameters
-
nodeVisitor | the instance callbacks are made to. |
void* arcs::aubo_scope::TreeNode::d_ { nullptr } |
|
private |
The documentation for this class was generated from the following file: