forked from 1b-agent/opencadstudio-upstream
At deep zoom-out, entities that projected to under ~5 px were dropped from the scene entirely (and text below 2 px-baseline followed the same path). The objects disappeared visually AND fell out of window / crossing selection, and any prior selection highlight stopped rendering once the zoom transition crossed the LOD threshold. #19. Two changes: 1. `tessellate_entity`: replace the sub-5-px `return vec![]` cull, the sub-2-px text-baseline `return vec![]`, and the empty-greek fall-out with a new `lod_stub_wire` helper. The stub is a 2-point AABB diagonal carrying the same `selected` flag, ACI, and AABB as the entity — so the entity stays visible as a 1-pixel speck, tracks its highlight colour across LOD changes, and remains hit-test'able. 2. `box_hit` / `poly_hit`: when a wire has no `points` but a finite `aabb` (greek text emits only fill_tris), fall back to the AABB rectangle as the hit-test shape. Defense in depth so future fill- only wires don't silently drop out of selection. Closes #19 Co-Authored-By: Claude Opus 4.7 <[email protected]>