Optimize cycling in get_layer_range()
This commit is contained in:
parent
73a661e6c1
commit
4f91bed904
1 changed files with 11 additions and 4 deletions
|
@ -34,11 +34,18 @@ sub get_layer_range {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my ($min_z, $max_z) = @_;
|
my ($min_z, $max_z) = @_;
|
||||||
|
|
||||||
|
# $min_layer is the uppermost layer having slice_z <= $min_z
|
||||||
|
# $max_layer is the lowermost layer having slice_z >= $max_z
|
||||||
my ($min_layer, $max_layer) = (0, undef);
|
my ($min_layer, $max_layer) = (0, undef);
|
||||||
for my $layer (@{$self->layers}) {
|
for my $i (0 .. $#{$self->layers}) {
|
||||||
$min_layer = $layer->id if $layer->slice_z <= $min_z;
|
if ($self->layers->[$i]->slice_z >= $min_z) {
|
||||||
if ($layer->slice_z >= $max_z) {
|
$min_layer = $i - 1;
|
||||||
$max_layer = $layer->id;
|
for my $k ($i .. $#{$self->layers}) {
|
||||||
|
if ($self->layers->[$k]->slice_z >= $max_z) {
|
||||||
|
$max_layer = $k - 1;
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
}
|
||||||
last;
|
last;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue