@jscad/modeling 3.0.0-alpha.0 → 3.0.2-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 (161) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/LICENSE +1 -1
  3. package/dist/jscad-modeling.es.js +2 -2
  4. package/dist/jscad-modeling.min.js +2 -2
  5. package/package.json +2 -2
  6. package/rollup.config.js +1 -1
  7. package/src/colors/colorize.js +1 -5
  8. package/src/colors/colorize.test.js +8 -8
  9. package/src/geometries/geom2/transform.js +9 -1
  10. package/src/geometries/geom2/transform.test.js +57 -0
  11. package/src/geometries/geom3/fromPointsConvex.d.ts +4 -0
  12. package/src/geometries/geom3/fromPointsConvex.js +25 -0
  13. package/src/geometries/geom3/fromPointsConvex.test.js +32 -0
  14. package/src/geometries/geom3/index.d.ts +1 -0
  15. package/src/geometries/geom3/index.js +1 -0
  16. package/src/geometries/index.js +3 -4
  17. package/src/geometries/path2/appendBezier.js +1 -1
  18. package/src/geometries/poly3/index.js +1 -1
  19. package/src/geometries/poly3/measureBoundingBox.js +2 -0
  20. package/src/geometries/poly3/measureBoundingSphere.d.ts +2 -1
  21. package/src/geometries/poly3/measureBoundingSphere.js +25 -8
  22. package/src/geometries/poly3/measureBoundingSphere.test.js +12 -8
  23. package/src/geometries/poly3/type.d.ts +1 -1
  24. package/src/geometries/slice/validate.js +1 -2
  25. package/src/index.js +41 -0
  26. package/src/maths/index.js +1 -0
  27. package/src/maths/mat4/isOnlyTransformScale.js +1 -1
  28. package/src/measurements/measureAggregateArea.js +0 -1
  29. package/src/measurements/measureAggregateBoundingBox.js +0 -1
  30. package/src/measurements/measureAggregateEpsilon.js +0 -1
  31. package/src/measurements/measureAggregateVolume.js +0 -1
  32. package/src/measurements/measureArea.js +0 -1
  33. package/src/measurements/measureBoundingBox.js +0 -1
  34. package/src/measurements/measureBoundingSphere.js +2 -6
  35. package/src/measurements/measureEpsilon.js +0 -1
  36. package/src/measurements/measureVolume.js +0 -1
  37. package/src/operations/booleans/index.d.ts +1 -0
  38. package/src/operations/booleans/intersect.js +5 -5
  39. package/src/operations/booleans/intersect.test.js +6 -7
  40. package/src/operations/booleans/intersectGeom2.js +2 -6
  41. package/src/operations/booleans/intersectGeom2.test.js +25 -1
  42. package/src/operations/booleans/intersectGeom3.js +2 -6
  43. package/src/operations/booleans/intersectGeom3.test.js +5 -1
  44. package/src/operations/booleans/martinez/compareEvents.js +2 -7
  45. package/src/operations/booleans/martinez/connectEdges.js +30 -41
  46. package/src/operations/booleans/martinez/contour.js +1 -1
  47. package/src/operations/booleans/martinez/divideSegment.js +12 -11
  48. package/src/operations/booleans/martinez/fillQueue.js +24 -28
  49. package/src/operations/booleans/martinez/index.js +2 -1
  50. package/src/operations/booleans/martinez/possibleIntersection.js +41 -30
  51. package/src/operations/booleans/martinez/segmentIntersection.js +7 -9
  52. package/src/operations/booleans/martinez/splaytree.js +59 -457
  53. package/src/operations/booleans/martinez/subdivideSegments.js +4 -4
  54. package/src/operations/booleans/martinez/sweepEvent.js +3 -17
  55. package/src/operations/booleans/mayOverlap.js +0 -1
  56. package/src/operations/booleans/scission.d.ts +5 -0
  57. package/src/operations/booleans/scission.js +3 -5
  58. package/src/operations/booleans/scission.test.js +6 -0
  59. package/src/operations/booleans/subtract.js +5 -5
  60. package/src/operations/booleans/subtract.test.js +6 -7
  61. package/src/operations/booleans/subtractGeom2.js +2 -6
  62. package/src/operations/booleans/subtractGeom2.test.js +25 -1
  63. package/src/operations/booleans/subtractGeom3.js +2 -6
  64. package/src/operations/booleans/subtractGeom3.test.js +5 -1
  65. package/src/operations/booleans/trees/Node.js +25 -27
  66. package/src/operations/booleans/trees/PolygonTreeNode.js +153 -106
  67. package/src/operations/booleans/trees/Tree.js +9 -4
  68. package/src/operations/booleans/trees/splitLineSegmentByPlane.js +5 -3
  69. package/src/operations/booleans/trees/splitPolygonByPlane.d.ts +33 -0
  70. package/src/operations/booleans/trees/splitPolygonByPlane.js +39 -34
  71. package/src/operations/booleans/union.js +5 -5
  72. package/src/operations/booleans/union.test.js +6 -7
  73. package/src/operations/booleans/unionGeom2.js +2 -6
  74. package/src/operations/booleans/unionGeom2.test.js +25 -1
  75. package/src/operations/booleans/unionGeom3.js +2 -6
  76. package/src/operations/booleans/unionGeom3.test.js +6 -1
  77. package/src/operations/extrusions/extrudeFromSlices.test.js +8 -1
  78. package/src/operations/extrusions/extrudeHelical.js +2 -8
  79. package/src/operations/extrusions/extrudeLinear.js +1 -5
  80. package/src/operations/extrusions/extrudeLinear.test.js +7 -1
  81. package/src/operations/extrusions/extrudeRotate.js +3 -2
  82. package/src/operations/extrusions/extrudeRotate.test.js +13 -1
  83. package/src/operations/extrusions/extrudeWalls.js +3 -1
  84. package/src/operations/extrusions/project.js +1 -5
  85. package/src/operations/hulls/hull.js +6 -5
  86. package/src/operations/hulls/hull.test.js +56 -3
  87. package/src/operations/hulls/hullChain.js +11 -6
  88. package/src/operations/hulls/hullChain.test.js +12 -2
  89. package/src/operations/hulls/hullGeom2.js +5 -6
  90. package/src/operations/hulls/hullGeom3.js +9 -18
  91. package/src/operations/hulls/hullPath2.js +6 -7
  92. package/src/operations/hulls/hullPath2.test.js +1 -1
  93. package/src/operations/hulls/hullPoints2.d.ts +3 -0
  94. package/src/operations/hulls/hullPoints2.js +24 -30
  95. package/src/operations/hulls/hullPoints3.d.ts +4 -0
  96. package/src/operations/hulls/hullPoints3.js +21 -0
  97. package/src/operations/hulls/index.d.ts +2 -0
  98. package/src/operations/hulls/index.js +3 -1
  99. package/src/operations/modifiers/generalize.js +2 -6
  100. package/src/operations/modifiers/index.js +1 -1
  101. package/src/operations/modifiers/mergePolygons.js +2 -3
  102. package/src/operations/modifiers/reTesselateCoplanarPolygons.js +7 -7
  103. package/src/operations/modifiers/snap.js +2 -6
  104. package/src/operations/offsets/offset.js +1 -5
  105. package/src/operations/offsets/offsetFromPoints.test.js +0 -1
  106. package/src/operations/offsets/offsetGeom2.test.js +1 -0
  107. package/src/operations/offsets/offsetGeom3.js +0 -2
  108. package/src/operations/offsets/offsetGeom3.test.js +9 -1
  109. package/src/operations/offsets/offsetPath2.js +3 -3
  110. package/src/operations/transforms/align.js +8 -7
  111. package/src/operations/transforms/align.test.js +2 -2
  112. package/src/operations/transforms/center.js +6 -9
  113. package/src/operations/transforms/center.test.js +19 -1
  114. package/src/operations/transforms/mirror.js +5 -8
  115. package/src/operations/transforms/mirror.test.js +7 -7
  116. package/src/operations/transforms/rotate.js +5 -8
  117. package/src/operations/transforms/scale.js +5 -8
  118. package/src/operations/transforms/transform.js +2 -5
  119. package/src/operations/transforms/translate.js +5 -8
  120. package/src/primitives/arc.js +2 -0
  121. package/src/primitives/arc.test.js +11 -11
  122. package/src/primitives/circle.test.js +18 -8
  123. package/src/primitives/cube.test.js +10 -0
  124. package/src/primitives/cuboid.test.js +10 -0
  125. package/src/primitives/cylinder.test.js +12 -0
  126. package/src/primitives/cylinderElliptic.test.js +21 -1
  127. package/src/primitives/ellipse.test.js +18 -8
  128. package/src/primitives/ellipsoid.test.js +12 -0
  129. package/src/primitives/geodesicSphere.test.js +8 -0
  130. package/src/primitives/line.test.js +1 -1
  131. package/src/primitives/polygon.d.ts +1 -0
  132. package/src/primitives/polygon.js +13 -4
  133. package/src/primitives/polygon.test.js +15 -0
  134. package/src/primitives/polyhedron.js +1 -0
  135. package/src/primitives/polyhedron.test.js +8 -2
  136. package/src/primitives/rectangle.test.js +9 -3
  137. package/src/primitives/roundedCuboid.js +1 -1
  138. package/src/primitives/roundedCuboid.test.js +20 -4
  139. package/src/primitives/roundedCylinder.js +1 -1
  140. package/src/primitives/roundedCylinder.test.js +20 -0
  141. package/src/primitives/roundedRectangle.js +1 -1
  142. package/src/primitives/roundedRectangle.test.js +15 -6
  143. package/src/primitives/sphere.test.js +12 -0
  144. package/src/primitives/square.test.js +10 -4
  145. package/src/primitives/star.test.js +14 -6
  146. package/src/primitives/torus.js +1 -1
  147. package/src/primitives/torus.test.js +11 -1
  148. package/src/primitives/triangle.test.js +17 -9
  149. package/src/utils/coalesce.d.ts +3 -0
  150. package/src/utils/coalesce.js +20 -0
  151. package/src/utils/index.js +2 -2
  152. package/src/maths/mat4/leftMultiplyVec2.d.ts +0 -4
  153. package/src/maths/mat4/leftMultiplyVec2.js +0 -26
  154. package/src/maths/mat4/leftMultiplyVec3.d.ts +0 -4
  155. package/src/maths/mat4/leftMultiplyVec3.js +0 -27
  156. package/src/maths/mat4/mirror.d.ts +0 -4
  157. package/src/maths/mat4/mirror.js +0 -32
  158. package/src/maths/mat4/rightMultiplyVec2.d.ts +0 -4
  159. package/src/maths/mat4/rightMultiplyVec2.js +0 -27
  160. package/src/maths/mat4/rightMultiplyVec3.d.ts +0 -4
  161. package/src/maths/mat4/rightMultiplyVec3.js +0 -28
package/CHANGELOG.md CHANGED
@@ -3,6 +3,55 @@
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
+ ## [3.0.2-alpha.0](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/modeling@3.0.1-alpha.0...@jscad/modeling@3.0.2-alpha.0) (2025-09-06)
7
+
8
+ ### Bug Fixes
9
+
10
+ * **svg-deserializer:** svg path should return one geom2 ([e642de4](https://github.com/jscad/OpenJSCAD.org/commit/e642de4a6d9bfef09e33a2f7151731169e668324))
11
+
12
+ ### Features
13
+
14
+ * **modeling:** V2 api compatibility shim ([c96e6d4](https://github.com/jscad/OpenJSCAD.org/commit/c96e6d417f410a15578258c824d1c1a41ffbe721))
15
+
16
+ ### Performance Improvements
17
+
18
+ * **modeling:** changes to improve performance in booleans and extrusions ([#1384](https://github.com/jscad/OpenJSCAD.org/issues/1384)) ([9a1aa7a](https://github.com/jscad/OpenJSCAD.org/commit/9a1aa7ae0f65f55f3df06eb89bd69bf8335e1a48))
19
+
20
+ ## [3.0.1-alpha.0](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/modeling@2.10.0...@jscad/modeling@3.0.1-alpha.0) (2025-01-03)
21
+
22
+ ### Bug Fixes
23
+
24
+ * **all:** various fixes to pass tests ([5cb1d64](https://github.com/jscad/OpenJSCAD.org/commit/5cb1d648d3af1a4448d2c9a6a6acc701d38f36d3))
25
+ * **cli:** rework logic for generating blobs, both singular and multiple as parts ([f88669b](https://github.com/jscad/OpenJSCAD.org/commit/f88669b286d9564165f5c33944703fce730dfc1f))
26
+ * **modeling:** added geom3.fromPointsConvex() ([e23a5ab](https://github.com/jscad/OpenJSCAD.org/commit/e23a5ab55bb78d5e94b3562529fd100a5f163cf9))
27
+ * **modeling:** added new TS definitions for mat4, and adjusted doc strings ([9fa56b7](https://github.com/jscad/OpenJSCAD.org/commit/9fa56b7b72fc40d49794ee153fd9d29b2fede785))
28
+ * **modeling:** added orientation option to polygon ([cfa0e91](https://github.com/jscad/OpenJSCAD.org/commit/cfa0e9124c0df70d57502e4be7b29af31e03c2b9))
29
+ * **modeling:** corrected checks of parameters to booleans ([29788a1](https://github.com/jscad/OpenJSCAD.org/commit/29788a14cefd142d6c0544871a606ea742ad0c39))
30
+ * **modeling:** corrected geom2 mirroring transform ([8a1f04b](https://github.com/jscad/OpenJSCAD.org/commit/8a1f04b18bc866781ed08c2f38de3a495ea9581c))
31
+ * **modeling:** corrected parameter names to follow standards ([4c35d41](https://github.com/jscad/OpenJSCAD.org/commit/4c35d41289ff4633a7e1a8b58e87e00fd565ce14))
32
+ * **modeling:** create scission.d.ts and update index.d.ts ([5917d67](https://github.com/jscad/OpenJSCAD.org/commit/5917d6759889e9394a6cf4fd42065b0ff07750b1))
33
+ * **modeling:** created TS definitions for splitPolygonByPlane ([f9a3715](https://github.com/jscad/OpenJSCAD.org/commit/f9a3715fc8b6528c1f1dde1599897cc30e2fe758))
34
+ * **modeling:** fix ts definitions and ts hints in comments ([6855c73](https://github.com/jscad/OpenJSCAD.org/commit/6855c73c7835ef9e255355ff56a7b38fdd26d0f8))
35
+ * **modeling:** small fixes to comments and tests ([d59217e](https://github.com/jscad/OpenJSCAD.org/commit/d59217eb550093d650e9df8d9e178d3b796ccaba))
36
+ * **modeling:** use modern typescript imports ([0a0d2e8](https://github.com/jscad/OpenJSCAD.org/commit/0a0d2e8e4ac5db50cf9a6f05a33dba9bdd68c98a))
37
+ * **typo:** fix typo in rounded error messages ([8870b43](https://github.com/jscad/OpenJSCAD.org/commit/8870b434c7508074dcfacd5a2c616518bc35d3b2))
38
+
39
+ ### Features
40
+
41
+ * **modeling:** added Martinez library for 2D booleans, refactored 2D booleans ([e035291](https://github.com/jscad/OpenJSCAD.org/commit/e035291fb4577d1a4c9f98f0c7b2de11711caf43))
42
+ * **modeling:** added validate to slice, as well as measurements ([5cfb4d2](https://github.com/jscad/OpenJSCAD.org/commit/5cfb4d21edf1ac5b52ece776e6dd3760d3e28d87))
43
+ * **modeling:** corrected vectorChar and vectorText options to align with the common API ([c3a950f](https://github.com/jscad/OpenJSCAD.org/commit/c3a950f2615d938243fde55d323b94dd0fd9f06c))
44
+ * **modeling:** enhanced poly2 into a complete geometry ([7180c35](https://github.com/jscad/OpenJSCAD.org/commit/7180c35f95b8a36f78117a86e4ae26f5ed6bab12))
45
+ * **modeling:** preserve color for offset and extrude ([48606fc](https://github.com/jscad/OpenJSCAD.org/commit/48606fc32fff26dd8bde6ec03ce10b3c7086ee37))
46
+ * **modeling:** remove unused mat4 functions ([3602faf](https://github.com/jscad/OpenJSCAD.org/commit/3602fafea32506e35f75b74f94ecd9d762116da6))
47
+ * **modeling:** removed extrudeRectangular ([6c0cb4a](https://github.com/jscad/OpenJSCAD.org/commit/6c0cb4aae6f03a38f6f77f82db2d8e5b1166d8d8))
48
+ * **modeling:** rename expansions to offsets, and unify expand into offset ([f2b3e31](https://github.com/jscad/OpenJSCAD.org/commit/f2b3e3162fedbd7c438bb2925abeac73342e62c6))
49
+ * **modeling:** renamed poly3 toVertices and fromVerticesAndPlane ([58621b9](https://github.com/jscad/OpenJSCAD.org/commit/58621b9d23d8e0905eff23faf8e9dddb2c4023fb))
50
+ * **modeling:** rework orthonormal formula ([008a462](https://github.com/jscad/OpenJSCAD.org/commit/008a4623b73ea95112c33cd9b48831055961bb96))
51
+ * **modeling:** reworked exports to expose a flattened API ([8235238](https://github.com/jscad/OpenJSCAD.org/commit/8235238ad63d063f1e501478cae1208deb130a9c))
52
+ * **modeling:** reworked vectorChar and vectorText to return segments as path2 objects ([d388fab](https://github.com/jscad/OpenJSCAD.org/commit/d388fab1c6341265f01db2b24360186de07f5c58))
53
+ * **modeling:** support nested array structures in the API ([b8d8fb8](https://github.com/jscad/OpenJSCAD.org/commit/b8d8fb856f76985f9954eb70ea759dc6c07af07e))
54
+
6
55
  # [3.0.0-alpha.0](https://github.com/jscad/OpenJSCAD.org/compare/@jscad/modeling@2.10.0...@jscad/modeling@3.0.0-alpha.0) (2023-10-09)
7
56
 
8
57
  ### Bug Fixes
package/LICENSE CHANGED
@@ -1,7 +1,7 @@
1
1
 
2
2
  The MIT License (MIT)
3
3
 
4
- Copyright (c) 2017-2021 JSCAD Organization
4
+ Copyright (c) 2017-2025 JSCAD Organization
5
5
 
6
6
  Permission is hereby granted, free of charge, to any person obtaining a copy
7
7
  of this software and associated documentation files (the "Software"), to deal