makepad_vector/geometry/
rectangle.rs1use crate::geometry::{Point, Transform, Transformation};
2
3#[derive(Clone, Copy, Debug, Default, PartialEq)]
5#[repr(C)]
6pub struct Rectangle {
7 pub p_min: Point,
8 pub p_max: Point,
9}
10
11impl Rectangle {
12 pub fn new(p_min: Point, p_max: Point) -> Rectangle {
14 Rectangle { p_min, p_max }
15 }
16}
17
18impl Transform for Rectangle {
19 fn transform<T>(self, t: &T) -> Rectangle
20 where
21 T: Transformation,
22 {
23 Rectangle::new(self.p_min.transform(t), self.p_max.transform(t))
24 }
25
26 fn transform_mut<T>(&mut self, t: &T)
27 where
28 T: Transformation,
29 {
30 *self = self.transform(t);
31 }
32}