Fix error in contains_point() port

This commit is contained in:
Alessandro Ranellucci 2013-11-21 18:42:16 +01:00
parent 3aef663f7f
commit 5f2b2c90b6
2 changed files with 4 additions and 4 deletions

View file

@ -59,10 +59,10 @@ use Slic3r::Test;
if ($self->F == $config->external_perimeter_speed*60) {
my $move_dest = Slic3r::Point->new_scale(@$info{qw(new_X new_Y)});
$external_loops{$self->Z}++;
my $loop_contains_point = Slic3r::Polygon->new_scale(@$cur_loop)->contains_point($move_dest);
$has_outwards_move = 1
if !Slic3r::Polygon->new_scale(@$cur_loop)->contains_point($move_dest)
? ($external_loops{$self->Z} == 2) # contour should include destination
: ($external_loops{$self->Z} == 1); # hole should not
if (!$loop_contains_point && $external_loops{$self->Z} == 2) # contour should include destination
|| ($loop_contains_point && $external_loops{$self->Z} == 1); # hole should not
}
$cur_loop = undef;
}

View file

@ -114,7 +114,7 @@ bool
Polygon::contains_point(const Point* point) const
{
// http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html
bool result;
bool result = false;
Points::const_iterator i = this->points.begin();
Points::const_iterator j = this->points.end() - 1;
for (; i != this->points.end(); j = i++) {