@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.
Files changed (116) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/jscad-modeling.es.js +2 -2
  3. package/dist/jscad-modeling.min.js +2 -2
  4. package/package.json +2 -2
  5. package/src/colors/colorize.test.js +1 -1
  6. package/src/geometries/geom2/index.d.ts +0 -2
  7. package/src/geometries/geom2/index.js +0 -2
  8. package/src/geometries/geom3/applyTransforms.test.js +2 -2
  9. package/src/geometries/geom3/clone.test.js +2 -2
  10. package/src/geometries/geom3/create.js +1 -9
  11. package/src/geometries/geom3/{fromPoints.d.ts → fromVertices.d.ts} +1 -1
  12. package/src/geometries/geom3/{fromPoints.js → fromVertices.js} +3 -2
  13. package/src/geometries/geom3/{fromPoints.test.js → fromVertices.test.js} +6 -6
  14. package/src/geometries/geom3/{fromPointsConvex.d.ts → fromVerticesConvex.d.ts} +1 -1
  15. package/src/geometries/geom3/fromVerticesConvex.js +25 -0
  16. package/src/geometries/geom3/{fromPointsConvex.test.js → fromVerticesConvex.test.js} +3 -3
  17. package/src/geometries/geom3/index.d.ts +3 -5
  18. package/src/geometries/geom3/index.js +4 -6
  19. package/src/geometries/geom3/invert.test.js +2 -2
  20. package/src/geometries/geom3/isA.test.js +2 -2
  21. package/src/geometries/geom3/toString.test.js +2 -2
  22. package/src/geometries/geom3/{toPoints.d.ts → toVertices.d.ts} +1 -1
  23. package/src/geometries/geom3/{toPoints.js → toVertices.js} +3 -2
  24. package/src/geometries/geom3/{toPoints.test.js → toVertices.test.js} +4 -4
  25. package/src/geometries/geom3/transform.test.js +2 -2
  26. package/src/geometries/geom3/validate.test.js +4 -4
  27. package/src/geometries/index.d.ts +1 -0
  28. package/src/geometries/index.js +1 -0
  29. package/src/geometries/path2/create.js +1 -10
  30. package/src/geometries/path2/index.d.ts +0 -2
  31. package/src/geometries/path2/index.js +0 -2
  32. package/src/geometries/path3/applyTransforms.js +22 -0
  33. package/src/geometries/path3/applyTransforms.test.js +28 -0
  34. package/src/geometries/path3/close.d.ts +3 -0
  35. package/src/geometries/path3/close.js +31 -0
  36. package/src/geometries/path3/close.test.js +43 -0
  37. package/src/geometries/path3/concat.d.ts +3 -0
  38. package/src/geometries/path3/concat.js +36 -0
  39. package/src/geometries/path3/concat.test.js +35 -0
  40. package/src/geometries/path3/create.d.ts +4 -0
  41. package/src/geometries/path3/create.js +30 -0
  42. package/src/geometries/path3/create.test.js +8 -0
  43. package/src/geometries/path3/equals.d.ts +3 -0
  44. package/src/geometries/path3/equals.js +48 -0
  45. package/src/geometries/path3/equals.test.js +38 -0
  46. package/src/geometries/path3/fromVertices.d.ts +8 -0
  47. package/src/geometries/path3/fromVertices.js +45 -0
  48. package/src/geometries/path3/fromVertices.test.js +33 -0
  49. package/src/geometries/path3/index.d.ts +13 -0
  50. package/src/geometries/path3/index.js +21 -0
  51. package/src/geometries/path3/isA.d.ts +3 -0
  52. package/src/geometries/path3/isA.js +20 -0
  53. package/src/geometries/path3/isA.test.js +19 -0
  54. package/src/geometries/path3/reverse.d.ts +3 -0
  55. package/src/geometries/path3/reverse.js +19 -0
  56. package/src/geometries/path3/reverse.test.js +9 -0
  57. package/src/geometries/path3/toString.d.ts +3 -0
  58. package/src/geometries/path3/toString.js +24 -0
  59. package/src/geometries/path3/toVertices.d.ts +4 -0
  60. package/src/geometries/path3/toVertices.js +16 -0
  61. package/src/geometries/path3/toVertices.test.js +13 -0
  62. package/src/geometries/path3/transform.d.ts +4 -0
  63. package/src/geometries/path3/transform.js +21 -0
  64. package/src/geometries/path3/transform.test.js +50 -0
  65. package/src/geometries/path3/type.d.ts +10 -0
  66. package/src/geometries/path3/validate.d.ts +1 -0
  67. package/src/geometries/path3/validate.js +41 -0
  68. package/src/geometries/poly2/create.js +1 -6
  69. package/src/geometries/poly3/create.js +1 -6
  70. package/src/operations/booleans/intersectGeom3.test.js +4 -4
  71. package/src/operations/booleans/subtractGeom3.test.js +4 -4
  72. package/src/operations/booleans/unionGeom3.test.js +5 -5
  73. package/src/operations/extrusions/extrudeFromSlices.test.js +6 -6
  74. package/src/operations/extrusions/extrudeLinear.test.js +8 -8
  75. package/src/operations/extrusions/extrudeRotate.test.js +12 -12
  76. package/src/operations/hulls/hull.test.js +5 -5
  77. package/src/operations/hulls/hullChain.test.js +5 -5
  78. package/src/operations/hulls/toUniquePoints.js +2 -2
  79. package/src/operations/modifiers/generalize.test.js +6 -6
  80. package/src/operations/modifiers/insertTjunctions.test.js +2 -2
  81. package/src/operations/modifiers/retessellate.test.js +10 -10
  82. package/src/operations/modifiers/snap.test.js +4 -4
  83. package/src/operations/offsets/offsetGeom3.test.js +4 -4
  84. package/src/operations/transforms/center.test.js +7 -7
  85. package/src/operations/transforms/mirror.test.js +7 -7
  86. package/src/operations/transforms/rotate.test.js +7 -7
  87. package/src/operations/transforms/scale.test.js +7 -7
  88. package/src/operations/transforms/transform.test.js +2 -2
  89. package/src/operations/transforms/translate.test.js +7 -7
  90. package/src/primitives/cube.test.js +4 -4
  91. package/src/primitives/cuboid.test.js +4 -4
  92. package/src/primitives/cylinder.test.js +5 -5
  93. package/src/primitives/cylinderElliptic.test.js +9 -9
  94. package/src/primitives/ellipsoid.test.js +5 -5
  95. package/src/primitives/geodesicSphere.test.js +4 -4
  96. package/src/primitives/polyhedron.test.js +2 -2
  97. package/src/primitives/roundedCuboid.test.js +7 -7
  98. package/src/primitives/roundedCylinder.test.js +9 -9
  99. package/src/primitives/sphere.test.js +5 -5
  100. package/src/primitives/torus.test.js +4 -4
  101. package/src/geometries/geom2/fromCompactBinary.d.ts +0 -3
  102. package/src/geometries/geom2/fromCompactBinary.js +0 -40
  103. package/src/geometries/geom2/fromToCompactBinary.test.js +0 -100
  104. package/src/geometries/geom2/toCompactBinary.d.ts +0 -3
  105. package/src/geometries/geom2/toCompactBinary.js +0 -56
  106. package/src/geometries/geom3/fromCompactBinary.d.ts +0 -3
  107. package/src/geometries/geom3/fromCompactBinary.js +0 -42
  108. package/src/geometries/geom3/fromPointsConvex.js +0 -25
  109. package/src/geometries/geom3/fromToCompactBinary.test.js +0 -139
  110. package/src/geometries/geom3/toCompactBinary.d.ts +0 -3
  111. package/src/geometries/geom3/toCompactBinary.js +0 -66
  112. package/src/geometries/path2/fromCompactBinary.d.ts +0 -3
  113. package/src/geometries/path2/fromCompactBinary.js +0 -31
  114. package/src/geometries/path2/fromToCompactBinary.test.js +0 -114
  115. package/src/geometries/path2/toCompactBinary.d.ts +0 -3
  116. 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,3 +0,0 @@
1
- import type { Path2 } from './type.d.ts'
2
-
3
- export function toCompactBinary(geometry: Path2): Float32Array
@@ -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
- }