diff options
| author | Sébastien Crozet <developer@crozet.re> | 2022-04-28 18:24:01 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-04-28 18:24:01 +0200 |
| commit | 488aad0af3f772e14fd85b27bfff6c1db5d23829 (patch) | |
| tree | 4c19f613750fcd8779714915dbb752ce369a4173 /src/pipeline/event_handler.rs | |
| parent | 21a31bc1026d17d30b3a5ac35e6bb716dc66be6e (diff) | |
| parent | 7dc038aec66783d72abda446d6251385e6ad30f4 (diff) | |
| download | rapier-488aad0af3f772e14fd85b27bfff6c1db5d23829.tar.gz rapier-488aad0af3f772e14fd85b27bfff6c1db5d23829.tar.bz2 rapier-488aad0af3f772e14fd85b27bfff6c1db5d23829.zip | |
Merge pull request #315 from dimforge/debug-renderer
Add a basic lines-based debug-renderer
Diffstat (limited to 'src/pipeline/event_handler.rs')
| -rw-r--r-- | src/pipeline/event_handler.rs | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/src/pipeline/event_handler.rs b/src/pipeline/event_handler.rs index f08a383..f6c33ec 100644 --- a/src/pipeline/event_handler.rs +++ b/src/pipeline/event_handler.rs @@ -1,4 +1,5 @@ -use crate::geometry::{CollisionEvent, ContactPair}; +use crate::dynamics::RigidBodySet; +use crate::geometry::{ColliderSet, CollisionEvent, ContactPair}; use crossbeam::channel::Sender; bitflags::bitflags! { @@ -27,14 +28,29 @@ pub trait EventHandler: Send + Sync { /// /// # Parameters /// * `event` - The collision event. + /// * `bodies` - The set of rigid-bodies. + /// * `colliders` - The set of colliders. /// * `contact_pair` - The current state of contacts between the two colliders. This is set ot `None` /// if at least one of the collider is a sensor (in which case no contact information /// is ever computed). - fn handle_collision_event(&self, event: CollisionEvent, contact_pair: Option<&ContactPair>); + fn handle_collision_event( + &self, + bodies: &RigidBodySet, + colliders: &ColliderSet, + event: CollisionEvent, + contact_pair: Option<&ContactPair>, + ); } impl EventHandler for () { - fn handle_collision_event(&self, _event: CollisionEvent, _contact_pair: Option<&ContactPair>) {} + fn handle_collision_event( + &self, + _bodies: &RigidBodySet, + _colliders: &ColliderSet, + _event: CollisionEvent, + _contact_pair: Option<&ContactPair>, + ) { + } } /// A collision event handler that collects events into a crossbeam channel. @@ -50,7 +66,13 @@ impl ChannelEventCollector { } impl EventHandler for ChannelEventCollector { - fn handle_collision_event(&self, event: CollisionEvent, _: Option<&ContactPair>) { + fn handle_collision_event( + &self, + _bodies: &RigidBodySet, + _colliders: &ColliderSet, + event: CollisionEvent, + _: Option<&ContactPair>, + ) { let _ = self.event_sender.send(event); } } |
