Overflowing rounds go first again (solidcore#1980)

OVERFLOW_GOES_FIRST on. The rig shows no wrong volume: 5158's plate keeps its
value and 1080-notched-r8 moves to within 7e-11 of the C++ kernel. The sloped basin's
R4 rounds are refused as in the C++ kernel at 2fc375f.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MNXLXkZLQ6T7TSi4wswcmk
This commit is contained in:
brett19
2026-10-31 07:25:03 -07:00
parent 8ad306e695
commit b6285e5252
2 changed files with 4 additions and 7 deletions
+4 -6
View File
@@ -542,12 +542,10 @@ fn picked_on(b: &Brep, e: EdgeId) -> Option<(solidcore::geom::attribute::Attribu
a.application_value::<Picked>().map(|p| (h, p.0))
}
/// Whether the rounds that overflow go first ([`overflow_first`]), held back: solidcore's
/// `SubtractRemovalRegion` loses the attributes of target edges the subtraction replaces, so a picked
/// edge the overflow only shortened reads as removed whole and is silently left unrounded (the rig's
/// fillets/5158-fillet-adjacent-plate-edges-as-thick-as-plate, 1706.89 against 1681.90). Off, the
/// rounds are blended together, and those that need the order are refused.
const OVERFLOW_GOES_FIRST: bool = false;
/// Whether the rounds that overflow go first ([`overflow_first`]): on since solidcore#1980, which
/// keeps the attributes of the target edges the subtraction replaces, so a picked edge the overflow
/// only shortened still reads as picked.
const OVERFLOW_GOES_FIRST: bool = true;
/// `overflow_first`: the rounds of [`blend_call`] when blends of several edges overflow their
/// faces (`round_edges` stopped in the copy `w` of `body`, `picked` its picked edges, `each` their
-1
View File
@@ -433,7 +433,6 @@ fn a_cliff_overflow_the_fork_refuses_has_no_room() {
/// the back upright that upright's round runs above the R21 cylinder, taking the corner's piece
/// over it too (Simpson on 4000 spans, against a bound of its quartic end edge's tolerance).
#[test]
#[ignore = "core::blend::OVERFLOW_GOES_FIRST is held back: solidcore's cliff overflow loses edge attributes (an_edge_tag_crosses_a_cliff_overflow). Passes with it on: 6107.529369565"]
fn overflow_goes_first() {
let f = |u: f64| 0.5 * (u * (441.0 - u * u).sqrt() + 441.0 * (u / 21.0).asin());
let w = 440f64.sqrt();