123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- %module{Slic3r::XS};
- %{
- #include <xsinit.h>
- #include "libslic3r/ExPolygonCollection.hpp"
- %}
- %name{Slic3r::ExPolygon::Collection} class ExPolygonCollection {
- ~ExPolygonCollection();
- Clone<ExPolygonCollection> clone()
- %code{% RETVAL = THIS; %};
- void clear()
- %code{% THIS->expolygons.clear(); %};
- void scale(double factor);
- void translate(double x, double y);
- void rotate(double angle, Point* center)
- %code{% THIS->rotate(angle, *center); %};
- int count()
- %code{% RETVAL = THIS->expolygons.size(); %};
- bool contains_point(Point* point)
- %code{% RETVAL = THIS->contains(*point); %};
- bool contains_line(Line* line)
- %code{% RETVAL = THIS->contains(*line); %};
- bool contains_polyline(Polyline* polyline)
- %code{% RETVAL = THIS->contains(*polyline); %};
- void simplify(double tolerance);
- Polygons polygons()
- %code{% RETVAL = (Polygons)*THIS; %};
- Clone<Polygon> convex_hull();
- %{
- ExPolygonCollection*
- ExPolygonCollection::new(...)
- CODE:
- RETVAL = new ExPolygonCollection ();
- // ST(0) is class name, others are expolygons
- RETVAL->expolygons.resize(items-1);
- for (unsigned int i = 1; i < items; i++) {
- // Note: a COPY of the input is stored
- from_SV_check(ST(i), &RETVAL->expolygons[i-1]);
- }
- OUTPUT:
- RETVAL
- SV*
- ExPolygonCollection::arrayref()
- CODE:
- AV* av = newAV();
- av_fill(av, THIS->expolygons.size()-1);
- int i = 0;
- for (ExPolygons::iterator it = THIS->expolygons.begin(); it != THIS->expolygons.end(); ++it) {
- av_store(av, i++, perl_to_SV_ref(*it));
- }
- RETVAL = newRV_noinc((SV*)av);
- OUTPUT:
- RETVAL
- SV*
- ExPolygonCollection::pp()
- CODE:
- AV* av = newAV();
- av_fill(av, THIS->expolygons.size()-1);
- int i = 0;
- for (ExPolygons::iterator it = THIS->expolygons.begin(); it != THIS->expolygons.end(); ++it) {
- av_store(av, i++, to_SV_pureperl(&*it));
- }
- RETVAL = newRV_noinc((SV*)av);
- OUTPUT:
- RETVAL
- void
- ExPolygonCollection::append(...)
- CODE:
- for (unsigned int i = 1; i < items; i++) {
- ExPolygon expolygon;
- from_SV_check(ST(i), &expolygon);
- THIS->expolygons.push_back(expolygon);
- }
- %}
- };
|