diff --git a/crates/bevy_pbr/src/light.rs b/crates/bevy_pbr/src/light.rs index c0a0bb65dd31f..0316a432e816b 100644 --- a/crates/bevy_pbr/src/light.rs +++ b/crates/bevy_pbr/src/light.rs @@ -46,7 +46,7 @@ impl LightRaw { }; let proj = perspective.get_projection_matrix() * global_transform.compute_matrix(); - let (x, y, z) = global_transform.translation.into(); + let (x, y, z) = global_transform.translation().into(); LightRaw { proj: proj.to_cols_array_2d(), pos: [x, y, z, 1.0], diff --git a/crates/bevy_render/src/camera/visible_entities.rs b/crates/bevy_render/src/camera/visible_entities.rs index fcbc6919d92ef..66a4d71fcc662 100644 --- a/crates/bevy_render/src/camera/visible_entities.rs +++ b/crates/bevy_render/src/camera/visible_entities.rs @@ -211,7 +211,7 @@ pub fn visible_entities_system( camera_query.iter_mut() { visible_entities.value.clear(); - let camera_position = camera_global_transform.translation; + let camera_position = camera_global_transform.translation(); let camera_mask = maybe_camera_mask.copied().unwrap_or_default(); let mut no_transform_order = 0.0; @@ -227,7 +227,7 @@ pub fn visible_entities_system( } let order = if let Ok(global_transform) = visible_transform_query.get(entity) { - let position = global_transform.translation; + let position = global_transform.translation(); // smaller distances are sorted to lower indices by using the distance from the camera FloatOrd(match camera.depth_calculation { DepthCalculation::ZDifference => camera_position.z - position.z, diff --git a/crates/bevy_text/src/text2d.rs b/crates/bevy_text/src/text2d.rs index 52b146b843078..70397dd0304f0 100644 --- a/crates/bevy_text/src/text2d.rs +++ b/crates/bevy_text/src/text2d.rs @@ -89,7 +89,7 @@ pub fn draw_text2d_system( let (width, height) = (calculated_size.size.width, calculated_size.size.height); if let Some(text_glyphs) = text_pipeline.get_glyphs(&entity) { - let position = global_transform.translation + let position = global_transform.translation() + match text.alignment.vertical { VerticalAlign::Top => Vec3::zero(), VerticalAlign::Center => Vec3::new(0.0, -height * 0.5, 0.0), diff --git a/crates/bevy_transform/src/components/global_transform.rs b/crates/bevy_transform/src/components/global_transform.rs index d964442ca2cfa..7558c48433c56 100644 --- a/crates/bevy_transform/src/components/global_transform.rs +++ b/crates/bevy_transform/src/components/global_transform.rs @@ -6,9 +6,9 @@ use std::ops::Mul; #[derive(Debug, PartialEq, Clone, Copy, Reflect)] #[reflect(Component)] pub struct GlobalTransform { - pub translation: Vec3, - pub rotation: Quat, - pub scale: Vec3, + translation: Vec3, + rotation: Quat, + scale: Vec3, } impl GlobalTransform { @@ -142,6 +142,21 @@ impl GlobalTransform { let up = forward.cross(right); self.rotation = Quat::from_rotation_mat3(&Mat3::from_cols(right, up, forward)); } + + #[inline] + pub fn translation(&self) -> Vec3 { + self.translation + } + + #[inline] + pub fn rotation(&self) -> Quat { + self.rotation + } + + #[inline] + pub fn scale(&self) -> Vec3 { + self.scale + } } impl Default for GlobalTransform { diff --git a/crates/bevy_transform/src/components/transform.rs b/crates/bevy_transform/src/components/transform.rs index ce8be11b0c537..1cfa144a5bc39 100644 --- a/crates/bevy_transform/src/components/transform.rs +++ b/crates/bevy_transform/src/components/transform.rs @@ -153,9 +153,9 @@ impl Default for Transform { impl From for Transform { fn from(transform: GlobalTransform) -> Self { Self { - translation: transform.translation, - rotation: transform.rotation, - scale: transform.scale, + translation: transform.translation(), + rotation: transform.rotation(), + scale: transform.scale(), } } } diff --git a/crates/bevy_transform/src/lib.rs b/crates/bevy_transform/src/lib.rs index 919406e792928..ce318a5492887 100644 --- a/crates/bevy_transform/src/lib.rs +++ b/crates/bevy_transform/src/lib.rs @@ -7,8 +7,7 @@ pub mod prelude { } use bevy_app::{prelude::*, startup_stage}; -use bevy_ecs::IntoSystem; -use bevy_ecs::ParallelSystemDescriptorCoercion; +use bevy_ecs::{IntoSystem, ParallelSystemDescriptorCoercion}; use bevy_reflect::RegisterTypeBuilder; use prelude::{parent_update_system, Children, GlobalTransform, Parent, PreviousParent, Transform}; diff --git a/crates/bevy_ui/src/focus.rs b/crates/bevy_ui/src/focus.rs index 5774a6a6772e0..e0547a80ffe63 100644 --- a/crates/bevy_ui/src/focus.rs +++ b/crates/bevy_ui/src/focus.rs @@ -85,7 +85,7 @@ pub fn ui_focus_system( .iter_mut() .filter_map( |(entity, node, global_transform, interaction, focus_policy)| { - let position = global_transform.translation; + let position = global_transform.translation(); let ui_position = position.truncate(); let extents = node.size / 2.0; let min = ui_position - extents; diff --git a/crates/bevy_ui/src/widget/text.rs b/crates/bevy_ui/src/widget/text.rs index 97d4850d3fcf6..4024d966a0270 100644 --- a/crates/bevy_ui/src/widget/text.rs +++ b/crates/bevy_ui/src/widget/text.rs @@ -150,7 +150,7 @@ pub fn draw_text_system( } if let Some(text_glyphs) = text_pipeline.get_glyphs(&entity) { - let position = global_transform.translation - (node.size / 2.0).extend(0.0); + let position = global_transform.translation() - (node.size / 2.0).extend(0.0); let mut drawable_text = DrawableText { render_resource_bindings: &mut render_resource_bindings,