pub fn apply_multibody_joint_properties(
context: Query<'_, '_, (&mut RapierRigidBodySet, &mut RapierContextJoints)>,
changed_joints: Query<'_, '_, Entity, (With<MultibodyJoint>, Or<(Added<RapierMultibodyJointHandle>, Changed<MultibodyJoint>, Changed<KinematicMultibodyJoint>, Changed<MultibodyJointDamping>, Changed<MultibodyJointFriction>, Changed<MultibodyJointArmature>, Changed<MultibodyJointSprings>, Changed<MultibodyJointCouplings>)>)>,
changed_couplings: Query<'_, '_, Entity, Changed<MultibodyJointCouplings>>,
changed_topology: Query<'_, '_, &RapierContextEntityLink, (With<MultibodyJoint>, Changed<RapierMultibodyJointHandle>)>,
joints: Query<'_, '_, (&'static RapierContextEntityLink, &'static RapierMultibodyJointHandle, Has<KinematicMultibodyJoint>, Option<&'static MultibodyJointDamping>, Option<&'static MultibodyJointFriction>, Option<&'static MultibodyJointArmature>, Option<&'static MultibodyJointSprings>, Option<&'static MultibodyJointCouplings>), With<MultibodyJoint>>,
all_couplings: Query<'_, '_, (Entity, &RapierContextEntityLink, &RapierMultibodyJointHandle, &MultibodyJointCouplings)>,
self_contacts_disabled: Query<'_, '_, (Entity, &RapierContextEntityLink, Ref<'_, MultibodySelfContactsDisabled>)>,
(removed_kinematic, removed_damping, removed_friction, removed_armature, removed_springs, removed_couplings): (RemovedComponents<'_, '_, KinematicMultibodyJoint>, RemovedComponents<'_, '_, MultibodyJointDamping>, RemovedComponents<'_, '_, MultibodyJointFriction>, RemovedComponents<'_, '_, MultibodyJointArmature>, RemovedComponents<'_, '_, MultibodyJointSprings>, RemovedComponents<'_, '_, MultibodyJointCouplings>),
removed_self_contacts_disabled: RemovedComponents<'_, '_, MultibodySelfContactsDisabled>,
)Expand description
System responsible for applying the properties of multibody joints and multibodies set by the
user through the KinematicMultibodyJoint, MultibodyJointDamping,
MultibodyJointFriction, MultibodyJointArmature, MultibodyJointSprings,
MultibodyJointCouplings and MultibodySelfContactsDisabled components.
The properties are applied when the joint is created, and when these components are modified or removed. DoF couplings and disabled self-contacts are also applied again when a multibody joint is created or re-attached, since they might only be resolvable once joints are merged into the same multibody.