diff options
Diffstat (limited to 'src_testbed')
| -rw-r--r-- | src_testbed/harness/mod.rs | 12 | ||||
| -rw-r--r-- | src_testbed/physics/mod.rs | 4 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src_testbed/harness/mod.rs b/src_testbed/harness/mod.rs index afdc23a..b31faf9 100644 --- a/src_testbed/harness/mod.rs +++ b/src_testbed/harness/mod.rs @@ -4,7 +4,7 @@ use crate::{ }; use kiss3d::window::Window; use plugin::HarnessPlugin; -use rapier::dynamics::{IntegrationParameters, JointSet, RigidBodySet}; +use rapier::dynamics::{IntegrationParameters, IslandSet, JointSet, RigidBodySet}; use rapier::geometry::{BroadPhase, ColliderSet, NarrowPhase}; use rapier::math::Vector; use rapier::pipeline::{ChannelEventCollector, PhysicsPipeline, QueryPipeline}; @@ -129,6 +129,7 @@ impl Harness { self.physics.joints = joints; self.physics.broad_phase = BroadPhase::new(); self.physics.narrow_phase = NarrowPhase::new(); + self.physics.islands = IslandSet::new(); self.state.timestep_id = 0; self.physics.query_pipeline = QueryPipeline::new(); self.physics.pipeline = PhysicsPipeline::new(); @@ -189,6 +190,7 @@ impl Harness { &self.physics.integration_parameters, &mut self.physics.broad_phase, &mut self.physics.narrow_phase, + &mut self.physics.islands, &mut self.physics.bodies, &mut self.physics.colliders, &mut self.physics.joints, @@ -197,9 +199,11 @@ impl Harness { &self.event_handler, ); - self.physics - .query_pipeline - .update(&self.physics.bodies, &self.physics.colliders); + self.physics.query_pipeline.update( + &self.physics.islands, + &self.physics.bodies, + &self.physics.colliders, + ); for plugin in &mut self.plugins { plugin.step(&mut self.physics, &self.state) diff --git a/src_testbed/physics/mod.rs b/src_testbed/physics/mod.rs index 808e9bd..014276c 100644 --- a/src_testbed/physics/mod.rs +++ b/src_testbed/physics/mod.rs @@ -1,5 +1,5 @@ use crossbeam::channel::Receiver; -use rapier::dynamics::{IntegrationParameters, JointSet, RigidBodySet}; +use rapier::dynamics::{IntegrationParameters, IslandSet, JointSet, RigidBodySet}; use rapier::geometry::{BroadPhase, ColliderSet, ContactEvent, IntersectionEvent, NarrowPhase}; use rapier::math::Vector; use rapier::pipeline::{PhysicsPipeline, QueryPipeline}; @@ -70,6 +70,7 @@ impl PhysicsSnapshot { pub struct PhysicsState { pub broad_phase: BroadPhase, pub narrow_phase: NarrowPhase, + pub islands: IslandSet, pub bodies: RigidBodySet, pub colliders: ColliderSet, pub joints: JointSet, @@ -84,6 +85,7 @@ impl PhysicsState { Self { broad_phase: BroadPhase::new(), narrow_phase: NarrowPhase::new(), + islands: IslandSet::new(), bodies: RigidBodySet::new(), colliders: ColliderSet::new(), joints: JointSet::new(), |
