diff options
Diffstat (limited to 'src_testbed')
| -rw-r--r-- | src_testbed/harness/mod.rs | 9 | ||||
| -rw-r--r-- | src_testbed/physics/mod.rs | 8 |
2 files changed, 11 insertions, 6 deletions
diff --git a/src_testbed/harness/mod.rs b/src_testbed/harness/mod.rs index 5b71aa5..2ed9745 100644 --- a/src_testbed/harness/mod.rs +++ b/src_testbed/harness/mod.rs @@ -86,10 +86,13 @@ type Callbacks = #[allow(dead_code)] impl Harness { pub fn new_empty() -> Self { - let event_channel = crossbeam::channel::unbounded(); - let event_handler = ChannelEventCollector::new(event_channel.0); + let collision_event_channel = crossbeam::channel::unbounded(); + let contact_force_event_channel = crossbeam::channel::unbounded(); + let event_handler = + ChannelEventCollector::new(collision_event_channel.0, contact_force_event_channel.0); let events = PhysicsEvents { - events: event_channel.1, + collision_events: collision_event_channel.1, + contact_force_events: contact_force_event_channel.1, }; let physics = PhysicsState::new(); let state = RunState::new(); diff --git a/src_testbed/physics/mod.rs b/src_testbed/physics/mod.rs index a848ea8..ebcc326 100644 --- a/src_testbed/physics/mod.rs +++ b/src_testbed/physics/mod.rs @@ -3,7 +3,7 @@ use rapier::dynamics::{ CCDSolver, ImpulseJointSet, IntegrationParameters, IslandManager, MultibodyJointSet, RigidBodySet, }; -use rapier::geometry::{BroadPhase, ColliderSet, CollisionEvent, NarrowPhase}; +use rapier::geometry::{BroadPhase, ColliderSet, CollisionEvent, CollisionForceEvent, NarrowPhase}; use rapier::math::{Real, Vector}; use rapier::pipeline::{PhysicsHooks, PhysicsPipeline, QueryPipeline}; @@ -107,11 +107,13 @@ impl PhysicsState { } pub struct PhysicsEvents { - pub events: Receiver<CollisionEvent>, + pub collision_events: Receiver<CollisionEvent>, + pub contact_force_events: Receiver<CollisionForceEvent>, } impl PhysicsEvents { pub fn poll_all(&self) { - while let Ok(_) = self.events.try_recv() {} + while let Ok(_) = self.collision_events.try_recv() {} + while let Ok(_) = self.contact_force_events.try_recv() {} } } |
