26 lines
729 B
Rust
26 lines
729 B
Rust
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))
|
|
}
|
|
}
|