diff options
Diffstat (limited to 'src_testbed')
| -rw-r--r-- | src_testbed/engine.rs | 19 | ||||
| -rw-r--r-- | src_testbed/physx_backend.rs | 2 |
2 files changed, 18 insertions, 3 deletions
diff --git a/src_testbed/engine.rs b/src_testbed/engine.rs index ff5e1ef..040c883 100644 --- a/src_testbed/engine.rs +++ b/src_testbed/engine.rs @@ -237,7 +237,7 @@ impl GraphicsManager { for collider_handle in bodies[handle].colliders() { let color = self.c2color.get(collider_handle).copied().unwrap_or(color); let collider = &colliders[*collider_handle]; - self.add_collider(window, *collider_handle, collider, color, &mut new_nodes); + self.do_add_collider(window, *collider_handle, collider, color, &mut new_nodes); } new_nodes.iter_mut().for_each(|n| n.update(colliders)); @@ -256,7 +256,22 @@ impl GraphicsManager { nodes.append(&mut new_nodes); } - fn add_collider( + pub fn add_collider( + &mut self, + window: &mut Window, + handle: ColliderHandle, + colliders: &ColliderSet, + ) { + let collider = &colliders[handle]; + let color = *self.b2color.get(&collider.parent()).unwrap(); + let color = self.c2color.get(&handle).copied().unwrap_or(color); + let mut nodes = + std::mem::replace(self.b2sn.get_mut(&collider.parent()).unwrap(), Vec::new()); + self.do_add_collider(window, handle, collider, color, &mut nodes); + self.b2sn.insert(collider.parent(), nodes); + } + + fn do_add_collider( &mut self, window: &mut Window, handle: ColliderHandle, diff --git a/src_testbed/physx_backend.rs b/src_testbed/physx_backend.rs index 7fcb813..acec5c9 100644 --- a/src_testbed/physx_backend.rs +++ b/src_testbed/physx_backend.rs @@ -402,7 +402,7 @@ impl PhysxWorld { pub fn sync(&self, bodies: &mut RigidBodySet, colliders: &mut ColliderSet) { for (rapier_handle, physx_handle) in self.rapier2physx.iter() { - let mut rb = bodies.get_mut(*rapier_handle).unwrap(); + let rb = bodies.get_mut(*rapier_handle).unwrap(); let ra = self.scene.get_rigid_actor(*physx_handle).unwrap(); let pos = ra.get_global_pose().into_na(); let iso = na::convert_unchecked(pos); |
