aboutsummaryrefslogtreecommitdiff
path: root/examples3d/debug_dynamic_collider_add3.rs
diff options
context:
space:
mode:
Diffstat (limited to 'examples3d/debug_dynamic_collider_add3.rs')
-rw-r--r--examples3d/debug_dynamic_collider_add3.rs19
1 files changed, 9 insertions, 10 deletions
diff --git a/examples3d/debug_dynamic_collider_add3.rs b/examples3d/debug_dynamic_collider_add3.rs
index 61c1482..6a4589b 100644
--- a/examples3d/debug_dynamic_collider_add3.rs
+++ b/examples3d/debug_dynamic_collider_add3.rs
@@ -45,7 +45,7 @@ pub fn init_world(testbed: &mut Testbed) {
let mut extra_colliders = Vec::new();
let snapped_frame = 51;
- testbed.add_callback(move |mut window, mut graphics, physics, _, _| {
+ testbed.add_callback(move |mut graphics, physics, _, _| {
step += 1;
// Add a bigger ball collider
@@ -57,8 +57,8 @@ pub fn init_world(testbed: &mut Testbed) {
.colliders
.insert(collider, ball_handle, &mut physics.bodies);
- if let (Some(graphics), Some(window)) = (&mut graphics, &mut window) {
- graphics.add_collider(window, new_ball_collider_handle, &physics.colliders);
+ if let Some(graphics) = &mut graphics {
+ graphics.add_collider(new_ball_collider_handle, &physics.colliders);
}
extra_colliders.push(new_ball_collider_handle);
@@ -79,6 +79,10 @@ pub fn init_world(testbed: &mut Testbed) {
step = snapped_frame;
for handle in &extra_colliders {
+ if let Some(graphics) = &mut graphics {
+ graphics.remove_collider(*handle, &physics.colliders);
+ }
+
physics
.colliders
.remove(*handle, &mut physics.islands, &mut physics.bodies, true);
@@ -102,8 +106,8 @@ pub fn init_world(testbed: &mut Testbed) {
.colliders
.insert(coll, ground_handle, &mut physics.bodies);
- if let (Some(graphics), Some(window)) = (&mut graphics, &mut window) {
- graphics.add_collider(window, new_ground_collider_handle, &physics.colliders);
+ if let Some(graphics) = &mut graphics {
+ graphics.add_collider(new_ground_collider_handle, &physics.colliders);
}
extra_colliders.push(new_ground_collider_handle);
@@ -115,8 +119,3 @@ pub fn init_world(testbed: &mut Testbed) {
testbed.set_world(bodies, colliders, joints);
testbed.look_at(Point3::new(10.0, 10.0, 10.0), Point3::origin());
}
-
-fn main() {
- let testbed = Testbed::from_builders(0, vec![("Boxes", init_world)]);
- testbed.run()
-}