From ee33d570d739d7dcca617287bfe363ca7e24c05f Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Tue, 1 May 2012 11:41:08 +0200 Subject: [PATCH] Use Douglas-Peucker simplification always and remove the inefficient parallel lines merging algorithm. #277 --- lib/Slic3r.pm | 1 + lib/Slic3r/Layer.pm | 3 ++- lib/Slic3r/TriangleMesh.pm | 1 - 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/Slic3r.pm b/lib/Slic3r.pm index 004c3aa1f..f41d41edf 100644 --- a/lib/Slic3r.pm +++ b/lib/Slic3r.pm @@ -81,6 +81,7 @@ our $infill_acceleration = 50; # mm/s^2 # accuracy options our $scaling_factor = 0.00000001; +our $resolution = 0.01; our $small_perimeter_area = ((6.5 / $scaling_factor)**2)*PI; our $layer_height = 0.4; our $first_layer_height_ratio = 1; diff --git a/lib/Slic3r/Layer.pm b/lib/Slic3r/Layer.pm index ca22104c4..ee59d9b68 100644 --- a/lib/Slic3r/Layer.pm +++ b/lib/Slic3r/Layer.pm @@ -112,7 +112,8 @@ sub make_surfaces { { # merge everything my $expolygons = union_ex($loops); - + $_->simplify(scale $Slic3r::resolution) for @$expolygons; + Slic3r::debugf " %d surface(s) having %d holes detected from %d polylines\n", scalar(@$expolygons), scalar(map $_->holes, @$expolygons), scalar(@$loops); diff --git a/lib/Slic3r/TriangleMesh.pm b/lib/Slic3r/TriangleMesh.pm index 9fa7641a8..3b129dbff 100644 --- a/lib/Slic3r/TriangleMesh.pm +++ b/lib/Slic3r/TriangleMesh.pm @@ -267,7 +267,6 @@ sub make_loops { Slic3r::debugf " Discovered %s polygon of %d points\n", ($polygons[-1]->is_counter_clockwise ? 'ccw' : 'cw'), scalar(@points) if $Slic3r::debug; - pop @polygons if !$polygons[-1]->cleanup; } return [@polygons];