From e9b23c16f1437c4ef488fc035010d1f6f19bb002 Mon Sep 17 00:00:00 2001 From: Sameer Puri Date: Wed, 9 Jun 2021 18:29:31 -0400 Subject: [PATCH] use flattening on ellipses after nical/lyon#662 --- Cargo.lock | 12 ++++++------ Cargo.toml | 2 +- src/turtle.rs | 10 ++++------ 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fc5c7f1..18a9faa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -177,9 +177,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.95" +version = "0.2.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "789da6d93f1b866ffe175afc5322a4d76c038605a1c3319bb57b06967ca98a36" +checksum = "5600b4e6efc5421841a2138a6b082e07fe12f9aaa12783d50e5d13325b26b4fc" [[package]] name = "log" @@ -192,9 +192,9 @@ dependencies = [ [[package]] name = "lyon_geom" -version = "0.17.1" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6b5d72694ade806440faf600defca6143dbe5499e90a9ec8caed62adbfd5db5" +checksum = "1b63e4ad431a0d079d443e2f195d37ae062743886c73b83c1fd313bf1deec649" dependencies = [ "arrayvec", "euclid", @@ -458,9 +458,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.72" +version = "1.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82" +checksum = "f71489ff30030d2ae598524f61326b902466f72a0fb1a8564c001cc63425bcc7" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 0c7fce1..e5225a3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ description = "Convert paths in SVG files to GCode for a pen plotter, laser engr [dependencies] g-code = "0.1.2" -lyon_geom = "0" +lyon_geom = ">= 0.17.2" euclid = "0.22" structopt = "0.3" log = "0" diff --git a/src/turtle.rs b/src/turtle.rs index 392c396..f15847c 100644 --- a/src/turtle.rs +++ b/src/turtle.rs @@ -404,12 +404,10 @@ impl<'input> Turtle<'input> { let last_point = std::cell::Cell::new(self.current_position); let mut ellipse = vec![]; - arc.for_each_cubic_bezier(&mut |cbs| { - cbs.flattened(tolerance).for_each(|point| { - let point = self.current_transform.transform_point(point); - ellipse.append(&mut Self::linear_interpolation(point.x, point.y, z, f)); - last_point.set(point); - }); + arc.flattened(tolerance).for_each(|point| { + let point = self.current_transform.transform_point(point); + ellipse.append(&mut Self::linear_interpolation(point.x, point.y, z, f)); + last_point.set(point); }); self.current_position = last_point.get();