eachAfter method

dynamic eachAfter(
  1. dynamic callback(
    1. BubbleNode
    )
)

Implementation

eachAfter(Function(BubbleNode) callback) {
  BubbleNode node = this;
  var nodes = [node];
  var next = [];

  while (nodes.isNotEmpty) {
    node = nodes.removeLast();
    next.add(node);
    var children = node.children;
    if (children != null) {
      nodes.addAll(children);
    }
  }

  while (next.isNotEmpty && (node = next.removeLast()) != null) {
    callback(node);
  }
}