1#ifndef AUBO_SCOPE_TREE_NODE_H
2#define AUBO_SCOPE_TREE_NODE_H
64 TreeNodePtr
addChild(ProgramNodePtr program_node);
97 ProgramNodePtr program_node);
130 ProgramNodePtr program_node);
339 int traverse(std::function<
int(ProgramNodePtr,
int,
int)> nodeVisitor);
#define ARCS_CLASS_FORWARD(C)
Macro that forward declares a class and defines the respective smartpointers through ARCS_DECLARE_PTR...
\chinese 树节点 此接口表示程序树中的一个节点,可用于构建以 AuboCap 程序节点为根的子树。
std::vector< TreeNodePtr > getChildren()
\chinese
TreeNodePtr getParent()
\chinese
int traverse(std::function< int(ProgramNodePtr, int, int)> nodeVisitor)
\chinese
TreeNodePtr addChild(ProgramNodePtr program_node)
\chinese 向子树添加一个子程序节点。
TreeNodePtr insertChildBefore(TreeNodePtr existingChildNode, ProgramNodePtr program_node)
\chinese 在子树中,在现有选中子节点之前插入一个子程序节点。将选中子节点及其后的节点 移到新添加子节点之后的位置。
bool isInProgramTree()
\chinese 节点是否在程序树中;不在程序树中的节点可能已被剪切或删除。
void setChildSequenceLocked(bool isChildSequenceLocked)
\chinese 配置子节点是否可被终端用户重新排列、删除或将其他节点插入到子节点序列中。
TreeNodePtr insertChildAfter(TreeNodePtr existingChildNode, ProgramNodePtr program_node)
\chinese 在子树中,在现有选中子节点之后插入一个子程序节点。将后续节点移到新添加 子节点之后的位置。
ProgramNodePtr getProgramNode()
\chinese
TreeNodePtr locateDescendantTreeNode(ProgramNodePtr program_node)
\chinese
std::vector< TreeNodePtr > getChildrenNotSuppressed()
bool removeChild(TreeNodePtr program_node)
\chinese 从子树中移除子节点。注意:移除最后一个子节点将触发插入一个 <empty> 子节点。
TreeNodePtr cutChildNode(TreeNodePtr child)
\chinese 剪切子树中的一个子程序节点。