aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2021-04-01 16:40:30 +0200
committerGitHub <noreply@github.com>2021-04-01 16:40:30 +0200
commitb3b68b0c71b0512c68a89966655a3c0cca60fd85 (patch)
tree268ab42f7cd375da094c458cc5ed634b24a169aa /src/dynamics
parentbd2dc781f366eda6e9c02bff9cd8ba39c5b6ba21 (diff)
parent2a21f47136933bb9e6170e02bfbbdb028914145a (diff)
downloadrapier-b3b68b0c71b0512c68a89966655a3c0cca60fd85.tar.gz
rapier-b3b68b0c71b0512c68a89966655a3c0cca60fd85.tar.bz2
rapier-b3b68b0c71b0512c68a89966655a3c0cca60fd85.zip
Merge pull request #160 from dimforge/rb_flags_getters
Add getters indicating if the translation or rotation dofs of a rigid-body are locked.
Diffstat (limited to 'src/dynamics')
-rw-r--r--src/dynamics/rigid_body.rs21
1 files changed, 21 insertions, 0 deletions
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)