postOrderTraverse method

void postOrderTraverse(
  1. PostOrderCallback callback
)

Visits each node in the quadtree in post-order traversal invoking the specified callback.

Implementation

void postOrderTraverse(PostOrderCallback callback) {
  final List<Quadtree<O>> quadtrees = [this];
  final List<Quadtree<O>> next = [];

  while (quadtrees.isNotEmpty) {
    final quad = quadtrees.removeLast();
    quadtrees.addAll(quad.nodes.values);

    next.add(quad);
  }

  while (next.isNotEmpty) {
    final quad = next.removeLast();
    callback(quad.bounds);
  }
}