From 919d1131f80fb2ac5de0b3a66022225197ce7355 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci <aar@cpan.org> Date: Wed, 27 Feb 2013 11:04:14 +0100 Subject: [PATCH] Use nearest-neighbor search for internal perimeters too. #1025 --- lib/Slic3r/Layer/Region.pm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/Slic3r/Layer/Region.pm b/lib/Slic3r/Layer/Region.pm index eb55fcc55..d1fd5b9c6 100644 --- a/lib/Slic3r/Layer/Region.pm +++ b/lib/Slic3r/Layer/Region.pm @@ -173,7 +173,7 @@ sub make_perimeters { # ) my @perimeters = (); # one item per depth; each item - # organize islands using a shortest path search + # organize islands using a nearest-neighbor search my @surfaces = @{chained_path_items([ map [ $_->contour->[0], $_ ], @{$self->slices}, ])}; @@ -245,6 +245,12 @@ sub make_perimeters { last if !@new_offsets || $loop == $loop_number; @last_offsets = @new_offsets; + + # sort loops before storing them + @last_offsets = @{chained_path_items([ + map [ $_->contour->[0], $_ ], @last_offsets, + ])}; + push @{ $perimeters[-1] }, [@last_offsets]; }