Ported Slic3r::ExPolygon::Collection to XS

This commit is contained in:
Alessandro Ranellucci 2013-07-14 00:38:01 +02:00
parent 7f4dc4e248
commit b1ad466189
10 changed files with 173 additions and 68 deletions

View file

@ -8,6 +8,8 @@
%name{Slic3r::ExPolygon::XS} class ExPolygon {
%name{_clone} ExPolygon(ExPolygon& self);
~ExPolygon();
SV* arrayref()
%code{% RETVAL = expolygon2perl(*THIS); %};
void scale(double factor);
void translate(double x, double y);
void _rotate(double angle, Point* center);
@ -26,20 +28,6 @@ ExPolygon::new(...)
OUTPUT:
RETVAL
SV*
ExPolygon::arrayref()
CODE:
AV* av = newAV();
av_fill(av, THIS->holes.size()); // -1 +1
av_store(av, 0, polygon2perl(THIS->contour));
int i = 0;
for (Polygons::iterator it = THIS->holes.begin(); it != THIS->holes.end(); ++it) {
av_store(av, ++i, polygon2perl(*it));
}
RETVAL = sv_bless(newRV_noinc((SV*)av), gv_stashpv("Slic3r::ExPolygon", GV_ADD));
OUTPUT:
RETVAL
%}
};