mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-25 15:44:12 -06:00
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:
commit
1cc28844a5
2 changed files with 10 additions and 3 deletions
|
@ -17,7 +17,11 @@ sub angle {
|
||||||
sub length {
|
sub length {
|
||||||
my $self = shift;
|
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;
|
1;
|
||||||
|
|
7
t/arcs.t
7
t/arcs.t
|
@ -2,7 +2,7 @@ use Test::More;
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
|
||||||
plan tests => 10;
|
plan tests => 12;
|
||||||
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
use FindBin;
|
use FindBin;
|
||||||
|
@ -50,7 +50,10 @@ use Slic3r;
|
||||||
|
|
||||||
isa_ok $collection1->paths->[0], 'Slic3r::ExtrusionPath::Arc', 'path';
|
isa_ok $collection1->paths->[0], 'Slic3r::ExtrusionPath::Arc', 'path';
|
||||||
isa_ok $collection2->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 $collection1->paths->[0]->orientation, 'cw', 'cw orientation was correctly detected';
|
||||||
is $collection2->paths->[0]->orientation, 'ccw', 'ccw orientation was correctly detected';
|
is $collection2->paths->[0]->orientation, 'ccw', 'ccw orientation was correctly detected';
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue