diff options
author | Alessandro Ranellucci <aar@cpan.org> | 2011-10-04 22:06:17 +0400 |
---|---|---|
committer | Alessandro Ranellucci <aar@cpan.org> | 2011-10-04 22:06:17 +0400 |
commit | f1a36502e11292b44d0a433322032ede519a7509 (patch) | |
tree | cabc8ef905f4f1b10e0e185f101068b3b1f2f855 /t/polyclip.t | |
parent | 706586f1502fcb378f7badea1e120e15a2c94f61 (diff) |
Additions to the polygon library
Diffstat (limited to 't/polyclip.t')
-rw-r--r-- | t/polyclip.t | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/t/polyclip.t b/t/polyclip.t new file mode 100644 index 000000000..821e7011f --- /dev/null +++ b/t/polyclip.t @@ -0,0 +1,31 @@ +use Test::More; + +plan tests => 4; + +BEGIN { + use FindBin; + use lib "$FindBin::Bin/../lib"; +} + +use Slic3r; + +my $square = [ + [10, 10], + [20, 10], + [20, 20], + [10, 20], +]; + +my $line = [ [5, 15], [30, 15] ]; + +my $intersection = Slic3r::Geometry::clip_segment_polygon($line, $square); +is_deeply $intersection, [ [10, 15], [20, 15] ], 'line is clipped to square'; + +$intersection = Slic3r::Geometry::clip_segment_polygon([ [0, 15], [8, 15] ], $square); +is $intersection, undef, 'external lines are ignored 1'; + +$intersection = Slic3r::Geometry::clip_segment_polygon([ [30, 15], [40, 15] ], $square); +is $intersection, undef, 'external lines are ignored 2'; + +$intersection = Slic3r::Geometry::clip_segment_polygon([ [12, 12], [18, 16] ], $square); +is_deeply $intersection, [ [12, 12], [18, 16] ], 'internal lines are preserved'; |