diff --git a/crates/doc/src/sheet.rs b/crates/doc/src/sheet.rs index b8dcc0ec..fa1af19b 100644 --- a/crates/doc/src/sheet.rs +++ b/crates/doc/src/sheet.rs @@ -5597,7 +5597,7 @@ mod tests { assert!((s.base.area() - base).abs() < tol, "{what}: {} vs {base}", s.base.area()); assert!((flat_area(&s) - (base + len * (ba + panel))).abs() < 1e-6, "{what}: {}", flat_area(&s)); // (A sliver 0.0001 wide is below the flat pattern's shortest edge.) - if hair < 0.0 || hair > 1e-3 { + if !(0.0..=1e-3).contains(&hair) { holds_the_flat_material(&s, &what); } else { let b = s.solid().unwrap_or_else(|e| panic!("{what}: no solid: {e}")); diff --git a/crates/kernel/src/prism_local.rs b/crates/kernel/src/prism_local.rs index 4bbb4d44..8456d453 100644 --- a/crates/kernel/src/prism_local.rs +++ b/crates/kernel/src/prism_local.rs @@ -239,7 +239,8 @@ fn survey(body: &Body, d: Vec3, tol: f64, mesh_tol: f64, axes: [Vec3; 3]) -> Opt let o = p.origin(); flat.push((n, n.dot(Vec3::new(o.x, o.y, o.z)))); let along = n.dot(d).abs(); - !(along > 1.0 - 1e-9 || along < 1e-9) + // NaN counts as inside, as the comparisons it replaces did. + along.is_nan() || (1e-9..=1.0 - 1e-9).contains(&along) } _ => !crate::prism::wall_along(&surface, d, tol, &mut work), } diff --git a/crates/ui-egui/src/navigation.rs b/crates/ui-egui/src/navigation.rs index 7f401cf9..aed11634 100644 --- a/crates/ui-egui/src/navigation.rs +++ b/crates/ui-egui/src/navigation.rs @@ -165,8 +165,7 @@ pub(crate) fn modifier_motion( && app.viewport.boxsel.is_none() && !(picking && hover.is_some_and(|p| app.viewport.rect.is_some_and(|rect| crate::canvas::owns_pointer(app, &projection(app, rect), p)))) && !hover.is_some_and(|p| app.viewport.layout.as_ref().is_some_and(|l| l.navigation.contains(p))); - let next = - hover.filter(|p| owns && p.is_finite()).and_then(|p| crate::prefs::nav_preset(&app.preferences.nav).motion_mode(mods).map(|mode| (mode, p))); + let next = crate::prefs::nav_preset(&app.preferences.nav).motion_mode(mods).zip(hover.filter(|p| owns && p.is_finite())); let previous = app.viewport.modifier_nav; if previous.map(|(m, _)| m) != next.map(|(m, _)| m) { app.viewport.orbit_pivot = None;