From df80b99e69aaaac78ca54b5197cb4bc1196dd414 Mon Sep 17 00:00:00 2001 From: Jan Hohenheim Date: Mon, 8 Jul 2024 03:05:09 +0200 Subject: [PATCH] Optimize unnecessary normalizations for `Transform::local_{xyz}` (#14171) Note that `GlobalTransform` already does it like this for `right`, `left`, etc. so I didn't have to touch that one --- crates/bevy_transform/src/components/transform.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/bevy_transform/src/components/transform.rs b/crates/bevy_transform/src/components/transform.rs index a8cca95819..554d5f6617 100644 --- a/crates/bevy_transform/src/components/transform.rs +++ b/crates/bevy_transform/src/components/transform.rs @@ -222,8 +222,8 @@ impl Transform { /// Get the unit vector in the local `X` direction. #[inline] pub fn local_x(&self) -> Dir3 { - // Dir3::new(x) panics if x is of invalid length, but quat * unit vector is length 1 - Dir3::new(self.rotation * Vec3::X).unwrap() + // Quat * unit vector is length 1 + Dir3::new_unchecked(self.rotation * Vec3::X) } /// Equivalent to [`-local_x()`][Transform::local_x()] @@ -241,8 +241,8 @@ impl Transform { /// Get the unit vector in the local `Y` direction. #[inline] pub fn local_y(&self) -> Dir3 { - // Dir3::new(x) panics if x is of invalid length, but quat * unit vector is length 1 - Dir3::new(self.rotation * Vec3::Y).unwrap() + // Quat * unit vector is length 1 + Dir3::new_unchecked(self.rotation * Vec3::Y) } /// Equivalent to [`local_y()`][Transform::local_y] @@ -260,8 +260,8 @@ impl Transform { /// Get the unit vector in the local `Z` direction. #[inline] pub fn local_z(&self) -> Dir3 { - // Dir3::new(x) panics if x is of invalid length, but quat * unit vector is length 1 - Dir3::new(self.rotation * Vec3::Z).unwrap() + // Quat * unit vector is length 1 + Dir3::new_unchecked(self.rotation * Vec3::Z) } /// Equivalent to [`-local_z()`][Transform::local_z]