summaryrefslogtreecommitdiff
path: root/src/geom
diff options
context:
space:
mode:
authorMartin Haug <mhaug@live.de>2022-05-02 18:25:53 +0200
committerMartin Haug <mhaug@live.de>2022-05-02 18:25:53 +0200
commit9b4397cdab25daff448cefb179a4699f64fa3d3f (patch)
treed5a684a4bcc0846e3213f3777f33159db21a2639 /src/geom
parentf07395f9a47502c50f767f78a233d0e2a6e4445f (diff)
Tests for the new shape API
Diffstat (limited to 'src/geom')
-rw-r--r--src/geom/rect.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/geom/rect.rs b/src/geom/rect.rs
index 839feda4..f0da2db6 100644
--- a/src/geom/rect.rs
+++ b/src/geom/rect.rs
@@ -28,7 +28,7 @@ impl Rect {
res.push(Shape {
geometry: self.fill_geometry(),
fill,
- stroke: stroke.left,
+ stroke: stroke.is_uniform().then(|| stroke.top).flatten(),
});
}
@@ -174,6 +174,8 @@ fn draw_side(
}
}
+/// A state machine that indicates which sides of the border strokes in a 2D
+/// polygon are connected to their neighboring sides.
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
enum Connection {
None,
@@ -183,6 +185,9 @@ enum Connection {
}
impl Connection {
+ /// Advance to the next clockwise side of the polygon. The argument
+ /// indicates whether the border is connected on the right side of the next
+ /// edge.
pub fn advance(self, right: bool) -> Self {
match self {
Self::Right | Self::Both => {
@@ -202,10 +207,12 @@ impl Connection {
}
}
+ /// Whether there is a connection on the left.
fn left(self) -> bool {
matches!(self, Self::Left | Self::Both)
}
+ /// Whether there is a connection on the right.
fn right(self) -> bool {
matches!(self, Self::Right | Self::Both)
}