diff options
| author | Crozet Sébastien <developer@crozet.re> | 2021-04-26 17:59:25 +0200 |
|---|---|---|
| committer | Crozet Sébastien <developer@crozet.re> | 2021-04-26 18:00:50 +0200 |
| commit | c32da78f2a6014c491aa3e975fb83ddb7c80610e (patch) | |
| tree | edd20f23270baee1577c486f78d825eb93ea0de0 /src_testbed/harness | |
| parent | aaf80bfa872c6f29b248cab8eb5658ab0d73cb4a (diff) | |
| download | rapier-c32da78f2a6014c491aa3e975fb83ddb7c80610e.tar.gz rapier-c32da78f2a6014c491aa3e975fb83ddb7c80610e.tar.bz2 rapier-c32da78f2a6014c491aa3e975fb83ddb7c80610e.zip | |
Split rigid-bodies and colliders into multiple components
Diffstat (limited to 'src_testbed/harness')
| -rw-r--r-- | src_testbed/harness/mod.rs | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src_testbed/harness/mod.rs b/src_testbed/harness/mod.rs index 5fcc45c..8447fd0 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::{CCDSolver, IntegrationParameters, JointSet, RigidBodySet}; +use rapier::dynamics::{CCDSolver, IntegrationParameters, IslandManager, JointSet, RigidBodySet}; use rapier::geometry::{BroadPhase, ColliderSet, NarrowPhase}; use rapier::math::Vector; use rapier::pipeline::{ChannelEventCollector, PhysicsHooks, PhysicsPipeline, QueryPipeline}; @@ -120,7 +120,7 @@ impl Harness { colliders: ColliderSet, joints: JointSet, gravity: Vector<f32>, - hooks: impl PhysicsHooks + 'static, + hooks: impl PhysicsHooks<RigidBodySet, ColliderSet> + 'static, ) { // println!("Num bodies: {}", bodies.len()); // println!("Num joints: {}", joints.len()); @@ -130,6 +130,7 @@ impl Harness { self.physics.joints = joints; self.physics.hooks = Box::new(hooks); + self.physics.islands = IslandManager::new(); self.physics.broad_phase = BroadPhase::new(); self.physics.narrow_phase = NarrowPhase::new(); self.state.timestep_id = 0; @@ -191,6 +192,7 @@ impl Harness { self.physics.pipeline.step( &self.physics.gravity, &self.physics.integration_parameters, + &mut self.physics.islands, &mut self.physics.broad_phase, &mut self.physics.narrow_phase, &mut self.physics.bodies, @@ -201,9 +203,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) |
