forked from 1b-agent/opencadstudio-upstream
The GPU scissors floating-viewport content to the viewport rectangle, but the CPU hit-test/snap wire set runs past it (the frustum cull keeps a margin and lines extend beyond the rect), so box selection, lasso, click and object snap could reach geometry clipped out of the viewport. Reject candidates whose projected screen point falls outside `bounds` (the pane rectangle), mirroring the scissor. `bounds` is the full canvas in model space, so every change is a no-op there. - snap: reject out-of-bounds points in try_pt, the grid block and tangent. - click_hit / click_hits_all: no hit when the cursor is off-pane. - box_hit: clamp the selection box to the pane rectangle. - poly_hit: drop wire points projected off-pane. - hatch click: no hit when the cursor is off-pane. Co-Authored-By: Claude Opus 4.8 <[email protected]>