aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics/rigid_body_components.rs
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2022-11-19 16:05:46 +0100
committerSébastien Crozet <developer@crozet.re>2022-12-11 15:20:33 +0100
commit46d976d97bc9334004a58a19bc9cab3ea78e9569 (patch)
tree0437f81f4c7882c89aafa685b2822b8c3e462b3c /src/dynamics/rigid_body_components.rs
parentc600549aacbde1361eba862b34a23f63d806d6a9 (diff)
downloadrapier-46d976d97bc9334004a58a19bc9cab3ea78e9569.tar.gz
rapier-46d976d97bc9334004a58a19bc9cab3ea78e9569.tar.bz2
rapier-46d976d97bc9334004a58a19bc9cab3ea78e9569.zip
Allow disabling colliders, rigid-bodies and impulse joints
Diffstat (limited to 'src/dynamics/rigid_body_components.rs')
-rw-r--r--src/dynamics/rigid_body_components.rs16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/dynamics/rigid_body_components.rs b/src/dynamics/rigid_body_components.rs
index cabf6ca..eb94c6b 100644
--- a/src/dynamics/rigid_body_components.rs
+++ b/src/dynamics/rigid_body_components.rs
@@ -112,6 +112,8 @@ bitflags::bitflags! {
const DOMINANCE = 1 << 5;
/// Flag indicating that the local mass-properties of this rigid-body must be recomputed.
const LOCAL_MASS_PROPERTIES = 1 << 6;
+ /// Flag indicating that the rigid-body was enabled or disabled.
+ const ENABLED_OR_DISABLED = 1 << 7;
}
}
@@ -329,12 +331,14 @@ impl RigidBodyMassProps {
for handle in &attached_colliders.0 {
if let Some(co) = colliders.get(*handle) {
- if let Some(co_parent) = co.parent {
- let to_add = co
- .mprops
- .mass_properties(&*co.shape)
- .transform_by(&co_parent.pos_wrt_parent);
- self.local_mprops += to_add;
+ if co.is_enabled() {
+ if let Some(co_parent) = co.parent {
+ let to_add = co
+ .mprops
+ .mass_properties(&*co.shape)
+ .transform_by(&co_parent.pos_wrt_parent);
+ self.local_mprops += to_add;
+ }
}
}
}