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