brepjs 20.5.0 → 20.7.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 (117) hide show
  1. package/README.md +1 -0
  2. package/dist/2d.cjs +9 -11
  3. package/dist/2d.js +9 -11
  4. package/dist/{adjacencyFns-DeyXahej.js → adjacencyFns-BgJQQjdt.js} +5 -6
  5. package/dist/{adjacencyFns-1rxgJ6Hw.cjs → adjacencyFns-_RTYhwtD.cjs} +5 -6
  6. package/dist/{arrayAccess-DrUGPADn.js → arrayAccess-BpgouNir.js} +1 -2
  7. package/dist/{arrayAccess-e4H9cBfh.cjs → arrayAccess-DpJYARwv.cjs} +1 -2
  8. package/dist/{blueprint-rwJjYPzo.js → blueprint-Bth4EVaO.js} +24 -37
  9. package/dist/{blueprint-Yyoiz-U1.cjs → blueprint-wq2TU1XP.cjs} +24 -37
  10. package/dist/{blueprintFns-Q3Sq-Fse.js → blueprintFns-DQmNe1p6.js} +5 -7
  11. package/dist/{blueprintFns-Ce6OoPSX.cjs → blueprintFns-Dd0gm1rX.cjs} +5 -7
  12. package/dist/{blueprintSketcher-CzKbxeTk.cjs → blueprintSketcher-CSDqr27-.cjs} +19 -31
  13. package/dist/{blueprintSketcher-FywUpRiV.js → blueprintSketcher-DNp87aQZ.js} +19 -31
  14. package/dist/{boolean2D-D8igCYc9.js → boolean2D-BAb4SnIL.js} +13 -19
  15. package/dist/{boolean2D-BzZ9iBSn.cjs → boolean2D-BkgOjMRt.cjs} +13 -19
  16. package/dist/brepjs.cjs +113 -187
  17. package/dist/brepjs.js +113 -188
  18. package/dist/{bug-O02CsAmt.cjs → bug-CBcpIPuf.cjs} +2 -4
  19. package/dist/{bug-BdOHwn_e.js → bug-ClMTAJhe.js} +2 -4
  20. package/dist/{cameraFns-Cs6v3bWQ.js → cameraFns-9AGyuZVp.js} +8 -11
  21. package/dist/{cameraFns-RHCb1F1s.cjs → cameraFns-CKUN90f_.cjs} +8 -11
  22. package/dist/{constants-ITRzCnCp.js → constants-iraOnb2p.js} +1 -2
  23. package/dist/{constants-BOVyEYGH.cjs → constants-oee0S_x6.cjs} +1 -2
  24. package/dist/core/errors.d.ts +3 -0
  25. package/dist/core.cjs +8 -8
  26. package/dist/core.js +8 -8
  27. package/dist/{cornerFinder-Dlae8IX5.js → cornerFinder-Cr_04etw.js} +4 -5
  28. package/dist/{cornerFinder-Cji_BK-R.cjs → cornerFinder-DJWo6h1Z.cjs} +4 -5
  29. package/dist/{curveFns-KS1BWGhF.js → curveFns-CkA2WJP2.js} +3 -4
  30. package/dist/{curveFns-6-ULFrEB.cjs → curveFns-U7srQ3ZA.cjs} +3 -4
  31. package/dist/{drawFns-3yRVBDgI.js → drawFns-C6bmFijD.js} +32 -45
  32. package/dist/{drawFns-Ddlgp9gQ.cjs → drawFns-DlCxozRP.cjs} +32 -45
  33. package/dist/{errors-jwhfQJZK.cjs → errors-GVyCnpi0.cjs} +6 -5
  34. package/dist/{errors-Zb3jBa0u.js → errors-vxP5FT8B.js} +6 -5
  35. package/dist/{faceFns-CTlJC5IY.js → faceFns-BBk6XKJO.js} +6 -8
  36. package/dist/{faceFns-CZeHWke7.cjs → faceFns-DSRREV5G.cjs} +6 -8
  37. package/dist/{faceRoleFns-CWU1-Pm8.js → faceRoleFns-BPxzQF-n.js} +1 -2
  38. package/dist/{faceRoleFns-CtH_48MO.cjs → faceRoleFns-Db5bYj4Q.cjs} +1 -2
  39. package/dist/{healingFns-DwSpJZfg.cjs → healingFns-C9G3yjOe.cjs} +148 -51
  40. package/dist/{healingFns-Ct3gEMvk.js → healingFns-CEr0afli.js} +148 -51
  41. package/dist/{helpers-NRZVshPb.cjs → helpers-JuPoaP_b.cjs} +15 -21
  42. package/dist/{helpers-BN1mVMuZ.js → helpers-sDialr0f.js} +15 -21
  43. package/dist/{importFns-BEi-HsSw.cjs → importFns-ClqPJCFR.cjs} +12 -19
  44. package/dist/{importFns-0kHGg-b8.js → importFns-DSUfSQn2.js} +12 -19
  45. package/dist/io.cjs +2 -2
  46. package/dist/io.js +2 -2
  47. package/dist/kernel/capabilities.d.ts +8 -0
  48. package/dist/kernel/occtWasm/occtWasmAdapter.cjs +1 -1
  49. package/dist/kernel/occtWasm/occtWasmAdapter.js +1 -2
  50. package/dist/{loftFns-B5mq1WDh.js → loftFns-B8DSoG-F.js} +7 -10
  51. package/dist/{loftFns-DL9UsQhd.cjs → loftFns-mkJeOaII.cjs} +7 -10
  52. package/dist/{measureFns-D_GpQw5z.cjs → measureFns-BvNkzSR6.cjs} +6 -8
  53. package/dist/{measureFns-CyDVZomf.js → measureFns-PRM3gOjw.js} +6 -8
  54. package/dist/measurement.cjs +2 -2
  55. package/dist/measurement.js +2 -2
  56. package/dist/{meshFns-COlno8TY.js → meshFns-CgbT3uuO.js} +6 -8
  57. package/dist/{meshFns-CAxkaRTm.cjs → meshFns-W7ZTKqiJ.cjs} +6 -8
  58. package/dist/{occtWasmAdapter-CA6PmIIj.cjs → occtWasmAdapter-BSQeA69d.cjs} +49 -57
  59. package/dist/{occtWasmAdapter-BX10fyla.js → occtWasmAdapter-PzZJHUAd.js} +44 -58
  60. package/dist/operations.cjs +2 -2
  61. package/dist/operations.js +2 -2
  62. package/dist/{originTrackingFns-DiHy5BZC.js → originTrackingFns-D8SNCDKj.js} +4 -5
  63. package/dist/{originTrackingFns-CWo6NWHK.cjs → originTrackingFns-DJDTRJh3.cjs} +4 -5
  64. package/dist/{planeOps-DJuclNxa.cjs → planeOps-C9d2Y56B.cjs} +5 -6
  65. package/dist/{planeOps-Cxws4Tiu.js → planeOps-Dp0YvuFE.js} +5 -6
  66. package/dist/{primitiveFns-ZV3aMbqG.cjs → primitiveFns-EtHyTqhw.cjs} +8 -10
  67. package/dist/{primitiveFns-CGJzS4MO.js → primitiveFns-W3RYNJcm.js} +8 -10
  68. package/dist/{principalBoxFns-BJgGEoik.js → principalBoxFns-Cbtty-2_.js} +7 -8
  69. package/dist/{principalBoxFns-5FSbxAj-.cjs → principalBoxFns-CmZa7qHi.cjs} +7 -8
  70. package/dist/projection.cjs +1 -1
  71. package/dist/projection.js +1 -2
  72. package/dist/query.cjs +2 -2
  73. package/dist/query.js +2 -2
  74. package/dist/{refResolveFns-CpVZoeOT.js → refResolveFns-BkciKtNP.js} +14 -21
  75. package/dist/{refResolveFns-Ct52Uw7R.cjs → refResolveFns-D99Vqe7a.cjs} +14 -21
  76. package/dist/result.cjs +2 -2
  77. package/dist/result.js +2 -2
  78. package/dist/{rolldown-runtime-C0BPl7ul.cjs → rolldown-runtime-BW-eSwOZ.cjs} +1 -2
  79. package/dist/{shapeFns-C2j6oZ2u.cjs → shapeFns-B54CsPyk.cjs} +5 -6
  80. package/dist/{shapeFns--1wNlcc_.js → shapeFns-DB3l3ULC.js} +5 -6
  81. package/dist/shapeRef.cjs +1 -1
  82. package/dist/shapeRef.js +1 -2
  83. package/dist/{shapeTypes-CqNJoSam.js → shapeTypes-CgbUTASh.js} +82 -161
  84. package/dist/{shapeTypes-DH2ShBU_.cjs → shapeTypes-D_anqiRe.cjs} +82 -161
  85. package/dist/sketching.cjs +4 -5
  86. package/dist/sketching.js +4 -5
  87. package/dist/{solidBuilders-CgicU3le.cjs → solidBuilders-CUd-korS.cjs} +17 -23
  88. package/dist/{solidBuilders-IstbiWju.js → solidBuilders-DE_na4G3.js} +17 -23
  89. package/dist/{surfaceBuilders-vYgSvgI6.cjs → surfaceBuilders-DOn2jWkh.cjs} +8 -12
  90. package/dist/{surfaceBuilders-8nLk2PWk.js → surfaceBuilders-wdGNiImD.js} +8 -12
  91. package/dist/text.cjs +2 -2
  92. package/dist/text.js +2 -2
  93. package/dist/{textBlueprints-fa7VHJZz.cjs → textBlueprints-BQ60Rc96.cjs} +24 -32
  94. package/dist/{textBlueprints-C13NAA3C.js → textBlueprints-B_jwMuej.js} +23 -31
  95. package/dist/{textMetrics--cikHkGX.cjs → textMetrics-Bm0a4kh7.cjs} +4 -6
  96. package/dist/{textMetrics-Dcc63qRm.js → textMetrics-Dj3yfZNQ.js} +4 -6
  97. package/dist/{threadFns-BUQPg_vI.cjs → threadFns-BuRPVenB.cjs} +21 -33
  98. package/dist/{threadFns-3U9x4v_M.js → threadFns-DlL5VnMf.js} +21 -33
  99. package/dist/topology/modifierFns.d.ts +5 -0
  100. package/dist/topology/thickResultCheck.d.ts +18 -0
  101. package/dist/topology.cjs +9 -9
  102. package/dist/topology.js +9 -9
  103. package/dist/{topologyQueryFns-DnfjQgP7.js → topologyQueryFns-6M_dbT1R.js} +10 -10
  104. package/dist/{topologyQueryFns-q2bGyuEV.cjs → topologyQueryFns-ENxs8uu2.cjs} +15 -9
  105. package/dist/{types-D24Y27N0.js → types-CKXsIm9-.js} +1 -2
  106. package/dist/{types-KjA8tY4Y.cjs → types-CjF9Rofr.cjs} +1 -2
  107. package/dist/{validityTypes-r0A2YdNq.cjs → validityTypes-BPamqRZ8.cjs} +3 -4
  108. package/dist/{validityTypes-t7JpS0Ki.js → validityTypes-BTuI0vcR.js} +3 -4
  109. package/dist/{vecOps-CCnJt-yH.cjs → vecOps-CrGEPPQM.cjs} +1 -2
  110. package/dist/{vecOps-SKPRvPH-.js → vecOps-S-m9H_fe.js} +1 -2
  111. package/dist/vectors.cjs +4 -4
  112. package/dist/vectors.js +4 -4
  113. package/dist/worker.cjs +1 -1
  114. package/dist/worker.js +1 -2
  115. package/dist/{workerPool-XcYX2UZ0.js → workerPool-Bc5hmJc4.js} +5 -10
  116. package/dist/{workerPool-D30NsiIW.cjs → workerPool-D5tiNXrI.cjs} +5 -10
  117. package/package.json +10 -10
package/dist/brepjs.cjs CHANGED
@@ -1,44 +1,44 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_rolldown_runtime = require("./rolldown-runtime-C0BPl7ul.cjs");
3
- const require_shapeTypes = require("./shapeTypes-DH2ShBU_.cjs");
4
- const require_occtWasmAdapter = require("./occtWasmAdapter-CA6PmIIj.cjs");
5
- const require_bug = require("./bug-O02CsAmt.cjs");
6
- const require_errors = require("./errors-jwhfQJZK.cjs");
7
- const require_topologyQueryFns = require("./topologyQueryFns-q2bGyuEV.cjs");
8
- const require_validityTypes = require("./validityTypes-r0A2YdNq.cjs");
9
- const require_constants = require("./constants-BOVyEYGH.cjs");
10
- const require_types = require("./types-KjA8tY4Y.cjs");
11
- const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
12
- const require_planeOps = require("./planeOps-DJuclNxa.cjs");
13
- const require_faceFns = require("./faceFns-CZeHWke7.cjs");
14
- const require_originTrackingFns = require("./originTrackingFns-CWo6NWHK.cjs");
15
- const require_solidBuilders = require("./solidBuilders-CgicU3le.cjs");
16
- const require_primitiveFns = require("./primitiveFns-ZV3aMbqG.cjs");
17
- const require_shapeFns = require("./shapeFns-C2j6oZ2u.cjs");
18
- const require_curveFns = require("./curveFns-6-ULFrEB.cjs");
19
- const require_meshFns = require("./meshFns-CAxkaRTm.cjs");
20
- const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
21
- const require_surfaceBuilders = require("./surfaceBuilders-vYgSvgI6.cjs");
22
- const require_healingFns = require("./healingFns-DwSpJZfg.cjs");
23
- const require_threadFns = require("./threadFns-BUQPg_vI.cjs");
24
- const require_blueprintSketcher = require("./blueprintSketcher-CzKbxeTk.cjs");
25
- const require_helpers = require("./helpers-NRZVshPb.cjs");
26
- const require_blueprint = require("./blueprint-Yyoiz-U1.cjs");
27
- const require_drawFns = require("./drawFns-Ddlgp9gQ.cjs");
28
- const require_measureFns = require("./measureFns-D_GpQw5z.cjs");
29
- const require_cornerFinder = require("./cornerFinder-Cji_BK-R.cjs");
30
- const require_boolean2D = require("./boolean2D-BzZ9iBSn.cjs");
31
- const require_blueprintFns = require("./blueprintFns-Ce6OoPSX.cjs");
32
- const require_importFns = require("./importFns-BEi-HsSw.cjs");
33
- const require_textBlueprints = require("./textBlueprints-fa7VHJZz.cjs");
34
- const require_loftFns = require("./loftFns-DL9UsQhd.cjs");
35
- const require_refResolveFns = require("./refResolveFns-Ct52Uw7R.cjs");
36
- const require_adjacencyFns = require("./adjacencyFns-1rxgJ6Hw.cjs");
37
- const require_cameraFns = require("./cameraFns-RHCb1F1s.cjs");
38
- const require_textMetrics = require("./textMetrics--cikHkGX.cjs");
39
- const require_principalBoxFns = require("./principalBoxFns-5FSbxAj-.cjs");
40
- const require_workerPool = require("./workerPool-D30NsiIW.cjs");
41
- //#region src/kernel/types.ts
2
+ const require_rolldown_runtime = require("./rolldown-runtime-BW-eSwOZ.cjs");
3
+ const require_shapeTypes = require("./shapeTypes-D_anqiRe.cjs");
4
+ const require_occtWasmAdapter = require("./occtWasmAdapter-BSQeA69d.cjs");
5
+ const require_bug = require("./bug-CBcpIPuf.cjs");
6
+ const require_errors = require("./errors-GVyCnpi0.cjs");
7
+ const require_topologyQueryFns = require("./topologyQueryFns-ENxs8uu2.cjs");
8
+ const require_validityTypes = require("./validityTypes-BPamqRZ8.cjs");
9
+ const require_constants = require("./constants-oee0S_x6.cjs");
10
+ const require_types = require("./types-CjF9Rofr.cjs");
11
+ const require_vecOps = require("./vecOps-CrGEPPQM.cjs");
12
+ const require_planeOps = require("./planeOps-C9d2Y56B.cjs");
13
+ const require_faceFns = require("./faceFns-DSRREV5G.cjs");
14
+ const require_originTrackingFns = require("./originTrackingFns-DJDTRJh3.cjs");
15
+ const require_solidBuilders = require("./solidBuilders-CUd-korS.cjs");
16
+ const require_primitiveFns = require("./primitiveFns-EtHyTqhw.cjs");
17
+ const require_shapeFns = require("./shapeFns-B54CsPyk.cjs");
18
+ const require_curveFns = require("./curveFns-U7srQ3ZA.cjs");
19
+ const require_meshFns = require("./meshFns-W7ZTKqiJ.cjs");
20
+ const require_arrayAccess = require("./arrayAccess-DpJYARwv.cjs");
21
+ const require_surfaceBuilders = require("./surfaceBuilders-DOn2jWkh.cjs");
22
+ const require_healingFns = require("./healingFns-C9G3yjOe.cjs");
23
+ const require_threadFns = require("./threadFns-BuRPVenB.cjs");
24
+ const require_blueprintSketcher = require("./blueprintSketcher-CSDqr27-.cjs");
25
+ const require_helpers = require("./helpers-JuPoaP_b.cjs");
26
+ const require_blueprint = require("./blueprint-wq2TU1XP.cjs");
27
+ const require_drawFns = require("./drawFns-DlCxozRP.cjs");
28
+ const require_measureFns = require("./measureFns-BvNkzSR6.cjs");
29
+ const require_cornerFinder = require("./cornerFinder-DJWo6h1Z.cjs");
30
+ const require_boolean2D = require("./boolean2D-BkgOjMRt.cjs");
31
+ const require_blueprintFns = require("./blueprintFns-Dd0gm1rX.cjs");
32
+ const require_importFns = require("./importFns-ClqPJCFR.cjs");
33
+ const require_textBlueprints = require("./textBlueprints-BQ60Rc96.cjs");
34
+ const require_loftFns = require("./loftFns-mkJeOaII.cjs");
35
+ const require_refResolveFns = require("./refResolveFns-D99Vqe7a.cjs");
36
+ const require_adjacencyFns = require("./adjacencyFns-_RTYhwtD.cjs");
37
+ const require_cameraFns = require("./cameraFns-CKUN90f_.cjs");
38
+ const require_textMetrics = require("./textMetrics-Bm0a4kh7.cjs");
39
+ const require_principalBoxFns = require("./principalBoxFns-CmZa7qHi.cjs");
40
+ const require_workerPool = require("./workerPool-D5tiNXrI.cjs");
41
+ // src/kernel/types.ts
42
42
  /** Check if the kernel supports hidden-line-removal projection. */
43
43
  function supportsProjection(kernel) {
44
44
  return "projectEdges" in kernel;
@@ -47,8 +47,7 @@ function supportsProjection(kernel) {
47
47
  function supportsConstraintSketch(kernel) {
48
48
  return "sketchNew" in kernel && "sketchDof" in kernel;
49
49
  }
50
- //#endregion
51
- //#region src/topology/shapeBooleans.ts
50
+ // src/topology/shapeBooleans.ts
52
51
  var BOPAlgo_GlueShift = 1;
53
52
  var BOPAlgo_GlueFull = 2;
54
53
  /**
@@ -61,8 +60,7 @@ function applyGlue(op, optimisation) {
61
60
  if (optimisation === "commonFace") op.SetGlue(BOPAlgo_GlueShift);
62
61
  if (optimisation === "sameFace") op.SetGlue(BOPAlgo_GlueFull);
63
62
  }
64
- //#endregion
65
- //#region src/topology/shapeModifiers.ts
63
+ // src/topology/shapeModifiers.ts
66
64
  function isNumber(r) {
67
65
  return typeof r === "number";
68
66
  }
@@ -79,8 +77,7 @@ function isFilletRadius(r) {
79
77
  if (Array.isArray(r) && r.length === 2) return r.every(isNumber);
80
78
  return false;
81
79
  }
82
- //#endregion
83
- //#region src/query/vertexFinder.ts
80
+ // src/query/vertexFinder.ts
84
81
  /**
85
82
  * Wrap a vertex finder so that `findAll` and `findUnique` return only the
86
83
  * single vertex closest to `nearestPoint` among candidates that pass all
@@ -134,8 +131,7 @@ function buildVertexFinder(filters) {
134
131
  function vertexFinder() {
135
132
  return buildVertexFinder([]);
136
133
  }
137
- //#endregion
138
- //#region src/voxel/registry.ts
134
+ // src/voxel/registry.ts
139
135
  var _engines = /* @__PURE__ */ new Map();
140
136
  var _defaultId = null;
141
137
  var _cached = null;
@@ -173,8 +169,7 @@ function initVoxel(engine, id = "voxel") {
173
169
  _defaultId = id;
174
170
  _cached = engine;
175
171
  }
176
- //#endregion
177
- //#region src/voxel/signFns.ts
172
+ // src/voxel/signFns.ts
178
173
  /**
179
174
  * Validate a triangle-soup mesh before it crosses into wasm: flat-xyz vertices,
180
175
  * triangle-multiple indices, and every index in range. An out-of-range index
@@ -232,8 +227,7 @@ function pointsInside(mesh, queries, id) {
232
227
  const flags = engine.value.points_inside(mesh.vertices, mesh.triangles, queries);
233
228
  return require_errors.ok(Array.from(flags, (flag) => flag === 1));
234
229
  }
235
- //#endregion
236
- //#region src/voxel/repairFns.ts
230
+ // src/voxel/repairFns.ts
237
231
  var DEFAULT_RESOLUTION$4 = 48;
238
232
  var DEFAULT_PADDING$4 = 2;
239
233
  /**
@@ -279,8 +273,7 @@ function repairMesh(mesh, opts, id) {
279
273
  return require_errors.err(require_errors.computationError("VOXEL_REPAIR_FAILED", cause instanceof Error ? cause.message : "voxel repair failed (grid too large?).", cause));
280
274
  }
281
275
  }
282
- //#endregion
283
- //#region src/voxel/shapeMesh.ts
276
+ // src/voxel/shapeMesh.ts
284
277
  var DEFAULT_DEFLECTION = .001;
285
278
  /**
286
279
  * Mesh a B-rep shape into the flat triangle-soup {@link VoxelMeshInput} the voxel
@@ -300,8 +293,7 @@ function shapeToMeshInput(shape, deflection = DEFAULT_DEFLECTION) {
300
293
  return require_errors.err(require_errors.computationError("VOXEL_SHAPE_MESH_FAILED", cause instanceof Error ? cause.message : "failed to mesh shape for voxel op.", cause));
301
294
  }
302
295
  }
303
- //#endregion
304
- //#region src/voxel/meshOpsFns.ts
296
+ // src/voxel/meshOpsFns.ts
305
297
  var DEFAULT_RESOLUTION$3 = 48;
306
298
  var DEFAULT_PADDING$3 = 2;
307
299
  var BOOLEAN_OP_CODES$1 = {
@@ -456,8 +448,7 @@ function voxelBooleanShapes(a, b, op, opts, id) {
456
448
  if (require_errors.isErr(meshB)) return meshB;
457
449
  return voxelBoolean(meshA.value, meshB.value, op, opts, id);
458
450
  }
459
- //#endregion
460
- //#region src/voxel/fieldFns.ts
451
+ // src/voxel/fieldFns.ts
461
452
  var DEFAULT_RESOLUTION$2 = 48;
462
453
  var DEFAULT_PADDING$2 = 2;
463
454
  var BOOLEAN_OP_CODES = {
@@ -718,8 +709,7 @@ function voxelBooleanFieldShapes(a, b, op, opts, id) {
718
709
  if (require_errors.isErr(meshB)) return meshB;
719
710
  return voxelBooleanField(meshA.value, meshB.value, op, opts, id);
720
711
  }
721
- //#endregion
722
- //#region src/implicit/sdfFns.ts
712
+ // src/implicit/sdfFns.ts
723
713
  var DEFAULT_RESOLUTION$1 = 48;
724
714
  var DEFAULT_PADDING$1 = 2;
725
715
  function resolveEngine(id) {
@@ -1015,8 +1005,7 @@ function fieldFromSdf(sdf, scale, offset, id) {
1015
1005
  function fieldClamp(field, min, max, id) {
1016
1006
  return buildField((e) => e.ScalarField.clamp(field.value, min, max), id);
1017
1007
  }
1018
- //#endregion
1019
- //#region src/lattice/latticeFns.ts
1008
+ // src/lattice/latticeFns.ts
1020
1009
  var LATTICE_TAGS = {
1021
1010
  gyroid: 0,
1022
1011
  schwarzP: 1,
@@ -1130,8 +1119,7 @@ function tpmsLattice(bounds, opts, id) {
1130
1119
  return require_errors.err(require_errors.computationError("TPMS_LATTICE_FAILED", cause instanceof Error ? cause.message : "tpms lattice failed (grid too large?).", cause));
1131
1120
  }
1132
1121
  }
1133
- //#endregion
1134
- //#region src/csg/hash.ts
1122
+ // src/csg/hash.ts
1135
1123
  var FNV_OFFSET = 14695981039346656037n;
1136
1124
  var FNV_PRIME = 1099511628211n;
1137
1125
  var MASK_64 = 18446744073709551615n;
@@ -1189,8 +1177,7 @@ function fnvMixBool(h, b) {
1189
1177
  function toHex(h) {
1190
1178
  return (h & MASK_64).toString(16).padStart(16, "0");
1191
1179
  }
1192
- //#endregion
1193
- //#region src/csg/expressions.ts
1180
+ // src/csg/expressions.ts
1194
1181
  var EMPTY_DEPS$1 = /* @__PURE__ */ new Set();
1195
1182
  function startHash$1(tag) {
1196
1183
  return fnvMixString(fnvInit(), tag);
@@ -1427,8 +1414,7 @@ function projectEnv(env, deps) {
1427
1414
  }
1428
1415
  return Object.freeze(out);
1429
1416
  }
1430
- //#endregion
1431
- //#region src/csg/segments.ts
1417
+ // src/csg/segments.ts
1432
1418
  /**
1433
1419
  * Serializable 2D segment vocabulary — endpoint-parametrized (SVG-style)
1434
1420
  * curve segments shared by the Path node (open spines) and, later, Profile
@@ -1530,8 +1516,7 @@ function foldSegment(s, foldExpr) {
1530
1516
  });
1531
1517
  }
1532
1518
  }
1533
- //#endregion
1534
- //#region src/csg/jsonData.ts
1519
+ // src/csg/jsonData.ts
1535
1520
  /** Validate `value` as JSON-safe and return its canonical frozen copy, or a
1536
1521
  * message naming the first offending path (rooted at `path`). */
1537
1522
  function canonicalJson(value, path) {
@@ -1605,8 +1590,7 @@ function hashJson(h, v) {
1605
1590
  function isJsonArray(v) {
1606
1591
  return Array.isArray(v);
1607
1592
  }
1608
- //#endregion
1609
- //#region src/csg/types.ts
1593
+ // src/csg/types.ts
1610
1594
  var OUTPUT_KINDS = {
1611
1595
  Solid: true,
1612
1596
  Face: true,
@@ -1654,8 +1638,7 @@ function outputKindOf(node) {
1654
1638
  case "Extension": return node.output;
1655
1639
  }
1656
1640
  }
1657
- //#endregion
1658
- //#region src/csg/builders.ts
1641
+ // src/csg/builders.ts
1659
1642
  var EMPTY_DEPS = /* @__PURE__ */ new Set();
1660
1643
  function startHash(tag) {
1661
1644
  return fnvMixString(fnvInit(), tag);
@@ -2200,8 +2183,7 @@ function extension(name, output, options) {
2200
2183
  freeParams: depsOf(...children, ...params.map(([, e]) => e))
2201
2184
  };
2202
2185
  }
2203
- //#endregion
2204
- //#region src/csg/profiles.ts
2186
+ // src/csg/profiles.ts
2205
2187
  /**
2206
2188
  * Canned profile builders matching the brepjs-bim parametric profile set
2207
2189
  * (IfcProfileDef vocabulary). Parameter names mirror the bim specs 1:1 so a
@@ -2409,8 +2391,7 @@ function arbitraryProfileWithVoids(outerPoints, voids) {
2409
2391
  return contour(v[0] ?? [0, 0], v.slice(1).map((pt) => lineTo(pt)));
2410
2392
  }));
2411
2393
  }
2412
- //#endregion
2413
- //#region src/csg/evaluators/primitives.ts
2394
+ // src/csg/evaluators/primitives.ts
2414
2395
  function evalBox(node, ctx) {
2415
2396
  const x = evalScalar(node.x, ctx.env, "Box.x");
2416
2397
  if (!x.ok) return x;
@@ -2474,8 +2455,7 @@ function evalVertex(node, ctx) {
2474
2455
  if (!p.ok) return p;
2475
2456
  return require_errors.ok(require_primitiveFns.vertex(p.value));
2476
2457
  }
2477
- //#endregion
2478
- //#region src/csg/evaluators/booleans.ts
2458
+ // src/csg/evaluators/booleans.ts
2479
2459
  /**
2480
2460
  * Evaluators for CSG boolean nodes.
2481
2461
  *
@@ -2555,8 +2535,7 @@ function evalCutAll(node, ctx) {
2555
2535
  if (!resolved.ok) return resolved;
2556
2536
  return require_solidBuilders.cutAll(base.value, resolved.value, boolOptions(node, ctx));
2557
2537
  }
2558
- //#endregion
2559
- //#region src/csg/evaluators/transforms.ts
2538
+ // src/csg/evaluators/transforms.ts
2560
2539
  function emptyResult(kind) {
2561
2540
  return require_errors.err(require_errors.computationError(require_errors.BrepErrorCode.NULL_SHAPE_INPUT, `${kind}: cannot transform an Empty node`));
2562
2541
  }
@@ -2660,8 +2639,7 @@ function evalMirror(node, ctx) {
2660
2639
  if (!r.ok) return r;
2661
2640
  return require_errors.ok(require_primitiveFns.mirror(r.value, normal.value, at.value));
2662
2641
  }
2663
- //#endregion
2664
- //#region src/csg/evaluators/compound.ts
2642
+ // src/csg/evaluators/compound.ts
2665
2643
  function evalCompound(node, ctx) {
2666
2644
  const non = node.children.filter((c) => c.kind !== "Empty");
2667
2645
  if (non.length === 0) return require_errors.err(require_errors.computationError(require_errors.BrepErrorCode.NULL_SHAPE_INPUT, "Compound: cannot materialize a compound with zero non-empty children"));
@@ -2676,8 +2654,7 @@ function evalCompound(node, ctx) {
2676
2654
  function evalEmpty() {
2677
2655
  return require_errors.err(require_errors.computationError(require_errors.BrepErrorCode.NULL_SHAPE_INPUT, "Empty: cannot materialize an Empty node directly — only valid as boolean/transform operand"));
2678
2656
  }
2679
- //#endregion
2680
- //#region src/operations/instanceFns.ts
2657
+ // src/operations/instanceFns.ts
2681
2658
  /**
2682
2659
  * Transform-only instancing — hold ONE source shape + N placements without
2683
2660
  * copying the kernel shape. Real geometry (a Compound, or a fused solid) or a
@@ -2809,15 +2786,13 @@ function instancedMesh(inst, opts) {
2809
2786
  instances: inst.placements
2810
2787
  };
2811
2788
  }
2812
- //#endregion
2813
- //#region src/csg/evaluators/instance.ts
2789
+ // src/csg/evaluators/instance.ts
2814
2790
  function evalInstance(node, ctx) {
2815
2791
  const r = ctx.evalNode(node.source);
2816
2792
  if (!r.ok) return r;
2817
2793
  return materialize(instance(r.value, node.placements), { fuse: node.fuse });
2818
2794
  }
2819
- //#endregion
2820
- //#region src/csg/evaluators/profileFace.ts
2795
+ // src/csg/evaluators/profileFace.ts
2821
2796
  /** Evaluate a profile child and prove it is an oriented planar face — the
2822
2797
  * input contract shared by every profile-consuming feature node. */
2823
2798
  function resolveProfileFace(ctx, profile, where) {
@@ -2829,8 +2804,7 @@ function resolveProfileFace(ctx, profile, where) {
2829
2804
  if (!require_validityTypes.isPlanarFace(oriented.value)) return require_errors.err(require_errors.typeCastError("CSG_NOT_FACE", `${where}: face is not planar`));
2830
2805
  return require_errors.ok(oriented.value);
2831
2806
  }
2832
- //#endregion
2833
- //#region src/csg/evaluators/extrude.ts
2807
+ // src/csg/evaluators/extrude.ts
2834
2808
  function evalExtrude(node, ctx) {
2835
2809
  const v = evalVec3(node.vector, ctx.env, "Extrude.vector");
2836
2810
  if (!v.ok) return v;
@@ -2838,8 +2812,7 @@ function evalExtrude(node, ctx) {
2838
2812
  if (!face.ok) return face;
2839
2813
  return require_textBlueprints.extrude(face.value, v.value);
2840
2814
  }
2841
- //#endregion
2842
- //#region src/csg/evaluators/revolve.ts
2815
+ // src/csg/evaluators/revolve.ts
2843
2816
  function evalRevolve(node, ctx) {
2844
2817
  const a = evalScalar(node.angle, ctx.env, "Revolve.angle");
2845
2818
  if (!a.ok) return a;
@@ -2861,8 +2834,7 @@ function evalRevolve(node, ctx) {
2861
2834
  if (!face.ok) return face;
2862
2835
  return require_textBlueprints.revolve(face.value, at.value, axis.value, deg * Math.PI / 180);
2863
2836
  }
2864
- //#endregion
2865
- //#region src/csg/evaluators/loft.ts
2837
+ // src/csg/evaluators/loft.ts
2866
2838
  function evalLoft(node, ctx) {
2867
2839
  try {
2868
2840
  var _usingCtx$8 = require_shapeTypes._usingCtx();
@@ -2883,8 +2855,7 @@ function evalLoft(node, ctx) {
2883
2855
  _usingCtx$8.d();
2884
2856
  }
2885
2857
  }
2886
- //#endregion
2887
- //#region src/csg/evaluators/path.ts
2858
+ // src/csg/evaluators/path.ts
2888
2859
  var EPS$2 = 1e-9;
2889
2860
  function v3(p) {
2890
2861
  return [
@@ -3112,8 +3083,7 @@ function evalPath(node, ctx) {
3112
3083
  _usingCtx4.d();
3113
3084
  }
3114
3085
  }
3115
- //#endregion
3116
- //#region src/csg/evaluators/sweep.ts
3086
+ // src/csg/evaluators/sweep.ts
3117
3087
  function evalSweep(node, ctx) {
3118
3088
  try {
3119
3089
  var _usingCtx$6 = require_shapeTypes._usingCtx();
@@ -3145,8 +3115,7 @@ function evalSweep(node, ctx) {
3145
3115
  _usingCtx$6.d();
3146
3116
  }
3147
3117
  }
3148
- //#endregion
3149
- //#region src/csg/evaluators/profile.ts
3118
+ // src/csg/evaluators/profile.ts
3150
3119
  function proveClosedPlanar(w, where) {
3151
3120
  const cw = require_validityTypes.closedWire(w);
3152
3121
  if (!cw.ok) return require_errors.err(require_errors.validationError("CSG_PROFILE_CONTOUR", `${where}: ${cw.error}`));
@@ -3178,8 +3147,7 @@ function evalProfile(node, ctx) {
3178
3147
  _usingCtx$5.d();
3179
3148
  }
3180
3149
  }
3181
- //#endregion
3182
- //#region src/csg/evaluators/color.ts
3150
+ // src/csg/evaluators/color.ts
3183
3151
  function evalColor(node, ctx) {
3184
3152
  const t = ctx.evalNode(node.target);
3185
3153
  if (!t.ok) return t;
@@ -3199,8 +3167,7 @@ function evalColor(node, ctx) {
3199
3167
  if (require_solidBuilders.hasAnyMetadata(t.value)) require_solidBuilders.propagateMetadataThroughRelocation(t.value, moved);
3200
3168
  return require_errors.ok(require_solidBuilders.colorShape(moved, [...node.color]));
3201
3169
  }
3202
- //#endregion
3203
- //#region src/csg/evaluators/fillet.ts
3170
+ // src/csg/evaluators/fillet.ts
3204
3171
  function evalFillet(node, ctx) {
3205
3172
  const radius = evalScalar(node.radius, ctx.env, "Fillet.radius");
3206
3173
  if (!radius.ok) return radius;
@@ -3215,8 +3182,7 @@ function evalFillet(node, ctx) {
3215
3182
  if (!require_shapeTypes.isEdge(resolved.entity)) return require_errors.err(require_errors.validationError("CSG_FILLET_REF", "Fillet.ref resolved to a non-edge"));
3216
3183
  return require_healingFns.fillet(solid.value, [resolved.entity], radius.value);
3217
3184
  }
3218
- //#endregion
3219
- //#region src/csg/evaluators/chamfer.ts
3185
+ // src/csg/evaluators/chamfer.ts
3220
3186
  function evalChamfer(node, ctx) {
3221
3187
  const distance = evalScalar(node.distance, ctx.env, "Chamfer.distance");
3222
3188
  if (!distance.ok) return distance;
@@ -3231,8 +3197,7 @@ function evalChamfer(node, ctx) {
3231
3197
  if (!require_shapeTypes.isEdge(resolved.entity)) return require_errors.err(require_errors.validationError("CSG_CHAMFER_REF", "Chamfer.ref resolved to a non-edge"));
3232
3198
  return require_healingFns.chamfer(solid.value, [resolved.entity], distance.value);
3233
3199
  }
3234
- //#endregion
3235
- //#region src/csg/evaluators/shell.ts
3200
+ // src/csg/evaluators/shell.ts
3236
3201
  function evalShell(node, ctx) {
3237
3202
  const thickness = evalScalar(node.thickness, ctx.env, "Shell.thickness");
3238
3203
  if (!thickness.ok) return thickness;
@@ -3252,8 +3217,7 @@ function evalShell(node, ctx) {
3252
3217
  }
3253
3218
  return require_healingFns.shell(solid.value, faces, thickness.value);
3254
3219
  }
3255
- //#endregion
3256
- //#region src/csg/evaluators/extension.ts
3220
+ // src/csg/evaluators/extension.ts
3257
3221
  function evalExtension(node, ctx) {
3258
3222
  const evaluator = ctx.extensions.get(node.name);
3259
3223
  if (evaluator === void 0) return require_errors.err(require_errors.validationError(require_errors.BrepErrorCode.CSG_EXTENSION_UNKNOWN, `Extension: no evaluator registered for '${node.name}'`, void 0, { name: node.name }, `Register one with new csg.Evaluator({ extensions: { '${node.name}': fn } })`));
@@ -3275,8 +3239,7 @@ function evalExtension(node, ctx) {
3275
3239
  children
3276
3240
  });
3277
3241
  }
3278
- //#endregion
3279
- //#region src/csg/evaluate.ts
3242
+ // src/csg/evaluate.ts
3280
3243
  function dispatch(node, ctx) {
3281
3244
  switch (node.kind) {
3282
3245
  case "Box": return evalBox(node, ctx);
@@ -3759,8 +3722,7 @@ function withEvaluator(options, fn) {
3759
3722
  _usingCtx$4.d();
3760
3723
  }
3761
3724
  }
3762
- //#endregion
3763
- //#region src/csg/edit.ts
3725
+ // src/csg/edit.ts
3764
3726
  function replaceNode(root, pred, replacement) {
3765
3727
  return walk(root, pred, replacement, /* @__PURE__ */ new Map());
3766
3728
  }
@@ -4832,8 +4794,7 @@ function readInstance(j, defs) {
4832
4794
  if (!Array.isArray(placements) || !placements.every(isMatrix4x4)) return bad("Instance.placements must be an array of 4x4 number matrices");
4833
4795
  return require_errors.ok(instance$1(source.value, placements, j["fuse"] === true));
4834
4796
  }
4835
- //#endregion
4836
- //#region src/csg/optimize.ts
4797
+ // src/csg/optimize.ts
4837
4798
  function optimize(node) {
4838
4799
  return optimizeNode(node);
4839
4800
  }
@@ -5031,8 +4992,7 @@ function optimizeTranslate(target, vector) {
5031
4992
  }
5032
4993
  return translate$1(ot, ov);
5033
4994
  }
5034
- //#endregion
5035
- //#region src/sketching/blueprintContourFns.ts
4995
+ // src/sketching/blueprintContourFns.ts
5036
4996
  var EPS$1 = 1e-6;
5037
4997
  function p2(p) {
5038
4998
  return [p[0] ?? 0, p[1] ?? 0];
@@ -5193,8 +5153,7 @@ function consumePiece(piece, cur, segments) {
5193
5153
  segments.push(seg.value);
5194
5154
  return require_errors.ok(to);
5195
5155
  }
5196
- //#endregion
5197
- //#region src/core/kernelBoundary.ts
5156
+ // src/core/kernelBoundary.ts
5198
5157
  /** Convert Vec3 to a kernel 3D vector. Caller must call .delete() when done. */
5199
5158
  function toKernelVec(v) {
5200
5159
  return require_shapeTypes.getKernel().createVector3d(v[0], v[1], v[2]);
@@ -5258,8 +5217,7 @@ function withKernelDir(v, fn) {
5258
5217
  ocDir.delete();
5259
5218
  }
5260
5219
  }
5261
- //#endregion
5262
- //#region src/topology/surfaceFns.ts
5220
+ // src/topology/surfaceFns.ts
5263
5221
  /**
5264
5222
  * Surface creation functions — generate faces from height-map grids.
5265
5223
  */
@@ -5404,8 +5362,7 @@ async function surfaceFromImage(blob, options = {}) {
5404
5362
  if (options.scaleZ !== void 0) gridOpts.scaleZ = options.scaleZ;
5405
5363
  return surfaceFromGrid(rows, gridOpts);
5406
5364
  }
5407
- //#endregion
5408
- //#region src/topology/hullFns.ts
5365
+ // src/topology/hullFns.ts
5409
5366
  /**
5410
5367
  * Functional convex hull operation.
5411
5368
  *
@@ -5446,8 +5403,7 @@ function hull(shapes, options = {}) {
5446
5403
  return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.HULL_FAILED, `Hull operation failed: ${raw}`, e));
5447
5404
  }
5448
5405
  }
5449
- //#endregion
5450
- //#region src/operations/convexHullFns.ts
5406
+ // src/operations/convexHullFns.ts
5451
5407
  /**
5452
5408
  * Compute the 3D convex hull of a point cloud.
5453
5409
  *
@@ -5486,8 +5442,7 @@ function convexHull(points) {
5486
5442
  return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.HULL_FAILED, `convexHull failed: ${raw}`, e));
5487
5443
  }
5488
5444
  }
5489
- //#endregion
5490
- //#region src/topology/minkowskiFns.ts
5445
+ // src/topology/minkowskiFns.ts
5491
5446
  /**
5492
5447
  * Minkowski sum operation — approximates the Minkowski sum of two 3D shapes.
5493
5448
  *
@@ -5581,8 +5536,7 @@ function minkowski(shape, tool, options = {}) {
5581
5536
  if (sphereRadius !== null) return minkowskiSphere(shape, sphereRadius, tolerance);
5582
5537
  return minkowskiGeneral(shape, tool, tolerance);
5583
5538
  }
5584
- //#endregion
5585
- //#region src/topology/polyhedronFns.ts
5539
+ // src/topology/polyhedronFns.ts
5586
5540
  /**
5587
5541
  * Create a solid from vertices and face indices.
5588
5542
  */
@@ -5620,8 +5574,7 @@ function polyhedron(points, faces, options = {}) {
5620
5574
  return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.POLYHEDRON_FAILED, `Polyhedron failed: ${raw}`, e));
5621
5575
  }
5622
5576
  }
5623
- //#endregion
5624
- //#region src/operations/straightSkeleton.ts
5577
+ // src/operations/straightSkeleton.ts
5625
5578
  var EPS = 1e-10;
5626
5579
  function cross2(ax, ay, bx, by) {
5627
5580
  return ax * by - ay * bx;
@@ -6019,8 +5972,7 @@ function computeStraightSkeletonImpl(polygon) {
6019
5972
  faces
6020
5973
  };
6021
5974
  }
6022
- //#endregion
6023
- //#region src/operations/roofFns.ts
5975
+ // src/operations/roofFns.ts
6024
5976
  /**
6025
5977
  * Roof generation from a wire using straight skeleton extrusion.
6026
5978
  * Produces a solid roof shape where each edge slopes inward at a given angle.
@@ -6230,8 +6182,7 @@ function roof(w, options) {
6230
6182
  return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.ROOF_FAILED, `Roof generation failed: ${msg}`, e));
6231
6183
  }
6232
6184
  }
6233
- //#endregion
6234
- //#region src/kernel/solverAdapter.ts
6185
+ // src/kernel/solverAdapter.ts
6235
6186
  /**
6236
6187
  * Constraint solver adapter — analytical solver for simple assembly mates.
6237
6188
  */
@@ -6630,8 +6581,7 @@ function solveConstraints(nodes, constraints) {
6630
6581
  unsupported
6631
6582
  };
6632
6583
  }
6633
- //#endregion
6634
- //#region src/operations/mateFns.ts
6584
+ // src/operations/mateFns.ts
6635
6585
  function extractEntity(mate) {
6636
6586
  if (mate.face) {
6637
6587
  const axis = require_faceFns.faceAxis(mate.face);
@@ -6778,8 +6728,7 @@ function solveAssembly(assembly) {
6778
6728
  return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.ASSEMBLY_SOLVE_FAILED, `Assembly solve failed: ${raw}`, e));
6779
6729
  }
6780
6730
  }
6781
- //#endregion
6782
- //#region src/measurement/interferenceFns.ts
6731
+ // src/measurement/interferenceFns.ts
6783
6732
  /**
6784
6733
  * Interference detection between shapes.
6785
6734
  *
@@ -6855,8 +6804,7 @@ function checkAllInterferences(shapes, tolerance = 1e-6) {
6855
6804
  function aabbDisjoint(a, b, tolerance) {
6856
6805
  return a.xMax + tolerance < b.xMin || b.xMax + tolerance < a.xMin || a.yMax + tolerance < b.yMin || b.yMax + tolerance < a.yMin || a.zMax + tolerance < b.zMin || b.zMax + tolerance < a.zMin;
6857
6806
  }
6858
- //#endregion
6859
- //#region src/io/dxfImportFns.ts
6807
+ // src/io/dxfImportFns.ts
6860
6808
  /**
6861
6809
  * DXF file import -- parse ASCII DXF entities into kernel wires.
6862
6810
  */
@@ -6973,8 +6921,7 @@ async function importDXF(blob, options) {
6973
6921
  for (const edge of edges) edge.delete();
6974
6922
  }
6975
6923
  }
6976
- //#endregion
6977
- //#region src/io/ioUtils.ts
6924
+ // src/io/ioUtils.ts
6978
6925
  /**
6979
6926
  * Shared mesh-to-solid sewing utilities for mesh importers.
6980
6927
  *
@@ -7014,8 +6961,7 @@ function sewMeshToSolid(triangles, errorCode, tolerance = 1e-6) {
7014
6961
  }
7015
6962
  }
7016
6963
  }
7017
- //#endregion
7018
- //#region src/io/objImportFns.ts
6964
+ // src/io/objImportFns.ts
7019
6965
  function parseVertexLine(line) {
7020
6966
  const parts = line.split(/\s+/);
7021
6967
  const x = parseFloat(parts[1] ?? "");
@@ -7089,8 +7035,7 @@ function buildSolidFromMesh$1(vertices, faces) {
7089
7035
  }
7090
7036
  return sewMeshToSolid(triangles, require_errors.BrepErrorCode.OBJ_IMPORT_FAILED);
7091
7037
  }
7092
- //#endregion
7093
- //#region src/io/threemfImportFns.ts
7038
+ // src/io/threemfImportFns.ts
7094
7039
  /**
7095
7040
  * 3MF import — parses a 3MF ZIP archive and builds a solid via sewing.
7096
7041
  */
@@ -7367,8 +7312,7 @@ async function importThreeMF(blob) {
7367
7312
  return require_errors.err(require_errors.ioError(require_errors.BrepErrorCode.THREEMF_IMPORT_FAILED, `3MF import failed: ${msg}`, e));
7368
7313
  }
7369
7314
  }
7370
- //#endregion
7371
- //#region src/io/gltfImportFns.ts
7315
+ // src/io/gltfImportFns.ts
7372
7316
  /**
7373
7317
  * Functional GLB/glTF import operations using branded shape types.
7374
7318
  */
@@ -7396,8 +7340,7 @@ async function importGLB(blob) {
7396
7340
  return require_errors.err(require_errors.ioError(require_errors.BrepErrorCode.GLB_IMPORT_FAILED, `Failed to import GLB: ${msg}`, e));
7397
7341
  }
7398
7342
  }
7399
- //#endregion
7400
- //#region src/topology/apiTypes.ts
7343
+ // src/topology/apiTypes.ts
7401
7344
  /** Extract the raw branded shape from a Shapeable value. */
7402
7345
  function resolve(s) {
7403
7346
  if ("__wrapped" in s) return s.val;
@@ -7407,8 +7350,7 @@ function resolve(s) {
7407
7350
  function resolve3D(s) {
7408
7351
  return resolve(s);
7409
7352
  }
7410
- //#endregion
7411
- //#region src/topology/api.ts
7353
+ // src/topology/api.ts
7412
7354
  /** Translate a shape by a vector. Returns a new shape. */
7413
7355
  function translate(shape, v) {
7414
7356
  return require_primitiveFns.translate(resolve(shape), v);
@@ -7649,8 +7591,7 @@ function isValid(shape) {
7649
7591
  function isEmpty(shape) {
7650
7592
  return require_shapeFns.isEmpty(resolve(shape));
7651
7593
  }
7652
- //#endregion
7653
- //#region src/operations/api.ts
7594
+ // src/operations/api.ts
7654
7595
  /**
7655
7596
  * Extrude a face to produce a solid.
7656
7597
  *
@@ -7689,8 +7630,7 @@ function loft(wires, options) {
7689
7630
  const resolvedWires = wires.map((w) => resolve(w));
7690
7631
  return require_loftFns.loft(resolvedWires, options);
7691
7632
  }
7692
- //#endregion
7693
- //#region src/operations/compoundOpsFns.ts
7633
+ // src/operations/compoundOpsFns.ts
7694
7634
  /** Resolve a face selection: Face, FinderFn, or default (top Z-facing face). */
7695
7635
  function resolveTargetFace(shape, faceSpec) {
7696
7636
  if (faceSpec === void 0) {
@@ -7954,8 +7894,7 @@ function rectangularPattern(shape, options) {
7954
7894
  for (const c of owned) c[Symbol.dispose]();
7955
7895
  }
7956
7896
  }
7957
- //#endregion
7958
- //#region src/topology/wrapperFns.ts
7897
+ // src/topology/wrapperFns.ts
7959
7898
  /**
7960
7899
  * Error class thrown by the shape() wrapper when a Result<T> contains an Err.
7961
7900
  * Wraps the structured BrepError for catch-based handling.
@@ -8366,8 +8305,7 @@ function planetPlacements(params = {}) {
8366
8305
  }
8367
8306
  return require_errors.ok(placements);
8368
8307
  }
8369
- //#endregion
8370
- //#region src/gear/gearProfile.ts
8308
+ // src/gear/gearProfile.ts
8371
8309
  function buildToothPeriodEdges(tm, toothIndex, totalTeeth, samples, scope) {
8372
8310
  const center = toothIndex * tm.toothPitch;
8373
8311
  const nextCenter = (toothIndex + 1) % totalTeeth * tm.toothPitch;
@@ -8469,8 +8407,7 @@ function makeProfileWire(params, isInternal) {
8469
8407
  _usingCtx$2.d();
8470
8408
  }
8471
8409
  }
8472
- //#endregion
8473
- //#region src/gear/gearFns.ts
8410
+ // src/gear/gearFns.ts
8474
8411
  function makeExternalGear(params) {
8475
8412
  const { teeth, moduleSize, thickness, pressureAngleDeg = 20, shift = 0, clearance = DEFAULT_CLEARANCE, flankThinning = 0, bore = 0, samples } = params;
8476
8413
  if (thickness <= 0) return require_errors.err(require_errors.validationError("GEAR_THICKNESS_NONPOSITIVE", "thickness must be > 0"));
@@ -8838,8 +8775,7 @@ function collectDiagnostics(cfg, metrics) {
8838
8775
  });
8839
8776
  return diagnostics;
8840
8777
  }
8841
- //#endregion
8842
- //#region src/ns/primitives.ts
8778
+ // src/ns/primitives.ts
8843
8779
  var primitives_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
8844
8780
  addHoles: () => require_primitiveFns.addHoles,
8845
8781
  bezier: () => require_primitiveFns.bezier,
@@ -8871,8 +8807,7 @@ var primitives_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
8871
8807
  wire: () => require_primitiveFns.wire,
8872
8808
  wireLoop: () => require_primitiveFns.wireLoop
8873
8809
  });
8874
- //#endregion
8875
- //#region src/ns/booleans.ts
8810
+ // src/ns/booleans.ts
8876
8811
  var booleans_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
8877
8812
  checkBoolean: () => require_healingFns.checkBoolean,
8878
8813
  convexHull: () => convexHull,
@@ -8890,8 +8825,7 @@ var booleans_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
8890
8825
  slice: () => slice,
8891
8826
  split: () => split
8892
8827
  });
8893
- //#endregion
8894
- //#region src/ns/modifiers.ts
8828
+ // src/ns/modifiers.ts
8895
8829
  var modifiers_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
8896
8830
  chamfer: () => chamfer,
8897
8831
  draft: () => draft,
@@ -8903,8 +8837,7 @@ var modifiers_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
8903
8837
  thicken: () => thicken,
8904
8838
  variableFillet: () => require_healingFns.variableFillet
8905
8839
  });
8906
- //#endregion
8907
- //#region src/ns/transforms.ts
8840
+ // src/ns/transforms.ts
8908
8841
  var transforms_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
8909
8842
  applyMatrix: () => applyMatrix,
8910
8843
  clone: () => clone,
@@ -8915,8 +8848,7 @@ var transforms_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
8915
8848
  transformCopy: () => transformCopy,
8916
8849
  translate: () => translate
8917
8850
  });
8918
- //#endregion
8919
- //#region src/ns/measurement.ts
8851
+ // src/ns/measurement.ts
8920
8852
  var measurement_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
8921
8853
  checkAllInterferences: () => checkAllInterferences,
8922
8854
  checkInterference: () => checkInterference,
@@ -8933,8 +8865,7 @@ var measurement_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
8933
8865
  measureVolumeProps: () => require_measureFns.measureVolumeProps,
8934
8866
  principalBoundingBox: () => require_principalBoxFns.principalBoundingBox
8935
8867
  });
8936
- //#endregion
8937
- //#region src/ns/ioNs.ts
8868
+ // src/ns/ioNs.ts
8938
8869
  var ioNs_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
8939
8870
  blueprintToDXF: () => require_importFns.blueprintToDXF,
8940
8871
  exportAssemblySTEP: () => require_threadFns.exportAssemblySTEP,
@@ -8957,8 +8888,7 @@ var ioNs_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
8957
8888
  importSVGPathD: () => require_importFns.importSVGPathD,
8958
8889
  importThreeMF: () => importThreeMF
8959
8890
  });
8960
- //#endregion
8961
- //#region src/ns/query.ts
8891
+ // src/ns/query.ts
8962
8892
  var query_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
8963
8893
  cornerFinder: () => require_cornerFinder.cornerFinder,
8964
8894
  edgeFinder: () => require_helpers.edgeFinder,
@@ -8967,8 +8897,7 @@ var query_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
8967
8897
  vertexFinder: () => vertexFinder,
8968
8898
  wireFinder: () => require_helpers.wireFinder
8969
8899
  });
8970
- //#endregion
8971
- //#region src/ns/construction.ts
8900
+ // src/ns/construction.ts
8972
8901
  var construction_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
8973
8902
  complexExtrude: () => require_loftFns.complexExtrude,
8974
8903
  extrude: () => extrude,
@@ -8983,14 +8912,12 @@ var construction_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll(
8983
8912
  sweep: () => require_loftFns.sweep,
8984
8913
  twistExtrude: () => require_loftFns.twistExtrude
8985
8914
  });
8986
- //#endregion
8987
- //#region src/ns/patterns.ts
8915
+ // src/ns/patterns.ts
8988
8916
  var patterns_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
8989
8917
  circularPattern: () => require_threadFns.circularPattern,
8990
8918
  linearPattern: () => require_threadFns.linearPattern
8991
8919
  });
8992
- //#endregion
8993
- //#region src/ns/csg.ts
8920
+ // src/ns/csg.ts
8994
8921
  var csg_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
8995
8922
  CSG_VERSION: () => 9,
8996
8923
  Evaluator: () => Evaluator,
@@ -9072,7 +8999,6 @@ var csg_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
9072
8999
  zShapeProfile: () => zShapeProfile
9073
9000
  });
9074
9001
  /* v8 ignore file */
9075
- //#endregion
9076
9002
  exports.BaseSketcher2d = require_blueprintSketcher.BaseSketcher2d;
9077
9003
  exports.BlueprintSketcher = require_blueprintSketcher.BlueprintSketcher;
9078
9004
  exports.BrepBugError = require_bug.BrepBugError;