queryRange method
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;
}