Contents

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 *stop to 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.

See Also

Searching the Node Hierarchy