From f88f516c30f494c5aee6b187dced1579cc595edf Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Sun, 24 Jun 2012 16:09:24 +0200 Subject: [PATCH] Optimize honeycomb travels --- lib/Slic3r/Fill/Honeycomb.pm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/Slic3r/Fill/Honeycomb.pm b/lib/Slic3r/Fill/Honeycomb.pm index 924bf7f81..81a86b0d2 100644 --- a/lib/Slic3r/Fill/Honeycomb.pm +++ b/lib/Slic3r/Fill/Honeycomb.pm @@ -83,13 +83,15 @@ sub fill_surface { $self->cache->{$cache_id} = [@polygons]; } - my $loops = intersection_ex( + my @paths = map Slic3r::Polyline->new(@$_, $_->[0]), map @$_, @{intersection_ex( $self->cache->{$cache_id}, [ map @$_, $expolygon->offset_ex($overlap_distance) ], + )}; + my $collection = Slic3r::ExtrusionPath::Collection->new( + paths => [ map Slic3r::ExtrusionPath->new(polyline => $_, role => -1), @paths ], ); - my @paths = map [ @$_, $_->[0] ], map @$_, @$loops; - return {}, @paths; + return {}, map $_->polyline, $collection->shortest_path; } 1;