From 5063f3bb4fec2716f78a208552ee260f22428840 Mon Sep 17 00:00:00 2001 From: Sébastien Crozet Date: Thu, 23 Jun 2022 16:23:39 +0200 Subject: Add the ability to disable contacts between two rigid-bodies attached by joints --- src/dynamics/joint/impulse_joint/impulse_joint_set.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/dynamics/joint/impulse_joint') diff --git a/src/dynamics/joint/impulse_joint/impulse_joint_set.rs b/src/dynamics/joint/impulse_joint/impulse_joint_set.rs index c4ec734..7409172 100644 --- a/src/dynamics/joint/impulse_joint/impulse_joint_set.rs +++ b/src/dynamics/joint/impulse_joint/impulse_joint_set.rs @@ -71,6 +71,20 @@ impl ImpulseJointSet { &self.joint_graph } + /// Iterates through all the joints between two rigid-bodies. + pub fn joints_between<'a>( + &'a self, + body1: RigidBodyHandle, + body2: RigidBodyHandle, + ) -> impl Iterator { + self.rb_graph_ids + .get(body1.0) + .zip(self.rb_graph_ids.get(body2.0)) + .into_iter() + .flat_map(move |(id1, id2)| self.joint_graph.interaction_pair(*id1, *id2).into_iter()) + .map(|inter| (inter.2.handle, inter.2)) + } + /// Iterates through all the impulse joints attached to the given rigid-body. pub fn attached_joints<'a>( &'a self, -- cgit