nuit_core/compose/shape/primitive/
sector.rs

1use crate::{Angle, Shape, ShapeNode};
2
3/// A circular sector shape.
4#[derive(Debug, Clone, PartialEq)]
5pub struct Sector {
6    start_angle: Angle,
7    end_angle: Angle,
8    inner_radius_fraction: f64,
9}
10
11impl Sector {
12    pub fn new(
13        start_angle: impl Into<Angle>,
14        end_angle: impl Into<Angle>,
15        inner_radius_fraction: impl Into<f64>,
16    ) -> Self {
17        Self {
18            start_angle: start_angle.into(),
19            end_angle: end_angle.into(),
20            inner_radius_fraction: inner_radius_fraction.into(),
21        }
22    }
23}
24
25impl Shape for Sector {
26    fn render(&self) -> ShapeNode {
27        ShapeNode::Sector {
28            start_angle: self.start_angle,
29            end_angle: self.end_angle,
30            inner_radius_fraction: self.inner_radius_fraction,
31        }
32    }
33}