aboutsummaryrefslogtreecommitdiff
path: root/src_testbed
diff options
context:
space:
mode:
Diffstat (limited to 'src_testbed')
-rw-r--r--src_testbed/harness/mod.rs9
-rw-r--r--src_testbed/physics/mod.rs8
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() {}
}
}