Refactoring: new method in Flow for calculating spacing between extrusions having different width

This commit is contained in:
Alessandro Ranellucci 2014-06-12 09:15:40 +02:00
parent 8ee11b3239
commit 6194cbf530
4 changed files with 26 additions and 10 deletions

View file

@ -41,18 +41,18 @@ sub flow {
sub make_perimeters {
my $self = shift;
# external perimeters
my $ext_perimeter_flow = $self->flow(FLOW_ROLE_EXTERNAL_PERIMETER);
my $ext_mm3_per_mm = $ext_perimeter_flow->mm3_per_mm;
my $ext_pwidth = $ext_perimeter_flow->scaled_width;
my $ext_pspacing = $ext_perimeter_flow->scaled_spacing;
# other perimeters
my $perimeter_flow = $self->flow(FLOW_ROLE_PERIMETER);
my $mm3_per_mm = $perimeter_flow->mm3_per_mm;
my $pwidth = $perimeter_flow->scaled_width;
my $pspacing = $perimeter_flow->scaled_spacing;
# external perimeters
my $ext_perimeter_flow = $self->flow(FLOW_ROLE_EXTERNAL_PERIMETER);
my $ext_mm3_per_mm = $ext_perimeter_flow->mm3_per_mm;
my $ext_pwidth = $ext_perimeter_flow->scaled_width;
my $ext_pspacing = scale($ext_perimeter_flow->spacing_to($perimeter_flow));
# overhang perimeters
my $overhang_flow = $self->region->flow(FLOW_ROLE_PERIMETER, -1, 1, 0, undef, $self->layer->object);
my $mm3_per_mm_overhang = $overhang_flow->mm3_per_mm;
@ -109,9 +109,7 @@ sub make_perimeters {
push @thin_walls, @$diff;
}
} else {
my $distance = ($i == 2)
? (0.5*$ext_pspacing + 0.5*$pspacing)
: (1.0*$pspacing);
my $distance = ($i == 2) ? $ext_pspacing : $pspacing;
@offsets = @{offset2(
\@last,