use axiolid_core::Interval;
use axiolid_curve::Curve2;
#[derive(Debug, Clone, PartialEq)]
pub struct ProfileSegment {
pub curve: Curve2,
pub domain: Interval,
pub same_sense: bool,
}
#[derive(Debug, Clone, Default, PartialEq)]
pub struct Contour {
pub segments: Vec<ProfileSegment>,
}
impl Contour {
pub fn new(segments: Vec<ProfileSegment>) -> Self {
Self { segments }
}
pub fn len(&self) -> usize {
self.segments.len()
}
pub fn is_empty(&self) -> bool {
self.segments.is_empty()
}
}
#[derive(Debug, Clone, Default, PartialEq)]
pub struct ContourProfile {
pub outer: Contour,
pub holes: Vec<Contour>,
}