Update codebase to support euclid ^0.20

master
Sameer Puri 6 years ago
parent 5d0399b87b
commit ec6b7ad88e

6
Cargo.lock generated

@ -266,7 +266,7 @@ dependencies = [
[[package]] [[package]]
name = "typenum" name = "typenum"
version = "1.10.0" version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
@ -280,7 +280,7 @@ version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "typenum 1.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
@ -364,7 +364,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
"checksum termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "96d6098003bde162e4277c70665bd87c326f5a0c3f3fbfb285787fa482d54e6e" "checksum termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "96d6098003bde162e4277c70665bd87c326f5a0c3f3fbfb285787fa482d54e6e"
"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" "checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
"checksum typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169" "checksum typenum 1.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9af116643fb2603767cc7850b2f70b571ae451a2abe795acbf01747dfd33aa70"
"checksum unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7007dbd421b92cc6e28410fe7362e2e0a2503394908f417b68ec8d1c364c4e20" "checksum unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7007dbd421b92cc6e28410fe7362e2e0a2503394908f417b68ec8d1c364c4e20"
"checksum uom 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3198c29f199fa8a23d732f4aa21ddc4f4d0a257cb0c2a44afea30145ce2575c1" "checksum uom 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3198c29f199fa8a23d732f4aa21ddc4f4d0a257cb0c2a44afea30145ce2575c1"
"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"

@ -1,6 +1,6 @@
use crate::code::GCode; use crate::code::GCode;
use crate::machine::Machine; use crate::machine::Machine;
use lyon_geom::euclid::{Angle, Transform2D}; use lyon_geom::euclid::{Angle, default::Transform2D};
use lyon_geom::math::{point, vector, F64Point}; use lyon_geom::math::{point, vector, F64Point};
use lyon_geom::{ArcFlags, CubicBezierSegment, QuadraticBezierSegment, SvgArc}; use lyon_geom::{ArcFlags, CubicBezierSegment, QuadraticBezierSegment, SvgArc};
@ -46,7 +46,7 @@ impl Turtle {
Y: Into<Option<f64>>, Y: Into<Option<f64>>,
{ {
let invtran = self.curtran.inverse().unwrap(); let invtran = self.curtran.inverse().unwrap();
let origcurpos = invtran.transform_point(&self.curpos); let origcurpos = invtran.transform_point(self.curpos);
let x = x let x = x
.into() .into()
.map(|x| if abs { x } else { origcurpos.x + x }) .map(|x| if abs { x } else { origcurpos.x + x })
@ -57,7 +57,7 @@ impl Turtle {
.unwrap_or(origcurpos.y); .unwrap_or(origcurpos.y);
let mut to = point(x, y); let mut to = point(x, y);
to = self.curtran.transform_point(&to); to = self.curtran.transform_point(to);
self.curpos = to; self.curpos = to;
self.initpos = to; self.initpos = to;
self.prev_ctrl = None; self.prev_ctrl = None;
@ -83,7 +83,7 @@ impl Turtle {
// See https://www.w3.org/TR/SVG/paths.html#Segment-CompletingClosePath which could result in a G91 G1 X0 Y0 // See https://www.w3.org/TR/SVG/paths.html#Segment-CompletingClosePath which could result in a G91 G1 X0 Y0
if (self.curpos - self.initpos) if (self.curpos - self.initpos)
.abs() .abs()
.lower_than(&vector(std::f64::EPSILON, std::f64::EPSILON)) .lower_than(vector(std::f64::EPSILON, std::f64::EPSILON))
.all() .all()
{ {
return vec![]; return vec![];
@ -112,7 +112,7 @@ impl Turtle {
F: Into<Option<f64>>, F: Into<Option<f64>>,
{ {
let invtran = self.curtran.inverse().unwrap(); let invtran = self.curtran.inverse().unwrap();
let origcurpos = invtran.transform_point(&self.curpos); let origcurpos = invtran.transform_point(self.curpos);
let x = x let x = x
.into() .into()
.map(|x| if abs { x } else { origcurpos.x + x }) .map(|x| if abs { x } else { origcurpos.x + x })
@ -123,7 +123,7 @@ impl Turtle {
.unwrap_or(origcurpos.y); .unwrap_or(origcurpos.y);
let mut to = point(x, y); let mut to = point(x, y);
to = self.curtran.transform_point(&to); to = self.curtran.transform_point(to);
self.curpos = to; self.curpos = to;
self.prev_ctrl = None; self.prev_ctrl = None;
@ -199,14 +199,14 @@ impl Turtle {
let mut to = point(x, y); let mut to = point(x, y);
if !abs { if !abs {
let invtran = self.curtran.inverse().unwrap(); let invtran = self.curtran.inverse().unwrap();
let origcurpos = invtran.transform_point(&self.curpos); let origcurpos = invtran.transform_point(self.curpos);
ctrl1 += origcurpos.to_vector(); ctrl1 += origcurpos.to_vector();
ctrl2 += origcurpos.to_vector(); ctrl2 += origcurpos.to_vector();
to += origcurpos.to_vector(); to += origcurpos.to_vector();
} }
ctrl1 = self.curtran.transform_point(&ctrl1); ctrl1 = self.curtran.transform_point(ctrl1);
ctrl2 = self.curtran.transform_point(&ctrl2); ctrl2 = self.curtran.transform_point(ctrl2);
to = self.curtran.transform_point(&to); to = self.curtran.transform_point(to);
let cbs = lyon_geom::CubicBezierSegment { let cbs = lyon_geom::CubicBezierSegment {
from, from,
ctrl1, ctrl1,
@ -238,12 +238,12 @@ impl Turtle {
let mut to = point(x, y); let mut to = point(x, y);
if !abs { if !abs {
let invtran = self.curtran.inverse().unwrap(); let invtran = self.curtran.inverse().unwrap();
let origcurpos = invtran.transform_point(&self.curpos); let origcurpos = invtran.transform_point(self.curpos);
ctrl2 += origcurpos.to_vector(); ctrl2 += origcurpos.to_vector();
to += origcurpos.to_vector(); to += origcurpos.to_vector();
} }
ctrl2 = self.curtran.transform_point(&ctrl2); ctrl2 = self.curtran.transform_point(ctrl2);
to = self.curtran.transform_point(&to); to = self.curtran.transform_point(to);
let cbs = lyon_geom::CubicBezierSegment { let cbs = lyon_geom::CubicBezierSegment {
from, from,
ctrl1, ctrl1,
@ -272,10 +272,10 @@ impl Turtle {
let mut to = point(x, y); let mut to = point(x, y);
if !abs { if !abs {
let invtran = self.curtran.inverse().unwrap(); let invtran = self.curtran.inverse().unwrap();
let origcurpos = invtran.transform_point(&self.curpos); let origcurpos = invtran.transform_point(self.curpos);
to += origcurpos.to_vector(); to += origcurpos.to_vector();
} }
to = self.curtran.transform_point(&to); to = self.curtran.transform_point(to);
let qbs = QuadraticBezierSegment { from, ctrl, to }; let qbs = QuadraticBezierSegment { from, ctrl, to };
self.bezier(qbs.to_cubic(), tolerance, z, f) self.bezier(qbs.to_cubic(), tolerance, z, f)
@ -301,12 +301,12 @@ impl Turtle {
let mut to = point(x, y); let mut to = point(x, y);
if !abs { if !abs {
let invtran = self.curtran.inverse().unwrap(); let invtran = self.curtran.inverse().unwrap();
let origcurpos = invtran.transform_point(&self.curpos); let origcurpos = invtran.transform_point(self.curpos);
to += origcurpos.to_vector(); to += origcurpos.to_vector();
ctrl += origcurpos.to_vector(); ctrl += origcurpos.to_vector();
} }
ctrl = self.curtran.transform_point(&ctrl); ctrl = self.curtran.transform_point(ctrl);
to = self.curtran.transform_point(&to); to = self.curtran.transform_point(to);
let qbs = QuadraticBezierSegment { from, ctrl, to }; let qbs = QuadraticBezierSegment { from, ctrl, to };
self.bezier(qbs.to_cubic(), tolerance, z, f) self.bezier(qbs.to_cubic(), tolerance, z, f)
@ -334,15 +334,15 @@ impl Turtle {
let f = f.into(); let f = f.into();
let from = self.curpos; let from = self.curpos;
let mut to = point(x, y); let mut to: F64Point = point(x, y);
to = self.curtran.transform_point(&to); to = self.curtran.transform_point(to);
if !abs { if !abs {
to -= vector(self.curtran.m31, self.curtran.m32); to -= vector(self.curtran.m31, self.curtran.m32);
to += self.curpos.to_vector(); to += self.curpos.to_vector();
} }
let mut radii = vector(rx, ry); let mut radii = vector(rx, ry);
radii = self.curtran.transform_vector(&radii); radii = self.curtran.transform_vector(radii);
let sarc = SvgArc { let sarc = SvgArc {
from, from,
@ -378,9 +378,9 @@ impl Turtle {
} }
pub fn stack_scaling(&mut self, scaling: Transform2D<f64>) { pub fn stack_scaling(&mut self, scaling: Transform2D<f64>) {
self.curtran = self.curtran.post_mul(&scaling); self.curtran = self.curtran.post_transform(&scaling);
if let Some(ref current_scaling) = self.scaling { if let Some(ref current_scaling) = self.scaling {
self.scaling = Some(current_scaling.post_mul(&scaling)); self.scaling = Some(current_scaling.post_transform(&scaling));
} else { } else {
self.scaling = Some(scaling); self.scaling = Some(scaling);
} }
@ -391,11 +391,11 @@ impl Turtle {
if let Some(ref scaling) = self.scaling { if let Some(ref scaling) = self.scaling {
self.curtran = self self.curtran = self
.curtran .curtran
.post_mul(&scaling.inverse().unwrap()) .post_transform(&scaling.inverse().unwrap())
.pre_mul(&trans) .pre_transform(&trans)
.post_mul(&scaling); .post_transform(&scaling);
} else { } else {
self.curtran = self.curtran.post_mul(&trans); self.curtran = self.curtran.post_transform(&trans);
} }
} }
@ -408,7 +408,7 @@ impl Turtle {
pub fn reset(&mut self) { pub fn reset(&mut self) {
self.curpos = point(0.0, 0.0); self.curpos = point(0.0, 0.0);
self.curpos = self.curtran.transform_point(&self.curpos); self.curpos = self.curtran.transform_point(self.curpos);
self.prev_ctrl = None; self.prev_ctrl = None;
self.initpos = self.curpos; self.initpos = self.curpos;
} }

Loading…
Cancel
Save