~ubuntu-branches/ubuntu/utopic/slic3r/utopic

« back to all changes in this revision

Viewing changes to xs/xsp/Clipper.xsp

  • Committer: Package Import Robot
  • Author(s): Chow Loong Jin
  • Date: 2014-06-17 01:27:26 UTC
  • Revision ID: package-import@ubuntu.com-20140617012726-2wrs4zdo251nr4vg
Tags: upstream-1.1.4+dfsg
ImportĀ upstreamĀ versionĀ 1.1.4+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
%module{Slic3r::XS};
 
2
 
 
3
%{
 
4
#include <myinit.h>
 
5
#include "clipper.hpp"
 
6
#include "ClipperUtils.hpp"
 
7
%}
 
8
 
 
9
%package{Slic3r::Geometry::Clipper};
 
10
 
 
11
%{
 
12
 
 
13
IV
 
14
_constant()
 
15
  ALIAS:
 
16
    JT_MITER        = jtMiter
 
17
    JT_ROUND        = jtRound
 
18
    JT_SQUARE       = jtSquare
 
19
    CLIPPER_OFFSET_SCALE = CLIPPER_OFFSET_SCALE
 
20
  CODE:
 
21
    RETVAL = ix;
 
22
  OUTPUT: RETVAL
 
23
 
 
24
Polygons
 
25
offset(polygons, delta, scale = CLIPPER_OFFSET_SCALE, joinType = ClipperLib::jtMiter, miterLimit = 3)
 
26
    Polygons                polygons
 
27
    const float             delta
 
28
    double                  scale
 
29
    ClipperLib::JoinType    joinType
 
30
    double                  miterLimit
 
31
    CODE:
 
32
        offset(polygons, RETVAL, delta, scale, joinType, miterLimit);
 
33
    OUTPUT:
 
34
        RETVAL
 
35
 
 
36
ExPolygons
 
37
offset_ex(polygons, delta, scale = CLIPPER_OFFSET_SCALE, joinType = ClipperLib::jtMiter, miterLimit = 3)
 
38
    Polygons                polygons
 
39
    const float             delta
 
40
    double                  scale
 
41
    ClipperLib::JoinType    joinType
 
42
    double                  miterLimit
 
43
    CODE:
 
44
        offset_ex(polygons, RETVAL, delta, scale, joinType, miterLimit);
 
45
    OUTPUT:
 
46
        RETVAL
 
47
 
 
48
Polygons
 
49
offset2(polygons, delta1, delta2, scale = CLIPPER_OFFSET_SCALE, joinType = ClipperLib::jtMiter, miterLimit = 3)
 
50
    Polygons                polygons
 
51
    const float             delta1
 
52
    const float             delta2
 
53
    double                  scale
 
54
    ClipperLib::JoinType    joinType
 
55
    double                  miterLimit
 
56
    CODE:
 
57
        offset2(polygons, RETVAL, delta1, delta2, scale, joinType, miterLimit);
 
58
    OUTPUT:
 
59
        RETVAL
 
60
 
 
61
ExPolygons
 
62
offset2_ex(polygons, delta1, delta2, scale = CLIPPER_OFFSET_SCALE, joinType = ClipperLib::jtMiter, miterLimit = 3)
 
63
    Polygons                polygons
 
64
    const float             delta1
 
65
    const float             delta2
 
66
    double                  scale
 
67
    ClipperLib::JoinType    joinType
 
68
    double                  miterLimit
 
69
    CODE:
 
70
        offset2_ex(polygons, RETVAL, delta1, delta2, scale, joinType, miterLimit);
 
71
    OUTPUT:
 
72
        RETVAL
 
73
 
 
74
Polygons
 
75
diff(subject, clip, safety_offset = false)
 
76
    Polygons    subject
 
77
    Polygons    clip
 
78
    bool        safety_offset
 
79
    CODE:
 
80
        diff(subject, clip, RETVAL, safety_offset);
 
81
    OUTPUT:
 
82
        RETVAL
 
83
 
 
84
ExPolygons
 
85
diff_ex(subject, clip, safety_offset = false)
 
86
    Polygons    subject
 
87
    Polygons    clip
 
88
    bool        safety_offset
 
89
    CODE:
 
90
        diff(subject, clip, RETVAL, safety_offset);
 
91
    OUTPUT:
 
92
        RETVAL
 
93
 
 
94
Polylines
 
95
diff_pl(subject, clip)
 
96
    Polylines   subject
 
97
    Polygons    clip
 
98
    CODE:
 
99
        diff(subject, clip, RETVAL);
 
100
    OUTPUT:
 
101
        RETVAL
 
102
 
 
103
Polylines
 
104
diff_ppl(subject, clip)
 
105
    Polygons    subject
 
106
    Polygons    clip
 
107
    CODE:
 
108
        diff(subject, clip, RETVAL);
 
109
    OUTPUT:
 
110
        RETVAL
 
111
 
 
112
Polygons
 
113
intersection(subject, clip, safety_offset = false)
 
114
    Polygons                    subject
 
115
    Polygons                    clip
 
116
    bool                        safety_offset
 
117
    CODE:
 
118
        intersection(subject, clip, RETVAL, safety_offset);
 
119
    OUTPUT:
 
120
        RETVAL
 
121
 
 
122
ExPolygons
 
123
intersection_ex(subject, clip, safety_offset = false)
 
124
    Polygons                    subject
 
125
    Polygons                    clip
 
126
    bool                        safety_offset
 
127
    CODE:
 
128
        intersection(subject, clip, RETVAL, safety_offset);
 
129
    OUTPUT:
 
130
        RETVAL
 
131
 
 
132
Polylines
 
133
intersection_pl(subject, clip)
 
134
    Polylines                   subject
 
135
    Polygons                    clip
 
136
    CODE:
 
137
        intersection(subject, clip, RETVAL);
 
138
    OUTPUT:
 
139
        RETVAL
 
140
 
 
141
Polylines
 
142
intersection_ppl(subject, clip)
 
143
    Polygons                    subject
 
144
    Polygons                    clip
 
145
    CODE:
 
146
        intersection(subject, clip, RETVAL);
 
147
    OUTPUT:
 
148
        RETVAL
 
149
 
 
150
ExPolygons
 
151
xor_ex(subject, clip, safety_offset = false)
 
152
    Polygons                    subject
 
153
    Polygons                    clip
 
154
    bool                        safety_offset
 
155
    CODE:
 
156
        xor_ex(subject, clip, RETVAL, safety_offset);
 
157
    OUTPUT:
 
158
        RETVAL
 
159
 
 
160
Polygons
 
161
union(subject, safety_offset = false)
 
162
    Polygons    subject
 
163
    bool        safety_offset
 
164
    CODE:
 
165
        union_(subject, RETVAL, safety_offset);
 
166
    OUTPUT:
 
167
        RETVAL
 
168
 
 
169
ExPolygons
 
170
union_ex(subject, safety_offset = false)
 
171
    Polygons                    subject
 
172
    bool                        safety_offset
 
173
    CODE:
 
174
        union_(subject, RETVAL, safety_offset);
 
175
    OUTPUT:
 
176
        RETVAL
 
177
 
 
178
SV*
 
179
union_pt(subject, safety_offset = false)
 
180
    Polygons                    subject
 
181
    bool                        safety_offset
 
182
    CODE:
 
183
        // perform operation
 
184
        ClipperLib::PolyTree polytree;
 
185
        union_pt(subject, polytree, safety_offset);
 
186
        
 
187
        RETVAL = polynode_children_2_perl(polytree);
 
188
    OUTPUT:
 
189
        RETVAL
 
190
 
 
191
Polygons
 
192
union_pt_chained(subject, safety_offset = false)
 
193
    Polygons                    subject
 
194
    bool                        safety_offset
 
195
    CODE:
 
196
        // perform operation
 
197
        union_pt_chained(subject, RETVAL, safety_offset);
 
198
    OUTPUT:
 
199
        RETVAL
 
200
 
 
201
Polygons
 
202
simplify_polygons(subject)
 
203
    Polygons                    subject
 
204
    CODE:
 
205
        simplify_polygons(subject, RETVAL);
 
206
    OUTPUT:
 
207
        RETVAL
 
208
 
 
209
%}