Ported Surface->offset() to XS

This commit is contained in:
Alessandro Ranellucci 2013-11-23 18:29:25 +01:00
parent a331f4d27a
commit 46e3b3180e
6 changed files with 35 additions and 5 deletions

View file

@ -164,6 +164,24 @@ offset(const Slic3r::Polylines &polylines, Slic3r::Polygons &retval, const float
delete output;
}
void
offset(const Slic3r::Surface &surface, Slic3r::Surfaces &retval, const float delta,
double scale, ClipperLib::JoinType joinType, double miterLimit)
{
// perform offset
Slic3r::ExPolygons expp;
offset_ex(surface.expolygon, expp, delta, scale, joinType, miterLimit);
// clone the input surface for each expolygon we got
retval.clear();
retval.reserve(expp.size());
for (ExPolygons::iterator it = expp.begin(); it != expp.end(); ++it) {
Surface s = surface; // clone
s.expolygon = *it;
retval.push_back(s);
}
}
void
offset_ex(const Slic3r::Polygons &polygons, Slic3r::ExPolygons &retval, const float delta,
double scale, ClipperLib::JoinType joinType, double miterLimit)