From 2a21f47136933bb9e6170e02bfbbdb028914145a Mon Sep 17 00:00:00 2001 From: Crozet Sébastien Date: Thu, 1 Apr 2021 15:43:47 +0200 Subject: Add getters indicating if the translation or rotation dofs of a rigid-body are locked. --- src/dynamics/rigid_body.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/dynamics') diff --git a/src/dynamics/rigid_body.rs b/src/dynamics/rigid_body.rs index 8176227..ba39873 100644 --- a/src/dynamics/rigid_body.rs +++ b/src/dynamics/rigid_body.rs @@ -203,6 +203,27 @@ impl RigidBody { } } + /// Are the translations of this rigid-body locked? + pub fn is_translation_locked(&self) -> bool { + self.flags.contains(RigidBodyFlags::TRANSLATION_LOCKED) + } + + /// Are the rotations of this rigid-body locked? + #[cfg(feature = "dim2")] + pub fn is_rotation_locked(&self) -> bool { + self.flags.contains(RigidBodyFlags::ROTATION_LOCKED_Z) + } + + /// Returns `true` for each rotational degrees of freedom locked on this rigid-body. + #[cfg(feature = "dim3")] + pub fn is_rotation_locked(&self) -> [bool; 3] { + [ + self.flags.contains(RigidBodyFlags::ROTATION_LOCKED_X), + self.flags.contains(RigidBodyFlags::ROTATION_LOCKED_Y), + self.flags.contains(RigidBodyFlags::ROTATION_LOCKED_Z), + ] + } + /// Enables of disable CCD (continuous collision-detection) for this rigid-body. pub fn enable_ccd(&mut self, enabled: bool) { self.flags.set(RigidBodyFlags::CCD_ENABLED, enabled) -- cgit