From 5308a28435efdeb6f5fecf14914eed6394600112 Mon Sep 17 00:00:00 2001 From: Thierry Berger Date: Sun, 23 Jun 2024 23:01:55 +0200 Subject: fix: less invasive `solve_character_collision_impulses` function (#652) * fix: less invasive `solve_character_collision_impulses` function Taking ownership of the elements is not necessary. It also conveys the information that elements are only read. * Add Changelog --- CHANGELOG.md | 4 ++++ src/control/character_controller.rs | 6 +++--- src_testbed/testbed.rs | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 05d34db..5d009f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ - Fix `NaN` values appearing in bodies translation and rotation after a simulation step with a delta time equal to 0 ([#660](https://github.com/dimforge/rapier/pull/660)). +### Modified + +- `solve_character_collision_impulses` collisions parameter is now an iterator over references. + ## v0.20.0 (9 June 2024) This release introduces two new crates: diff --git a/src/control/character_controller.rs b/src/control/character_controller.rs index 2332bc3..230b1eb 100644 --- a/src/control/character_controller.rs +++ b/src/control/character_controller.rs @@ -788,7 +788,7 @@ impl KinematicCharacterController { /// impulses to the rigid-bodies surrounding the character shape at the time of the collisions. /// Note that the impulse calculation is only approximate as it is not based on a global /// constraints resolution scheme. - pub fn solve_character_collision_impulses( + pub fn solve_character_collision_impulses<'a>( &self, dt: Real, bodies: &mut RigidBodySet, @@ -796,7 +796,7 @@ impl KinematicCharacterController { queries: &QueryPipeline, character_shape: &dyn Shape, character_mass: Real, - collisions: impl IntoIterator, + collisions: impl IntoIterator, filter: QueryFilter, ) { for collision in collisions { @@ -807,7 +807,7 @@ impl KinematicCharacterController { queries, character_shape, character_mass, - &collision, + collision, filter, ); } diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs index 26d8d9d..a9d40fe 100644 --- a/src_testbed/testbed.rs +++ b/src_testbed/testbed.rs @@ -819,7 +819,7 @@ impl<'a, 'b, 'c, 'd, 'e, 'f> Testbed<'a, 'b, 'c, 'd, 'e, 'f> { &phx.query_pipeline, character_collider.shape(), character_mass, - collisions, + &*collisions, QueryFilter::new().exclude_rigid_body(character_handle), ); -- cgit