forked from 1b-agent/opencadstudio-upstream
refactor(snap): measure typed distance along the guide that is drawn
Extension answered "which acquired ray is this snap on?" twice, from two different tests: the overlay picked its guide by off-ray distance in screen pixels, while typed-distance entry re-searched the tracking set in world space. Two tests can disagree, and the ways they disagree are both bad -- a guide on screen that typing ignores, or a distance running off along a ray the user cannot see. The second search could also come up empty on its own, since only four acquisitions are kept and the oldest is dropped as new ones arrive. Ask once. The search that draws the guide now also reports the endpoint it drew from, the snap carries it, and typed distance reads the ray straight off that -- the direction is just the way from the endpoint to the snap, which sits beyond it by construction. The screen-space test stays the only one, which is what the guide wanted anyway: it stays scale-independent where a world test would not. Also correct the tracking-point doc: it claims XZ with Y=0, but `edge_dirs_at` builds every direction from X/Y with Z zeroed and the rays follow it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b8f9727a27
commit
0af6b470ed
3 files changed
+32
-73
No files matched your search
@@ -1647,6 +1647,7 @@ impl OpenCADStudio {
|
||||
tangent_obj: None,
|
||||
extension_base: None,
|
||||
extension_base2: None,
|
||||
extension_origin: None,
|
||||
});
|
||||
if let Some(cmd) = self.tabs[i].active_cmd.as_mut() {
|
||||
cmd.set_acquisition_hint(Some(pick.label));
|
||||
|
||||
Reference in new issue
Block a user