Added a new Slic3r::Geometry::simplify_polygons() function

This commit is contained in:
Alessandro Ranellucci 2015-01-30 18:33:20 +01:00
parent d4ba0f17bb
commit e2b1b52679
5 changed files with 36 additions and 4 deletions

View file

@ -129,14 +129,20 @@ ExPolygon::simplify_p(double tolerance) const
pp.reserve(this->holes.size() + 1);
// contour
Polygon p = this->contour;
p.points = MultiPoint::_douglas_peucker(p.points, tolerance);
pp.push_back(p);
{
Polygon p = this->contour;
p.points.push_back(p.points.front());
p.points = MultiPoint::_douglas_peucker(p.points, tolerance);
p.points.pop_back();
pp.push_back(p);
}
// holes
for (Polygons::const_iterator it = this->holes.begin(); it != this->holes.end(); ++it) {
p = *it;
Polygon p = *it;
p.points.push_back(p.points.front());
p.points = MultiPoint::_douglas_peucker(p.points, tolerance);
p.points.pop_back();
pp.push_back(p);
}
simplify_polygons(pp, &pp);