New ExPolygon::triangulate() method

This commit is contained in:
Alessandro Ranellucci 2014-04-24 17:06:16 +02:00
parent bb0ce3cccd
commit 37c7b958d4
5 changed files with 26 additions and 3 deletions

View file

@ -3,9 +3,9 @@
use strict;
use warnings;
use List::Util qw(first);
use List::Util qw(first sum);
use Slic3r::XS;
use Test::More tests => 31;
use Test::More tests => 33;
use constant PI => 4 * atan2(1, 1);
@ -133,4 +133,10 @@ is $expolygon->area, 100*100-20*20, 'area';
is scalar(grep { $_->area == 100*200 } @$polygons), 1, 'trapezoids have expected area';
}
{
my $triangles = $expolygon->triangulate;
is scalar(@$triangles), 8, 'expected number of triangles';
is sum(map $_->area, @$triangles), $expolygon->area, 'sum of triangles area equals original expolygon area';
}
__END__