aboutsummaryrefslogtreecommitdiff
path: root/src/pipeline/physics_pipeline.rs
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2020-10-27 17:36:45 +0100
committerGitHub <noreply@github.com>2020-10-27 17:36:45 +0100
commite279c7050cd55426cb28c8c9fb2ac9d4f0205d7c (patch)
tree446cbf59cf32a82a67ed889f0041ab886c5ace7e /src/pipeline/physics_pipeline.rs
parenta52fb8d7e4649dce02e2131d848b84166df82d64 (diff)
parent74f0297221607e1929db75e79089d7cb75558dfe (diff)
downloadrapier-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.rs11
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,
&(),
);
}