fix(grips): restore tracking references during grip edits

This commit is contained in:
gianlucafiore committed 2026-09-02 20:19:23 -03:00
1 parent 46190ccba1
commit 96b0587a83
5 files changed
+166 -11

No files matched your search

+22
View File
@@ -405,6 +405,28 @@ impl Snapper {
}
}
}
/// Immediately acquire the explicitly engaged grip as a tracking point.
///
/// A grip was deliberately selected by the user, so unlike ordinary cursor
/// acquisition it should not require dwell before OTRACK/Extension can use
/// its original position and incident edge directions.
///
/// `wires` must be the frozen pre-drag geometry. It is used only here to
/// capture directions; it is never added to normal OSNAP candidates.
pub fn acquire_grip_tracking_point<W: WireSource + ?Sized>(
&mut self,
p: DVec3,
wires: &W,
) {
if !self.tracking_active() {
return;
}
// With OTRACK disabled, Extension remains endpoint-only.
let endpoints_only = !self.otrack_enabled;
self.acquire_tracking_point(p, wires, endpoints_only);
}
/// Add `p` as a tracking point (capturing its corner edge directions) unless
/// it is already tracked; drops the oldest when the 4-point cap is reached.
/// Edge directions are scanned once here, at acquisition, so OTRACK can align