fix: draft a whole round wall from one pick (#547) (#603)

Draft extends the picked faces to every face on the same surface, so one pick on a cylinder's side (stored as two halves) drafts the whole round wall into a frustum. Un-ignores the #547 regression test and adds a kernel test for a round hole. Fixes #547.

Co-authored-by: jonaswre <jonas.wrede@beyondit.gmbh>
This commit is contained in:
Jonas Wrede authored and GitHub committed 2026-10-13 04:27:12 -04:00
1 parent 4a86ad5a7c
commit 651e8e0853
3 files changed
+17 -1

No files matched your search

+2
View File
@@ -306,6 +306,8 @@ fn draft_walls(b: &Body, at: &[Vec3], neutral: &Plane, pull: Vec3, angle: f64) -
_ => return Err(KernelError::Invalid(format!("no face at {:?}", [p.x, p.y, p.z]))),
}
}
// A round wall is stored in pieces (a cylinder's two halves): picking one drafts the whole wall.
let chosen = crate::offset::with_same_surface(&healed, &chosen);
Ok(record::after(crate::offset::draft_walls(&healed, &chosen, neutral, pull, angle)?, &healed, &record::counts(&[b])))
}