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