New polygon_is_convex() function

This commit is contained in:
Alessandro Ranellucci 2012-02-25 16:14:59 +01:00
parent 2d130061ed
commit a24ffee2aa
3 changed files with 24 additions and 4 deletions

View file

@ -2,7 +2,7 @@ use Test::More;
use strict;
use warnings;
plan tests => 17;
plan tests => 20;
BEGIN {
use FindBin;
@ -12,7 +12,7 @@ BEGIN {
use Slic3r;
use Slic3r::Geometry qw(PI polyline_remove_parallel_continuous_edges
polyline_remove_acute_vertices polygon_remove_acute_vertices
polygon_remove_parallel_continuous_edges);
polygon_remove_parallel_continuous_edges polygon_is_convex);
#==========================================================
@ -143,4 +143,15 @@ is Slic3r::Geometry::can_connect_points(@$points, $polygons), 0, 'can_connect_po
is scalar(@$polygon), 6, 'polyline_remove_acute_vertices';
}
#==========================================================
{
my $cw_square = [ [0,0], [0,10], [10,10], [10,0] ];
is polygon_is_convex($cw_square), 0, 'cw square is not convex';
is polygon_is_convex([ reverse @$cw_square ]), 1, 'ccw square is convex';
my $convex1 = [ [0,0], [10,0], [10,10], [0,10], [0,6], [4,6], [4,4], [0,4] ];
is polygon_is_convex($convex1), 0, 'concave polygon';
}
#==========================================================