forked from 1b-agent/opencadstudio-upstream
#218: with Ortho on and a base point the axis is now a hard lock — a lone tracking ray can't pull the cursor off it. Only a tracking ray crossing the ortho axis locks (the corner-finding case); otherwise the ortho constraint applies as the fallback, so Ortho reliably locks when OTRACK is also on. #219: an acquired corner now contributes an alignment ray along its own edge direction(s) (captured once at acquisition), so OTRACK follows a segment's extension, not just the ortho/polar axes. Acquisition is also captured on leave — a perfectly still cursor emits no move events, so "pause on a corner, then drag" now reliably acquires it. The acquired marker projects through the active pane's camera + rect (canvas offset included) instead of vanishing, and the active alignment path is drawn as a full-length dashed guide through the corner. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1 parent
0322128f48
commit
c3e86d08cc
4 files changed
+271
-61
No files matched your search
@@ -900,6 +900,7 @@ pub(super) fn on_tick(&mut self, t: Instant) -> Task<Message> {
|
||||
let snap_world = self.tabs[i].snap_result.map(|s| s.world.as_vec3());
|
||||
self.snapper.update_otrack_dwell(
|
||||
snap_world,
|
||||
&all_wires[..],
|
||||
view_rot,
|
||||
eye,
|
||||
bounds,
|
||||
@@ -919,6 +920,7 @@ pub(super) fn on_tick(&mut self, t: Instant) -> Task<Message> {
|
||||
bounds,
|
||||
step,
|
||||
self.last_point,
|
||||
self.ortho_mode,
|
||||
ucs,
|
||||
)
|
||||
} else {
|
||||
@@ -1803,7 +1805,7 @@ pub(super) fn on_tick(&mut self, t: Instant) -> Task<Message> {
|
||||
};
|
||||
let ucs = self.tabs[i].scene.viewcube_ucs_mat();
|
||||
self.snapper
|
||||
.otrack_snap(raw.as_vec3(), view_rot, eye, bounds, step, self.last_point, ucs)
|
||||
.otrack_snap(raw.as_vec3(), view_rot, eye, bounds, step, self.last_point, self.ortho_mode, ucs)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user