| use crate::math::quad::Quad; | |
| use crate::math::rect::Rect; | |
| use bezier_rs::Bezier; | |
| pub trait QuadExt { | |
| /// Get all the edges in the rect as linear bezier curves | |
| fn bezier_lines(&self) -> impl Iterator<Item = Bezier> + '_; | |
| } | |
| impl QuadExt for Quad { | |
| fn bezier_lines(&self) -> impl Iterator<Item = Bezier> + '_ { | |
| self.all_edges().into_iter().map(|[start, end]| Bezier::from_linear_dvec2(start, end)) | |
| } | |
| } | |
| pub trait RectExt { | |
| /// Get all the edges in the quad as linear bezier curves | |
| fn bezier_lines(&self) -> impl Iterator<Item = Bezier> + '_; | |
| } | |
| impl RectExt for Rect { | |
| fn bezier_lines(&self) -> impl Iterator<Item = Bezier> + '_ { | |
| self.edges().into_iter().map(|[start, end]| Bezier::from_linear_dvec2(start, end)) | |
| } | |
| } | |