aboutsummaryrefslogtreecommitdiff
path: root/src_testbed/testbed.rs
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2020-10-27 16:10:10 +0100
committerGitHub <noreply@github.com>2020-10-27 16:10:10 +0100
commita52fb8d7e4649dce02e2131d848b84166df82d64 (patch)
treedc6b38ebd73ca5fd62b200417dcc0b114a894572 /src_testbed/testbed.rs
parentc336ae64557a4981b9cfbd2f6fbe7b7a9d383493 (diff)
parent7cafc5471c7fb22b4034b8fe90e848cd0912204d (diff)
downloadrapier-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.rs19
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() {