brepjs 12.8.2 → 12.9.1

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 (225) hide show
  1. package/dist/2d/lib/svgPath.d.ts.map +1 -1
  2. package/dist/2d/lib/vectorOperations.d.ts +4 -1
  3. package/dist/2d/lib/vectorOperations.d.ts.map +1 -1
  4. package/dist/2d.cjs +2 -2
  5. package/dist/2d.js +5 -5
  6. package/dist/{Blueprint-DbVaf6k7.js → Blueprint-1HGbugaC.js} +33 -63
  7. package/dist/{Blueprint-CQ28WJhz.cjs → Blueprint-CUyXM6CV.cjs} +15 -45
  8. package/dist/{boolean2D-0blbVtJ8.cjs → boolean2D-9OnbotKT.cjs} +9 -9
  9. package/dist/{boolean2D-y3E92F0u.js → boolean2D-CR4efa35.js} +11 -11
  10. package/dist/{booleanFns-gmsX3Cv2.cjs → booleanFns-BBd2oTvv.cjs} +43 -40
  11. package/dist/{booleanFns-BCTjYZAg.js → booleanFns-Br2KdGJq.js} +53 -50
  12. package/dist/brepjs.cjs +379 -284
  13. package/dist/brepjs.js +1437 -1341
  14. package/dist/core/definitionMaps.d.ts +2 -7
  15. package/dist/core/definitionMaps.d.ts.map +1 -1
  16. package/dist/core/dimensionTypes.d.ts +52 -0
  17. package/dist/core/dimensionTypes.d.ts.map +1 -0
  18. package/dist/core/disposal.d.ts +18 -0
  19. package/dist/core/disposal.d.ts.map +1 -1
  20. package/dist/core/errors.d.ts +1 -8
  21. package/dist/core/errors.d.ts.map +1 -1
  22. package/dist/core/kernelErrorTranslation.d.ts +15 -0
  23. package/dist/core/kernelErrorTranslation.d.ts.map +1 -0
  24. package/dist/core/planeOps.d.ts +14 -0
  25. package/dist/core/planeOps.d.ts.map +1 -1
  26. package/dist/core/result.d.ts +4 -0
  27. package/dist/core/result.d.ts.map +1 -1
  28. package/dist/core/shapeTypes.d.ts +14 -146
  29. package/dist/core/shapeTypes.d.ts.map +1 -1
  30. package/dist/core/typeDiscriminants.d.ts +14 -0
  31. package/dist/core/typeDiscriminants.d.ts.map +1 -0
  32. package/dist/core/validityTypes.d.ts +100 -0
  33. package/dist/core/validityTypes.d.ts.map +1 -0
  34. package/dist/core.cjs +52 -11
  35. package/dist/core.d.ts +1 -1
  36. package/dist/core.d.ts.map +1 -1
  37. package/dist/core.js +118 -75
  38. package/dist/{curveFns-mROFhiuG.js → curveFns-1u0oZ0u0.js} +14 -14
  39. package/dist/{curveFns-BZngcnQ1.cjs → curveFns-BwLvO_Ia.cjs} +2 -2
  40. package/dist/{drawFns-Bwakrq7w.js → drawFns-B0na6sbo.js} +16 -16
  41. package/dist/{drawFns-CjRc1NfQ.cjs → drawFns-CzlEePor.cjs} +18 -18
  42. package/dist/{faceFns-DB1Fc5gy.cjs → faceFns-BAKkZG6D.cjs} +2 -2
  43. package/dist/{faceFns-B8GnxjdY.js → faceFns-DGMp47Os.js} +3 -3
  44. package/dist/{helpers-C8NoT0Wu.cjs → helpers-DVdscQxW.cjs} +73 -8
  45. package/dist/{helpers-X0juxnwj.js → helpers-sJjnIXDA.js} +85 -20
  46. package/dist/index.d.ts +10 -11
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/io.cjs +4 -4
  49. package/dist/io.js +4 -4
  50. package/dist/kernel/brepkit/booleanOps.d.ts +23 -0
  51. package/dist/kernel/brepkit/booleanOps.d.ts.map +1 -0
  52. package/dist/kernel/brepkit/constructionOps.d.ts +51 -0
  53. package/dist/kernel/brepkit/constructionOps.d.ts.map +1 -0
  54. package/dist/kernel/brepkit/evolutionOps.d.ts +31 -0
  55. package/dist/kernel/brepkit/evolutionOps.d.ts.map +1 -0
  56. package/dist/kernel/brepkit/geometryOps.d.ts +56 -0
  57. package/dist/kernel/brepkit/geometryOps.d.ts.map +1 -0
  58. package/dist/kernel/brepkit/helpers.d.ts +84 -0
  59. package/dist/kernel/brepkit/helpers.d.ts.map +1 -0
  60. package/dist/kernel/brepkit/internalOps.d.ts +28 -0
  61. package/dist/kernel/brepkit/internalOps.d.ts.map +1 -0
  62. package/dist/kernel/brepkit/ioOps.d.ts +43 -0
  63. package/dist/kernel/brepkit/ioOps.d.ts.map +1 -0
  64. package/dist/kernel/brepkit/measureOps.d.ts +30 -0
  65. package/dist/kernel/brepkit/measureOps.d.ts.map +1 -0
  66. package/dist/kernel/brepkit/meshOps.d.ts +7 -0
  67. package/dist/kernel/brepkit/meshOps.d.ts.map +1 -0
  68. package/dist/kernel/brepkit/modifierOps.d.ts +15 -0
  69. package/dist/kernel/brepkit/modifierOps.d.ts.map +1 -0
  70. package/dist/kernel/brepkit/repairOps.d.ts +14 -0
  71. package/dist/kernel/brepkit/repairOps.d.ts.map +1 -0
  72. package/dist/kernel/brepkit/sweepOps.d.ts +27 -0
  73. package/dist/kernel/brepkit/sweepOps.d.ts.map +1 -0
  74. package/dist/kernel/brepkit/topologyOps.d.ts +16 -0
  75. package/dist/kernel/brepkit/topologyOps.d.ts.map +1 -0
  76. package/dist/kernel/brepkit/transformOps.d.ts +14 -0
  77. package/dist/kernel/brepkit/transformOps.d.ts.map +1 -0
  78. package/dist/kernel/brepkitAdapter.d.ts +1 -1
  79. package/dist/kernel/brepkitAdapter.d.ts.map +1 -1
  80. package/dist/kernel/brepkitWasmTypes.d.ts +8 -0
  81. package/dist/kernel/brepkitWasmTypes.d.ts.map +1 -1
  82. package/dist/kernel/defaultAdapter.d.ts.map +1 -1
  83. package/dist/kernel/extendedConstructorOps.d.ts +9 -1
  84. package/dist/kernel/extendedConstructorOps.d.ts.map +1 -1
  85. package/dist/kernel/index.d.ts +1 -0
  86. package/dist/kernel/index.d.ts.map +1 -1
  87. package/dist/kernel/interfaces/boolean-ops.d.ts +25 -0
  88. package/dist/kernel/interfaces/boolean-ops.d.ts.map +1 -0
  89. package/dist/kernel/interfaces/construction-ops.d.ts +76 -0
  90. package/dist/kernel/interfaces/construction-ops.d.ts.map +1 -0
  91. package/dist/kernel/interfaces/core.d.ts +45 -0
  92. package/dist/kernel/interfaces/core.d.ts.map +1 -0
  93. package/dist/kernel/interfaces/evolution-ops.d.ts +19 -0
  94. package/dist/kernel/interfaces/evolution-ops.d.ts.map +1 -0
  95. package/dist/kernel/interfaces/geometry-ops.d.ts +77 -0
  96. package/dist/kernel/interfaces/geometry-ops.d.ts.map +1 -0
  97. package/dist/kernel/interfaces/index.d.ts +29 -0
  98. package/dist/kernel/interfaces/index.d.ts.map +1 -0
  99. package/dist/kernel/interfaces/io-ops.d.ts +66 -0
  100. package/dist/kernel/interfaces/io-ops.d.ts.map +1 -0
  101. package/dist/kernel/interfaces/measure-ops.d.ts +35 -0
  102. package/dist/kernel/interfaces/measure-ops.d.ts.map +1 -0
  103. package/dist/kernel/interfaces/mesh-ops.d.ts +21 -0
  104. package/dist/kernel/interfaces/mesh-ops.d.ts.map +1 -0
  105. package/dist/kernel/interfaces/modifier-ops.d.ts +22 -0
  106. package/dist/kernel/interfaces/modifier-ops.d.ts.map +1 -0
  107. package/dist/kernel/interfaces/repair-ops.d.ts +36 -0
  108. package/dist/kernel/interfaces/repair-ops.d.ts.map +1 -0
  109. package/dist/kernel/interfaces/sweep-ops.d.ts +49 -0
  110. package/dist/kernel/interfaces/sweep-ops.d.ts.map +1 -0
  111. package/dist/kernel/interfaces/topology-ops.d.ts +30 -0
  112. package/dist/kernel/interfaces/topology-ops.d.ts.map +1 -0
  113. package/dist/kernel/interfaces/transform-ops.d.ts +20 -0
  114. package/dist/kernel/interfaces/transform-ops.d.ts.map +1 -0
  115. package/dist/kernel/modifierOps.d.ts +2 -2
  116. package/dist/kernel/modifierOps.d.ts.map +1 -1
  117. package/dist/kernel/types.d.ts +2 -446
  118. package/dist/kernel/types.d.ts.map +1 -1
  119. package/dist/{loft-hp3pc1M7.cjs → loft-BNvBZzqe.cjs} +5 -5
  120. package/dist/{loft-Bhw-FMoL.js → loft-D0aCZRaB.js} +7 -7
  121. package/dist/measurement/measureFns.d.ts +2 -2
  122. package/dist/measurement/measureFns.d.ts.map +1 -1
  123. package/dist/{measurement-D8EJ694A.js → measurement-C7o5jE6G.js} +2 -2
  124. package/dist/{measurement-BoNTUBAp.cjs → measurement-DZcaxo1A.cjs} +2 -2
  125. package/dist/measurement.cjs +1 -1
  126. package/dist/measurement.js +1 -1
  127. package/dist/{meshFns-BnV0ZR8w.cjs → meshFns-7dgZgNYK.cjs} +4 -4
  128. package/dist/{meshFns-nQjK38EC.js → meshFns-CtUl9fGY.js} +3 -3
  129. package/dist/operations/compoundOpsFns.d.ts +38 -0
  130. package/dist/operations/compoundOpsFns.d.ts.map +1 -0
  131. package/dist/operations/extrude.d.ts +2 -12
  132. package/dist/operations/extrude.d.ts.map +1 -1
  133. package/dist/operations/extrudeFns.d.ts +2 -93
  134. package/dist/operations/extrudeFns.d.ts.map +1 -1
  135. package/dist/operations/guidedSweepFns.d.ts +3 -22
  136. package/dist/operations/guidedSweepFns.d.ts.map +1 -1
  137. package/dist/operations/loft.d.ts +2 -16
  138. package/dist/operations/loft.d.ts.map +1 -1
  139. package/dist/operations/multiSweepFns.d.ts +3 -29
  140. package/dist/operations/multiSweepFns.d.ts.map +1 -1
  141. package/dist/operations/roofFns.d.ts +2 -2
  142. package/dist/operations/roofFns.d.ts.map +1 -1
  143. package/dist/operations/sweepFns.d.ts +121 -0
  144. package/dist/operations/sweepFns.d.ts.map +1 -0
  145. package/dist/{operations-BfbkK6DU.js → operations-DisJ5F8s.js} +110 -57
  146. package/dist/{operations-CYpmLSC4.cjs → operations-DwZ-RBO1.cjs} +97 -44
  147. package/dist/operations.cjs +2 -2
  148. package/dist/operations.js +14 -14
  149. package/dist/originTrackingFns-NJ1dWoiF.js +137 -0
  150. package/dist/originTrackingFns-dhaCe8Yb.cjs +136 -0
  151. package/dist/query/edgeFinder.d.ts +4 -14
  152. package/dist/query/edgeFinder.d.ts.map +1 -1
  153. package/dist/query/faceFinder.d.ts +4 -14
  154. package/dist/query/faceFinder.d.ts.map +1 -1
  155. package/dist/query/finderCore.d.ts +6 -0
  156. package/dist/query/finderCore.d.ts.map +1 -1
  157. package/dist/query/shapeFinders.d.ts +32 -0
  158. package/dist/query/shapeFinders.d.ts.map +1 -0
  159. package/dist/query/wireFinder.d.ts +4 -9
  160. package/dist/query/wireFinder.d.ts.map +1 -1
  161. package/dist/query.cjs +54 -32
  162. package/dist/query.js +56 -34
  163. package/dist/{result-fAX0OZzI.cjs → result-DJAAj1yb.cjs} +8 -59
  164. package/dist/{result-BaSD1fqR.js → result-DtuwWSUD.js} +38 -89
  165. package/dist/result.cjs +1 -1
  166. package/dist/result.js +22 -22
  167. package/dist/shapeFns-BJbua5kT.js +34 -0
  168. package/dist/shapeFns-w9tWELHX.cjs +33 -0
  169. package/dist/{shapeTypes-CpSaBLDv.js → shapeTypes-CAEAyk8j.js} +233 -172
  170. package/dist/{shapeTypes-7xEam9Ri.cjs → shapeTypes-owrg2MNK.cjs} +421 -360
  171. package/dist/sketching/Sketcher.d.ts.map +1 -1
  172. package/dist/sketching.cjs +2 -2
  173. package/dist/sketching.js +2 -2
  174. package/dist/{solidBuilders-994_MQwB.cjs → solidBuilders-BLQ4I6Ig.cjs} +3 -3
  175. package/dist/{solidBuilders-DmwhTCCd.js → solidBuilders-BS-1220W.js} +3 -3
  176. package/dist/{surfaceBuilders-nQdJ56fe.js → surfaceBuilders-Dj6AjhOv.js} +7 -7
  177. package/dist/{surfaceBuilders-5VA34a3_.cjs → surfaceBuilders-KU_7OD2q.cjs} +3 -3
  178. package/dist/topology/booleanFns.d.ts.map +1 -1
  179. package/dist/topology/compoundOpsFns.d.ts +3 -35
  180. package/dist/topology/compoundOpsFns.d.ts.map +1 -1
  181. package/dist/topology/index.d.ts +0 -1
  182. package/dist/topology/index.d.ts.map +1 -1
  183. package/dist/topology/metadataPropagation.d.ts +30 -0
  184. package/dist/topology/metadataPropagation.d.ts.map +1 -0
  185. package/dist/topology/modifierFns.d.ts.map +1 -1
  186. package/dist/topology/originTrackingFns.d.ts +23 -0
  187. package/dist/topology/originTrackingFns.d.ts.map +1 -0
  188. package/dist/topology/shapeFns.d.ts +6 -120
  189. package/dist/topology/shapeFns.d.ts.map +1 -1
  190. package/dist/topology/topologyQueryFns.d.ts +67 -0
  191. package/dist/topology/topologyQueryFns.d.ts.map +1 -0
  192. package/dist/topology/transformFns.d.ts +49 -0
  193. package/dist/topology/transformFns.d.ts.map +1 -0
  194. package/dist/topology/wrapperFns.d.ts.map +1 -1
  195. package/dist/{topology-ANwCzGL8.cjs → topology-CyPHYYjV.cjs} +205 -20
  196. package/dist/{topology-C7x98OVn.js → topology-D6LeuhI_.js} +235 -50
  197. package/dist/topology.cjs +18 -17
  198. package/dist/topology.js +92 -91
  199. package/dist/topologyQueryFns-De439iBP.js +119 -0
  200. package/dist/topologyQueryFns-fz5kz5e1.cjs +118 -0
  201. package/dist/{types-CWDdqcrq.js → types-CcKqsmd0.js} +2 -2
  202. package/dist/utils/precisionRound.d.ts +4 -0
  203. package/dist/utils/precisionRound.d.ts.map +1 -1
  204. package/dist/utils/vec2d.d.ts +5 -0
  205. package/dist/utils/vec2d.d.ts.map +1 -1
  206. package/dist/{vecOps-ZDdZWbwT.js → vecOps-LTN--A58.js} +15 -15
  207. package/dist/{vectors-D_IiZx0q.cjs → vectors-C8N_QeEX.cjs} +9 -1
  208. package/dist/{vectors-Bx8wkNui.js → vectors-DTREgnVp.js} +15 -7
  209. package/dist/vectors.cjs +1 -1
  210. package/dist/vectors.js +23 -23
  211. package/package.json +3 -3
  212. package/dist/core/geometryHelpers.d.ts +0 -30
  213. package/dist/core/geometryHelpers.d.ts.map +0 -1
  214. package/dist/core/memory.d.ts +0 -6
  215. package/dist/core/memory.d.ts.map +0 -1
  216. package/dist/core/typeErrors.d.ts +0 -17
  217. package/dist/core/typeErrors.d.ts.map +0 -1
  218. package/dist/cornerFinder-Ckz-mPHE.js +0 -59
  219. package/dist/cornerFinder-ZmOyOOsh.cjs +0 -58
  220. package/dist/shapeFns-C2SnNvdH.cjs +0 -468
  221. package/dist/shapeFns-FDuKkrDR.js +0 -469
  222. package/dist/utils/round2.d.ts +0 -3
  223. package/dist/utils/round2.d.ts.map +0 -1
  224. package/dist/utils/round5.d.ts +0 -3
  225. package/dist/utils/round5.d.ts.map +0 -1
@@ -1,14 +1,191 @@
1
1
  "use strict";
2
- const shapeFns = require("./shapeFns-C2SnNvdH.cjs");
3
- const result = require("./result-fAX0OZzI.cjs");
4
- const shapeTypes = require("./shapeTypes-7xEam9Ri.cjs");
2
+ require("./shapeFns-w9tWELHX.cjs");
3
+ const result = require("./result-DJAAj1yb.cjs");
4
+ const shapeTypes = require("./shapeTypes-owrg2MNK.cjs");
5
5
  const vecOps = require("./vecOps-CjRL1jau.cjs");
6
- const surfaceBuilders = require("./surfaceBuilders-5VA34a3_.cjs");
7
- const solidBuilders = require("./solidBuilders-994_MQwB.cjs");
8
- require("./booleanFns-gmsX3Cv2.cjs");
9
- const faceFns = require("./faceFns-DB1Fc5gy.cjs");
10
- require("./curveFns-BZngcnQ1.cjs");
11
- require("./meshFns-BnV0ZR8w.cjs");
6
+ const surfaceBuilders = require("./surfaceBuilders-KU_7OD2q.cjs");
7
+ const booleanFns = require("./booleanFns-BBd2oTvv.cjs");
8
+ const solidBuilders = require("./solidBuilders-BLQ4I6Ig.cjs");
9
+ const core = require("./core.cjs");
10
+ const faceFns = require("./faceFns-BAKkZG6D.cjs");
11
+ require("./curveFns-BwLvO_Ia.cjs");
12
+ require("./meshFns-7dgZgNYK.cjs");
13
+ const topologyQueryFns = require("./topologyQueryFns-fz5kz5e1.cjs");
14
+ function translate(shape, v) {
15
+ const inputFaceHashes = booleanFns.collectInputFaceHashes([shape]);
16
+ const { shape: resultShape, evolution } = shapeTypes.getKernel().translateWithHistory(
17
+ shape.wrapped,
18
+ v[0],
19
+ v[1],
20
+ v[2],
21
+ inputFaceHashes,
22
+ vecOps.HASH_CODE_MAX
23
+ );
24
+ const result2 = shapeTypes.castShape(resultShape);
25
+ booleanFns.propagateAllMetadata(evolution, [shape], result2);
26
+ return result2;
27
+ }
28
+ function rotate(shape, angle, position = [0, 0, 0], direction = [0, 0, 1]) {
29
+ const inputFaceHashes = booleanFns.collectInputFaceHashes([shape]);
30
+ const { shape: resultShape, evolution } = shapeTypes.getKernel().rotateWithHistory(
31
+ shape.wrapped,
32
+ angle * vecOps.DEG2RAD,
33
+ inputFaceHashes,
34
+ vecOps.HASH_CODE_MAX,
35
+ direction,
36
+ position
37
+ );
38
+ const result2 = shapeTypes.castShape(resultShape);
39
+ booleanFns.propagateAllMetadata(evolution, [shape], result2);
40
+ return result2;
41
+ }
42
+ function mirror(shape, planeNormal = [0, 1, 0], planeOrigin = [0, 0, 0]) {
43
+ const inputFaceHashes = booleanFns.collectInputFaceHashes([shape]);
44
+ const { shape: resultShape, evolution } = shapeTypes.getKernel().mirrorWithHistory(
45
+ shape.wrapped,
46
+ planeOrigin,
47
+ planeNormal,
48
+ inputFaceHashes,
49
+ vecOps.HASH_CODE_MAX
50
+ );
51
+ const result2 = shapeTypes.castShape(resultShape);
52
+ booleanFns.propagateAllMetadata(evolution, [shape], result2);
53
+ return result2;
54
+ }
55
+ function scale(shape, factor, center = [0, 0, 0]) {
56
+ const inputFaceHashes = booleanFns.collectInputFaceHashes([shape]);
57
+ const { shape: resultShape, evolution } = shapeTypes.getKernel().scaleWithHistory(
58
+ shape.wrapped,
59
+ center,
60
+ factor,
61
+ inputFaceHashes,
62
+ vecOps.HASH_CODE_MAX
63
+ );
64
+ const result2 = shapeTypes.castShape(resultShape);
65
+ booleanFns.propagateAllMetadata(evolution, [shape], result2);
66
+ return result2;
67
+ }
68
+ function resize(shape, dimensions, options) {
69
+ const bbox = shapeTypes.getKernel().boundingBox(shape.wrapped);
70
+ const size = [
71
+ bbox.max[0] - bbox.min[0],
72
+ bbox.max[1] - bbox.min[1],
73
+ bbox.max[2] - bbox.min[2]
74
+ ];
75
+ const auto = options?.auto === true;
76
+ function factor(dim, sz, baseFactor) {
77
+ if (dim !== void 0 && sz > 1e-12) return dim / sz;
78
+ if (dim === void 0 && auto) return baseFactor;
79
+ return 1;
80
+ }
81
+ let autoFactor = 1;
82
+ if (auto) {
83
+ if (dimensions[0] !== void 0 && size[0] > 1e-12) autoFactor = dimensions[0] / size[0];
84
+ else if (dimensions[1] !== void 0 && size[1] > 1e-12) autoFactor = dimensions[1] / size[1];
85
+ else if (dimensions[2] !== void 0 && size[2] > 1e-12) autoFactor = dimensions[2] / size[2];
86
+ }
87
+ const factors = [
88
+ factor(dimensions[0], size[0], autoFactor),
89
+ factor(dimensions[1], size[1], autoFactor),
90
+ factor(dimensions[2], size[2], autoFactor)
91
+ ];
92
+ const isUniform = Math.abs(factors[0] - factors[1]) < 1e-6 && Math.abs(factors[1] - factors[2]) < 1e-6;
93
+ if (!isUniform) {
94
+ throw new Error(
95
+ "resize: non-uniform scaling is not supported (WASM build lacks BRepBuilderAPI_GTransform). Use auto: true to scale proportionally, or set all three dimensions to achieve uniform scaling."
96
+ );
97
+ }
98
+ return scale(shape, factors[0]);
99
+ }
100
+ function parseMatrixInput(input) {
101
+ if ("linear" in input) {
102
+ return { linear: input.linear, translation: input.translation };
103
+ }
104
+ const [r0, r1, r2, r3] = input;
105
+ const TOL = 1e-10;
106
+ if (Math.abs(r3[0]) > TOL || Math.abs(r3[1]) > TOL || Math.abs(r3[2]) > TOL || Math.abs(r3[3] - 1) > TOL) {
107
+ throw new Error(
108
+ `applyMatrix: invalid bottom row [${String(r3[0])}, ${String(r3[1])}, ${String(r3[2])}, ${String(r3[3])}]. Must be [0, 0, 0, 1] for an affine transform.`
109
+ );
110
+ }
111
+ return {
112
+ linear: [r0[0], r0[1], r0[2], r1[0], r1[1], r1[2], r2[0], r2[1], r2[2]],
113
+ translation: [r0[3], r1[3], r2[3]]
114
+ };
115
+ }
116
+ function det3x3(m) {
117
+ return m[0] * (m[4] * m[8] - m[5] * m[7]) - m[1] * (m[3] * m[8] - m[5] * m[6]) + m[2] * (m[3] * m[7] - m[4] * m[6]);
118
+ }
119
+ function isOrthogonalMatrix(m) {
120
+ const TOL = 1e-8;
121
+ const d00 = m[0] * m[0] + m[3] * m[3] + m[6] * m[6];
122
+ const d11 = m[1] * m[1] + m[4] * m[4] + m[7] * m[7];
123
+ const d22 = m[2] * m[2] + m[5] * m[5] + m[8] * m[8];
124
+ const d01 = m[0] * m[1] + m[3] * m[4] + m[6] * m[7];
125
+ const d02 = m[0] * m[2] + m[3] * m[5] + m[6] * m[8];
126
+ const d12 = m[1] * m[2] + m[4] * m[5] + m[7] * m[8];
127
+ if (Math.abs(d01) > TOL) return false;
128
+ if (Math.abs(d02) > TOL) return false;
129
+ if (Math.abs(d12) > TOL) return false;
130
+ if (Math.abs(d00 - d11) > TOL) return false;
131
+ if (Math.abs(d00 - d22) > TOL) return false;
132
+ return true;
133
+ }
134
+ function applyMatrix(shape, matrix) {
135
+ const { linear, translation } = parseMatrixInput(matrix);
136
+ const d = det3x3(linear);
137
+ if (Math.abs(d) < 1e-12) {
138
+ throw new Error(
139
+ "applyMatrix: singular matrix (determinant ≈ 0). Cannot apply a non-invertible transform."
140
+ );
141
+ }
142
+ const orthogonal = isOrthogonalMatrix(linear);
143
+ if (orthogonal) {
144
+ const inputFaceHashes = booleanFns.collectInputFaceHashes([shape]);
145
+ const { shape: resultShape2, evolution } = shapeTypes.getKernel().generalTransformWithHistory(
146
+ shape.wrapped,
147
+ linear,
148
+ translation,
149
+ true,
150
+ inputFaceHashes,
151
+ vecOps.HASH_CODE_MAX
152
+ );
153
+ const result22 = shapeTypes.castShape(resultShape2);
154
+ booleanFns.propagateAllMetadata(evolution, [shape], result22);
155
+ return result22;
156
+ }
157
+ const resultShape = shapeTypes.getKernel().generalTransformNonOrthogonal(shape.wrapped, linear, translation);
158
+ const result2 = shapeTypes.castShape(resultShape);
159
+ booleanFns.propagateMetadataByHash([shape], result2);
160
+ return result2;
161
+ }
162
+ function composeTransforms(ops) {
163
+ const kernelOps = ops.map((op) => {
164
+ if (op.type === "translate") {
165
+ return { type: "translate", x: op.v[0], y: op.v[1], z: op.v[2] };
166
+ }
167
+ return {
168
+ type: "rotate",
169
+ angle: op.angle,
170
+ axis: op.axis,
171
+ center: op.center
172
+ };
173
+ });
174
+ const { handle, dispose } = shapeTypes.getKernel().composeTransform(kernelOps);
175
+ return { trsf: handle, cleanup: dispose };
176
+ }
177
+ function transformCopy(shape, composed) {
178
+ const inputFaceHashes = booleanFns.collectInputFaceHashes([shape]);
179
+ const { shape: resultShape, evolution } = shapeTypes.getKernel().applyComposedTransformWithHistory(
180
+ shape.wrapped,
181
+ composed.trsf,
182
+ inputFaceHashes,
183
+ vecOps.HASH_CODE_MAX
184
+ );
185
+ const result2 = shapeTypes.castShape(resultShape);
186
+ booleanFns.propagateAllMetadata(evolution, [shape], result2);
187
+ return result2;
188
+ }
12
189
  function toBufferGeometryData(mesh) {
13
190
  return {
14
191
  position: mesh.vertices,
@@ -316,8 +493,8 @@ function autoHeal(shape, options) {
316
493
  });
317
494
  }
318
495
  steps.push("Shape invalid — applying shape-level healing");
319
- const wiresBefore = shapeFns.getWires(shape).length;
320
- const facesBefore = shapeFns.getFaces(shape).length;
496
+ const wiresBefore = topologyQueryFns.getWires(shape).length;
497
+ const facesBefore = topologyQueryFns.getFaces(shape).length;
321
498
  let current = shape;
322
499
  let solidHealed = false;
323
500
  if (sewTolerance !== void 0) {
@@ -338,7 +515,7 @@ function autoHeal(shape, options) {
338
515
  }
339
516
  }
340
517
  if (fixSelfIntersection && fixWires) {
341
- const wires = shapeFns.getWires(current);
518
+ const wires = topologyQueryFns.getWires(current);
342
519
  let fixCount = 0;
343
520
  for (const wire2 of wires) {
344
521
  try {
@@ -383,8 +560,8 @@ function autoHeal(shape, options) {
383
560
  detail: "skipped by options"
384
561
  });
385
562
  }
386
- const wiresAfter = shapeFns.getWires(current).length;
387
- const facesAfter = shapeFns.getFaces(current).length;
563
+ const wiresAfter = topologyQueryFns.getWires(current).length;
564
+ const facesAfter = topologyQueryFns.getFaces(current).length;
388
565
  const wiresHealed = Math.abs(wiresAfter - wiresBefore);
389
566
  const facesHealed = Math.abs(facesAfter - facesBefore);
390
567
  if (wiresHealed > 0) steps.push(`Wire count changed by ${wiresHealed}`);
@@ -409,7 +586,7 @@ function box(width, depth, height, options) {
409
586
  const solid2 = shapeTypes.createSolid(shapeTypes.getKernel().makeBox(width, depth, height));
410
587
  const center = options?.at ?? (options?.centered ? [0, 0, 0] : void 0);
411
588
  if (center) {
412
- return shapeFns.translate(solid2, [center[0] - width / 2, center[1] - depth / 2, center[2] - height / 2]);
589
+ return translate(solid2, [center[0] - width / 2, center[1] - depth / 2, center[2] - height / 2]);
413
590
  }
414
591
  return solid2;
415
592
  }
@@ -423,14 +600,14 @@ function cylinder(radius, height, options) {
423
600
  -axis[1] * height * 0.5,
424
601
  -axis[2] * height * 0.5
425
602
  ];
426
- solid2 = shapeFns.translate(solid2, halfShift);
603
+ solid2 = translate(solid2, halfShift);
427
604
  }
428
605
  return solid2;
429
606
  }
430
607
  function sphere(radius, options) {
431
608
  let solid2 = solidBuilders.makeSphere(radius);
432
609
  if (options?.at) {
433
- solid2 = shapeFns.translate(solid2, options.at);
610
+ solid2 = translate(solid2, options.at);
434
611
  }
435
612
  return solid2;
436
613
  }
@@ -444,7 +621,7 @@ function cone(bottomRadius, topRadius, height, options) {
444
621
  -axis[1] * height * 0.5,
445
622
  -axis[2] * height * 0.5
446
623
  ];
447
- solid2 = shapeFns.translate(solid2, halfShift);
624
+ solid2 = translate(solid2, halfShift);
448
625
  }
449
626
  return solid2;
450
627
  }
@@ -454,7 +631,7 @@ function torus(majorRadius, minorRadius, options) {
454
631
  function ellipsoid(rx, ry, rz, options) {
455
632
  let solid2 = solidBuilders.makeEllipsoid(rx, ry, rz);
456
633
  if (options?.at) {
457
- solid2 = shapeFns.translate(solid2, options.at);
634
+ solid2 = translate(solid2, options.at);
458
635
  }
459
636
  return solid2;
460
637
  }
@@ -508,7 +685,7 @@ function wire(listOfEdges) {
508
685
  }
509
686
  function wireLoop(listOfEdges) {
510
687
  return result.andThen(surfaceBuilders.assembleWire(listOfEdges), (w) => {
511
- if (shapeTypes.isClosedWire(w)) return result.ok(w);
688
+ if (core.isClosedWire(w)) return result.ok(w);
512
689
  return result.err(
513
690
  result.validationError(
514
691
  "WIRE_NOT_CLOSED",
@@ -549,12 +726,14 @@ function addHoles(f, holes) {
549
726
  }
550
727
  exports.addHoles = addHoles;
551
728
  exports.adjacentFaces = adjacentFaces;
729
+ exports.applyMatrix = applyMatrix;
552
730
  exports.autoHeal = autoHeal;
553
731
  exports.bezier = bezier;
554
732
  exports.box = box;
555
733
  exports.bsplineApprox = bsplineApprox;
556
734
  exports.chamferDistAngle = chamferDistAngle;
557
735
  exports.circle = circle;
736
+ exports.composeTransforms = composeTransforms;
558
737
  exports.compound = compound;
559
738
  exports.cone = cone;
560
739
  exports.cylinder = cylinder;
@@ -572,8 +751,12 @@ exports.healWire = healWire;
572
751
  exports.helix = helix;
573
752
  exports.isValid = isValid;
574
753
  exports.line = line;
754
+ exports.mirror = mirror;
575
755
  exports.offsetFace = offsetFace;
576
756
  exports.polygon = polygon;
757
+ exports.resize = resize;
758
+ exports.rotate = rotate;
759
+ exports.scale = scale;
577
760
  exports.sewShells = sewShells;
578
761
  exports.sharedEdges = sharedEdges;
579
762
  exports.solid = solid;
@@ -585,6 +768,8 @@ exports.toBufferGeometryData = toBufferGeometryData;
585
768
  exports.toGroupedBufferGeometryData = toGroupedBufferGeometryData;
586
769
  exports.toLineGeometryData = toLineGeometryData;
587
770
  exports.torus = torus;
771
+ exports.transformCopy = transformCopy;
772
+ exports.translate = translate;
588
773
  exports.vertex = vertex;
589
774
  exports.verticesOfEdge = verticesOfEdge;
590
775
  exports.wire = wire;
@@ -1,13 +1,190 @@
1
- import { c as getWires, a as getFaces, u as translate } from "./shapeFns-FDuKkrDR.js";
2
- import { e as err, z as validationError, k as kernelError, g as isErr, r as typeCastError, o as ok, v as unwrap, h as isOk, A as BrepErrorCode, a as andThen } from "./result-BaSD1fqR.js";
3
- import { B as getKernel, c as castShape, p as isShape3D, r as isSolid, k as isFace, u as isWire, F as createSolid, f as isClosedWire } from "./shapeTypes-CpSaBLDv.js";
4
- import { H as HASH_CODE_MAX, D as DEG2RAD } from "./vecOps-ZDdZWbwT.js";
5
- import { d as addHolesInFace, j as makeBezierCurve, g as makeBSplineApproximation, e as makeCircle, f as makeEllipse, k as makeEllipseArc, m as makeFace, l as makeNonPlanarFace, c as makeHelix, a as makeLine, n as makePolygon, h as makeNewFaceWithinFace, o as makeTangentArc, p as makeThreePointArc, b as assembleWire } from "./surfaceBuilders-nQdJ56fe.js";
6
- import { a as makeCompound, d as makeCone, c as makeCylinder, e as makeEllipsoid, f as makeOffset, w as weldShellsAndFaces, b as makeSolid, g as makeSphere, h as makeTorus, m as makeVertex } from "./solidBuilders-DmwhTCCd.js";
7
- import "./booleanFns-BCTjYZAg.js";
8
- import { d as downcast } from "./faceFns-B8GnxjdY.js";
9
- import "./curveFns-mROFhiuG.js";
10
- import "./meshFns-nQjK38EC.js";
1
+ import "./shapeFns-BJbua5kT.js";
2
+ import { e as err, v as validationError, k as kernelError, b as isErr, t as typeCastError, o as ok, u as unwrap, f as isOk, B as BrepErrorCode, a as andThen } from "./result-DtuwWSUD.js";
3
+ import { g as getKernel, c as castShape, j as isShape3D, k as isSolid, o as isFace, b as isWire, h as createSolid } from "./shapeTypes-CAEAyk8j.js";
4
+ import { H as HASH_CODE_MAX, D as DEG2RAD } from "./vecOps-LTN--A58.js";
5
+ import { d as addHolesInFace, j as makeBezierCurve, g as makeBSplineApproximation, e as makeCircle, f as makeEllipse, k as makeEllipseArc, c as makeFace, l as makeNonPlanarFace, b as makeHelix, m as makeLine, n as makePolygon, h as makeNewFaceWithinFace, o as makeTangentArc, p as makeThreePointArc, a as assembleWire } from "./surfaceBuilders-Dj6AjhOv.js";
6
+ import { c as collectInputFaceHashes, p as propagateAllMetadata, u as propagateMetadataByHash } from "./booleanFns-Br2KdGJq.js";
7
+ import { a as makeCompound, d as makeCone, c as makeCylinder, e as makeEllipsoid, f as makeOffset, w as weldShellsAndFaces, b as makeSolid, g as makeSphere, h as makeTorus, m as makeVertex } from "./solidBuilders-BS-1220W.js";
8
+ import { isClosedWire } from "./core.js";
9
+ import { d as downcast } from "./faceFns-DGMp47Os.js";
10
+ import "./curveFns-1u0oZ0u0.js";
11
+ import "./meshFns-CtUl9fGY.js";
12
+ import { c as getWires, b as getFaces } from "./topologyQueryFns-De439iBP.js";
13
+ function translate(shape, v) {
14
+ const inputFaceHashes = collectInputFaceHashes([shape]);
15
+ const { shape: resultShape, evolution } = getKernel().translateWithHistory(
16
+ shape.wrapped,
17
+ v[0],
18
+ v[1],
19
+ v[2],
20
+ inputFaceHashes,
21
+ HASH_CODE_MAX
22
+ );
23
+ const result = castShape(resultShape);
24
+ propagateAllMetadata(evolution, [shape], result);
25
+ return result;
26
+ }
27
+ function rotate(shape, angle, position = [0, 0, 0], direction = [0, 0, 1]) {
28
+ const inputFaceHashes = collectInputFaceHashes([shape]);
29
+ const { shape: resultShape, evolution } = getKernel().rotateWithHistory(
30
+ shape.wrapped,
31
+ angle * DEG2RAD,
32
+ inputFaceHashes,
33
+ HASH_CODE_MAX,
34
+ direction,
35
+ position
36
+ );
37
+ const result = castShape(resultShape);
38
+ propagateAllMetadata(evolution, [shape], result);
39
+ return result;
40
+ }
41
+ function mirror(shape, planeNormal = [0, 1, 0], planeOrigin = [0, 0, 0]) {
42
+ const inputFaceHashes = collectInputFaceHashes([shape]);
43
+ const { shape: resultShape, evolution } = getKernel().mirrorWithHistory(
44
+ shape.wrapped,
45
+ planeOrigin,
46
+ planeNormal,
47
+ inputFaceHashes,
48
+ HASH_CODE_MAX
49
+ );
50
+ const result = castShape(resultShape);
51
+ propagateAllMetadata(evolution, [shape], result);
52
+ return result;
53
+ }
54
+ function scale(shape, factor, center = [0, 0, 0]) {
55
+ const inputFaceHashes = collectInputFaceHashes([shape]);
56
+ const { shape: resultShape, evolution } = getKernel().scaleWithHistory(
57
+ shape.wrapped,
58
+ center,
59
+ factor,
60
+ inputFaceHashes,
61
+ HASH_CODE_MAX
62
+ );
63
+ const result = castShape(resultShape);
64
+ propagateAllMetadata(evolution, [shape], result);
65
+ return result;
66
+ }
67
+ function resize(shape, dimensions, options) {
68
+ const bbox = getKernel().boundingBox(shape.wrapped);
69
+ const size = [
70
+ bbox.max[0] - bbox.min[0],
71
+ bbox.max[1] - bbox.min[1],
72
+ bbox.max[2] - bbox.min[2]
73
+ ];
74
+ const auto = options?.auto === true;
75
+ function factor(dim, sz, baseFactor) {
76
+ if (dim !== void 0 && sz > 1e-12) return dim / sz;
77
+ if (dim === void 0 && auto) return baseFactor;
78
+ return 1;
79
+ }
80
+ let autoFactor = 1;
81
+ if (auto) {
82
+ if (dimensions[0] !== void 0 && size[0] > 1e-12) autoFactor = dimensions[0] / size[0];
83
+ else if (dimensions[1] !== void 0 && size[1] > 1e-12) autoFactor = dimensions[1] / size[1];
84
+ else if (dimensions[2] !== void 0 && size[2] > 1e-12) autoFactor = dimensions[2] / size[2];
85
+ }
86
+ const factors = [
87
+ factor(dimensions[0], size[0], autoFactor),
88
+ factor(dimensions[1], size[1], autoFactor),
89
+ factor(dimensions[2], size[2], autoFactor)
90
+ ];
91
+ const isUniform = Math.abs(factors[0] - factors[1]) < 1e-6 && Math.abs(factors[1] - factors[2]) < 1e-6;
92
+ if (!isUniform) {
93
+ throw new Error(
94
+ "resize: non-uniform scaling is not supported (WASM build lacks BRepBuilderAPI_GTransform). Use auto: true to scale proportionally, or set all three dimensions to achieve uniform scaling."
95
+ );
96
+ }
97
+ return scale(shape, factors[0]);
98
+ }
99
+ function parseMatrixInput(input) {
100
+ if ("linear" in input) {
101
+ return { linear: input.linear, translation: input.translation };
102
+ }
103
+ const [r0, r1, r2, r3] = input;
104
+ const TOL = 1e-10;
105
+ if (Math.abs(r3[0]) > TOL || Math.abs(r3[1]) > TOL || Math.abs(r3[2]) > TOL || Math.abs(r3[3] - 1) > TOL) {
106
+ throw new Error(
107
+ `applyMatrix: invalid bottom row [${String(r3[0])}, ${String(r3[1])}, ${String(r3[2])}, ${String(r3[3])}]. Must be [0, 0, 0, 1] for an affine transform.`
108
+ );
109
+ }
110
+ return {
111
+ linear: [r0[0], r0[1], r0[2], r1[0], r1[1], r1[2], r2[0], r2[1], r2[2]],
112
+ translation: [r0[3], r1[3], r2[3]]
113
+ };
114
+ }
115
+ function det3x3(m) {
116
+ return m[0] * (m[4] * m[8] - m[5] * m[7]) - m[1] * (m[3] * m[8] - m[5] * m[6]) + m[2] * (m[3] * m[7] - m[4] * m[6]);
117
+ }
118
+ function isOrthogonalMatrix(m) {
119
+ const TOL = 1e-8;
120
+ const d00 = m[0] * m[0] + m[3] * m[3] + m[6] * m[6];
121
+ const d11 = m[1] * m[1] + m[4] * m[4] + m[7] * m[7];
122
+ const d22 = m[2] * m[2] + m[5] * m[5] + m[8] * m[8];
123
+ const d01 = m[0] * m[1] + m[3] * m[4] + m[6] * m[7];
124
+ const d02 = m[0] * m[2] + m[3] * m[5] + m[6] * m[8];
125
+ const d12 = m[1] * m[2] + m[4] * m[5] + m[7] * m[8];
126
+ if (Math.abs(d01) > TOL) return false;
127
+ if (Math.abs(d02) > TOL) return false;
128
+ if (Math.abs(d12) > TOL) return false;
129
+ if (Math.abs(d00 - d11) > TOL) return false;
130
+ if (Math.abs(d00 - d22) > TOL) return false;
131
+ return true;
132
+ }
133
+ function applyMatrix(shape, matrix) {
134
+ const { linear, translation } = parseMatrixInput(matrix);
135
+ const d = det3x3(linear);
136
+ if (Math.abs(d) < 1e-12) {
137
+ throw new Error(
138
+ "applyMatrix: singular matrix (determinant ≈ 0). Cannot apply a non-invertible transform."
139
+ );
140
+ }
141
+ const orthogonal = isOrthogonalMatrix(linear);
142
+ if (orthogonal) {
143
+ const inputFaceHashes = collectInputFaceHashes([shape]);
144
+ const { shape: resultShape2, evolution } = getKernel().generalTransformWithHistory(
145
+ shape.wrapped,
146
+ linear,
147
+ translation,
148
+ true,
149
+ inputFaceHashes,
150
+ HASH_CODE_MAX
151
+ );
152
+ const result2 = castShape(resultShape2);
153
+ propagateAllMetadata(evolution, [shape], result2);
154
+ return result2;
155
+ }
156
+ const resultShape = getKernel().generalTransformNonOrthogonal(shape.wrapped, linear, translation);
157
+ const result = castShape(resultShape);
158
+ propagateMetadataByHash([shape], result);
159
+ return result;
160
+ }
161
+ function composeTransforms(ops) {
162
+ const kernelOps = ops.map((op) => {
163
+ if (op.type === "translate") {
164
+ return { type: "translate", x: op.v[0], y: op.v[1], z: op.v[2] };
165
+ }
166
+ return {
167
+ type: "rotate",
168
+ angle: op.angle,
169
+ axis: op.axis,
170
+ center: op.center
171
+ };
172
+ });
173
+ const { handle, dispose } = getKernel().composeTransform(kernelOps);
174
+ return { trsf: handle, cleanup: dispose };
175
+ }
176
+ function transformCopy(shape, composed) {
177
+ const inputFaceHashes = collectInputFaceHashes([shape]);
178
+ const { shape: resultShape, evolution } = getKernel().applyComposedTransformWithHistory(
179
+ shape.wrapped,
180
+ composed.trsf,
181
+ inputFaceHashes,
182
+ HASH_CODE_MAX
183
+ );
184
+ const result = castShape(resultShape);
185
+ propagateAllMetadata(evolution, [shape], result);
186
+ return result;
187
+ }
11
188
  function toBufferGeometryData(mesh) {
12
189
  return {
13
190
  position: mesh.vertices,
@@ -547,47 +724,55 @@ function addHoles(f, holes) {
547
724
  return addHolesInFace(f, holes);
548
725
  }
549
726
  export {
550
- polygon as A,
551
- sewShells as B,
552
- sharedEdges as C,
553
- solid as D,
554
- sphere as E,
555
- subFace as F,
556
- tangentArc as G,
557
- threePointArc as H,
558
- toBufferGeometryData as I,
559
- toGroupedBufferGeometryData as J,
560
- toLineGeometryData as K,
561
- torus as L,
562
- vertex as M,
563
- verticesOfEdge as N,
564
- wire as O,
565
- wireLoop as P,
566
- wiresOfFace as Q,
567
- addHoles as a,
568
- adjacentFaces as b,
727
+ filledFace as A,
728
+ healFace as B,
729
+ healSolid as C,
730
+ healWire as D,
731
+ helix as E,
732
+ line as F,
733
+ offsetFace as G,
734
+ polygon as H,
735
+ resize as I,
736
+ sewShells as J,
737
+ sharedEdges as K,
738
+ solid as L,
739
+ sphere as M,
740
+ subFace as N,
741
+ tangentArc as O,
742
+ threePointArc as P,
743
+ toBufferGeometryData as Q,
744
+ toGroupedBufferGeometryData as R,
745
+ toLineGeometryData as S,
746
+ torus as T,
747
+ vertex as U,
748
+ verticesOfEdge as V,
749
+ wire as W,
750
+ wireLoop as X,
751
+ wiresOfFace as Y,
752
+ applyMatrix as a,
753
+ translate as b,
569
754
  chamferDistAngle as c,
570
- autoHeal as d,
571
- bezier as e,
572
- box as f,
573
- bsplineApprox as g,
755
+ addHoles as d,
756
+ adjacentFaces as e,
757
+ autoHeal as f,
758
+ bezier as g,
574
759
  heal as h,
575
760
  isValid as i,
576
- circle as j,
577
- compound as k,
578
- cone as l,
579
- cylinder as m,
580
- edgesOfFace as n,
581
- ellipse as o,
582
- ellipseArc as p,
583
- ellipsoid as q,
584
- face as r,
585
- facesOfEdge as s,
586
- filledFace as t,
587
- healFace as u,
588
- healSolid as v,
589
- healWire as w,
590
- helix as x,
591
- line as y,
592
- offsetFace as z
761
+ box as j,
762
+ bsplineApprox as k,
763
+ circle as l,
764
+ mirror as m,
765
+ composeTransforms as n,
766
+ compound as o,
767
+ cone as p,
768
+ cylinder as q,
769
+ rotate as r,
770
+ scale as s,
771
+ transformCopy as t,
772
+ edgesOfFace as u,
773
+ ellipse as v,
774
+ ellipseArc as w,
775
+ ellipsoid as x,
776
+ face as y,
777
+ facesOfEdge as z
593
778
  };
package/dist/topology.cjs CHANGED
@@ -1,25 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const shapeFns = require("./shapeFns-C2SnNvdH.cjs");
4
- const topology = require("./topology-ANwCzGL8.cjs");
5
- const booleanFns = require("./booleanFns-gmsX3Cv2.cjs");
6
- const curveFns = require("./curveFns-BZngcnQ1.cjs");
7
- const faceFns = require("./faceFns-DB1Fc5gy.cjs");
8
- const meshFns = require("./meshFns-BnV0ZR8w.cjs");
9
- exports.getBounds = shapeFns.getBounds;
10
- exports.getEdges = shapeFns.getEdges;
11
- exports.getFaces = shapeFns.getFaces;
3
+ const shapeFns = require("./shapeFns-w9tWELHX.cjs");
4
+ const topology = require("./topology-CyPHYYjV.cjs");
5
+ const booleanFns = require("./booleanFns-BBd2oTvv.cjs");
6
+ const curveFns = require("./curveFns-BwLvO_Ia.cjs");
7
+ const faceFns = require("./faceFns-BAKkZG6D.cjs");
8
+ const meshFns = require("./meshFns-7dgZgNYK.cjs");
9
+ const topologyQueryFns = require("./topologyQueryFns-fz5kz5e1.cjs");
12
10
  exports.getHashCode = shapeFns.getHashCode;
13
- exports.getVertices = shapeFns.getVertices;
14
- exports.getWires = shapeFns.getWires;
15
- exports.invalidateShapeCache = shapeFns.invalidateShapeCache;
16
11
  exports.isEqualShape = shapeFns.isEqualShape;
17
12
  exports.isSameShape = shapeFns.isSameShape;
18
- exports.iterEdges = shapeFns.iterEdges;
19
- exports.iterFaces = shapeFns.iterFaces;
20
- exports.iterVertices = shapeFns.iterVertices;
21
- exports.iterWires = shapeFns.iterWires;
22
- exports.vertexPosition = shapeFns.vertexPosition;
23
13
  exports.addHoles = topology.addHoles;
24
14
  exports.adjacentFaces = topology.adjacentFaces;
25
15
  exports.autoHeal = topology.autoHeal;
@@ -102,3 +92,14 @@ exports.createMeshCache = meshFns.createMeshCache;
102
92
  exports.exportIGES = meshFns.exportIGES;
103
93
  exports.exportSTEP = meshFns.exportSTEP;
104
94
  exports.exportSTL = meshFns.exportSTL;
95
+ exports.getBounds = topologyQueryFns.getBounds;
96
+ exports.getEdges = topologyQueryFns.getEdges;
97
+ exports.getFaces = topologyQueryFns.getFaces;
98
+ exports.getVertices = topologyQueryFns.getVertices;
99
+ exports.getWires = topologyQueryFns.getWires;
100
+ exports.invalidateShapeCache = topologyQueryFns.invalidateShapeCache;
101
+ exports.iterEdges = topologyQueryFns.iterEdges;
102
+ exports.iterFaces = topologyQueryFns.iterFaces;
103
+ exports.iterVertices = topologyQueryFns.iterVertices;
104
+ exports.iterWires = topologyQueryFns.iterWires;
105
+ exports.vertexPosition = topologyQueryFns.vertexPosition;