Merge pull request #131 from sparr/master

this fixes a bug with arc lengths as discussed on IRC, including two unit tests
This commit is contained in:
Alessandro Ranellucci 2011-12-22 03:16:16 -08:00
commit 1cc28844a5
2 changed files with 10 additions and 3 deletions

View File

@ -17,7 +17,11 @@ sub angle {
sub length {
my $self = shift;
return $self->radius * $self->angle;
if($self->orientation eq 'ccw') {
return $self->radius * $self->angle;
} else {
return $self->radius * (2*PI() - $self->angle);
}
}
1;

View File

@ -2,7 +2,7 @@ use Test::More;
use strict;
use warnings;
plan tests => 10;
plan tests => 12;
BEGIN {
use FindBin;
@ -50,7 +50,10 @@ use Slic3r;
isa_ok $collection1->paths->[0], 'Slic3r::ExtrusionPath::Arc', 'path';
isa_ok $collection2->paths->[0], 'Slic3r::ExtrusionPath::Arc', 'path';
is $collection1->paths->[0]->length, 7.06858347057701, 'cw oriented arc has correct length';
is $collection2->paths->[0]->length, 7.06858347057705, 'ccw oriented arc has correct length';
is $collection1->paths->[0]->orientation, 'cw', 'cw orientation was correctly detected';
is $collection2->paths->[0]->orientation, 'ccw', 'ccw orientation was correctly detected';