forked from 1b-agent/opencadstudio-upstream
fix(view): window corner picks exempt from Ortho/Polar (#363)
ZOOM WINDOW's opposite corner was pinned to an axis with Ortho on, collapsing the window to a line. Extend the #291 window_corner_pick exemption to ZOOM WINDOW, PLOTWINDOW and WIPEOUT's rectangular mode (polygon mode keeps the constraints — axis-aligned edges are a legitimate use). Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
1 parent
ea860cab72
commit
9690d37d03
3 files changed
+19
No files matched your search
@@ -107,6 +107,13 @@ impl CadCommand for WipeoutCommand {
|
||||
}
|
||||
}
|
||||
|
||||
fn window_corner_pick(&self) -> bool {
|
||||
// Rectangular mode picks free window corners — exempt from Ortho/Polar
|
||||
// (#363/#291 class). Polygon points keep the constraints (axis-aligned
|
||||
// polygon edges are a legitimate use).
|
||||
matches!(self.mode, WipeoutMode::Rectangular)
|
||||
}
|
||||
|
||||
fn on_mouse_move(&mut self, pt: DVec3) -> Option<WireModel> { let pt = pt.as_vec3();
|
||||
match &self.mode {
|
||||
WipeoutMode::Rectangular => {
|
||||
|
||||
@@ -44,6 +44,11 @@ impl CadCommand for PlotWindowCommand {
|
||||
CmdResult::Cancel
|
||||
}
|
||||
|
||||
fn window_corner_pick(&self) -> bool {
|
||||
// Free rectangle corners — exempt from Ortho/Polar (#363/#291 class).
|
||||
true
|
||||
}
|
||||
|
||||
fn on_mouse_move(&mut self, pt: DVec3) -> Option<WireModel> { let pt = pt.as_vec3();
|
||||
let p1 = self.p1?.as_vec3();
|
||||
// Draw the selection rectangle.
|
||||
|
||||
@@ -59,6 +59,13 @@ impl CadCommand for ZoomWindowCommand {
|
||||
CmdResult::Cancel
|
||||
}
|
||||
|
||||
fn window_corner_pick(&self) -> bool {
|
||||
// Both zoom-window corners are free points; Ortho/Polar must not pin
|
||||
// the opposite corner to an axis or the window collapses to a line
|
||||
// (#363, same class as #291).
|
||||
true
|
||||
}
|
||||
|
||||
fn on_mouse_move(&mut self, pt: DVec3) -> Option<WireModel> { let pt = pt.as_vec3();
|
||||
let p1 = self.first?;
|
||||
let min = p1.min(pt);
|
||||
|
||||
Reference in new issue
Block a user