From 68e2ba780cb50f4ddfbae1a097d381f3f47914ad Mon Sep 17 00:00:00 2001 From: Shane Celis Date: Thu, 26 Sep 2024 07:04:02 -0400 Subject: [PATCH] Make disabling joints possible. (#519) --- src/dynamics/solver/joints/mod.rs | 7 +++++++ src/dynamics/solver/xpbd/mod.rs | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/dynamics/solver/joints/mod.rs b/src/dynamics/solver/joints/mod.rs index 6fa37350..c6ae9e6c 100644 --- a/src/dynamics/solver/joints/mod.rs +++ b/src/dynamics/solver/joints/mod.rs @@ -338,3 +338,10 @@ impl AngleLimit { None } } + +/// Disables the joint of the entity it is placed on. +#[derive(Reflect, Clone, Copy, Component, Debug)] +#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(feature = "serialize", reflect(Serialize, Deserialize))] +#[reflect(Debug, Component)] +pub struct JointDisabled; diff --git a/src/dynamics/solver/xpbd/mod.rs b/src/dynamics/solver/xpbd/mod.rs index be7539cf..37077865 100644 --- a/src/dynamics/solver/xpbd/mod.rs +++ b/src/dynamics/solver/xpbd/mod.rs @@ -351,7 +351,7 @@ pub trait XpbdConstraint: MapEntities { pub fn solve_constraint + Component, const ENTITY_COUNT: usize>( mut commands: Commands, mut bodies: Query, - mut constraints: Query<&mut C, Without>, + mut constraints: Query<&mut C, (Without, Without)>, time: Res