From c6ef81fb91683d8169b5470d571b8b6f47b24fe6 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Sun, 16 Jun 2013 18:08:17 +0200 Subject: [PATCH] Modify overhang detection algorithm --- lib/Slic3r/Layer/Region.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/Slic3r/Layer/Region.pm b/lib/Slic3r/Layer/Region.pm index a407525623..8117f2380b 100644 --- a/lib/Slic3r/Layer/Region.pm +++ b/lib/Slic3r/Layer/Region.pm @@ -267,8 +267,9 @@ sub make_perimeters { } if ($self->id > 0) { + # A perimeter is considered overhang if its centerline exceeds the lower layer slices my $is_overhang = $is_contour - ? @{diff([$polygon], [ @lower_slices, offset([$polygon], -$self->perimeter_flow->scaled_width) ])} + ? @{diff([$polygon], \@lower_slices)} : !@{intersection([$polygon], \@lower_slices)}; $role = EXTR_ROLE_OVERHANG_PERIMETER if $is_overhang;