From bcf95a24dbe9acb8c5692f6517239dbd53e45252 Mon Sep 17 00:00:00 2001 From: Carter Anderson Date: Thu, 23 Jul 2020 18:55:21 -0700 Subject: [PATCH] transform: only update global transform with pos/rot/scale components when there is no local transform --- .../bevy_transform/src/transform_systems.rs | 71 ++++++++++++++++--- 1 file changed, 60 insertions(+), 11 deletions(-) diff --git a/crates/bevy_transform/src/transform_systems.rs b/crates/bevy_transform/src/transform_systems.rs index ba0a7fc4cb..ec2d57c63e 100644 --- a/crates/bevy_transform/src/transform_systems.rs +++ b/crates/bevy_transform/src/transform_systems.rs @@ -5,7 +5,13 @@ use bevy_math::{Mat4, Quat, Vec3}; // TODO: on changed for all of these systems pub fn transform_translation_system( mut query: Query< - Without>>, + Without< + LocalTransform, + Without< + Rotation, + Without>, + >, + >, >, ) { for (mut transform, translation) in &mut query.iter() { @@ -19,7 +25,13 @@ pub fn transform_translation_system( pub fn transform_rotation_system( mut query: Query< - Without>>, + Without< + LocalTransform, + Without< + Translation, + Without>, + >, + >, >, ) { for (mut transform, rotation) in &mut query.iter() { @@ -33,7 +45,13 @@ pub fn transform_rotation_system( pub fn transform_scale_system( mut query: Query< - Without>>, + Without< + LocalTransform, + Without< + Translation, + Without>, + >, + >, >, ) { for (mut transform, scale) in &mut query.iter() { @@ -47,7 +65,13 @@ pub fn transform_scale_system( pub fn transform_non_uniform_scale_system( mut query: Query< - Without>>, + Without< + LocalTransform, + Without< + Translation, + Without>, + >, + >, >, ) { for (mut transform, non_uniform_scale) in &mut query.iter() { @@ -61,7 +85,10 @@ pub fn transform_non_uniform_scale_system( pub fn transform_translation_rotation_system( mut query: Query< - Without>, + Without< + LocalTransform, + Without>, + >, >, ) { for (mut transform, translation, rotation) in &mut query.iter() { @@ -75,7 +102,10 @@ pub fn transform_translation_rotation_system( pub fn transform_translation_scale_system( mut query: Query< - Without>, + Without< + LocalTransform, + Without>, + >, >, ) { for (mut transform, translation, scale) in &mut query.iter() { @@ -93,7 +123,10 @@ pub fn transform_translation_scale_system( pub fn transform_translation_non_uniform_scale_system( mut query: Query< - Without>, + Without< + LocalTransform, + Without>, + >, >, ) { for (mut transform, translation, non_uniform_scale) in &mut query.iter() { @@ -111,7 +144,10 @@ pub fn transform_translation_non_uniform_scale_system( pub fn transform_rotation_scale_system( mut query: Query< - Without>, + Without< + LocalTransform, + Without>, + >, >, ) { for (mut transform, rotation, scale) in &mut query.iter() { @@ -129,7 +165,10 @@ pub fn transform_rotation_scale_system( pub fn transform_rotation_non_uniform_scale_system( mut query: Query< - Without>, + Without< + LocalTransform, + Without>, + >, >, ) { for (mut transform, rotation, non_uniform_scale) in &mut query.iter() { @@ -146,7 +185,12 @@ pub fn transform_rotation_non_uniform_scale_system( } pub fn transform_translation_rotation_scale_system( - mut query: Query>, + mut query: Query< + Without< + LocalTransform, + Without, + >, + >, ) { for (mut transform, translation, rotation, scale) in &mut query.iter() { if !transform.sync { @@ -162,7 +206,12 @@ pub fn transform_translation_rotation_scale_system( } pub fn transform_translation_rotation_non_uniform_scale_system( - mut query: Query>, + mut query: Query< + Without< + LocalTransform, + Without, + >, + >, ) { for (mut transform, translation, rotation, non_uniform_scale) in &mut query.iter() { if !transform.sync {