Only put ExtrusionPath objects in ExtrusionPath::Collection (no ExtrusionLoop objects)
This commit is contained in:
parent
d4ccd39ad3
commit
554d10c854
@ -60,14 +60,6 @@ sub split_at_first_point {
|
||||
return $self->split_at_index(0);
|
||||
}
|
||||
|
||||
# although a loop doesn't have endpoints, this method is provided to allow
|
||||
# ExtrusionLoop objects to be added to an ExtrusionPath::Collection and
|
||||
# sorted by the ->shortest_path() method
|
||||
sub endpoints {
|
||||
my $self = shift;
|
||||
return ($self->polygon->[0], $self->polygon->[-1]);
|
||||
}
|
||||
|
||||
package Slic3r::ExtrusionLoop::Packed;
|
||||
sub unpack {
|
||||
my $self = shift;
|
||||
|
@ -359,20 +359,15 @@ sub make_perimeters {
|
||||
}
|
||||
|
||||
# add thin walls as perimeters
|
||||
{
|
||||
my @thin_paths = ();
|
||||
my %properties = (
|
||||
push @{ $self->perimeters }, Slic3r::ExtrusionPath::Collection->new(paths => [
|
||||
map {
|
||||
Slic3r::ExtrusionPath->pack(
|
||||
polyline => ($_->isa('Slic3r::Polygon') ? $_->split_at_first_point : $_),
|
||||
role => EXTR_ROLE_EXTERNAL_PERIMETER,
|
||||
flow_spacing => $self->perimeter_flow->spacing,
|
||||
);
|
||||
for (@{ $self->thin_walls }) {
|
||||
push @thin_paths, $_->isa('Slic3r::Polygon')
|
||||
? Slic3r::ExtrusionLoop->pack(polygon => $_, %properties)
|
||||
: Slic3r::ExtrusionPath->pack(polyline => $_, %properties);
|
||||
}
|
||||
my $collection = Slic3r::ExtrusionPath::Collection->new(paths => \@thin_paths);
|
||||
push @{ $self->perimeters }, $collection->shortest_path;
|
||||
}
|
||||
} @{ $self->thin_walls }
|
||||
])->shortest_path;
|
||||
}
|
||||
|
||||
sub _add_perimeter {
|
||||
|
@ -146,4 +146,9 @@ sub split_at {
|
||||
return $self->split_at_index($i);
|
||||
}
|
||||
|
||||
sub split_at_first_point {
|
||||
my $self = shift;
|
||||
return $self->split_at_index(0);
|
||||
}
|
||||
|
||||
1;
|
Loading…
Reference in New Issue
Block a user