e90279c513
Removed GCode.pm Removed the Perl bindigns for AvoidCrossingPerimeters, OozePrevention, SpiralVase, Wipe Changed the std::set of extruder IDs to vector of IDs. Removed some MSVC compiler warnings, removed obnoxious compiler warnings when compiling the Perl bindings.
142 lines
3.7 KiB
Text
142 lines
3.7 KiB
Text
%module{Slic3r::XS};
|
|
|
|
%{
|
|
#include <xsinit.h>
|
|
#include "libslic3r/ExtrusionEntity.hpp"
|
|
#include "libslic3r/ExtrusionEntityCollection.hpp"
|
|
%}
|
|
|
|
%name{Slic3r::ExtrusionPath} class ExtrusionPath {
|
|
~ExtrusionPath();
|
|
SV* arrayref()
|
|
%code{% RETVAL = to_AV(&THIS->polyline); %};
|
|
SV* pp()
|
|
%code{% RETVAL = to_SV_pureperl(&THIS->polyline); %};
|
|
void pop_back()
|
|
%code{% THIS->polyline.points.pop_back(); %};
|
|
void reverse();
|
|
Lines lines()
|
|
%code{% RETVAL = THIS->polyline.lines(); %};
|
|
Clone<Point> first_point();
|
|
Clone<Point> last_point();
|
|
void clip_end(double distance);
|
|
void simplify(double tolerance);
|
|
double length();
|
|
ExtrusionRole role() const;
|
|
bool is_bridge()
|
|
%code{% RETVAL = is_bridge(THIS->role()); %};
|
|
Polygons polygons_covered_by_width();
|
|
Polygons polygons_covered_by_spacing();
|
|
%{
|
|
|
|
ExtrusionPath*
|
|
_new(CLASS, polyline_sv, role, mm3_per_mm, width, height)
|
|
char* CLASS;
|
|
SV* polyline_sv;
|
|
ExtrusionRole role;
|
|
double mm3_per_mm;
|
|
float width;
|
|
float height;
|
|
CODE:
|
|
RETVAL = new ExtrusionPath (role);
|
|
from_SV_check(polyline_sv, &RETVAL->polyline);
|
|
RETVAL->mm3_per_mm = mm3_per_mm;
|
|
RETVAL->width = width;
|
|
RETVAL->height = height;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
Ref<Polyline>
|
|
ExtrusionPath::polyline(...)
|
|
CODE:
|
|
if (items > 1) {
|
|
from_SV_check(ST(1), &THIS->polyline);
|
|
}
|
|
RETVAL = &(THIS->polyline);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
double
|
|
ExtrusionPath::mm3_per_mm(...)
|
|
CODE:
|
|
if (items > 1) {
|
|
THIS->mm3_per_mm = (double)SvNV(ST(1));
|
|
}
|
|
RETVAL = THIS->mm3_per_mm;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
float
|
|
ExtrusionPath::width(...)
|
|
CODE:
|
|
if (items > 1) {
|
|
THIS->width = (float)SvNV(ST(1));
|
|
}
|
|
RETVAL = THIS->width;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
float
|
|
ExtrusionPath::height(...)
|
|
CODE:
|
|
if (items > 1) {
|
|
THIS->height = (float)SvNV(ST(1));
|
|
}
|
|
RETVAL = THIS->height;
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
void
|
|
ExtrusionPath::append(...)
|
|
CODE:
|
|
for (unsigned int i = 1; i < items; i++) {
|
|
Point p;
|
|
from_SV_check(ST(i), &p);
|
|
THIS->polyline.points.push_back(p);
|
|
}
|
|
|
|
ExtrusionEntityCollection*
|
|
ExtrusionPath::intersect_expolygons(ExPolygonCollection* collection)
|
|
CODE:
|
|
RETVAL = new ExtrusionEntityCollection ();
|
|
THIS->intersect_expolygons(*collection, RETVAL);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
ExtrusionEntityCollection*
|
|
ExtrusionPath::subtract_expolygons(ExPolygonCollection* collection)
|
|
CODE:
|
|
RETVAL = new ExtrusionEntityCollection ();
|
|
THIS->subtract_expolygons(*collection, RETVAL);
|
|
OUTPUT:
|
|
RETVAL
|
|
|
|
%}
|
|
};
|
|
|
|
%package{Slic3r::ExtrusionPath};
|
|
%{
|
|
|
|
IV
|
|
_constant()
|
|
ALIAS:
|
|
EXTR_ROLE_NONE = erNone
|
|
EXTR_ROLE_PERIMETER = erPerimeter
|
|
EXTR_ROLE_EXTERNAL_PERIMETER = erExternalPerimeter
|
|
EXTR_ROLE_OVERHANG_PERIMETER = erOverhangPerimeter
|
|
EXTR_ROLE_FILL = erInternalInfill
|
|
EXTR_ROLE_SOLIDFILL = erSolidInfill
|
|
EXTR_ROLE_TOPSOLIDFILL = erTopSolidInfill
|
|
EXTR_ROLE_BRIDGE = erBridgeInfill
|
|
EXTR_ROLE_GAPFILL = erGapFill
|
|
EXTR_ROLE_SKIRT = erSkirt
|
|
EXTR_ROLE_SUPPORTMATERIAL = erSupportMaterial
|
|
EXTR_ROLE_SUPPORTMATERIAL_INTERFACE = erSupportMaterialInterface
|
|
EXTR_ROLE_MIXED = erMixed
|
|
PROTOTYPE:
|
|
CODE:
|
|
RETVAL = ix;
|
|
OUTPUT: RETVAL
|
|
|
|
%}
|
|
|