enumerateHierarchy(_:)
Executes the specified block for each of the node’s child and descendant nodes, as well as for the node itself.
Declaration
func enumerateHierarchy(_ block: (SCNNode, UnsafeMutablePointer<ObjCBool>) -> Void)Parameters
- block:
The block to apply to the node’s child and descendant nodes.
The block takes two parameters:
- child
The child node currently being evaluated.
- stop
A reference to a Boolean value. Set
*stopto True in the block to abort further processing of the child node subtree.
Discussion
SceneKit uses a recursive preorder traversal to process the child node subtree—that is, the block runs for a node before it runs for each of the node’s children, and it processes all children of a node before processing any of that node’s sibling nodes.
This method is equivalent to the enumerateChildNodes(_:) method, but unlike that method it also runs the block to process the node itself, not just its child nodes.