diff options
| author | Crozet Sébastien <developer@crozet.re> | 2020-10-06 11:22:51 +0200 |
|---|---|---|
| committer | Crozet Sébastien <developer@crozet.re> | 2020-10-06 11:22:51 +0200 |
| commit | 17c31bcc57ec8d037ba6cc6ab5f7cfb6fa4bb09b (patch) | |
| tree | 962e88b926b4ee085cd7b5df6ad03543d19f7917 /src/geometry | |
| parent | cf86ee40a199dc84f7b8dd045e57b3a15bca79fb (diff) | |
| download | rapier-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.rs | 5 | ||||
| -rw-r--r-- | src/geometry/proximity_detector/trimesh_shape_proximity_detector.rs | 5 |
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; } |
