From 981c578ff9f1ef33a9ab00bc0ecf8fcacabc156f Mon Sep 17 00:00:00 2001 From: Johannes Wolf <519002+johannes-wolf@users.noreply.github.com> Date: Wed, 19 Apr 2023 16:30:27 +0200 Subject: [PATCH] path: Use close_path() for closing paths (#801) --- library/src/visualize/path.rs | 1 + tests/ref/visualize/path.png | Bin 3405 -> 3575 bytes tests/typ/visualize/path.typ | 7 +++++++ 3 files changed, 8 insertions(+) diff --git a/library/src/visualize/path.rs b/library/src/visualize/path.rs index 436ef5f0c..db0620930 100644 --- a/library/src/visualize/path.rs +++ b/library/src/visualize/path.rs @@ -123,6 +123,7 @@ impl Layout for PathElem { let to_point = points[0]; add_cubic(from_point, to_point, from, to); + path.close_path(); } // Prepare fill and stroke. diff --git a/tests/ref/visualize/path.png b/tests/ref/visualize/path.png index ec537f0a32892ee373b4b0395d6b796073c995b0..c7f710c9427873d57ab4f7af2161bae8ff4b2a82 100644 GIT binary patch literal 3575 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 ZQ#24n{^>dsxBC+S?5rKE>McDI{tH^1_vQcq diff --git a/tests/typ/visualize/path.typ b/tests/typ/visualize/path.typ index c7c1af508..d475811f3 100644 --- a/tests/typ/visualize/path.typ +++ b/tests/typ/visualize/path.typ @@ -30,6 +30,13 @@ ((30%, 60%), (-20%, 0%), (0%, 0%)), ((50%, 30%), (60%, -30%), (60%, 0%)), ), + path( + stroke: 5pt, + closed: true, + (0pt, 30pt), + (30pt, 30pt), + (15pt, 0pt), + ), ) ---