Fixed an out-of-bound situation in SLA support generator

This commit is contained in:
Lukas Matena 2018-12-21 13:55:14 +01:00
parent 20a4593ee1
commit f288af0b5e

View File

@ -254,12 +254,11 @@ std::vector<Vec3d> SLAAutoSupports::uniformly_cover(const std::pair<ExPolygon, c
// In case there is just one point to place, we'll place it into the polygon's centroid (unless it lies in a hole).
if (num_of_points == 1) {
Point out(island.first.contour.centroid());
out(2) = island.second;
for (const auto& hole : island.first.holes)
if (hole.contains(out))
goto HOLE_HIT;
return std::vector<Vec3d>{unscale(out(0), out(1), out(2))};
return std::vector<Vec3d>{unscale(out(0), out(1), island.second)};
}
HOLE_HIT:
@ -296,11 +295,9 @@ HOLE_HIT:
}
}
}
if (add_it) {
out(2) = island.second;
if (add_it)
island_new_points.emplace_back(unscaled_out);
}
}
return island_new_points;
}