aboutsummaryrefslogtreecommitdiff
path: root/src/pipeline
diff options
context:
space:
mode:
Diffstat (limited to 'src/pipeline')
-rw-r--r--src/pipeline/user_changes.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/pipeline/user_changes.rs b/src/pipeline/user_changes.rs
index 699361c..643360c 100644
--- a/src/pipeline/user_changes.rs
+++ b/src/pipeline/user_changes.rs
@@ -155,6 +155,21 @@ pub(crate) fn handle_user_changes_to_rigid_bodies<Bodies, Colliders>(
}
}
+ if changes.contains(RigidBodyChanges::DOMINANCE)
+ || changes.contains(RigidBodyChanges::TYPE)
+ {
+ for handle in rb_colliders.0.iter() {
+ colliders.map_mut_internal(handle.0, |co_changes: &mut ColliderChanges| {
+ if !co_changes.contains(ColliderChanges::MODIFIED) {
+ modified_colliders.push(*handle);
+ }
+
+ *co_changes |=
+ ColliderChanges::MODIFIED | ColliderChanges::PARENT_EFFECTIVE_DOMINANCE;
+ });
+ }
+ }
+
bodies.set_internal(handle.0, RigidBodyChanges::empty());
bodies.set_internal(handle.0, ids);
bodies.set_internal(handle.0, activation);