From 52f1f53973414be72bf22c3253ab365f8db067df Mon Sep 17 00:00:00 2001 From: Emmanuel Lesueur <48604057+Emm54321@users.noreply.github.com> Date: Wed, 26 Feb 2025 19:07:29 +0100 Subject: [PATCH] Fix curve with multiple non-closed components. (#5963) --- crates/typst-layout/src/shapes.rs | 1 + tests/ref/curve-multiple-non-closed.png | Bin 0 -> 85 bytes tests/suite/visualize/curve.typ | 10 ++++++++++ 3 files changed, 11 insertions(+) create mode 100644 tests/ref/curve-multiple-non-closed.png diff --git a/crates/typst-layout/src/shapes.rs b/crates/typst-layout/src/shapes.rs index 21d0a518f..7ab41e9d4 100644 --- a/crates/typst-layout/src/shapes.rs +++ b/crates/typst-layout/src/shapes.rs @@ -284,6 +284,7 @@ impl<'a> CurveBuilder<'a> { self.last_point = point; self.last_control_from = point; self.is_started = true; + self.is_empty = true; } /// Add a line segment. diff --git a/tests/ref/curve-multiple-non-closed.png b/tests/ref/curve-multiple-non-closed.png new file mode 100644 index 0000000000000000000000000000000000000000..f4332e363f7500fbfdf1745ddb07156cd699804e GIT binary patch literal 85 zcmeAS@N?(olHy`uVBq!ia0vp^6+o=P2qYL}Co*>cDH%@}$B>F!$v^tJB-rNEH#ADl iwSQ&zYG?k0qvj00FFdmKHq?9ssrPjCb6Mw<&;$TP`50CJ literal 0 HcmV?d00001 diff --git a/tests/suite/visualize/curve.typ b/tests/suite/visualize/curve.typ index f98f634a7..14a1c0cc8 100644 --- a/tests/suite/visualize/curve.typ +++ b/tests/suite/visualize/curve.typ @@ -38,6 +38,16 @@ curve.close(mode: "smooth"), ) +--- curve-multiple-non-closed --- +#curve( + stroke: 2pt, + curve.line((20pt, 0pt)), + curve.move((0pt, 10pt)), + curve.line((20pt, 10pt)), + curve.move((0pt, 20pt)), + curve.line((20pt, 20pt)), +) + --- curve-line --- #curve( fill: purple,