From 9b4397cdab25daff448cefb179a4699f64fa3d3f Mon Sep 17 00:00:00 2001 From: Martin Haug Date: Mon, 2 May 2022 18:25:53 +0200 Subject: [PATCH] Tests for the new shape API --- src/eval/value.rs | 5 ++++- src/geom/rect.rs | 9 +++++++- src/library/graphics/shape.rs | 10 +++------ tests/ref/graphics/shape-ellipse.png | Bin 22046 -> 24571 bytes tests/ref/graphics/shape-fill-stroke.png | Bin 2997 -> 6371 bytes tests/ref/graphics/shape-rect.png | Bin 7261 -> 13791 bytes tests/typ/graphics/shape-ellipse.typ | 3 +++ tests/typ/graphics/shape-fill-stroke.typ | 10 +++++++++ tests/typ/graphics/shape-rect.typ | 27 +++++++++++++++++++++++ 9 files changed, 55 insertions(+), 9 deletions(-) diff --git a/src/eval/value.rs b/src/eval/value.rs index c32614df2..352906aab 100644 --- a/src/eval/value.rs +++ b/src/eval/value.rs @@ -596,7 +596,10 @@ impl Cast for Smart { } } -impl Cast for Sides { +impl Cast for Sides +where + T: Cast + Default + Clone, +{ fn is(value: &Value) -> bool { matches!(value, Value::Dict(_)) || T::is(value) } diff --git a/src/geom/rect.rs b/src/geom/rect.rs index 839feda46..f0da2db61 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) } diff --git a/src/library/graphics/shape.rs b/src/library/graphics/shape.rs index e6fd2b7da..a5523a2ea 100644 --- a/src/library/graphics/shape.rs +++ b/src/library/graphics/shape.rs @@ -171,13 +171,9 @@ impl Layout for ShapeNode { frame.size.y + outset.top + outset.bottom, ); - let radius = styles.get(Self::RADIUS); - let radius = Sides { - left: radius.left.relative_to(size.x / 2.0), - top: radius.top.relative_to(size.y / 2.0), - right: radius.right.relative_to(size.x / 2.0), - bottom: radius.bottom.relative_to(size.y / 2.0), - }; + let radius = styles + .get(Self::RADIUS) + .map(|side| side.relative_to(size.x.min(size.y) / 2.0)); let pos = Point::new(-outset.left, -outset.top); diff --git a/tests/ref/graphics/shape-ellipse.png b/tests/ref/graphics/shape-ellipse.png index 740f005f358b3e6da6f6326c35b02915e4c33982..296fc14ee257795f394373eaeebe023d0bf6d363 100644 GIT binary patch literal 24571 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 F{|6db8k+zB literal 22046 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 DUz19f diff --git a/tests/ref/graphics/shape-rect.png b/tests/ref/graphics/shape-rect.png index 1fdb0dac90673c3e056f14e657c4aed9183869c9..5bbaf3db7b1396485c0659f61d15e8108518f1d5 100644 GIT binary patch literal 13791 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 literal 7261 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 XzR~?nlxWNb0xrl6o$E+7i)a4@dBaNf diff --git a/tests/typ/graphics/shape-ellipse.typ b/tests/typ/graphics/shape-ellipse.typ index 547acd382..ba4d0d0ab 100644 --- a/tests/typ/graphics/shape-ellipse.typ +++ b/tests/typ/graphics/shape-ellipse.typ @@ -21,3 +21,6 @@ Auto-sized ellipse. \ #set text(8pt) But, soft! what light through yonder window breaks? ] + + +An inline #ellipse(width: 8pt, height: 6pt, outset: (top: 3pt, rest: 5.5pt)) ellipse. \ No newline at end of file diff --git a/tests/typ/graphics/shape-fill-stroke.typ b/tests/typ/graphics/shape-fill-stroke.typ index c09cb065c..d14d0981b 100644 --- a/tests/typ/graphics/shape-fill-stroke.typ +++ b/tests/typ/graphics/shape-fill-stroke.typ @@ -38,3 +38,13 @@ #sq(stroke: blue) #sq(fill: teal, stroke: blue) #sq(fill: teal, stroke: 2pt + blue) + +--- +// Test stroke composition. +#set square(stroke: 4pt) +#set text("Roboto") +#square( + stroke: (left: red, top: yellow, right: green, bottom: blue), + radius: 100%, align(center+horizon)[*G*], + inset: 8pt +) diff --git a/tests/typ/graphics/shape-rect.typ b/tests/typ/graphics/shape-rect.typ index 52fe03eac..3d1576753 100644 --- a/tests/typ/graphics/shape-rect.typ +++ b/tests/typ/graphics/shape-rect.typ @@ -27,3 +27,30 @@ \{#rect(width: 0.5in, height: 7pt, fill: rgb("d6cd67")) #rect(width: 0.5in, height: 7pt, fill: rgb("edd466")) #rect(width: 0.5in, height: 7pt, fill: rgb("e3be62"))\} + +// Rounded corners. +#rect(width: 2cm, radius: 60%) +#rect(width: 1cm, radius: (x: 5pt, y: 10pt)) +#rect(width: 1.25cm, radius: (left: 2pt, top: 5pt, right: 8pt, bottom: 11pt)) + +// Different strokes. +[ + #set rect(stroke: (right: red,)) + #rect(width: 100%, fill: lime, stroke: (x: 5pt, y: 1pt)) +] + +--- +// Outset padding. +#let inline-code(body) = [ + #set text("IBM Plex Mono", 8pt) + #h(.7em, weak: true) + #rect(radius: 3pt, outset: (y: 3pt, x: 2.5pt), fill: rgb(239, 241, 243), body) + #h(.7em, weak: true) +] + +Use the #inline-code[\*const ptr] pointer. + +--- +// Error: 15-38 unexpected key "cake" +#rect(radius: (left: 10pt, cake: 5pt)) +