Bugfix: downwards interface detection might cause a crash

This commit is contained in:
Alessandro Ranellucci 2014-12-29 14:29:21 +01:00
parent 200130bc10
commit d38503bf44

View file

@ -442,23 +442,25 @@ sub generate_bottom_interface_layers {
my $z = $support_z->[$layer_id]; my $z = $support_z->[$layer_id];
next unless $z > $top_z; next unless $z > $top_z;
# get the support material area that should be considered interface if ($base->{$layer_id}) {
my $interface_area = intersection( # get the support material area that should be considered interface
$base->{$layer_id}, my $interface_area = intersection(
$this, $base->{$layer_id},
); $this,
);
# discard too small areas # discard too small areas
$interface_area = [ grep abs($_->area) >= $area_threshold, @$interface_area ]; $interface_area = [ grep abs($_->area) >= $area_threshold, @$interface_area ];
# subtract new interface area from base # subtract new interface area from base
$base->{$layer_id} = diff( $base->{$layer_id} = diff(
$base->{$layer_id}, $base->{$layer_id},
$interface_area, $interface_area,
); );
# add new interface area to interface # add new interface area to interface
push @{$interface->{$layer_id}}, @$interface_area; push @{$interface->{$layer_id}}, @$interface_area;
}
$interface_layers++; $interface_layers++;
last if $interface_layers == $self->object_config->support_material_interface_layers; last if $interface_layers == $self->object_config->support_material_interface_layers;