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 <[email protected]>
This commit is contained in:
1 parent
0d995c6a78
commit
01bf0e4eaf
6 files changed
+110
-52
No files matched your search
@@ -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
|
||||
|
||||
Reference in new issue
Block a user