@jscad/svg-deserializer 2.5.11 → 2.5.13

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.
package/CHANGELOG.md CHANGED
@@ -3,424 +3,240 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [2.5.11](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.5.10...@jscad/svg-deserializer@2.5.11) (2024-12-29)
6
+ ## [2.5.13](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.5.12...@jscad/svg-deserializer@2.5.13) (2026-02-11)
7
7
 
8
8
  **Note:** Version bump only for package @jscad/svg-deserializer
9
9
 
10
+ ## [2.5.12](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.5.11...@jscad/svg-deserializer@2.5.12) (2025-09-20)
10
11
 
12
+ ### Bug Fixes
11
13
 
14
+ * **svg-deserializer:** svg path should return one geom2 ([4500b71](https://github.com/jscad/OpenJSCAD.org/commit/4500b71579fd805e5f740a7b4605b14986bbe14e))
12
15
 
13
-
14
- ## [2.5.10](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.5.9...@jscad/svg-deserializer@2.5.10) (2024-11-10)
16
+ ## [2.5.11](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.5.10...@jscad/svg-deserializer@2.5.11) (2024-12-29)
15
17
 
16
18
  **Note:** Version bump only for package @jscad/svg-deserializer
17
19
 
20
+ ## [2.5.10](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.5.9...@jscad/svg-deserializer@2.5.10) (2024-11-10)
18
21
 
19
-
20
-
22
+ **Note:** Version bump only for package @jscad/svg-deserializer
21
23
 
22
24
  ## [2.5.9](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.5.8...@jscad/svg-deserializer@2.5.9) (2024-10-06)
23
25
 
24
26
  **Note:** Version bump only for package @jscad/svg-deserializer
25
27
 
26
-
27
-
28
-
29
-
30
28
  ## [2.5.8](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.5.7...@jscad/svg-deserializer@2.5.8) (2024-06-02)
31
29
 
32
30
  **Note:** Version bump only for package @jscad/svg-deserializer
33
31
 
34
-
35
-
36
-
37
-
38
32
  ## [2.5.7](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.5.6...@jscad/svg-deserializer@2.5.7) (2024-02-18)
39
33
 
40
-
41
34
  ### Bug Fixes
42
35
 
43
36
  * **svg-serializer:** fix conversion of alpha colors to SVG RGBA opacity ([4c1f372](https://github.com/jscad/OpenJSCAD.org/commit/4c1f37271764649e192300c66d263a1fee52303c))
44
37
 
45
-
46
-
47
-
48
-
49
38
  ## [2.5.6](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.5.5...@jscad/svg-deserializer@2.5.6) (2023-06-27)
50
39
 
51
40
  **Note:** Version bump only for package @jscad/svg-deserializer
52
41
 
53
-
54
-
55
-
56
-
57
42
  ## [2.5.5](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.5.4...@jscad/svg-deserializer@2.5.5) (2023-04-30)
58
43
 
59
-
60
44
  ### Bug Fixes
61
45
 
62
46
  * **svg-deserializer:** fix conversions of quadratic bezier paths ([2b62d76](https://github.com/jscad/OpenJSCAD.org/commit/2b62d762056aadca75006ac4b1eebd08bd7addaa))
63
47
 
64
-
65
-
66
-
67
-
68
48
  ## [2.5.4](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.5.3...@jscad/svg-deserializer@2.5.4) (2022-11-26)
69
49
 
70
50
  **Note:** Version bump only for package @jscad/svg-deserializer
71
51
 
72
-
73
-
74
-
75
-
76
52
  ## [2.5.3](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.5.2...@jscad/svg-deserializer@2.5.3) (2022-09-23)
77
53
 
78
-
79
54
  ### Bug Fixes
80
55
 
81
56
  * **svg-deserializer:** corrected logic to allow path start == end point ([#1142](https://github.com/jscad/OpenJSCAD.org/issues/1142)) ([c49b540](https://github.com/jscad/OpenJSCAD.org/commit/c49b5409aee76c956fd365a43b0b49fde3d0894b))
82
57
 
83
-
84
-
85
-
86
-
87
58
  ## [2.5.2](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.5.1...@jscad/svg-deserializer@2.5.2) (2022-08-21)
88
59
 
89
60
  **Note:** Version bump only for package @jscad/svg-deserializer
90
61
 
91
-
92
-
93
-
94
-
95
62
  ## [2.5.1](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.5.0...@jscad/svg-deserializer@2.5.1) (2022-07-17)
96
63
 
97
64
  **Note:** Version bump only for package @jscad/svg-deserializer
98
65
 
99
-
100
-
101
-
102
-
103
66
  # [2.5.0](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.4.12...@jscad/svg-deserializer@2.5.0) (2022-06-12)
104
67
 
105
-
106
68
  ### Features
107
69
 
108
70
  * **x3d-serializer:** enhanced to convert 2D geometry and path to X3D Polyline2D ([#1091](https://github.com/jscad/OpenJSCAD.org/issues/1091)) ([4f763a8](https://github.com/jscad/OpenJSCAD.org/commit/4f763a8def39f3b0454f2079f3c1fd7da52dd880))
109
71
 
110
-
111
-
112
-
113
-
114
72
  ## [2.4.12](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.4.11...@jscad/svg-deserializer@2.4.12) (2022-05-15)
115
73
 
116
74
  **Note:** Version bump only for package @jscad/svg-deserializer
117
75
 
118
-
119
-
120
-
121
-
122
76
  ## [2.4.11](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.4.10...@jscad/svg-deserializer@2.4.11) (2022-04-24)
123
77
 
124
78
  **Note:** Version bump only for package @jscad/svg-deserializer
125
79
 
126
-
127
-
128
-
129
-
130
80
  ## [2.4.10](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.4.9...@jscad/svg-deserializer@2.4.10) (2022-04-03)
131
81
 
132
82
  **Note:** Version bump only for package @jscad/svg-deserializer
133
83
 
134
-
135
-
136
-
137
-
138
84
  ## [2.4.9](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.4.8...@jscad/svg-deserializer@2.4.9) (2022-04-03)
139
85
 
140
86
  **Note:** Version bump only for package @jscad/svg-deserializer
141
87
 
142
-
143
-
144
-
145
-
146
88
  ## [2.4.8](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.4.7...@jscad/svg-deserializer@2.4.8) (2022-03-13)
147
89
 
148
90
  **Note:** Version bump only for package @jscad/svg-deserializer
149
91
 
150
-
151
-
152
-
153
-
154
92
  ## [2.4.7](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.4.6...@jscad/svg-deserializer@2.4.7) (2022-03-06)
155
93
 
156
94
  **Note:** Version bump only for package @jscad/svg-deserializer
157
95
 
158
-
159
-
160
-
161
-
162
96
  ## [2.4.6](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.4.5...@jscad/svg-deserializer@2.4.6) (2022-02-19)
163
97
 
164
98
  **Note:** Version bump only for package @jscad/svg-deserializer
165
99
 
166
-
167
-
168
-
169
-
170
100
  ## [2.4.5](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.4.4...@jscad/svg-deserializer@2.4.5) (2021-12-26)
171
101
 
172
102
  **Note:** Version bump only for package @jscad/svg-deserializer
173
103
 
174
-
175
-
176
-
177
-
178
104
  ## [2.4.4](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.4.3...@jscad/svg-deserializer@2.4.4) (2021-12-11)
179
105
 
180
106
  **Note:** Version bump only for package @jscad/svg-deserializer
181
107
 
182
-
183
-
184
-
185
-
186
108
  ## [2.4.3](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.4.2...@jscad/svg-deserializer@2.4.3) (2021-11-07)
187
109
 
188
110
  **Note:** Version bump only for package @jscad/svg-deserializer
189
111
 
190
-
191
-
192
-
193
-
194
112
  ## [2.4.2](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.4.1...@jscad/svg-deserializer@2.4.2) (2021-10-17)
195
113
 
196
114
  **Note:** Version bump only for package @jscad/svg-deserializer
197
115
 
198
-
199
-
200
-
201
-
202
116
  ## [2.4.1](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.4.0...@jscad/svg-deserializer@2.4.1) (2021-10-04)
203
117
 
204
118
  **Note:** Version bump only for package @jscad/svg-deserializer
205
119
 
206
-
207
-
208
-
209
-
210
120
  # [2.4.0](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.3.0...@jscad/svg-deserializer@2.4.0) (2021-09-27)
211
121
 
212
-
213
122
  ### Bug Fixes
214
123
 
215
124
  * **modeling:** corrected concat to ignore duplicate points ([#913](https://github.com/jscad/OpenJSCAD.org/issues/913))corrected appendArc to maintain last point ([3eea3ef](https://github.com/jscad/OpenJSCAD.org/commit/3eea3efed3b3d4bacb49c1ee4691bfc159b08261))
216
125
 
217
-
218
126
  ### Features
219
127
 
220
128
  * **svg-deserializer:** reworked to use saxes library, and standard module layout ([56f5725](https://github.com/jscad/OpenJSCAD.org/commit/56f572518c85d767ac680aa2da1af46c4847e63c))
221
129
 
222
-
223
-
224
-
225
-
226
130
  # [2.3.0](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.2.4...@jscad/svg-deserializer@2.3.0) (2021-09-09)
227
131
 
228
-
229
132
  ### Features
230
133
 
231
134
  * **svg-deserializer:** added pathSelfClosed option to control construction of overlapping paths ([043f59d](https://github.com/jscad/OpenJSCAD.org/commit/043f59d928fcf397b0bb23e744e35d7eda5be626))
232
135
 
233
-
234
-
235
-
236
-
237
136
  ## [2.2.4](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.2.3...@jscad/svg-deserializer@2.2.4) (2021-06-20)
238
137
 
239
138
  **Note:** Version bump only for package @jscad/svg-deserializer
240
139
 
241
-
242
-
243
-
244
-
245
140
  ## [2.2.3](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.2.2...@jscad/svg-deserializer@2.2.3) (2021-06-11)
246
141
 
247
-
248
142
  ### Bug Fixes
249
143
 
250
144
  * **svg-deserializer:** corrected conversion of stroke/fill to geometry color ([73f4d50](https://github.com/jscad/OpenJSCAD.org/commit/73f4d50e2622a9ba86fd5abc747778795391382b))
251
145
 
252
-
253
-
254
-
255
-
256
146
  ## [2.2.2](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.2.1...@jscad/svg-deserializer@2.2.2) (2021-06-01)
257
147
 
258
148
  **Note:** Version bump only for package @jscad/svg-deserializer
259
149
 
260
-
261
-
262
-
263
-
264
150
  ## [2.2.1](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.2.0...@jscad/svg-deserializer@2.2.1) (2021-04-20)
265
151
 
266
152
  **Note:** Version bump only for package @jscad/svg-deserializer
267
153
 
268
-
269
-
270
-
271
-
272
154
  # [2.2.0](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.0.0-alpha.0...@jscad/svg-deserializer@2.2.0) (2021-04-17)
273
155
 
274
-
275
156
  ### Bug Fixes
276
157
 
277
158
  * **all:** V2 : several fixes for modeling ([#705](https://github.com/jscad/OpenJSCAD.org/issues/705)) ([62017a4](https://github.com/jscad/OpenJSCAD.org/commit/62017a41214169d6e000f1e0c11aaefdd68e1097))
278
159
  * **io:** io revisited ([#714](https://github.com/jscad/OpenJSCAD.org/issues/714)) ([22f04f1](https://github.com/jscad/OpenJSCAD.org/commit/22f04f1b2894a82e24952655875e73b74727bf86))
279
160
 
280
-
281
161
  ### Features
282
162
 
283
163
  * **modeling:** V2 : rename option to align and center ([#775](https://github.com/jscad/OpenJSCAD.org/issues/775)) ([c5b0f48](https://github.com/jscad/OpenJSCAD.org/commit/c5b0f48bbd980b59876d73b673a0e3bef44d2b30))
284
164
  * **svg-deserializer:** add support for new segments option ([9bdc7f5](https://github.com/jscad/OpenJSCAD.org/commit/9bdc7f59dff8847c250c8c63a91babb1a69a03a6))
285
165
  * **svg-deserializer:** V2 - enhance SVG deserializer for mirror transforms ([#733](https://github.com/jscad/OpenJSCAD.org/issues/733)) ([a50b584](https://github.com/jscad/OpenJSCAD.org/commit/a50b5847645009a385636852398257b12c6b0949))
286
166
 
287
-
288
-
289
-
290
-
291
167
  # [2.1.0](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.0.0-alpha.0...@jscad/svg-deserializer@2.1.0) (2021-04-15)
292
168
 
293
-
294
169
  ### Bug Fixes
295
170
 
296
171
  * **all:** V2 : several fixes for modeling ([#705](https://github.com/jscad/OpenJSCAD.org/issues/705)) ([62017a4](https://github.com/jscad/OpenJSCAD.org/commit/62017a41214169d6e000f1e0c11aaefdd68e1097))
297
172
  * **io:** io revisited ([#714](https://github.com/jscad/OpenJSCAD.org/issues/714)) ([22f04f1](https://github.com/jscad/OpenJSCAD.org/commit/22f04f1b2894a82e24952655875e73b74727bf86))
298
173
 
299
-
300
174
  ### Features
301
175
 
302
176
  * **modeling:** V2 : rename option to align and center ([#775](https://github.com/jscad/OpenJSCAD.org/issues/775)) ([c5b0f48](https://github.com/jscad/OpenJSCAD.org/commit/c5b0f48bbd980b59876d73b673a0e3bef44d2b30))
303
177
  * **svg-deserializer:** add support for new segments option ([9bdc7f5](https://github.com/jscad/OpenJSCAD.org/commit/9bdc7f59dff8847c250c8c63a91babb1a69a03a6))
304
178
  * **svg-deserializer:** V2 - enhance SVG deserializer for mirror transforms ([#733](https://github.com/jscad/OpenJSCAD.org/issues/733)) ([a50b584](https://github.com/jscad/OpenJSCAD.org/commit/a50b5847645009a385636852398257b12c6b0949))
305
179
 
306
-
307
-
308
-
309
-
310
180
  # [2.0.0](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.0.0-alpha.11...@jscad/svg-deserializer@2.0.0) (2021-04-12)
311
181
 
312
182
  **Note:** Version bump only for package @jscad/svg-deserializer
313
183
 
314
-
315
-
316
-
317
-
318
184
  # [2.0.0-alpha.11](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.0.0-alpha.10...@jscad/svg-deserializer@2.0.0-alpha.11) (2021-03-07)
319
185
 
320
-
321
186
  ### Features
322
187
 
323
188
  * **modeling:** V2 : rename option to align and center ([#775](https://github.com/jscad/OpenJSCAD.org/issues/775)) ([c5b0f48](https://github.com/jscad/OpenJSCAD.org/commit/c5b0f48bbd980b59876d73b673a0e3bef44d2b30))
324
189
 
325
-
326
-
327
-
328
-
329
190
  # [2.0.0-alpha.10](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.0.0-alpha.9...@jscad/svg-deserializer@2.0.0-alpha.10) (2021-02-07)
330
191
 
331
192
  **Note:** Version bump only for package @jscad/svg-deserializer
332
193
 
333
-
334
-
335
-
336
-
337
194
  # [2.0.0-alpha.9](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.0.0-alpha.8...@jscad/svg-deserializer@2.0.0-alpha.9) (2021-01-02)
338
195
 
339
196
  **Note:** Version bump only for package @jscad/svg-deserializer
340
197
 
341
-
342
-
343
-
344
-
345
198
  # [2.0.0-alpha.8](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.0.0-alpha.7...@jscad/svg-deserializer@2.0.0-alpha.8) (2020-12-04)
346
199
 
347
-
348
200
  ### Features
349
201
 
350
202
  * **svg-deserializer:** V2 - enhance SVG deserializer for mirror transforms ([#733](https://github.com/jscad/OpenJSCAD.org/issues/733)) ([a50b584](https://github.com/jscad/OpenJSCAD.org/commit/a50b5847645009a385636852398257b12c6b0949))
351
203
 
352
-
353
-
354
-
355
-
356
204
  # [2.0.0-alpha.7](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/svg-deserializer@2.0.0-alpha.6...@jscad/svg-deserializer@2.0.0-alpha.7) (2020-11-07)
357
205
 
358
-
359
206
  ### Bug Fixes
360
207
 
361
208
  * **io:** io revisited ([#714](https://github.com/jscad/OpenJSCAD.org/issues/714)) ([22f04f1](https://github.com/jscad/OpenJSCAD.org/commit/22f04f1b2894a82e24952655875e73b74727bf86))
362
209
 
363
-
364
-
365
-
366
-
367
210
  # [2.0.0-alpha.6](https://github.com/jscad/compare/@jscad/svg-deserializer@2.0.0-alpha.5...@jscad/svg-deserializer@2.0.0-alpha.6) (2020-10-11)
368
211
 
369
-
370
212
  ### Bug Fixes
371
213
 
372
214
  * **all:** V2 : several fixes for modeling ([#705](https://github.com/jscad/issues/705)) ([62017a4](https://github.com/jscad/commit/62017a41214169d6e000f1e0c11aaefdd68e1097))
373
215
 
374
-
375
-
376
-
377
-
378
216
  # [2.0.0-alpha.5](https://github.com/jscad/compare/@jscad/svg-deserializer@2.0.0-alpha.4...@jscad/svg-deserializer@2.0.0-alpha.5) (2020-09-29)
379
217
 
380
218
  **Note:** Version bump only for package @jscad/svg-deserializer
381
219
 
382
-
383
-
384
-
385
-
386
220
  # [2.0.0-alpha.4](https://github.com/jscad/compare/@jscad/svg-deserializer@2.0.0-alpha.3...@jscad/svg-deserializer@2.0.0-alpha.4) (2020-09-28)
387
221
 
388
222
  **Note:** Version bump only for package @jscad/svg-deserializer
389
223
 
390
-
391
-
392
-
393
-
394
224
  # [2.0.0-alpha.3](https://github.com/jscad/compare/@jscad/svg-deserializer@2.0.0-alpha.2...@jscad/svg-deserializer@2.0.0-alpha.3) (2020-09-19)
395
225
 
396
-
397
226
  ### Features
398
227
 
399
228
  * **svg-deserializer:** add support for new segments option ([9bdc7f5](https://github.com/jscad/commit/9bdc7f59dff8847c250c8c63a91babb1a69a03a6))
400
229
 
401
-
402
-
403
-
404
-
405
230
  # [2.0.0-alpha.2](https://github.com/jscad/compare/@jscad/svg-deserializer@2.0.0-alpha.1...@jscad/svg-deserializer@2.0.0-alpha.2) (2020-09-08)
406
231
 
407
232
  **Note:** Version bump only for package @jscad/svg-deserializer
408
233
 
409
-
410
-
411
-
412
-
413
234
  # [2.0.0-alpha.1](https://github.com/jscad/compare/@jscad/svg-deserializer@2.0.0-alpha.0...@jscad/svg-deserializer@2.0.0-alpha.1) (2020-08-19)
414
235
 
415
236
  **Note:** Version bump only for package @jscad/svg-deserializer
416
237
 
417
-
418
-
419
-
420
-
421
238
  # 2.0.0-alpha.0 (2020-08-13)
422
239
 
423
-
424
240
  ### Bug Fixes
425
241
 
426
242
  * **colors:** colorize is now immutable & returns new geometries ([#566](https://github.com/jscad/issues/566)) ([916824c](https://github.com/jscad/commit/916824c63a0bf8896d1b6f85a82b129a013bec58))
@@ -428,101 +244,66 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
428
244
  * **svg-deserializer:** corrected svg transforms while instantiating shapes
429
245
  * **svg-deserializer:** corrected conversion of shapes when target is geometry
430
246
 
431
-
432
247
  ### Features
433
248
 
434
249
  * **svg-deserializer:** overhaul for V2 (#463)
435
250
  * **io:** change api to deserialize(options, source)
436
251
 
437
-
438
-
439
-
440
-
441
252
  <a name="0.4.3"></a>
442
253
  ## [0.4.3](https://github.com/jscad/io/compare/@jscad/svg-deserializer@0.4.2...@jscad/svg-deserializer@0.4.3) (2018-11-25)
443
254
 
444
-
445
-
446
-
447
255
  **Note:** Version bump only for package @jscad/svg-deserializer
448
256
 
449
257
  <a name="0.4.2"></a>
450
258
  ## [0.4.2](https://github.com/jscad/io/compare/@jscad/svg-deserializer@0.4.1...@jscad/svg-deserializer@0.4.2) (2018-09-02)
451
259
 
452
-
453
260
  ### Bug Fixes
454
261
 
455
262
  * **svg deserializer:** fixed svg-deserializer to work with Inkscape files ([#72](https://github.com/jscad/io/issues/72)) ([f35ea5e](https://github.com/jscad/io/commit/f35ea5e))
456
263
 
457
-
458
-
459
-
460
264
  <a name="0.4.1"></a>
461
265
  ## [0.4.1](https://github.com/jscad/io/compare/@jscad/svg-deserializer@0.4.0...@jscad/svg-deserializer@0.4.1) (2017-12-14)
462
266
 
463
-
464
-
465
-
466
267
  **Note:** Version bump only for package @jscad/svg-deserializer
467
268
 
468
269
  <a name="0.4.0"></a>
469
270
  # [0.4.0](https://github.com/jscad/io/compare/@jscad/svg-deserializer@0.3.0...@jscad/svg-deserializer@0.4.0) (2017-11-29)
470
271
 
471
-
472
272
  ### Features
473
273
 
474
274
  * add support for a status callback for de/serialization progress ([#49](https://github.com/jscad/io/issues/49)) ([f457cdb](https://github.com/jscad/io/commit/f457cdb))
475
275
 
476
-
477
-
478
-
479
276
  <a name="0.3.0"></a>
480
277
  # [0.3.0](https://github.com/jscad/io/compare/@jscad/svg-deserializer@0.2.3...@jscad/svg-deserializer@0.3.0) (2017-11-14)
481
278
 
482
-
483
279
  ### Features
484
280
 
485
281
  * **deserializers:** added csg output capabilities to amf & obj deserializers & basic tests ([#47](https://github.com/jscad/io/issues/47)) ([abf3040](https://github.com/jscad/io/commit/abf3040))
486
282
 
487
-
488
-
489
-
490
283
  <a name="0.2.3"></a>
491
284
  ## [0.2.3](https://github.com/jscad/io/compare/@jscad/svg-deserializer@0.2.2...@jscad/svg-deserializer@0.2.3) (2017-11-04)
492
285
 
493
-
494
286
  ### Bug Fixes
495
287
 
496
288
  * **svg transforms:** fixes weird new issue with undefined vs null transforms ([#46](https://github.com/jscad/io/issues/46)) ([4a47f00](https://github.com/jscad/io/commit/4a47f00))
497
289
 
498
-
499
-
500
-
501
290
  <a name="0.2.2"></a>
502
291
  ## [0.2.2](https://github.com/jscad/io/compare/@jscad/svg-deserializer@0.2.1...@jscad/svg-deserializer@0.2.2) (2017-11-04)
503
292
 
504
-
505
-
506
-
507
293
  **Note:** Version bump only for package @jscad/svg-deserializer
508
294
 
509
295
  <a name="0.2.1"></a>
510
296
  ## [0.2.1](https://github.com/jscad/io/compare/@jscad/svg-deserializer@0.2.0...@jscad/svg-deserializer@0.2.1) (2017-10-10)
511
297
 
512
-
513
-
514
-
515
298
  **Note:** Version bump only for package @jscad/svg-deserializer
516
299
 
517
300
  <a name="0.2.0"></a>
518
301
  # 0.2.0 (2017-10-10)
519
302
 
520
-
521
303
  ### Bug Fixes
522
304
 
523
305
  * **svg-deserializer:** m/M commands can have implicit lineTo ([#20](https://github.com/jscad/io/issues/20)) ([969d0da](https://github.com/jscad/io/commit/969d0da))
524
306
 
525
-
526
307
  ### Features
527
308
 
528
309
  * **svg-deserializer:** add ability to deserialize svg data to csg objects directly ([#25](https://github.com/jscad/io/issues/25)) ([cb0ce71](https://github.com/jscad/io/commit/cb0ce71))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jscad/svg-deserializer",
3
- "version": "2.5.11",
3
+ "version": "2.5.13",
4
4
  "description": "SVG Deserializer for JSCAD",
5
5
  "homepage": "https://openjscad.xyz/",
6
6
  "repository": "https://github.com/jscad/OpenJSCAD.org",
@@ -33,13 +33,13 @@
33
33
  "license": "MIT",
34
34
  "dependencies": {
35
35
  "@jscad/array-utils": "2.1.4",
36
- "@jscad/io-utils": "2.0.30",
37
- "@jscad/modeling": "2.12.5",
36
+ "@jscad/io-utils": "2.0.32",
37
+ "@jscad/modeling": "2.12.7",
38
38
  "saxes": "5.0.1"
39
39
  },
40
40
  "devDependencies": {
41
41
  "ava": "3.15.0",
42
42
  "nyc": "15.1.0"
43
43
  },
44
- "gitHead": "d8010c4f1d70685404a510d604f8b6d5c362f93a"
44
+ "gitHead": "138ee568542545f27629166bd93fff653cc3c26d"
45
45
  }
@@ -133,16 +133,23 @@ const shapesMapGeometry = (obj, objectify, params) => {
133
133
  const listofpaths = expandPath(obj, svgUnitsPmm, svgUnitsX, svgUnitsY, svgUnitsV, svgGroups, segments, pathSelfClosed)
134
134
  // order is important
135
135
  const listofentries = Object.entries(listofpaths).sort((a, b) => a[0].localeCompare(b[0]))
136
- const shapes = listofentries.map((entry) => {
137
- const path = entry[1]
138
- if (target === 'geom2' && path.isClosed) {
139
- const points = geometries.path2.toPoints(path).slice()
140
- points.push(points[0]) // add first point again to create closing sides
141
- return geometries.geom2.fromPoints(points)
142
- }
143
- return path
144
- })
145
- return shapes
136
+
137
+ if (target === 'geom2') {
138
+ // concatenate all sides to a single geom2
139
+ const outlines = []
140
+ listofentries.forEach((entry) => {
141
+ const path = entry[1]
142
+ // discard unclosed paths
143
+ if (path.isClosed) {
144
+ const points = geometries.path2.toPoints(path)
145
+ outlines.push(points)
146
+ }
147
+ })
148
+ if (outlines.length === 0) return []
149
+ return geometries.geom2.create(outlines)
150
+ } else {
151
+ return listofentries.map((entry) => entry[1])
152
+ }
146
153
  }
147
154
  }
148
155
 
@@ -156,6 +163,18 @@ const appendPoints = (points, geometry) => {
156
163
  return geometries.path2.fromPoints({ }, points)
157
164
  }
158
165
 
166
+ /*
167
+ * Expands the given SVG path object into a set of path segments.
168
+ * @param {object} obj - SVG path object to expand
169
+ * @param {number} svgUnitsPmm - SVG units per millimeter
170
+ * @param {number} svgUnitsX - X-axis SVG units
171
+ * @param {number} svgUnitsY - Y-axis SVG units
172
+ * @param {number} svgUnitsV - SVG units value
173
+ * @param {object} svgGroups - SVG groups object
174
+ * @param {number} segments - number of segments per full rotation
175
+ * @param {boolean} pathSelfClosed - Whether the path is self-closed
176
+ * @returns {object} a object containing the named paths
177
+ */
159
178
  const expandPath = (obj, svgUnitsPmm, svgUnitsX, svgUnitsY, svgUnitsV, svgGroups, segments, pathSelfClosed) => {
160
179
  const paths = {}
161
180
  const on = 'path'
@@ -454,13 +473,13 @@ const expandPath = (obj, svgUnitsPmm, svgUnitsX, svgUnitsY, svgUnitsV, svgGroups
454
473
  by = rf[1]
455
474
  }
456
475
  break
457
- case 'h': // relative Horzontal line to
476
+ case 'h': // relative Horizontal line to
458
477
  while (pts.length >= i + 1) {
459
478
  cx = cx + parseFloat(pts[i++])
460
479
  paths[pathName] = appendPoints([svg2cag([cx, cy], svgUnitsPmm)], paths[pathName])
461
480
  }
462
481
  break
463
- case 'H': // absolute Horzontal line to
482
+ case 'H': // absolute Horizontal line to
464
483
  while (pts.length >= i + 1) {
465
484
  cx = parseFloat(pts[i++])
466
485
  paths[pathName] = appendPoints([svg2cag([cx, cy], svgUnitsPmm)], paths[pathName])
@@ -500,7 +519,7 @@ const expandPath = (obj, svgUnitsPmm, svgUnitsX, svgUnitsY, svgUnitsV, svgGroups
500
519
  pc = true
501
520
  break
502
521
  default:
503
- console.log('Warning: Unknow PATH command [' + co.c + ']')
522
+ console.log('Warning: Unknown PATH command [' + co.c + ']')
504
523
  break
505
524
  }
506
525
 
@@ -2,7 +2,7 @@ const test = require('ava')
2
2
 
3
3
  const deserializer = require('../src/index.js')
4
4
 
5
- const { measurements } = require('@jscad/modeling')
5
+ const { geometries, measurements } = require('@jscad/modeling')
6
6
 
7
7
  // deserializer
8
8
 
@@ -173,7 +173,8 @@ test('deserialize : instantiate svg (path: simple) to objects', (t) => {
173
173
  let observed = deserializer.deserialize({ output: 'geometry', target: 'geom2', addMetaData: false }, sourceSvg)
174
174
  t.is(observed.length, 1)
175
175
  let shape = observed[0]
176
- t.is(shape.sides.length, 3)
176
+ t.is(shape.sides.length, 1)
177
+ t.true(geometries.geom2.isA(shape))
177
178
 
178
179
  observed = deserializer.deserialize({ output: 'geometry', target: 'path', addMetaData: false }, sourceSvg)
179
180
  t.is(observed.length, 1)
@@ -190,7 +191,8 @@ test('deserialize : instantiate svg (path: simple) to objects', (t) => {
190
191
  observed = deserializer.deserialize({ output: 'geometry', target: 'geom2', addMetaData: false }, sourceSvg)
191
192
  t.is(observed.length, 1)
192
193
  shape = observed[0]
193
- t.is(shape.sides.length, 3)
194
+ t.is(shape.sides.length, 1)
195
+ t.true(geometries.geom2.isA(shape))
194
196
 
195
197
  observed = deserializer.deserialize({ output: 'geometry', target: 'path', addMetaData: false }, sourceSvg)
196
198
  t.is(observed.length, 1)
@@ -204,7 +206,8 @@ test('deserialize : instantiate svg (path: simple) to objects', (t) => {
204
206
  observed = deserializer.deserialize({ output: 'geometry', target: 'geom2', addMetaData: false }, sourceSvg)
205
207
  t.is(observed.length, 1)
206
208
  shape = observed[0]
207
- t.is(shape.sides.length, 3)
209
+ t.is(shape.sides.length, 1)
210
+ t.true(geometries.geom2.isA(shape))
208
211
 
209
212
  observed = deserializer.deserialize({ output: 'geometry', target: 'path', addMetaData: false }, sourceSvg)
210
213
  t.is(observed.length, 1)
@@ -218,7 +221,8 @@ test('deserialize : instantiate svg (path: simple) to objects', (t) => {
218
221
  observed = deserializer.deserialize({ output: 'geometry', target: 'geom2', addMetaData: false }, sourceSvg)
219
222
  t.is(observed.length, 1)
220
223
  shape = observed[0]
221
- t.is(shape.sides.length, 8)
224
+ t.is(shape.sides.length, 1)
225
+ t.true(geometries.geom2.isA(shape))
222
226
 
223
227
  observed = deserializer.deserialize({ output: 'geometry', target: 'path', addMetaData: false }, sourceSvg)
224
228
  t.is(observed.length, 1)
@@ -237,7 +241,11 @@ test('deserialize : instantiate svg (path: arc) to objects', (t) => {
237
241
  let observed = deserializer.deserialize({ output: 'geometry', target: 'geom2', addMetaData: false }, sourceSvg)
238
242
  t.is(observed.length, 2)
239
243
  let shape = observed[0]
240
- t.is(shape.sides.length, 27)
244
+ t.is(shape.sides.length, 1)
245
+ t.true(geometries.geom2.isA(shape))
246
+ shape = observed[1]
247
+ t.is(shape.sides.length, 1)
248
+ t.true(geometries.geom2.isA(shape))
241
249
 
242
250
  observed = deserializer.deserialize({ output: 'geometry', target: 'path', addMetaData: false }, sourceSvg)
243
251
  t.is(observed.length, 2)
@@ -264,7 +272,8 @@ test('deserialize : instantiate svg (path: with bezier) to objects', (t) => {
264
272
  let observed = deserializer.deserialize({ output: 'geometry', target: 'geom2', addMetaData: false }, sourceSvg)
265
273
  t.is(observed.length, 1)
266
274
  let shape = observed[0]
267
- t.is(shape.sides.length, 14)
275
+ t.is(shape.sides.length, 1)
276
+ t.true(geometries.geom2.isA(shape))
268
277
 
269
278
  observed = deserializer.deserialize({ output: 'geometry', target: 'path', addMetaData: false }, sourceSvg)
270
279
  t.is(observed.length, 1)
@@ -285,7 +294,8 @@ test('deserialize : instantiate svg (path: with bezier) to objects', (t) => {
285
294
  observed = deserializer.deserialize({ output: 'geometry', target: 'geom2', addMetaData: false }, sourceSvg)
286
295
  t.is(observed.length, 1)
287
296
  shape = observed[0]
288
- t.is(shape.sides.length, 62)
297
+ t.is(shape.sides.length, 1)
298
+ t.true(geometries.geom2.isA(shape))
289
299
 
290
300
  observed = deserializer.deserialize({ output: 'geometry', target: 'path', addMetaData: false }, sourceSvg)
291
301
  t.is(observed.length, 1)
@@ -300,7 +310,8 @@ test('deserialize : instantiate svg (path: with bezier) to objects', (t) => {
300
310
  observed = deserializer.deserialize({ output: 'geometry', target: 'geom2', addMetaData: false }, sourceSvg)
301
311
  t.is(observed.length, 1)
302
312
  shape = observed[0]
303
- t.is(shape.sides.length, 28)
313
+ t.is(shape.sides.length, 1)
314
+ t.true(geometries.geom2.isA(shape))
304
315
 
305
316
  observed = deserializer.deserialize({ output: 'geometry', target: 'path', addMetaData: false }, sourceSvg)
306
317
  t.is(observed.length, 1)
@@ -314,9 +325,7 @@ test('deserialize : instantiate svg (path: with bezier) to objects', (t) => {
314
325
  </svg>`
315
326
 
316
327
  observed = deserializer.deserialize({ output: 'geometry', target: 'geom2', addMetaData: false }, sourceSvg)
317
- t.is(observed.length, 2)
318
- shape = observed[0]
319
- t.is(shape.points.length, 14) // open path
328
+ t.is(observed.length, 0) // open path
320
329
 
321
330
  observed = deserializer.deserialize({ output: 'geometry', target: 'path', addMetaData: false }, sourceSvg)
322
331
  t.is(observed.length, 2)
@@ -332,9 +341,7 @@ test('deserialize : instantiate svg (path: with bezier) to objects', (t) => {
332
341
  </svg>`
333
342
 
334
343
  observed = deserializer.deserialize({ output: 'geometry', target: 'geom2', addMetaData: false }, sourceSvg)
335
- t.is(observed.length, 1)
336
- shape = observed[0]
337
- t.is(shape.points.length, 29) // open path
344
+ t.is(observed.length, 0) // open path
338
345
 
339
346
  observed = deserializer.deserialize({ output: 'geometry', target: 'path', addMetaData: false }, sourceSvg)
340
347
  t.is(observed.length, 1)
@@ -349,7 +356,7 @@ test('deserialize : instantiate svg (path: with bezier) to objects', (t) => {
349
356
  observed = deserializer.deserialize({ output: 'geometry', target: 'geom2', addMetaData: false }, sourceSvg)
350
357
  t.is(observed.length, 1)
351
358
  shape = observed[0]
352
- t.is(shape.sides.length, 101)
359
+ t.is(shape.sides.length, 1)
353
360
  t.deepEqual(shape.color, [1, 0, 0, 1])
354
361
 
355
362
  observed = deserializer.deserialize({ output: 'geometry', target: 'path', addMetaData: false }, sourceSvg)
@@ -408,11 +415,10 @@ test('deserialize : instantiate svg produced by inkscape to objects', (t) => {
408
415
  `
409
416
 
410
417
  let observed = deserializer.deserialize({ filename: 'inkscape', output: 'geometry', target: 'geom2', addMetaData: false }, sourceSvg)
411
- t.is(observed.length, 2)
418
+ t.is(observed.length, 1)
412
419
  let shape = observed[0]
413
- t.is(shape.sides.length, 19)
414
- shape = observed[1]
415
- t.is(shape.sides.length, 20)
420
+ t.is(shape.sides.length, 2)
421
+ t.true(geometries.geom2.isA(shape))
416
422
 
417
423
  observed = deserializer.deserialize({ output: 'geometry', target: 'path', addMetaData: false }, sourceSvg)
418
424
  t.is(observed.length, 2)
@@ -432,11 +438,10 @@ test('deserialize : instantiate shape with a hole to objects', (t) => {
432
438
  `
433
439
 
434
440
  let observed = deserializer.deserialize({ output: 'geometry', target: 'geom2', addMetaData: false }, sourceSvg)
435
- t.is(observed.length, 2)
441
+ t.is(observed.length, 1)
436
442
  let shape = observed[0]
437
- t.is(shape.sides.length, 38)
438
- shape = observed[1]
439
- t.is(shape.sides.length, 38)
443
+ t.is(shape.sides.length, 2)
444
+ t.true(geometries.geom2.isA(shape))
440
445
 
441
446
  observed = deserializer.deserialize({ output: 'geometry', target: 'path', addMetaData: false }, sourceSvg)
442
447
  t.is(observed.length, 2)
@@ -456,9 +461,10 @@ test('deserialize : instantiate shape with a nested hole to objects', (t) => {
456
461
  `
457
462
 
458
463
  let observed = deserializer.deserialize({ output: 'geometry', target: 'geom2', addMetaData: false }, sourceSvg)
459
- t.is(observed.length, 4)
464
+ t.is(observed.length, 1)
460
465
  let shape = observed[0]
461
- t.is(shape.sides.length, 38)
466
+ t.is(shape.sides.length, 4)
467
+ t.true(geometries.geom2.isA(shape))
462
468
 
463
469
  observed = deserializer.deserialize({ output: 'geometry', target: 'path', addMetaData: false }, sourceSvg)
464
470
  t.is(observed.length, 4)