From cc44b65094766aab40561f22431a95877ed5ff11 Mon Sep 17 00:00:00 2001 From: Crozet Sébastien Date: Tue, 27 Oct 2020 16:11:20 +0100 Subject: Added user-implementable traits for collision/proximity pair filtering. --- src/pipeline/physics_pipeline.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/pipeline/physics_pipeline.rs') diff --git a/src/pipeline/physics_pipeline.rs b/src/pipeline/physics_pipeline.rs index 47fd260..b99934b 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); -- cgit From 3bfa4079999f6c886e692de256abf51e4506a2b1 Mon Sep 17 00:00:00 2001 From: Crozet Sébastien Date: Tue, 27 Oct 2020 16:48:05 +0100 Subject: ContactPairFilter: don't overwrite the effect of the solver groups. This is more consistent with the fact that the effect of collision groups is not overwritten either. --- src/pipeline/physics_pipeline.rs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/pipeline/physics_pipeline.rs') diff --git a/src/pipeline/physics_pipeline.rs b/src/pipeline/physics_pipeline.rs index b99934b..0720ff1 100644 --- a/src/pipeline/physics_pipeline.rs +++ b/src/pipeline/physics_pipeline.rs @@ -290,6 +290,8 @@ mod test { &mut bodies, &mut colliders, &mut joints, + None, + None, &(), ); } @@ -332,6 +334,8 @@ mod test { &mut bodies, &mut colliders, &mut joints, + None, + None, &(), ); } -- cgit