Implement Default and Display for Plane
This commit is contained in:
		
							parent
							
								
									e4b6d375f8
								
							
						
					
					
						commit
						edb70037d6
					
				|  | @ -1,15 +1,21 @@ | |||
| use std::fmt::Display; | ||||
| 
 | ||||
| use glam::{Mat3, Vec3, Vec4}; | ||||
| 
 | ||||
| use crate::math; | ||||
| 
 | ||||
| //? Should this be normalised or does that risk introducing fpp errors
 | ||||
| #[derive(Clone, Copy, Debug)] | ||||
| #[derive(Clone, Copy, Debug, Default)] | ||||
| pub struct Plane { | ||||
|     pub normal: Vec3, | ||||
|     pub offset: f32, | ||||
| } | ||||
| 
 | ||||
| impl Plane { | ||||
|     pub fn new(normal: Vec3, offset: f32) -> Self { | ||||
|         Self { normal, offset } | ||||
|     } | ||||
| 
 | ||||
|     pub fn from_point_normal(point: Vec3, normal: Vec3) -> Self { | ||||
|         Self { | ||||
|             normal, | ||||
|  | @ -33,6 +39,16 @@ impl PartialEq for Plane { | |||
| 
 | ||||
| impl Eq for Plane {} | ||||
| 
 | ||||
| impl Display for Plane { | ||||
|     fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { | ||||
|         write!( | ||||
|             f, | ||||
|             "({})x + ({})y +({})z + ({}) = 0", | ||||
|             self.normal.x, self.normal.y, self.normal.z, -self.offset | ||||
|         ) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| #[derive(Clone, Copy, Debug)] | ||||
| pub struct PlaneIntersection { | ||||
|     pub planes: [Plane; 3], | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue