private void Range(KdNode node, RectHV nrect, RectHV rect, Queue<Point2D> queue) { if (node == null) { return; } if (rect.Intersects(nrect)) { var p = new Point2D(node.X, node.Y); if (rect.Contains(p)) { queue.Enqueue(p); } Range(node.Left, LeftRect(nrect, node), rect, queue); Range(node.Right, RightRect(nrect, node), rect, queue); } }
private void Range(KdNode node, RectHV nrect, RectHV rect, Queue <Point2D> queue) { if (node == null) { return; } if (rect.Intersects(nrect)) { var p = new Point2D(node.X, node.Y); if (rect.Contains(p)) { queue.Enqueue(p); } Range(node.Left, LeftRect(nrect, node), rect, queue); Range(node.Right, RightRect(nrect, node), rect, queue); } }