track lyon-geom v0.17.5 for fixed to_svg_arc

master
Sameer Puri 4 years ago
parent 450311f8cf
commit 26d4471b80

4
Cargo.lock generated

@ -419,9 +419,9 @@ dependencies = [
[[package]] [[package]]
name = "lyon_geom" name = "lyon_geom"
version = "0.17.4" version = "0.17.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1e79ed83352715656b6e73bd9c1b54736f22d0c6ad9b1809ad20d585b943f4a" checksum = "fe153a6ce93cb97c85ba47a007fd437079bbff5592b9c0f77195973b8b169d69"
dependencies = [ dependencies = [
"arrayvec", "arrayvec",
"euclid", "euclid",

@ -9,7 +9,7 @@ license = "MIT"
[dependencies] [dependencies]
g-code = "0.3.1" g-code = "0.3.1"
lyon_geom = ">= 0.17.2" lyon_geom = ">= 0.17.5"
euclid = "0.22" euclid = "0.22"
log = "0" log = "0"
uom = "0.31.0" uom = "0.31.0"

@ -1,6 +1,6 @@
use euclid::Angle; use euclid::Angle;
use lyon_geom::{ use lyon_geom::{
Arc, ArcFlags, CubicBezierSegment, Line, LineSegment, Point, Scalar, SvgArc, Transform, Vector, ArcFlags, CubicBezierSegment, Line, LineSegment, Point, Scalar, SvgArc, Transform, Vector,
}; };
pub enum ArcOrLineSegment<S> { pub enum ArcOrLineSegment<S> {
@ -176,9 +176,9 @@ where
vec![ArcOrLineSegment::Arc(svg_arc)] vec![ArcOrLineSegment::Arc(svg_arc)]
} else { } else {
let (left, right) = self_arc.split(S::HALF); let (left, right) = self_arc.split(S::HALF);
let mut acc = FlattenWithArcs::flattened(&to_svg_arc(left), tolerance); let mut acc = FlattenWithArcs::flattened(&left.to_svg_arc(), tolerance);
acc.append(&mut FlattenWithArcs::flattened( acc.append(&mut FlattenWithArcs::flattened(
&to_svg_arc(right), &right.to_svg_arc(),
tolerance, tolerance,
)); ));
acc acc
@ -186,23 +186,6 @@ where
} }
} }
/// Sanity holdover until https://github.com/nical/lyon/pull/693 is merged
pub fn to_svg_arc<S: Scalar>(arc: Arc<S>) -> SvgArc<S> {
let from = arc.sample(S::ZERO);
let to = arc.sample(S::ONE);
let flags = ArcFlags {
sweep: arc.sweep_angle.get() >= S::ZERO,
large_arc: S::abs(arc.sweep_angle.get()) >= S::PI(),
};
SvgArc {
from,
to,
radii: arc.radii,
x_rotation: arc.x_rotation,
flags,
}
}
pub trait Transformed<S> { pub trait Transformed<S> {
fn transformed(&self, transform: &Transform<S>) -> Self; fn transformed(&self, transform: &Transform<S>) -> Self;
} }

@ -1,4 +1,4 @@
use crate::arc::{to_svg_arc, ArcOrLineSegment, FlattenWithArcs, Transformed}; use crate::arc::{ArcOrLineSegment, FlattenWithArcs, Transformed};
use crate::machine::Machine; use crate::machine::Machine;
use g_code::{command, emit::Token}; use g_code::{command, emit::Token};
use lyon_geom::euclid::{default::Transform2D, Angle}; use lyon_geom::euclid::{default::Transform2D, Angle};
@ -109,9 +109,9 @@ impl<'input> Turtle<'input> {
.into_token_vec(), .into_token_vec(),
(true, _) => { (true, _) => {
let (left, right) = svg_arc.to_arc().split(0.5); let (left, right) = svg_arc.to_arc().split(0.5);
let mut token_vec = Self::circular_interpolation(to_svg_arc(left), feedrate); let mut token_vec = Self::circular_interpolation(left.to_svg_arc(), feedrate);
token_vec.append(&mut Self::circular_interpolation( token_vec.append(&mut Self::circular_interpolation(
to_svg_arc(right), right.to_svg_arc(),
feedrate, feedrate,
)); ));
token_vec token_vec

Loading…
Cancel
Save