potracer 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ext/potracer/potracer.c +23 -16
- metadata +2 -2
data/ext/potracer/potracer.c
CHANGED
@@ -151,32 +151,39 @@ trace_trace (VALUE obj, VALUE bitmap, VALUE params)
|
|
151
151
|
static VALUE
|
152
152
|
trace_as_array (VALUE klass)
|
153
153
|
{
|
154
|
+
VALUE rpath, rparts;
|
154
155
|
VALUE result = rb_ary_new();
|
155
|
-
potrace_path_t *
|
156
|
-
int i,
|
156
|
+
potrace_path_t *path;
|
157
|
+
int i, num_segments, *tag;
|
157
158
|
potrace_dpoint_t (*c)[3];
|
158
159
|
potrace_state_t *trace = NULL;
|
159
160
|
Data_Get_Struct(klass, potrace_state_t, trace);
|
160
161
|
|
161
162
|
if (trace->status == POTRACE_STATUS_OK) {
|
162
|
-
|
163
|
-
while (
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
163
|
+
path = trace->plist;
|
164
|
+
while (path != NULL) {
|
165
|
+
rparts = rb_ary_new();
|
166
|
+
num_segments = path->curve.n;
|
167
|
+
tag = path->curve.tag;
|
168
|
+
c = path->curve.c;
|
169
|
+
MOVE_TO(rparts, c[num_segments-1][2]);
|
170
|
+
for (i = 0; i < num_segments; i++) {
|
169
171
|
switch (tag[i]) {
|
170
172
|
case POTRACE_CORNER:
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
173
|
+
LINE_TO(rparts, c[i][1]);
|
174
|
+
LINE_TO(rparts, c[i][2]);
|
175
|
+
break;
|
176
|
+
case POTRACE_CURVETO:
|
177
|
+
CURVE_TO(rparts, c[i]);
|
178
|
+
break;
|
177
179
|
}
|
178
180
|
}
|
179
|
-
|
181
|
+
rpath = rb_hash_new();
|
182
|
+
rb_hash_aset(rpath, STRSYM("area"), rb_int_new(path->area));
|
183
|
+
rb_hash_aset(rpath, STRSYM("sign"), rb_str_new2(path->area == '+' ? "+" : "-"));
|
184
|
+
rb_hash_aset(rpath, STRSYM("parts"), rparts);
|
185
|
+
rb_ary_push(result, rpath);
|
186
|
+
path = path->next;
|
180
187
|
}
|
181
188
|
}
|
182
189
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: potracer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-04 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Ruby bindings for the potrace library.
|
15
15
|
email: k.parnell@gmail.com
|