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
This commit is contained in:
Jan Hohenheim 2024-07-08 03:05:09 +02:00 committed by GitHub
parent 33ea3b9f7d
commit df80b99e69
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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]