| 
| class   | AllDecendantsByLevelEnumerator | 
|   | A NodeEnumberator that iterates though all the descendants of a node. First it will loop through all children, then all grand children, then all great-grandchildren, etc...  
  | 
|   | 
| class   | AllDecendantsEnumerator | 
|   | A NodeEnumberator that iterates though all the descendants of a node, before moving on to siblings.  
  | 
|   | 
| class   | LeavesOnlyEnumerator | 
|   | A NodeEnumberator that iterates though all the leaves (childless-descendants) of a node, before moving on to siblings.  
  | 
|   | 
| class   | NodeAndAllDecendantsByLevelEnumerator | 
|   | A NodeEnumberator that iterates though the node itself, and all it's descendants. First it will loop through all children, then all grand children, then all great-grandchildren, etc...  
  | 
|   | 
| class   | NodeAndAllDecendantsEnumerator | 
|   | A NodeEnumberator that iterates though the node itself, and all it's descendants, before moving on to siblings.  
  | 
|   | 
| class   | NodeAndChildrenEnumerator | 
|   | A NodeEnumberator that iterates though the node itself, and all it's children. It will not iterate any further/deeper than children.  
  | 
|   | 
| class   | NodeChildrenEnumerator | 
|   | A NodeEnumberator that iterates though all the children of a node. It will not iterate any further/deeper than children.  
  | 
|   | 
| class   | NodeEnumerator | 
|   | This abstract class is used to iterate through Nodes, by applying the IEnumerable-Node- Interface. The order in which the nodes are iterated is defined in a (not-abstract) class derived from this one. you may derive your own version to perform a custom iteration method.  
  | 
|   | 
 | 
|   | Node (Node parent, T data) | 
|   | creates a new node, that holds the provided data. Adds this new node as a child of the specified parent.  
  | 
|   | 
| IEnumerable< Node >  | AllDecendants () | 
|   | Provides and IEnumerable<Node> that will iterate though all the descendants of a node.  
  | 
|   | 
| IEnumerable< Node >  | AllDecendantsByLevel () | 
|   | Provides and IEnumerable<Node> that will iterate though all the descendants of a node. First it will loop through all children, then all grand children, then all great-grandchildren, etc...  
  | 
|   | 
| IEnumerable< Node >  | Children () | 
|   | Provides and IEnumerable<Node> that will iterate though the children of the node.  
  | 
|   | 
| bool  | Contains (Node nodeToCheck) | 
|   | recursively checks all children of this node to see if they contain a reference to the provided node.  
 Note: data is ignored for this operation- only references to the same Node object is checked.  
  | 
|   | 
| void  | GetAllDecendantsList (IList< Node > genericListInterface, bool groupByLevel=true) | 
|   | This function will Add, to the provided genericListInterface, all the descendants of this node. CREDIT: grouping by Level/Generation code, created by LordOfDuct, of Unity Forums  
  | 
|   | 
| void  | GetAllLeavesList (IList< Node > genericListInterface, bool groupByLevel=true) | 
|   | This function will Add, to the provided genericListInterface, all the leaves (childless-descendants) of this node. CREDIT: grouping by Level/Generation code, created by LordOfDuct, of Unity Forums  
  | 
|   | 
| Node  | GetChild (int childIndex) | 
|   | Returns the child of this Node. Which child to return, is specified by the provided index.  
  | 
|   | 
| virtual IEnumerator< Node >  | GetEnumerator () | 
|   | Default GetEnumbertor function. Iterates through all children of a node  
  | 
|   | 
| virtual IEnumerable< Node >  | GetEnumeratorByMethod (TreeNodeEnumerationMethod method) | 
|   | This function returns the appropriate NodeEnumerator, given the provided TreeNodeEnumerationMethod. You may override this function if you want to change or add more enumeration methods.  
  | 
|   | 
| int  | GetSiblingIndex () | 
|   | Determines the index number of this node, relative to it's siblings (nodes with the same parent).  
  | 
|   | 
| IEnumerable< Node >  | LeavesOnly () | 
|   | Provides and IEnumerable<Node> that will iterate though the node and the children of the node.  
  | 
|   | 
| IEnumerable< Node >  | NodeAndAllDecendants () | 
|   | Provides and IEnumerable<Node> that will iterate though a node, and all its descendants.  
  | 
|   | 
| IEnumerable< Node >  | NodeAndAllDecendantsByLevel () | 
|   | Provides and IEnumerable<Node> that will iterate though all the descendants of a node. First it will loop through the node, then all children, then all grand children, then all great-grandchildren, etc...  
  | 
|   | 
| IEnumerable< Node >  | NodeAndChildren () | 
|   | Provides and IEnumerable<Node> that will iterate though the node and the children of the node.  
  | 
|   | 
| bool  | ReorderChildIndex (int indexToMove, int newIndexToMoveTo) | 
|   | Use this function to change the order children are indexed, and iterated through. Takes the index of node to move, and the destination index; siblings between these two will change their index, but the order of all siblings will otherwise remain the same.  
  | 
|   | 
| SerializableTreeNode  | SerializableIndexNode () | 
|   | This function is used to Create a serializedIndexNode instance, based on this runtime node.  
  | 
|   | 
| bool  | SetParent (Node newParent) | 
|   | This function will set this node as a child of the newParent node. If this node is already a child of a different node, it will be removed as a child, from that, original, parent. This function may fail, and return false under certain conditions: In particular if the newParent node, is currently a descendant of this node, the move will fail. This avoids circular parent->child->parent references. Passing a null for newParent will orphan this node, making it a root node.  
  | 
|   | 
Inherits IEnumerable< Node >.