aboutsummaryrefslogtreecommitdiff
path: root/src/geometry
diff options
context:
space:
mode:
authorCrozet Sébastien <developer@crozet.re>2020-10-06 11:22:51 +0200
committerCrozet Sébastien <developer@crozet.re>2020-10-06 11:22:51 +0200
commit17c31bcc57ec8d037ba6cc6ab5f7cfb6fa4bb09b (patch)
tree962e88b926b4ee085cd7b5df6ad03543d19f7917 /src/geometry
parentcf86ee40a199dc84f7b8dd045e57b3a15bca79fb (diff)
downloadrapier-17c31bcc57ec8d037ba6cc6ab5f7cfb6fa4bb09b.tar.gz
rapier-17c31bcc57ec8d037ba6cc6ab5f7cfb6fa4bb09b.tar.bz2
rapier-17c31bcc57ec8d037ba6cc6ab5f7cfb6fa4bb09b.zip
WQuadtree query: reduce the amount of allocations.
Diffstat (limited to 'src/geometry')
-rw-r--r--src/geometry/contact_generator/trimesh_shape_contact_generator.rs5
-rw-r--r--src/geometry/proximity_detector/trimesh_shape_proximity_detector.rs5
2 files changed, 8 insertions, 2 deletions
diff --git a/src/geometry/contact_generator/trimesh_shape_contact_generator.rs b/src/geometry/contact_generator/trimesh_shape_contact_generator.rs
index d759ae3..7dc0054 100644
--- a/src/geometry/contact_generator/trimesh_shape_contact_generator.rs
+++ b/src/geometry/contact_generator/trimesh_shape_contact_generator.rs
@@ -108,7 +108,10 @@ fn do_generate_contacts(
// workspace.old_manifolds.len()
// );
- workspace.interferences = trimesh1.waabbs().intersect_aabb(&local_aabb2);
+ workspace.interferences.clear();
+ trimesh1
+ .waabbs()
+ .intersect_aabb(&local_aabb2, &mut workspace.interferences);
workspace.local_aabb2 = local_aabb2;
}
diff --git a/src/geometry/proximity_detector/trimesh_shape_proximity_detector.rs b/src/geometry/proximity_detector/trimesh_shape_proximity_detector.rs
index 0a3ff44..1fc5e1e 100644
--- a/src/geometry/proximity_detector/trimesh_shape_proximity_detector.rs
+++ b/src/geometry/proximity_detector/trimesh_shape_proximity_detector.rs
@@ -70,7 +70,10 @@ fn do_detect_proximity(
&mut workspace.interferences,
);
- workspace.interferences = trimesh1.waabbs().intersect_aabb(&local_aabb2);
+ workspace.interferences.clear();
+ trimesh1
+ .waabbs()
+ .intersect_aabb(&local_aabb2, &mut workspace.interferences);
workspace.local_aabb2 = local_aabb2;
}