Introduce a ->count method for all collections to save time

This commit is contained in:
Alessandro Ranellucci 2013-09-17 23:38:23 +02:00
parent d69c956e75
commit e0da81e8bf
7 changed files with 12 additions and 4 deletions

View file

@ -191,7 +191,7 @@ sub make_fill {
}
# add thin fill regions
if (@{ $layerm->thin_fills }) {
if ($layerm->thin_fills->count > 0) {
push @fills, Slic3r::ExtrusionPath::Collection->new(@{$layerm->thin_fills});
push @fills_ordering_points, $fills[-1]->first_point;
}

View file

@ -109,12 +109,12 @@ sub process_layer {
# extrude support material before other things because it might use a lower Z
# and also because we avoid travelling on other things when printing it
if ($self->print->has_support_material && $layer->isa('Slic3r::Layer::Support')) {
if ($layer->support_interface_fills) {
if ($layer->support_interface_fills->count > 0) {
$gcode .= $self->gcodegen->set_extruder($self->extruders->[$Slic3r::Config->support_material_interface_extruder-1]);
$gcode .= $self->gcodegen->extrude_path($_, 'support material interface')
for @{$layer->support_interface_fills->chained_path_from($self->gcodegen->last_pos, 0)};
}
if ($layer->support_fills) {
if ($layer->support_fills->count > 0) {
$gcode .= $self->gcodegen->set_extruder($self->extruders->[$Slic3r::Config->support_material_extruder-1]);
$gcode .= $self->gcodegen->extrude_path($_, 'support material')
for @{$layer->support_fills->chained_path_from($self->gcodegen->last_pos, 0)};

View file

@ -177,7 +177,7 @@ sub validate {
for my $copy (@{$self->objects->[$obj_idx]->copies}) {
my $copy_clearance = $clearance->clone;
$copy_clearance->translate(@$copy);
if (@{ intersection_ex(\@a, [$copy_clearance]) }) {
if (@{ intersection(\@a, [$copy_clearance]) }) {
die "Some objects are too close; your extruder will collide with them.\n";
}
@a = map @$_, @{union_ex([ @a, $copy_clearance ])};