@jscad/modeling 3.0.2-alpha.0 → 3.0.3-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 +8 -0
- package/dist/jscad-modeling.es.js +2 -2
- package/dist/jscad-modeling.min.js +2 -2
- package/package.json +2 -2
- package/src/colors/colorize.test.js +1 -1
- package/src/geometries/geom2/index.d.ts +0 -2
- package/src/geometries/geom2/index.js +0 -2
- package/src/geometries/geom3/applyTransforms.test.js +2 -2
- package/src/geometries/geom3/clone.test.js +2 -2
- package/src/geometries/geom3/create.js +1 -9
- package/src/geometries/geom3/{fromPoints.d.ts → fromVertices.d.ts} +1 -1
- package/src/geometries/geom3/{fromPoints.js → fromVertices.js} +3 -2
- package/src/geometries/geom3/{fromPoints.test.js → fromVertices.test.js} +6 -6
- package/src/geometries/geom3/{fromPointsConvex.d.ts → fromVerticesConvex.d.ts} +1 -1
- package/src/geometries/geom3/fromVerticesConvex.js +25 -0
- package/src/geometries/geom3/{fromPointsConvex.test.js → fromVerticesConvex.test.js} +3 -3
- package/src/geometries/geom3/index.d.ts +3 -5
- package/src/geometries/geom3/index.js +4 -6
- package/src/geometries/geom3/invert.test.js +2 -2
- package/src/geometries/geom3/isA.test.js +2 -2
- package/src/geometries/geom3/toString.test.js +2 -2
- package/src/geometries/geom3/{toPoints.d.ts → toVertices.d.ts} +1 -1
- package/src/geometries/geom3/{toPoints.js → toVertices.js} +3 -2
- package/src/geometries/geom3/{toPoints.test.js → toVertices.test.js} +4 -4
- package/src/geometries/geom3/transform.test.js +2 -2
- package/src/geometries/geom3/validate.test.js +4 -4
- package/src/geometries/index.d.ts +1 -0
- package/src/geometries/index.js +1 -0
- package/src/geometries/path2/create.js +1 -10
- package/src/geometries/path2/index.d.ts +0 -2
- package/src/geometries/path2/index.js +0 -2
- package/src/geometries/path3/applyTransforms.js +22 -0
- package/src/geometries/path3/applyTransforms.test.js +28 -0
- package/src/geometries/path3/close.d.ts +3 -0
- package/src/geometries/path3/close.js +31 -0
- package/src/geometries/path3/close.test.js +43 -0
- package/src/geometries/path3/concat.d.ts +3 -0
- package/src/geometries/path3/concat.js +36 -0
- package/src/geometries/path3/concat.test.js +35 -0
- package/src/geometries/path3/create.d.ts +4 -0
- package/src/geometries/path3/create.js +30 -0
- package/src/geometries/path3/create.test.js +8 -0
- package/src/geometries/path3/equals.d.ts +3 -0
- package/src/geometries/path3/equals.js +48 -0
- package/src/geometries/path3/equals.test.js +38 -0
- package/src/geometries/path3/fromVertices.d.ts +8 -0
- package/src/geometries/path3/fromVertices.js +45 -0
- package/src/geometries/path3/fromVertices.test.js +33 -0
- package/src/geometries/path3/index.d.ts +13 -0
- package/src/geometries/path3/index.js +21 -0
- package/src/geometries/path3/isA.d.ts +3 -0
- package/src/geometries/path3/isA.js +20 -0
- package/src/geometries/path3/isA.test.js +19 -0
- package/src/geometries/path3/reverse.d.ts +3 -0
- package/src/geometries/path3/reverse.js +19 -0
- package/src/geometries/path3/reverse.test.js +9 -0
- package/src/geometries/path3/toString.d.ts +3 -0
- package/src/geometries/path3/toString.js +24 -0
- package/src/geometries/path3/toVertices.d.ts +4 -0
- package/src/geometries/path3/toVertices.js +16 -0
- package/src/geometries/path3/toVertices.test.js +13 -0
- package/src/geometries/path3/transform.d.ts +4 -0
- package/src/geometries/path3/transform.js +21 -0
- package/src/geometries/path3/transform.test.js +50 -0
- package/src/geometries/path3/type.d.ts +10 -0
- package/src/geometries/path3/validate.d.ts +1 -0
- package/src/geometries/path3/validate.js +41 -0
- package/src/geometries/poly2/create.js +1 -6
- package/src/geometries/poly3/create.js +1 -6
- package/src/operations/booleans/intersectGeom3.test.js +4 -4
- package/src/operations/booleans/subtractGeom3.test.js +4 -4
- package/src/operations/booleans/unionGeom3.test.js +5 -5
- package/src/operations/extrusions/extrudeFromSlices.test.js +6 -6
- package/src/operations/extrusions/extrudeLinear.test.js +8 -8
- package/src/operations/extrusions/extrudeRotate.test.js +12 -12
- package/src/operations/hulls/hull.test.js +5 -5
- package/src/operations/hulls/hullChain.test.js +5 -5
- package/src/operations/hulls/toUniquePoints.js +2 -2
- package/src/operations/modifiers/generalize.test.js +6 -6
- package/src/operations/modifiers/insertTjunctions.test.js +2 -2
- package/src/operations/modifiers/retessellate.test.js +10 -10
- package/src/operations/modifiers/snap.test.js +4 -4
- package/src/operations/offsets/offsetGeom3.test.js +4 -4
- package/src/operations/transforms/center.test.js +7 -7
- package/src/operations/transforms/mirror.test.js +7 -7
- package/src/operations/transforms/rotate.test.js +7 -7
- package/src/operations/transforms/scale.test.js +7 -7
- package/src/operations/transforms/transform.test.js +2 -2
- package/src/operations/transforms/translate.test.js +7 -7
- package/src/primitives/cube.test.js +4 -4
- package/src/primitives/cuboid.test.js +4 -4
- package/src/primitives/cylinder.test.js +5 -5
- package/src/primitives/cylinderElliptic.test.js +9 -9
- package/src/primitives/ellipsoid.test.js +5 -5
- package/src/primitives/geodesicSphere.test.js +4 -4
- package/src/primitives/polyhedron.test.js +2 -2
- package/src/primitives/roundedCuboid.test.js +7 -7
- package/src/primitives/roundedCylinder.test.js +9 -9
- package/src/primitives/sphere.test.js +5 -5
- package/src/primitives/torus.test.js +4 -4
- package/src/geometries/geom2/fromCompactBinary.d.ts +0 -3
- package/src/geometries/geom2/fromCompactBinary.js +0 -40
- package/src/geometries/geom2/fromToCompactBinary.test.js +0 -100
- package/src/geometries/geom2/toCompactBinary.d.ts +0 -3
- package/src/geometries/geom2/toCompactBinary.js +0 -56
- package/src/geometries/geom3/fromCompactBinary.d.ts +0 -3
- package/src/geometries/geom3/fromCompactBinary.js +0 -42
- package/src/geometries/geom3/fromPointsConvex.js +0 -25
- package/src/geometries/geom3/fromToCompactBinary.test.js +0 -139
- package/src/geometries/geom3/toCompactBinary.d.ts +0 -3
- package/src/geometries/geom3/toCompactBinary.js +0 -66
- package/src/geometries/path2/fromCompactBinary.d.ts +0 -3
- package/src/geometries/path2/fromCompactBinary.js +0 -31
- package/src/geometries/path2/fromToCompactBinary.test.js +0 -114
- package/src/geometries/path2/toCompactBinary.d.ts +0 -3
- package/src/geometries/path2/toCompactBinary.js +0 -50
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import test from 'ava'
|
|
2
|
-
|
|
3
|
-
import { fromCompactBinary, toCompactBinary, create, fromPoints } from './index.js'
|
|
4
|
-
|
|
5
|
-
test('toCompactBinary: converts path2 into a compact form', (t) => {
|
|
6
|
-
const geometry1 = create()
|
|
7
|
-
const compacted1 = toCompactBinary(geometry1)
|
|
8
|
-
const expected1 = new Float32Array(
|
|
9
|
-
[
|
|
10
|
-
2, // type
|
|
11
|
-
1, 0, 0, 0, // transforms
|
|
12
|
-
0, 1, 0, 0,
|
|
13
|
-
0, 0, 1, 0,
|
|
14
|
-
0, 0, 0, 1,
|
|
15
|
-
0, // isClosed
|
|
16
|
-
-1, -1, -1, -1 // color
|
|
17
|
-
]
|
|
18
|
-
)
|
|
19
|
-
|
|
20
|
-
t.deepEqual(compacted1, expected1)
|
|
21
|
-
|
|
22
|
-
const points = [[0, 0], [1, 0], [0, 1]]
|
|
23
|
-
const geometry2 = fromPoints({ closed: true }, points)
|
|
24
|
-
const compacted2 = toCompactBinary(geometry2)
|
|
25
|
-
const expected2 = new Float32Array(
|
|
26
|
-
[
|
|
27
|
-
2, // type
|
|
28
|
-
1, 0, 0, 0, // transforms
|
|
29
|
-
0, 1, 0, 0,
|
|
30
|
-
0, 0, 1, 0,
|
|
31
|
-
0, 0, 0, 1,
|
|
32
|
-
1, // closed/open flag
|
|
33
|
-
-1, -1, -1, -1, // color
|
|
34
|
-
0, 0, // points
|
|
35
|
-
1, 0,
|
|
36
|
-
0, 1
|
|
37
|
-
]
|
|
38
|
-
)
|
|
39
|
-
|
|
40
|
-
t.deepEqual(compacted2, expected2)
|
|
41
|
-
|
|
42
|
-
// test color as well
|
|
43
|
-
geometry2.color = [1, 2, 3, 4]
|
|
44
|
-
const compacted3 = toCompactBinary(geometry2)
|
|
45
|
-
const expected3 = new Float32Array(
|
|
46
|
-
[
|
|
47
|
-
2, // type
|
|
48
|
-
1, 0, 0, 0, // transforms
|
|
49
|
-
0, 1, 0, 0,
|
|
50
|
-
0, 0, 1, 0,
|
|
51
|
-
0, 0, 0, 1,
|
|
52
|
-
1, // closed/open flag
|
|
53
|
-
1, 2, 3, 4, // color
|
|
54
|
-
0, 0, // points
|
|
55
|
-
1, 0,
|
|
56
|
-
0, 1
|
|
57
|
-
]
|
|
58
|
-
)
|
|
59
|
-
|
|
60
|
-
t.deepEqual(compacted3, expected3)
|
|
61
|
-
})
|
|
62
|
-
|
|
63
|
-
test('fromCompactBinary: convert a compact form into a path2', (t) => {
|
|
64
|
-
const compacted1 = [
|
|
65
|
-
2, // type
|
|
66
|
-
1, 0, 0, 0, // transforms
|
|
67
|
-
0, 1, 0, 0,
|
|
68
|
-
0, 0, 1, 0,
|
|
69
|
-
0, 0, 0, 1,
|
|
70
|
-
0, // isClosed
|
|
71
|
-
-1, -1, -1, -1 // color
|
|
72
|
-
]
|
|
73
|
-
const expected1 = create()
|
|
74
|
-
const geometry1 = fromCompactBinary(compacted1)
|
|
75
|
-
|
|
76
|
-
t.deepEqual(geometry1, expected1)
|
|
77
|
-
|
|
78
|
-
const compacted2 = [
|
|
79
|
-
2, // type
|
|
80
|
-
1, 0, 0, 0, // transforms
|
|
81
|
-
0, 1, 0, 0,
|
|
82
|
-
0, 0, 1, 0,
|
|
83
|
-
0, 0, 0, 1,
|
|
84
|
-
1, // closed/open flag
|
|
85
|
-
-1, -1, -1, -1, // color
|
|
86
|
-
0, 0, // points
|
|
87
|
-
1, 0,
|
|
88
|
-
0, 1
|
|
89
|
-
]
|
|
90
|
-
const points = [[0, 0], [1, 0], [0, 1]]
|
|
91
|
-
const expected2 = fromPoints({ closed: true }, points)
|
|
92
|
-
const geometry2 = fromCompactBinary(compacted2)
|
|
93
|
-
|
|
94
|
-
t.deepEqual(geometry2, expected2)
|
|
95
|
-
|
|
96
|
-
// test color as well
|
|
97
|
-
const compacted3 = [
|
|
98
|
-
2, // type
|
|
99
|
-
1, 0, 0, 0, // transforms
|
|
100
|
-
0, 1, 0, 0,
|
|
101
|
-
0, 0, 1, 0,
|
|
102
|
-
0, 0, 0, 1,
|
|
103
|
-
1, // closed/open flag
|
|
104
|
-
5, 6, 7, 8, // color
|
|
105
|
-
0, 0, // points
|
|
106
|
-
1, 0,
|
|
107
|
-
0, 1
|
|
108
|
-
]
|
|
109
|
-
const expected3 = fromPoints({ closed: true }, points)
|
|
110
|
-
expected3.color = [5, 6, 7, 8]
|
|
111
|
-
const geometry3 = fromCompactBinary(compacted3)
|
|
112
|
-
|
|
113
|
-
t.deepEqual(geometry3, expected3)
|
|
114
|
-
})
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Produce a compact binary representation from the given path.
|
|
3
|
-
* @param {Path2} geometry - the path geometry
|
|
4
|
-
* @returns {TypedArray} compact binary representation
|
|
5
|
-
* @alias module:modeling/geometries/path2.toCompactBinary
|
|
6
|
-
*/
|
|
7
|
-
export const toCompactBinary = (geometry) => {
|
|
8
|
-
const points = geometry.points
|
|
9
|
-
const transforms = geometry.transforms
|
|
10
|
-
let color = [-1, -1, -1, -1]
|
|
11
|
-
if (geometry.color) color = geometry.color
|
|
12
|
-
|
|
13
|
-
// FIXME why Float32Array?
|
|
14
|
-
const compacted = new Float32Array(1 + 16 + 1 + 4 + (points.length * 2)) // type + transforms + isClosed + color + points data
|
|
15
|
-
|
|
16
|
-
compacted[0] = 2 // type code: 0 => geom2, 1 => geom3 , 2 => path2
|
|
17
|
-
|
|
18
|
-
compacted[1] = transforms[0]
|
|
19
|
-
compacted[2] = transforms[1]
|
|
20
|
-
compacted[3] = transforms[2]
|
|
21
|
-
compacted[4] = transforms[3]
|
|
22
|
-
compacted[5] = transforms[4]
|
|
23
|
-
compacted[6] = transforms[5]
|
|
24
|
-
compacted[7] = transforms[6]
|
|
25
|
-
compacted[8] = transforms[7]
|
|
26
|
-
compacted[9] = transforms[8]
|
|
27
|
-
compacted[10] = transforms[9]
|
|
28
|
-
compacted[11] = transforms[10]
|
|
29
|
-
compacted[12] = transforms[11]
|
|
30
|
-
compacted[13] = transforms[12]
|
|
31
|
-
compacted[14] = transforms[13]
|
|
32
|
-
compacted[15] = transforms[14]
|
|
33
|
-
compacted[16] = transforms[15]
|
|
34
|
-
|
|
35
|
-
compacted[17] = geometry.isClosed ? 1 : 0
|
|
36
|
-
|
|
37
|
-
compacted[18] = color[0]
|
|
38
|
-
compacted[19] = color[1]
|
|
39
|
-
compacted[20] = color[2]
|
|
40
|
-
compacted[21] = color[3]
|
|
41
|
-
|
|
42
|
-
for (let j = 0; j < points.length; j++) {
|
|
43
|
-
const ci = j * 2 + 22
|
|
44
|
-
const point = points[j]
|
|
45
|
-
compacted[ci] = point[0]
|
|
46
|
-
compacted[ci + 1] = point[1]
|
|
47
|
-
}
|
|
48
|
-
// TODO: how about custom properties or fields ?
|
|
49
|
-
return compacted
|
|
50
|
-
}
|