diff --git a/src/drawing/line.rs b/src/drawing/line.rs index fd2b33d..369e8fd 100644 --- a/src/drawing/line.rs +++ b/src/drawing/line.rs @@ -147,7 +147,7 @@ impl, const CHANNELS: usize> Image { /// /// Points not in bounds will not be included. /// - /// Uses [`Image::points`]. + /// Uses [`Image::quad`]. /// ``` /// # use fimg::Image; /// let mut i = Image::alloc(10, 10); @@ -176,14 +176,11 @@ impl, const CHANNELS: usize> Image { // v x1 v x2 // [ ] // ^ x3 ^ x4 - self.points( - &[ - p!(x1 - wx, y1 - wy), // x1 - p!(x2 - wx, y2 - wy), // x2 - p!(x2 + wx, y2 + wy), // x3 - p!(x1 + wx, y1 + wy), // x4 - p!(x1 - wx, y1 - wy), // x1 (close) - ], + self.quad( + p!(x1 - wx, y1 - wy), // x1 + p!(x2 - wx, y2 - wy), // x2 + p!(x2 + wx, y2 + wy), // x3 + p!(x1 + wx, y1 + wy), // x4 color, ); } diff --git a/src/drawing/poly.rs b/src/drawing/poly.rs index 0799457..ae20914 100644 --- a/src/drawing/poly.rs +++ b/src/drawing/poly.rs @@ -70,4 +70,17 @@ impl, const CHANNELS: usize> Image { self.line((x1, y1), (x2, y2), c); } } + + /// Draws a filled quadrilateral. + /// This currently just uses [`Image::points`], but in the future this may change. + pub fn quad( + &mut self, + a: (i32, i32), + b: (i32, i32), + c: (i32, i32), + d: (i32, i32), + col: [u8; CHANNELS], + ) { + self.points(&[a, b, c, d, a], col); + } }