@jscad/svg-deserializer 3.0.0-alpha.0 → 3.0.1-alpha.0
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 +11 -0
- package/LICENSE +1 -1
- package/dist/jscad-svg-deserializer.es.js +3 -3
- package/dist/jscad-svg-deserializer.min.js +3 -3
- package/package.json +5 -4
- package/rollup.config.js +1 -1
- package/src/index.js +3 -0
- package/src/shapesMapGeometry.js +13 -11
- package/src/shapesMapJscad.js +8 -8
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jscad/svg-deserializer",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.1-alpha.0",
|
|
4
4
|
"description": "SVG Deserializer for JSCAD",
|
|
5
5
|
"homepage": "https://openjscad.xyz/",
|
|
6
6
|
"repository": "https://github.com/jscad/OpenJSCAD.org",
|
|
@@ -37,8 +37,9 @@
|
|
|
37
37
|
],
|
|
38
38
|
"license": "MIT",
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@jscad/array-utils": "3.0.
|
|
41
|
-
"@jscad/
|
|
40
|
+
"@jscad/array-utils": "3.0.1-alpha.0",
|
|
41
|
+
"@jscad/io-utils": "3.0.1-alpha.0",
|
|
42
|
+
"@jscad/modeling": "3.0.1-alpha.0",
|
|
42
43
|
"saxes": "6.0.0"
|
|
43
44
|
},
|
|
44
45
|
"devDependencies": {
|
|
@@ -51,5 +52,5 @@
|
|
|
51
52
|
"rollup-plugin-banner": "^0.2.1",
|
|
52
53
|
"rollup-plugin-version-injector": "^1.3.3"
|
|
53
54
|
},
|
|
54
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "0660b5c1f1a5faf54d4cfae1cb85bb94182a8d32"
|
|
55
56
|
}
|
package/rollup.config.js
CHANGED
|
@@ -24,6 +24,6 @@ export default {
|
|
|
24
24
|
nodeResolve(),
|
|
25
25
|
banner('<%= pkg.description %>\n@module <%= pkg.name %>\n@version <%= pkg.version %>\n@license <%= pkg.license %>'),
|
|
26
26
|
versionInjector({ injectInComments: { fileRegexp: /\.(html)$/ }, logLevel: 'warn' }),
|
|
27
|
-
terser({ compress: { module: true }, mangle: false, format: { comments: 'some'} })
|
|
27
|
+
terser({ compress: { module: true }, mangle: false, format: { comments: 'some' } })
|
|
28
28
|
]
|
|
29
29
|
}
|
package/src/index.js
CHANGED
|
@@ -2,6 +2,7 @@ import saxes from 'saxes'
|
|
|
2
2
|
|
|
3
3
|
import { colorize, mirrorX, mirrorY, rotateZ, translate, scale } from '@jscad/modeling'
|
|
4
4
|
import { toArray } from '@jscad/array-utils'
|
|
5
|
+
import { ensureString } from '@jscad/io-utils'
|
|
5
6
|
|
|
6
7
|
import { pxPmm } from './constants.js'
|
|
7
8
|
import { cagLengthX, cagLengthY, svgColorForTarget } from './helpers.js'
|
|
@@ -47,6 +48,8 @@ const deserialize = (options, input) => {
|
|
|
47
48
|
version
|
|
48
49
|
}
|
|
49
50
|
options = Object.assign({}, defaults, options)
|
|
51
|
+
|
|
52
|
+
input = ensureString(input)
|
|
50
53
|
return options.output === 'script' ? translateScript(input, options) : instantiate(input, options)
|
|
51
54
|
}
|
|
52
55
|
|
package/src/shapesMapGeometry.js
CHANGED
|
@@ -185,8 +185,9 @@ const expandPath = (obj, svgUnitsPmm, svgUnitsX, svgUnitsY, svgUnitsV, svgGroups
|
|
|
185
185
|
pc = false
|
|
186
186
|
}
|
|
187
187
|
const ensurePath = () => {
|
|
188
|
-
if (!paths[pathName])
|
|
189
|
-
|
|
188
|
+
if (!paths[pathName]) {
|
|
189
|
+
paths[pathName] = path2.fromPoints({}, [])
|
|
190
|
+
}
|
|
190
191
|
}
|
|
191
192
|
for (let j = 0; j < obj.commands.length; j++) {
|
|
192
193
|
const co = obj.commands[j]
|
|
@@ -328,8 +329,8 @@ const expandPath = (obj, svgUnitsPmm, svgUnitsX, svgUnitsY, svgUnitsV, svgGroups
|
|
|
328
329
|
qy = cy + parseFloat(pts[i++])
|
|
329
330
|
cx = cx + parseFloat(pts[i++])
|
|
330
331
|
cy = cy + parseFloat(pts[i++])
|
|
331
|
-
const q1 = [p0[0] + (2/3) * (qx - p0[0]), p0[1] + (2/3) * (qy - p0[1])]
|
|
332
|
-
const q2 = [q1[0] + (1/3) * (cx - p0[0]), q1[1] + (1/3) * (cy - p0[1])]
|
|
332
|
+
const q1 = [p0[0] + (2 / 3) * (qx - p0[0]), p0[1] + (2 / 3) * (qy - p0[1])]
|
|
333
|
+
const q2 = [q1[0] + (1 / 3) * (cx - p0[0]), q1[1] + (1 / 3) * (cy - p0[1])]
|
|
333
334
|
ensurePath()
|
|
334
335
|
paths[pathName] = path2.appendBezier({
|
|
335
336
|
segments,
|
|
@@ -351,8 +352,8 @@ const expandPath = (obj, svgUnitsPmm, svgUnitsX, svgUnitsY, svgUnitsV, svgGroups
|
|
|
351
352
|
qy = parseFloat(pts[i++])
|
|
352
353
|
cx = parseFloat(pts[i++])
|
|
353
354
|
cy = parseFloat(pts[i++])
|
|
354
|
-
const q1 = [p0[0] + (2/3) * (qx - p0[0]), p0[1] + (2/3) * (qy - p0[1])]
|
|
355
|
-
const q2 = [q1[0] + (1/3) * (cx - p0[0]), q1[1] + (1/3) * (cy - p0[1])]
|
|
355
|
+
const q1 = [p0[0] + (2 / 3) * (qx - p0[0]), p0[1] + (2 / 3) * (qy - p0[1])]
|
|
356
|
+
const q2 = [q1[0] + (1 / 3) * (cx - p0[0]), q1[1] + (1 / 3) * (cy - p0[1])]
|
|
356
357
|
ensurePath()
|
|
357
358
|
paths[pathName] = path2.appendBezier({
|
|
358
359
|
segments,
|
|
@@ -372,8 +373,8 @@ const expandPath = (obj, svgUnitsPmm, svgUnitsX, svgUnitsY, svgUnitsV, svgGroups
|
|
|
372
373
|
const p0 = [cx, cy] // previous point
|
|
373
374
|
cx = cx + parseFloat(pts[i++])
|
|
374
375
|
cy = cy + parseFloat(pts[i++])
|
|
375
|
-
const q1 = [p0[0] + (2/3) * (qx - p0[0]), p0[1] + (2/3) * (qy - p0[1])]
|
|
376
|
-
const q2 = [q1[0] + (1/3) * (cx - p0[0]), q1[1] + (1/3) * (cy - p0[1])]
|
|
376
|
+
const q1 = [p0[0] + (2 / 3) * (qx - p0[0]), p0[1] + (2 / 3) * (qy - p0[1])]
|
|
377
|
+
const q2 = [q1[0] + (1 / 3) * (cx - p0[0]), q1[1] + (1 / 3) * (cy - p0[1])]
|
|
377
378
|
ensurePath()
|
|
378
379
|
paths[pathName] = path2.appendBezier({
|
|
379
380
|
segments,
|
|
@@ -393,8 +394,8 @@ const expandPath = (obj, svgUnitsPmm, svgUnitsX, svgUnitsY, svgUnitsV, svgGroups
|
|
|
393
394
|
const p0 = [cx, cy] // previous point
|
|
394
395
|
cx = parseFloat(pts[i++])
|
|
395
396
|
cy = parseFloat(pts[i++])
|
|
396
|
-
const q1 = [p0[0] + (2/3) * (qx - p0[0]), p0[1] + (2/3) * (qy - p0[1])]
|
|
397
|
-
const q2 = [q1[0] + (1/3) * (cx - p0[0]), q1[1] + (1/3) * (cy - p0[1])]
|
|
397
|
+
const q1 = [p0[0] + (2 / 3) * (qx - p0[0]), p0[1] + (2 / 3) * (qy - p0[1])]
|
|
398
|
+
const q2 = [q1[0] + (1 / 3) * (cx - p0[0]), q1[1] + (1 / 3) * (cy - p0[1])]
|
|
398
399
|
ensurePath()
|
|
399
400
|
paths[pathName] = path2.appendBezier({
|
|
400
401
|
segments,
|
|
@@ -419,7 +420,8 @@ const expandPath = (obj, svgUnitsPmm, svgUnitsX, svgUnitsY, svgUnitsV, svgGroups
|
|
|
419
420
|
cy = cy + parseFloat(pts[i++])
|
|
420
421
|
ensurePath()
|
|
421
422
|
paths[pathName] = path2.appendBezier({
|
|
422
|
-
segments,
|
|
423
|
+
segments,
|
|
424
|
+
controlPoints: [
|
|
423
425
|
svg2cag([x1, y1], svgUnitsPmm),
|
|
424
426
|
svg2cag([bx, by], svgUnitsPmm),
|
|
425
427
|
svg2cag([cx, cy], svgUnitsPmm)
|
package/src/shapesMapJscad.js
CHANGED
|
@@ -258,8 +258,8 @@ const path = (obj, svgUnitsPmm, svgUnitsX, svgUnitsY, svgUnitsV, params, svgGrou
|
|
|
258
258
|
qy = cy + parseFloat(pts.shift())
|
|
259
259
|
cx = cx + parseFloat(pts.shift()) // end point
|
|
260
260
|
cy = cy + parseFloat(pts.shift())
|
|
261
|
-
const q1 = [p0[0] + (2/3) * (qx - p0[0]), p0[1] + (2/3) * (qy - p0[1])]
|
|
262
|
-
const q2 = [q1[0] + (1/3) * (cx - p0[0]), q1[1] + (1/3) * (cy - p0[1])]
|
|
261
|
+
const q1 = [p0[0] + (2 / 3) * (qx - p0[0]), p0[1] + (2 / 3) * (qy - p0[1])]
|
|
262
|
+
const q2 = [q1[0] + (1 / 3) * (cx - p0[0]), q1[1] + (1 / 3) * (cy - p0[1])]
|
|
263
263
|
tmpCode += `${indent}${pathName} = path2.appendBezier({segments: ${segments}, controlPoints: [[${svg2cag(q1, svgUnitsPmm)}], [${svg2cag(q2, svgUnitsPmm)}], [${svg2cag([cx, cy], svgUnitsPmm)}]]}, ${pathName})\n`
|
|
264
264
|
const rf = reflect(qx, qy, cx, cy)
|
|
265
265
|
qx = rf[0]
|
|
@@ -273,8 +273,8 @@ const path = (obj, svgUnitsPmm, svgUnitsX, svgUnitsY, svgUnitsV, params, svgGrou
|
|
|
273
273
|
qy = parseFloat(pts.shift())
|
|
274
274
|
cx = parseFloat(pts.shift()) // end point
|
|
275
275
|
cy = parseFloat(pts.shift())
|
|
276
|
-
const q1 = [p0[0] + (2/3) * (qx - p0[0]), p0[1] + (2/3) * (qy - p0[1])]
|
|
277
|
-
const q2 = [q1[0] + (1/3) * (cx - p0[0]), q1[1] + (1/3) * (cy - p0[1])]
|
|
276
|
+
const q1 = [p0[0] + (2 / 3) * (qx - p0[0]), p0[1] + (2 / 3) * (qy - p0[1])]
|
|
277
|
+
const q2 = [q1[0] + (1 / 3) * (cx - p0[0]), q1[1] + (1 / 3) * (cy - p0[1])]
|
|
278
278
|
tmpCode += `${indent}${pathName} = path2.appendBezier({segments: ${segments}, controlPoints: [[${svg2cag(q1, svgUnitsPmm)}], [${svg2cag(q2, svgUnitsPmm)}], [${svg2cag([cx, cy], svgUnitsPmm)}]]}, ${pathName})\n`
|
|
279
279
|
const rf = reflect(qx, qy, cx, cy)
|
|
280
280
|
qx = rf[0]
|
|
@@ -286,8 +286,8 @@ const path = (obj, svgUnitsPmm, svgUnitsX, svgUnitsY, svgUnitsV, params, svgGrou
|
|
|
286
286
|
const p0 = [cx, cy] // previous point
|
|
287
287
|
cx = cx + parseFloat(pts.shift()) // end point
|
|
288
288
|
cy = cy + parseFloat(pts.shift())
|
|
289
|
-
const q1 = [p0[0] + (2/3) * (qx - p0[0]), p0[1] + (2/3) * (qy - p0[1])]
|
|
290
|
-
const q2 = [q1[0] + (1/3) * (cx - p0[0]), q1[1] + (1/3) * (cy - p0[1])]
|
|
289
|
+
const q1 = [p0[0] + (2 / 3) * (qx - p0[0]), p0[1] + (2 / 3) * (qy - p0[1])]
|
|
290
|
+
const q2 = [q1[0] + (1 / 3) * (cx - p0[0]), q1[1] + (1 / 3) * (cy - p0[1])]
|
|
291
291
|
tmpCode += `${indent}${pathName} = path2.appendBezier({segments: ${segments}, controlPoints: [[[${svg2cag(q1, svgUnitsPmm)}], [${svg2cag(q2, svgUnitsPmm)}], [${svg2cag([cx, cy], svgUnitsPmm)}]]}, ${pathName})\n`
|
|
292
292
|
const rf = reflect(qx, qy, cx, cy)
|
|
293
293
|
qx = rf[0]
|
|
@@ -299,8 +299,8 @@ const path = (obj, svgUnitsPmm, svgUnitsX, svgUnitsY, svgUnitsV, params, svgGrou
|
|
|
299
299
|
const p0 = [cx, cy] // previous point
|
|
300
300
|
cx = parseFloat(pts.shift()) // end point
|
|
301
301
|
cy = parseFloat(pts.shift())
|
|
302
|
-
const q1 = [p0[0] + (2/3) * (qx - p0[0]), p0[1] + (2/3) * (qy - p0[1])]
|
|
303
|
-
const q2 = [q1[0] + (1/3) * (cx - p0[0]), q1[1] + (1/3) * (cy - p0[1])]
|
|
302
|
+
const q1 = [p0[0] + (2 / 3) * (qx - p0[0]), p0[1] + (2 / 3) * (qy - p0[1])]
|
|
303
|
+
const q2 = [q1[0] + (1 / 3) * (cx - p0[0]), q1[1] + (1 / 3) * (cy - p0[1])]
|
|
304
304
|
tmpCode += `${indent}${pathName} = path2.appendBezier({segments: ${segments}, controlPoints: [[[${svg2cag(q1, svgUnitsPmm)}], [${svg2cag(q2, svgUnitsPmm)}], [${svg2cag([cx, cy], svgUnitsPmm)}]]}, ${pathName})\n`
|
|
305
305
|
const rf = reflect(qx, qy, cx, cy)
|
|
306
306
|
qx = rf[0]
|