Revert "lib: handle floating-point precision edge case for setting origin w/ loop"

This reverts commit 00589256fb.
master
Sameer Puri 3 years ago committed by GitHub
parent 773ed0766d
commit aaa5c2e3fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -246,47 +246,31 @@ pub fn svg2program<'a, 'input: 'a>(
options: ConversionOptions, options: ConversionOptions,
machine: Machine<'input>, machine: Machine<'input>,
) -> Vec<Token<'input>> { ) -> Vec<Token<'input>> {
let mut origin_transform = Transform2D::identity(); let bounding_box = {
loop { let mut visitor = ConversionVisitor {
let bounding_box = { terrarium: Terrarium::new(PreprocessTurtle::default()),
let mut visitor = ConversionVisitor { config,
terrarium: Terrarium::new(PreprocessTurtle::default()), options: options.clone(),
config, name_stack: vec![],
options: options.clone(),
name_stack: vec![],
};
visitor.terrarium.push_transform(origin_transform);
visitor.begin();
visit::depth_first_visit(doc, &mut visitor);
visitor.end();
visitor.terrarium.pop_transform();
visitor.terrarium.turtle.bounding_box
}; };
if (!bounding_box.min.x.is_sign_negative() && !bounding_box.min.y.is_sign_negative()) visitor.begin();
|| bounding_box visit::depth_first_visit(doc, &mut visitor);
.min visitor.end();
.to_vector()
.abs()
.lower_than(vector(std::f64::EPSILON, std::f64::EPSILON))
.all()
{
break;
}
origin_transform = origin_transform.then(&{ visitor.terrarium.turtle.bounding_box
let mut transform = Transform2D::identity(); };
if let Some(origin_x) = config.origin[0] {
transform = transform.then_translate(vector(origin_x - bounding_box.min.x, 0.)); let origin_transform = {
} let mut transform = Transform2D::identity();
if let Some(origin_y) = config.origin[1] { if let Some(origin_x) = config.origin[0] {
transform = transform.then_translate(vector(0., origin_y - bounding_box.min.y)); transform = transform.then_translate(vector(origin_x - bounding_box.min.x, 0.));
} }
transform if let Some(origin_y) = config.origin[1] {
}); transform = transform.then_translate(vector(0., origin_y - bounding_box.min.y));
} }
transform
};
let mut conversion_visitor = ConversionVisitor { let mut conversion_visitor = ConversionVisitor {
terrarium: Terrarium::new(GCodeTurtle { terrarium: Terrarium::new(GCodeTurtle {

Loading…
Cancel
Save