2013-07-16 18:09:53 +00:00
|
|
|
%module{Slic3r::XS};
|
|
|
|
|
|
|
|
%{
|
|
|
|
#include <myinit.h>
|
|
|
|
#include "clipper.hpp"
|
|
|
|
#include "ClipperUtils.hpp"
|
|
|
|
%}
|
|
|
|
|
|
|
|
%package{Slic3r::Geometry::Clipper};
|
|
|
|
|
|
|
|
%{
|
|
|
|
|
2013-08-26 23:26:44 +00:00
|
|
|
IV
|
|
|
|
_constant()
|
|
|
|
ALIAS:
|
|
|
|
JT_MITER = jtMiter
|
|
|
|
JT_ROUND = jtRound
|
|
|
|
JT_SQUARE = jtSquare
|
2013-09-06 15:43:40 +00:00
|
|
|
CLIPPER_OFFSET_SCALE = CLIPPER_OFFSET_SCALE
|
2013-08-26 23:26:44 +00:00
|
|
|
CODE:
|
|
|
|
RETVAL = ix;
|
|
|
|
OUTPUT: RETVAL
|
|
|
|
|
2013-07-16 22:48:29 +00:00
|
|
|
Polygons
|
2013-08-26 15:58:37 +00:00
|
|
|
offset(polygons, delta, scale = CLIPPER_OFFSET_SCALE, joinType = ClipperLib::jtMiter, miterLimit = 3)
|
2013-07-16 22:48:29 +00:00
|
|
|
Polygons polygons
|
|
|
|
const float delta
|
|
|
|
double scale
|
|
|
|
ClipperLib::JoinType joinType
|
|
|
|
double miterLimit
|
|
|
|
CODE:
|
|
|
|
offset(polygons, RETVAL, delta, scale, joinType, miterLimit);
|
|
|
|
OUTPUT:
|
|
|
|
RETVAL
|
|
|
|
|
2013-07-16 18:09:53 +00:00
|
|
|
ExPolygons
|
2013-08-26 15:58:37 +00:00
|
|
|
offset_ex(polygons, delta, scale = CLIPPER_OFFSET_SCALE, joinType = ClipperLib::jtMiter, miterLimit = 3)
|
2013-07-16 18:09:53 +00:00
|
|
|
Polygons polygons
|
|
|
|
const float delta
|
|
|
|
double scale
|
|
|
|
ClipperLib::JoinType joinType
|
|
|
|
double miterLimit
|
|
|
|
CODE:
|
2013-07-16 18:36:27 +00:00
|
|
|
offset_ex(polygons, RETVAL, delta, scale, joinType, miterLimit);
|
2013-07-16 18:09:53 +00:00
|
|
|
OUTPUT:
|
|
|
|
RETVAL
|
|
|
|
|
2013-07-16 22:48:29 +00:00
|
|
|
Polygons
|
2013-08-26 15:58:37 +00:00
|
|
|
offset2(polygons, delta1, delta2, scale = CLIPPER_OFFSET_SCALE, joinType = ClipperLib::jtMiter, miterLimit = 3)
|
2013-07-16 22:48:29 +00:00
|
|
|
Polygons polygons
|
|
|
|
const float delta1
|
|
|
|
const float delta2
|
|
|
|
double scale
|
|
|
|
ClipperLib::JoinType joinType
|
|
|
|
double miterLimit
|
|
|
|
CODE:
|
|
|
|
offset2(polygons, RETVAL, delta1, delta2, scale, joinType, miterLimit);
|
|
|
|
OUTPUT:
|
|
|
|
RETVAL
|
|
|
|
|
2013-07-16 18:09:53 +00:00
|
|
|
ExPolygons
|
2013-08-26 15:58:37 +00:00
|
|
|
offset2_ex(polygons, delta1, delta2, scale = CLIPPER_OFFSET_SCALE, joinType = ClipperLib::jtMiter, miterLimit = 3)
|
2013-07-16 18:09:53 +00:00
|
|
|
Polygons polygons
|
|
|
|
const float delta1
|
|
|
|
const float delta2
|
|
|
|
double scale
|
|
|
|
ClipperLib::JoinType joinType
|
|
|
|
double miterLimit
|
|
|
|
CODE:
|
2013-07-16 18:36:27 +00:00
|
|
|
offset2_ex(polygons, RETVAL, delta1, delta2, scale, joinType, miterLimit);
|
2013-07-16 18:09:53 +00:00
|
|
|
OUTPUT:
|
|
|
|
RETVAL
|
|
|
|
|
2013-07-16 23:21:30 +00:00
|
|
|
Polygons
|
|
|
|
diff(subject, clip, safety_offset = false)
|
|
|
|
Polygons subject
|
|
|
|
Polygons clip
|
|
|
|
bool safety_offset
|
|
|
|
CODE:
|
|
|
|
diff(subject, clip, RETVAL, safety_offset);
|
|
|
|
OUTPUT:
|
|
|
|
RETVAL
|
|
|
|
|
2013-07-16 18:29:15 +00:00
|
|
|
ExPolygons
|
|
|
|
diff_ex(subject, clip, safety_offset = false)
|
|
|
|
Polygons subject
|
|
|
|
Polygons clip
|
|
|
|
bool safety_offset
|
|
|
|
CODE:
|
2013-07-16 23:21:30 +00:00
|
|
|
diff(subject, clip, RETVAL, safety_offset);
|
|
|
|
OUTPUT:
|
|
|
|
RETVAL
|
|
|
|
|
2013-11-21 13:15:38 +00:00
|
|
|
Polylines
|
|
|
|
diff_pl(subject, clip)
|
|
|
|
Polylines subject
|
|
|
|
Polygons clip
|
|
|
|
CODE:
|
|
|
|
diff(subject, clip, RETVAL);
|
|
|
|
OUTPUT:
|
|
|
|
RETVAL
|
|
|
|
|
2013-07-16 23:21:30 +00:00
|
|
|
Polygons
|
|
|
|
intersection(subject, clip, safety_offset = false)
|
|
|
|
Polygons subject
|
|
|
|
Polygons clip
|
|
|
|
bool safety_offset
|
|
|
|
CODE:
|
|
|
|
intersection(subject, clip, RETVAL, safety_offset);
|
2013-07-16 18:29:15 +00:00
|
|
|
OUTPUT:
|
|
|
|
RETVAL
|
|
|
|
|
2013-07-16 22:29:09 +00:00
|
|
|
ExPolygons
|
|
|
|
intersection_ex(subject, clip, safety_offset = false)
|
|
|
|
Polygons subject
|
|
|
|
Polygons clip
|
|
|
|
bool safety_offset
|
|
|
|
CODE:
|
2013-07-16 23:21:30 +00:00
|
|
|
intersection(subject, clip, RETVAL, safety_offset);
|
2013-07-16 22:29:09 +00:00
|
|
|
OUTPUT:
|
|
|
|
RETVAL
|
|
|
|
|
2013-11-21 13:15:38 +00:00
|
|
|
Polylines
|
|
|
|
intersection_pl(subject, clip)
|
|
|
|
Polylines subject
|
|
|
|
Polygons clip
|
|
|
|
CODE:
|
|
|
|
intersection(subject, clip, RETVAL);
|
|
|
|
OUTPUT:
|
|
|
|
RETVAL
|
|
|
|
|
2013-07-16 22:29:09 +00:00
|
|
|
ExPolygons
|
|
|
|
xor_ex(subject, clip, safety_offset = false)
|
|
|
|
Polygons subject
|
|
|
|
Polygons clip
|
|
|
|
bool safety_offset
|
|
|
|
CODE:
|
|
|
|
xor_ex(subject, clip, RETVAL, safety_offset);
|
|
|
|
OUTPUT:
|
|
|
|
RETVAL
|
|
|
|
|
2013-08-17 10:24:04 +00:00
|
|
|
Polygons
|
|
|
|
union(subject, safety_offset = false)
|
|
|
|
Polygons subject
|
|
|
|
bool safety_offset
|
|
|
|
CODE:
|
|
|
|
union_(subject, RETVAL, safety_offset);
|
|
|
|
OUTPUT:
|
|
|
|
RETVAL
|
|
|
|
|
2013-07-16 22:29:09 +00:00
|
|
|
ExPolygons
|
|
|
|
union_ex(subject, safety_offset = false)
|
|
|
|
Polygons subject
|
|
|
|
bool safety_offset
|
|
|
|
CODE:
|
2013-08-17 10:24:04 +00:00
|
|
|
union_(subject, RETVAL, safety_offset);
|
2013-07-16 22:29:09 +00:00
|
|
|
OUTPUT:
|
|
|
|
RETVAL
|
|
|
|
|
2013-08-26 16:37:19 +00:00
|
|
|
SV*
|
|
|
|
union_pt(subject, safety_offset = false)
|
|
|
|
Polygons subject
|
|
|
|
bool safety_offset
|
|
|
|
CODE:
|
|
|
|
// perform operation
|
|
|
|
ClipperLib::PolyTree polytree;
|
|
|
|
union_pt(subject, polytree, safety_offset);
|
|
|
|
|
|
|
|
RETVAL = polynode_children_2_perl(polytree);
|
|
|
|
OUTPUT:
|
|
|
|
RETVAL
|
|
|
|
|
2013-08-08 00:10:34 +00:00
|
|
|
Polygons
|
|
|
|
simplify_polygons(subject)
|
|
|
|
Polygons subject
|
|
|
|
CODE:
|
|
|
|
simplify_polygons(subject, RETVAL);
|
|
|
|
OUTPUT:
|
|
|
|
RETVAL
|
|
|
|
|
2013-07-16 18:09:53 +00:00
|
|
|
%}
|