transform: only update global transform with pos/rot/scale components when there is no local transform

This commit is contained in:
Carter Anderson 2020-07-23 18:55:21 -07:00
parent 6cad80d572
commit bcf95a24db

View File

@ -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<Rotation, Without<Scale, Without<NonUniformScale, (&mut Transform, &Translation)>>>,
Without<
LocalTransform,
Without<
Rotation,
Without<Scale, Without<NonUniformScale, (&mut Transform, &Translation)>>,
>,
>,
>,
) {
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<Translation, Without<Scale, Without<NonUniformScale, (&mut Transform, &Rotation)>>>,
Without<
LocalTransform,
Without<
Translation,
Without<Scale, Without<NonUniformScale, (&mut Transform, &Rotation)>>,
>,
>,
>,
) {
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<Translation, Without<Rotation, Without<NonUniformScale, (&mut Transform, &Scale)>>>,
Without<
LocalTransform,
Without<
Translation,
Without<Rotation, Without<NonUniformScale, (&mut Transform, &Scale)>>,
>,
>,
>,
) {
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<Translation, Without<Rotation, Without<Scale, (&mut Transform, &NonUniformScale)>>>,
Without<
LocalTransform,
Without<
Translation,
Without<Rotation, Without<Scale, (&mut Transform, &NonUniformScale)>>,
>,
>,
>,
) {
for (mut transform, non_uniform_scale) in &mut query.iter() {
@ -61,8 +85,11 @@ pub fn transform_non_uniform_scale_system(
pub fn transform_translation_rotation_system(
mut query: Query<
Without<
LocalTransform,
Without<Scale, Without<NonUniformScale, (&mut Transform, &Translation, &Rotation)>>,
>,
>,
) {
for (mut transform, translation, rotation) in &mut query.iter() {
if !transform.sync {
@ -75,8 +102,11 @@ pub fn transform_translation_rotation_system(
pub fn transform_translation_scale_system(
mut query: Query<
Without<
LocalTransform,
Without<Rotation, Without<NonUniformScale, (&mut Transform, &Translation, &Scale)>>,
>,
>,
) {
for (mut transform, translation, scale) in &mut query.iter() {
if !transform.sync {
@ -93,8 +123,11 @@ pub fn transform_translation_scale_system(
pub fn transform_translation_non_uniform_scale_system(
mut query: Query<
Without<
LocalTransform,
Without<Rotation, Without<Scale, (&mut Transform, &Translation, &NonUniformScale)>>,
>,
>,
) {
for (mut transform, translation, non_uniform_scale) in &mut query.iter() {
if !transform.sync {
@ -111,8 +144,11 @@ pub fn transform_translation_non_uniform_scale_system(
pub fn transform_rotation_scale_system(
mut query: Query<
Without<
LocalTransform,
Without<Translation, Without<NonUniformScale, (&mut Transform, &Rotation, &Scale)>>,
>,
>,
) {
for (mut transform, rotation, scale) in &mut query.iter() {
if !transform.sync {
@ -129,8 +165,11 @@ pub fn transform_rotation_scale_system(
pub fn transform_rotation_non_uniform_scale_system(
mut query: Query<
Without<
LocalTransform,
Without<Translation, Without<Scale, (&mut Transform, &Rotation, &NonUniformScale)>>,
>,
>,
) {
for (mut transform, rotation, non_uniform_scale) in &mut query.iter() {
if !transform.sync {
@ -146,7 +185,12 @@ pub fn transform_rotation_non_uniform_scale_system(
}
pub fn transform_translation_rotation_scale_system(
mut query: Query<Without<NonUniformScale, (&mut Transform, &Translation, &Rotation, &Scale)>>,
mut query: Query<
Without<
LocalTransform,
Without<NonUniformScale, (&mut Transform, &Translation, &Rotation, &Scale)>,
>,
>,
) {
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<Without<Scale, (&mut Transform, &Translation, &Rotation, &NonUniformScale)>>,
mut query: Query<
Without<
LocalTransform,
Without<Scale, (&mut Transform, &Translation, &Rotation, &NonUniformScale)>,
>,
>,
) {
for (mut transform, translation, rotation, non_uniform_scale) in &mut query.iter() {
if !transform.sync {