Every ray of a cone leaves the same eye, so the Dart query now works in angles from it. Edges the eye may see are filed once into angular bins, each sorted nearest first, and a ray tests only its own bin. Runs of consecutive ring edges that cross a bin from one boundary to the next prove how far any ray in that bin can travel, and the edge tree is walked nearest node first so whatever starts beyond those depths is skipped whole: nodes, edges and the corners that would have cast rays. The outline is the same shape: over 145,872 cones on all 26 map sides it never differs from the previous native query by more than 1e-5 SVG units. On Lotus and Breeze a cone casts about 2.5x fewer rays and runs 10-20x fewer edge tests. In the browser, dragging a 103° cone, the query's p99 falls from 11-18 ms to 2.5-4.4 ms. svg_cone_exact_test checks every line of real cones against exact single rays, and fails if the hidden-corner test is made even 3% too eager. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Dara Adedeji committed on 10/6/2026, 12:55:33 AMparent98320be
2 files changedLine totals unavailable