queryRange method

List<QuadTreeParticle> queryRange(
  1. Rectangle range, [
  2. List<QuadTreeParticle>? found
])

Queries particles within a rectangular area

Implementation

List<QuadTreeParticle> queryRange(
  Rectangle range, [
  List<QuadTreeParticle>? found,
]) {
  found ??= [];

  // First check if query rectangle intersects this node's boundary
  if (!boundary.intersects(range)) return found;

  // Check particles in this node
  for (final QuadTreeParticle particle in particles) {
    if (range.contains(particle.x, particle.y)) {
      found.add(particle);
    }
  }

  // Recursively query children
  for (final CompressedQuadTreeNode child in children.values) {
    child.queryRange(range, found);
  }

  return found;
}