Implement display for direction (#19942)
# Objective To implement fmt::Display for the direction types. The reason that this would be a good addition is that I often find myself using println! to debug things with directions and adding the extra ":?" was getting a little annoying. It would also be better for any potential CLI apps that might need to output a direction. ## Solution Copied glam's implementation of Display for each length of direction. I.E Vec3's display for Dir3. ## Testing - Did you test these changes? If so, how? Yes, I wrote a little script that printed out the different directions and compared it to their vector counterparts. Here it is if anyone's interested ``` use bevy_math::*; fn main() { let dir2 = Dir2::from_xy(0.0, 1.0).unwrap(); let dir3 = Dir3::from_xyz(0.0, 1.0, 0.0).unwrap(); let dir3a = Dir3A::from_xyz(0.0, 1.0, 0.0).unwrap(); let dir4 = Dir4::from_xyzw(0.0, 1.0, 0.0, 0.0).unwrap(); let vec2 = Vec2::new(0.0, 1.0); let vec3 = Vec3::new(0.0, 1.0, 0.0); let vec4 = Vec4::new(0.0, 1.0, 0.0, 1.0); println!("{dir2} {dir3} {dir3a} {dir4}"); println!("{vec2}, {vec3}, {vec4}") } ``` - Are there any parts that need more testing? Perhaps
This commit is contained in:
parent
3b6d01972b
commit
6729208d39
@ -4,6 +4,7 @@ use crate::{
|
||||
};
|
||||
|
||||
use core::f32::consts::FRAC_1_SQRT_2;
|
||||
use core::fmt;
|
||||
use derive_more::derive::Into;
|
||||
|
||||
#[cfg(feature = "bevy_reflect")]
|
||||
@ -325,6 +326,12 @@ impl core::ops::Mul<Dir2> for Rot2 {
|
||||
}
|
||||
}
|
||||
|
||||
impl fmt::Display for Dir2 {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
write!(f, "{}", self.0)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "approx", test))]
|
||||
impl approx::AbsDiffEq for Dir2 {
|
||||
type Epsilon = f32;
|
||||
@ -587,6 +594,12 @@ impl core::ops::Mul<Dir3> for Quat {
|
||||
}
|
||||
}
|
||||
|
||||
impl fmt::Display for Dir3 {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
write!(f, "{}", self.0)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "approx")]
|
||||
impl approx::AbsDiffEq for Dir3 {
|
||||
type Epsilon = f32;
|
||||
@ -834,6 +847,12 @@ impl core::ops::Mul<Dir3A> for Quat {
|
||||
}
|
||||
}
|
||||
|
||||
impl fmt::Display for Dir3A {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
write!(f, "{}", self.0)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "approx")]
|
||||
impl approx::AbsDiffEq for Dir3A {
|
||||
type Epsilon = f32;
|
||||
@ -1022,6 +1041,12 @@ impl core::ops::Mul<Dir4> for f32 {
|
||||
}
|
||||
}
|
||||
|
||||
impl fmt::Display for Dir4 {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
write!(f, "{}", self.0)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "approx")]
|
||||
impl approx::AbsDiffEq for Dir4 {
|
||||
type Epsilon = f32;
|
||||
|
Loading…
Reference in New Issue
Block a user