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
This commit is contained in:
@@ -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)).
|
- 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)
|
## v0.20.0 (9 June 2024)
|
||||||
|
|
||||||
This release introduces two new crates:
|
This release introduces two new crates:
|
||||||
|
|||||||
@@ -788,7 +788,7 @@ impl KinematicCharacterController {
|
|||||||
/// impulses to the rigid-bodies surrounding the character shape at the time of the collisions.
|
/// 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
|
/// Note that the impulse calculation is only approximate as it is not based on a global
|
||||||
/// constraints resolution scheme.
|
/// constraints resolution scheme.
|
||||||
pub fn solve_character_collision_impulses(
|
pub fn solve_character_collision_impulses<'a>(
|
||||||
&self,
|
&self,
|
||||||
dt: Real,
|
dt: Real,
|
||||||
bodies: &mut RigidBodySet,
|
bodies: &mut RigidBodySet,
|
||||||
@@ -796,7 +796,7 @@ impl KinematicCharacterController {
|
|||||||
queries: &QueryPipeline,
|
queries: &QueryPipeline,
|
||||||
character_shape: &dyn Shape,
|
character_shape: &dyn Shape,
|
||||||
character_mass: Real,
|
character_mass: Real,
|
||||||
collisions: impl IntoIterator<Item = CharacterCollision>,
|
collisions: impl IntoIterator<Item = &'a CharacterCollision>,
|
||||||
filter: QueryFilter,
|
filter: QueryFilter,
|
||||||
) {
|
) {
|
||||||
for collision in collisions {
|
for collision in collisions {
|
||||||
@@ -807,7 +807,7 @@ impl KinematicCharacterController {
|
|||||||
queries,
|
queries,
|
||||||
character_shape,
|
character_shape,
|
||||||
character_mass,
|
character_mass,
|
||||||
&collision,
|
collision,
|
||||||
filter,
|
filter,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -819,7 +819,7 @@ impl<'a, 'b, 'c, 'd, 'e, 'f> Testbed<'a, 'b, 'c, 'd, 'e, 'f> {
|
|||||||
&phx.query_pipeline,
|
&phx.query_pipeline,
|
||||||
character_collider.shape(),
|
character_collider.shape(),
|
||||||
character_mass,
|
character_mass,
|
||||||
collisions,
|
&*collisions,
|
||||||
QueryFilter::new().exclude_rigid_body(character_handle),
|
QueryFilter::new().exclude_rigid_body(character_handle),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user