diff options
| author | Sébastien Crozet <developer@crozet.re> | 2020-10-27 17:36:45 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-27 17:36:45 +0100 |
| commit | e279c7050cd55426cb28c8c9fb2ac9d4f0205d7c (patch) | |
| tree | 446cbf59cf32a82a67ed889f0041ab886c5ace7e /src/pipeline/physics_pipeline.rs | |
| parent | a52fb8d7e4649dce02e2131d848b84166df82d64 (diff) | |
| parent | 74f0297221607e1929db75e79089d7cb75558dfe (diff) | |
| download | rapier-e279c7050cd55426cb28c8c9fb2ac9d4f0205d7c.tar.gz rapier-e279c7050cd55426cb28c8c9fb2ac9d4f0205d7c.tar.bz2 rapier-e279c7050cd55426cb28c8c9fb2ac9d4f0205d7c.zip | |
Merge pull request #44 from dimforge/custom_callbacks_filtering
Added user-implementable traits for collision/proximity pair filtering.
Diffstat (limited to 'src/pipeline/physics_pipeline.rs')
| -rw-r--r-- | src/pipeline/physics_pipeline.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/pipeline/physics_pipeline.rs b/src/pipeline/physics_pipeline.rs index 47fd260..0720ff1 100644 --- a/src/pipeline/physics_pipeline.rs +++ b/src/pipeline/physics_pipeline.rs @@ -7,7 +7,8 @@ use crate::dynamics::{IntegrationParameters, JointSet, RigidBodySet}; #[cfg(feature = "parallel")] use crate::dynamics::{JointGraphEdge, ParallelIslandSolver as IslandSolver}; use crate::geometry::{ - BroadPhase, BroadPhasePairEvent, ColliderPair, ColliderSet, ContactManifoldIndex, NarrowPhase, + BroadPhase, BroadPhasePairEvent, ColliderPair, ColliderSet, ContactManifoldIndex, + ContactPairFilter, NarrowPhase, ProximityPairFilter, }; use crate::math::Vector; use crate::pipeline::EventHandler; @@ -68,6 +69,8 @@ impl PhysicsPipeline { bodies: &mut RigidBodySet, colliders: &mut ColliderSet, joints: &mut JointSet, + contact_pair_filter: Option<&dyn ContactPairFilter>, + proximity_pair_filter: Option<&dyn ProximityPairFilter>, events: &dyn EventHandler, ) { self.counters.step_started(); @@ -112,12 +115,14 @@ impl PhysicsPipeline { integration_parameters.prediction_distance, bodies, colliders, + contact_pair_filter, events, ); narrow_phase.compute_proximities( integration_parameters.prediction_distance, bodies, colliders, + proximity_pair_filter, events, ); // println!("Compute contact time: {}", instant::now() - t); @@ -285,6 +290,8 @@ mod test { &mut bodies, &mut colliders, &mut joints, + None, + None, &(), ); } @@ -327,6 +334,8 @@ mod test { &mut bodies, &mut colliders, &mut joints, + None, + None, &(), ); } |
