diff options
| author | Sébastien Crozet <developer@crozet.re> | 2020-10-27 16:10:10 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-27 16:10:10 +0100 |
| commit | a52fb8d7e4649dce02e2131d848b84166df82d64 (patch) | |
| tree | dc6b38ebd73ca5fd62b200417dcc0b114a894572 /src_testbed/testbed.rs | |
| parent | c336ae64557a4981b9cfbd2f6fbe7b7a9d383493 (diff) | |
| parent | 7cafc5471c7fb22b4034b8fe90e848cd0912204d (diff) | |
| download | rapier-a52fb8d7e4649dce02e2131d848b84166df82d64.tar.gz rapier-a52fb8d7e4649dce02e2131d848b84166df82d64.tar.bz2 rapier-a52fb8d7e4649dce02e2131d848b84166df82d64.zip | |
Merge pull request #43 from dimforge/interaction_groups
Add collision filtering based in bit masks
Diffstat (limited to 'src_testbed/testbed.rs')
| -rw-r--r-- | src_testbed/testbed.rs | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs index 2b733a3..456b894 100644 --- a/src_testbed/testbed.rs +++ b/src_testbed/testbed.rs @@ -23,7 +23,10 @@ use rapier::dynamics::{ }; #[cfg(feature = "dim3")] use rapier::geometry::Ray; -use rapier::geometry::{BroadPhase, ColliderSet, ContactEvent, NarrowPhase, ProximityEvent}; +use rapier::geometry::{ + BroadPhase, ColliderHandle, ColliderSet, ContactEvent, InteractionGroups, NarrowPhase, + ProximityEvent, +}; use rapier::math::Vector; use rapier::pipeline::{ChannelEventCollector, PhysicsPipeline, QueryPipeline}; #[cfg(feature = "fluids")] @@ -497,6 +500,10 @@ impl Testbed { self.graphics.set_body_color(body, color); } + pub fn set_collider_initial_color(&mut self, collider: ColliderHandle, color: Point3<f32>) { + self.graphics.set_collider_initial_color(collider, color); + } + #[cfg(feature = "fluids")] pub fn set_fluid_color(&mut self, fluid: FluidHandle, color: Point3<f32>) { self.graphics.set_fluid_color(fluid, color); @@ -1182,10 +1189,12 @@ impl Testbed { .camera() .unproject(&self.cursor_pos, &na::convert(size)); let ray = Ray::new(pos, dir); - let hit = self - .physics - .query_pipeline - .cast_ray(&self.physics.colliders, &ray, f32::MAX); + let hit = self.physics.query_pipeline.cast_ray( + &self.physics.colliders, + &ray, + f32::MAX, + InteractionGroups::all(), + ); if let Some((_, collider, _)) = hit { if self.physics.bodies[collider.parent()].is_dynamic() { |
