diff options
Diffstat (limited to 'src/pipeline')
| -rw-r--r-- | src/pipeline/collision_pipeline.rs | 16 | ||||
| -rw-r--r-- | src/pipeline/physics_pipeline.rs | 11 |
2 files changed, 9 insertions, 18 deletions
diff --git a/src/pipeline/collision_pipeline.rs b/src/pipeline/collision_pipeline.rs index 866c3a5..6f02d98 100644 --- a/src/pipeline/collision_pipeline.rs +++ b/src/pipeline/collision_pipeline.rs @@ -2,8 +2,7 @@ use crate::dynamics::{JointSet, RigidBodySet}; use crate::geometry::{ - BroadPhase, BroadPhasePairEvent, ColliderPair, ColliderSet, ContactPairFilter, - IntersectionPairFilter, NarrowPhase, + BroadPhase, BroadPhasePairEvent, ColliderPair, ColliderSet, NarrowPhase, PhysicsHooks, }; use crate::math::Real; use crate::pipeline::EventHandler; @@ -44,8 +43,7 @@ impl CollisionPipeline { narrow_phase: &mut NarrowPhase, bodies: &mut RigidBodySet, colliders: &mut ColliderSet, - contact_pair_filter: Option<&dyn ContactPairFilter>, - proximity_pair_filter: Option<&dyn IntersectionPairFilter>, + hooks: &dyn PhysicsHooks, events: &dyn EventHandler, ) { bodies.maintain(colliders); @@ -58,14 +56,8 @@ impl CollisionPipeline { narrow_phase.register_pairs(colliders, bodies, &self.broad_phase_events, events); - narrow_phase.compute_contacts( - prediction_distance, - bodies, - colliders, - contact_pair_filter, - events, - ); - narrow_phase.compute_intersections(bodies, colliders, proximity_pair_filter, events); + narrow_phase.compute_contacts(prediction_distance, bodies, colliders, hooks, events); + narrow_phase.compute_intersections(bodies, colliders, hooks, events); bodies.update_active_set_with_contacts( colliders, diff --git a/src/pipeline/physics_pipeline.rs b/src/pipeline/physics_pipeline.rs index 293fa9d..c030b1d 100644 --- a/src/pipeline/physics_pipeline.rs +++ b/src/pipeline/physics_pipeline.rs @@ -7,8 +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, - ContactPairFilter, IntersectionPairFilter, NarrowPhase, + BroadPhase, BroadPhasePairEvent, ColliderPair, ColliderSet, ContactManifoldIndex, NarrowPhase, + PhysicsHooks, }; use crate::math::{Real, Vector}; use crate::pipeline::EventHandler; @@ -69,8 +69,7 @@ impl PhysicsPipeline { bodies: &mut RigidBodySet, colliders: &mut ColliderSet, joints: &mut JointSet, - contact_pair_filter: Option<&dyn ContactPairFilter>, - proximity_pair_filter: Option<&dyn IntersectionPairFilter>, + hooks: &dyn PhysicsHooks, events: &dyn EventHandler, ) { self.counters.step_started(); @@ -115,10 +114,10 @@ impl PhysicsPipeline { integration_parameters.prediction_distance, bodies, colliders, - contact_pair_filter, + hooks, events, ); - narrow_phase.compute_intersections(bodies, colliders, proximity_pair_filter, events); + narrow_phase.compute_intersections(bodies, colliders, hooks, events); // println!("Compute contact time: {}", instant::now() - t); self.counters.stages.island_construction_time.start(); |
