Rewrite avoid_crossing_perimeters() to fix a regression and get better performance by choosing regular points along contours. #1531

Conflicts:

	lib/Slic3r/GCode/MotionPlanner.pm
This commit is contained in:
Alessandro Ranellucci 2013-12-22 19:07:07 +01:00
parent ab25cc4940
commit 4f58a1c401
3 changed files with 250 additions and 220 deletions

View file

@ -806,14 +806,14 @@ sub write_gcode {
if (@$convex_hull) {
my $expolygon = Slic3r::ExPolygon->new($convex_hull);
my @island = @{$expolygon->offset_ex(scale $distance_from_objects, 1, JT_SQUARE)};
foreach my $copy (@{ $self->objects->[$obj_idx]->shifted_copies }) {
foreach my $copy (@{ $self->objects->[$obj_idx]->_shifted_copies }) {
push @islands, map { my $c = $_->clone; $c->translate(@$copy); $c } @island;
}
}
}
$gcodegen->external_mp(Slic3r::GCode::MotionPlanner->new(
islands => union_ex([ map @$_, @islands ]),
no_internal => 1,
internal => 0,
));
}