perf: cut many clear tools of any cut in one boolean (#368) (#387)

One extrude cutting many circles from one sketch still cut the plate once per
circle, each boolean rebuilding and re-meshing a plate grown by every hole before
it (32 circles 2 s, 128 circles 60 s). The #261 fix joined clear tools with
kernel::union_apart only in pattern replay; apply_traced now does it for every
cut with 8 or more tools (patterns included), keeping each piece's face lineage.
This commit is contained in:
Jonas Wrede authored and GitHub committed 2026-10-12 16:09:46 -04:00
1 parent 6090e89b3f
commit 829912c6c5
2 files changed
+16 -11

No files matched your search

-1
View File
@@ -285,7 +285,6 @@ fn sketch_hole_cut(n: usize) -> std::time::Duration {
/// field: 32 took 2 s and 128 took 60 s, though a feature pattern of the same holes is near
/// linear since #261. Linear is 4×. A ratio, not a time (see the 512-hole pattern test).
#[test]
#[ignore = "fails until #368 is fixed"]
fn one_extrude_of_many_sketch_circles_scales_linearly() {
let t32 = sketch_hole_cut(32);
let t128 = sketch_hole_cut(128);