perf: pattern joins skip pushing apart faces that don't meet (#437)

Pattern copies of a post joined to a body already holding the original post had
their tops in its plane, so every join first pushed faces apart (about 190 ms,
then discarded). Faces now coincide only where their boxes meet, the push-apart
retry runs once per boolean instead of twice, and splitting prism outlines skips
the sampled arc projection for points off the arc's circle.
Sensor enclosure evaluation: 3.07 s -> 1.63 s, same bodies.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Irakli KourtisandClaude Opus 5.5 authored and GitHub committed 2026-10-12 19:35:43 -04:00
1 parent 0d995c6a78
commit 01bf0e4eaf
6 files changed
+110 -52

No files matched your search

+1 -1
View File
@@ -24,7 +24,7 @@ fn box_of(points: &[Vec3]) -> Aabb3 {
bounds
}
fn boxes_separate(a: Aabb3, b: Aabb3, gap: f64) -> bool {
pub(crate) fn boxes_separate(a: Aabb3, b: Aabb3, gap: f64) -> bool {
a.max.x < b.min.x - gap
|| b.max.x < a.min.x - gap
|| a.max.y < b.min.y - gap