diff options
author | Alessandro Ranellucci <aar@cpan.org> | 2014-04-24 15:43:24 +0400 |
---|---|---|
committer | Alessandro Ranellucci <aar@cpan.org> | 2014-04-24 15:44:39 +0400 |
commit | 6201aacf88fe1bfbf2bba5212a6d1f3400bba97d (patch) | |
tree | b7fe9b36a0e7e8a6068fda233028940783f8f897 /t/bridges.t | |
parent | d458a7c4d2b501391aefa6ab31735bc06bcd4959 (diff) |
New coverage detection for bridges. Includes implementation of ExPolygon::get_trapezoids()
Diffstat (limited to 't/bridges.t')
-rw-r--r-- | t/bridges.t | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/t/bridges.t b/t/bridges.t index ff20af2fe..daddd7f6b 100644 --- a/t/bridges.t +++ b/t/bridges.t @@ -1,4 +1,4 @@ -use Test::More tests => 6; +use Test::More tests => 12; use strict; use warnings; @@ -7,7 +7,7 @@ BEGIN { use lib "$FindBin::Bin/../lib"; } -use List::Util qw(first); +use List::Util qw(first sum); use Slic3r; use Slic3r::Geometry qw(scale epsilon deg2rad rad2deg PI); use Slic3r::Test; @@ -68,7 +68,10 @@ use Slic3r::Test; } sub check_angle { - my ($lower, $bridge, $expected, $tolerance) = @_; + my ($lower, $bridge, $expected, $tolerance, $expected_coverage) = @_; + + $expected_coverage //= -1; + $expected_coverage = $bridge->area if $expected_coverage == -1; my $bd = Slic3r::Layer::BridgeDetector->new( expolygon => $bridge, @@ -78,6 +81,8 @@ sub check_angle { $tolerance //= rad2deg($bd->resolution) + epsilon; my $result = $bd->detect_angle; + my $coverage = $bd->coverage; + is sum(map $_->area, @$coverage), $expected_coverage, 'correct coverage area'; # our epsilon is equal to the steps used by the bridge detection algorithm ###use XXX; YYY [ rad2deg($result), $expected ]; |