brepjs 18.119.2 → 18.119.3

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 (96) hide show
  1. package/dist/2d/lib/curve2D.d.ts +6 -1
  2. package/dist/2d/lib/curve2dFns.d.ts +6 -1
  3. package/dist/2d.cjs +7 -7
  4. package/dist/2d.js +7 -7
  5. package/dist/{adjacencyFns-BdM5p58J.js → adjacencyFns-DLityMyV.js} +2 -2
  6. package/dist/{adjacencyFns-Brrc7jlS.cjs → adjacencyFns-DSxuQYnb.cjs} +2 -2
  7. package/dist/{blueprint-DTNT4qYJ.cjs → blueprint-BGcBMy3b.cjs} +39 -9
  8. package/dist/{blueprint-DJJo8WkI.js → blueprint-CAG6jseD.js} +33 -9
  9. package/dist/{blueprintFns-CcpboZ80.js → blueprintFns-B4C3zH7N.js} +9 -4
  10. package/dist/{blueprintFns-2XDZfCxX.cjs → blueprintFns-CnoqynzI.cjs} +9 -4
  11. package/dist/{blueprintSketcher-C0EXFVb2.cjs → blueprintSketcher-BNz6f36D.cjs} +166 -61
  12. package/dist/{blueprintSketcher-DDPyypmC.js → blueprintSketcher-CKKxvxB-.js} +159 -54
  13. package/dist/{boolean2D-Ddfo_dd0.cjs → boolean2D-B-0xobBP.cjs} +5 -5
  14. package/dist/{boolean2D-C_PVz8xT.js → boolean2D-C_1gMcZ6.js} +5 -5
  15. package/dist/brepjs.cjs +105 -92
  16. package/dist/brepjs.js +39 -27
  17. package/dist/{cameraFns-Czr5vABD.cjs → cameraFns-2-haLzLi.cjs} +4 -4
  18. package/dist/{cameraFns-D9tdBYLM.js → cameraFns-CG_J66Hl.js} +4 -4
  19. package/dist/core.cjs +12 -11
  20. package/dist/core.js +4 -3
  21. package/dist/{cornerFinder-Cqg-Dz74.js → cornerFinder-CPFM7bA0.js} +1 -1
  22. package/dist/{cornerFinder-DETRDOMz.cjs → cornerFinder-mfsUMi5g.cjs} +1 -1
  23. package/dist/{curveFns-RENXKp64.js → curveFns-DX13KRh2.js} +2 -2
  24. package/dist/{curveFns-D7utcbnf.cjs → curveFns-GmFnqNo3.cjs} +2 -2
  25. package/dist/{drawFns-D9Rf4foW.cjs → drawFns-B14M5M68.cjs} +14 -14
  26. package/dist/{drawFns-B9HbtAoc.js → drawFns-BShGVVXW.js} +14 -14
  27. package/dist/{errors-B3CDG537.js → errors-MHLiNE-C.js} +1 -92
  28. package/dist/{errors-CJU8CHng.cjs → errors-RHkKO5bZ.cjs} +0 -103
  29. package/dist/{faceFns-CPswi9Cm.cjs → faceFns-BK4r7Dxk.cjs} +3 -3
  30. package/dist/{faceFns-CB6uzvOg.js → faceFns-DJj9Nb6T.js} +3 -3
  31. package/dist/{healingFns-BFTYLiAm.js → healingFns-DxcRyVCG.js} +5 -6
  32. package/dist/{healingFns-bhMxTTqw.cjs → healingFns-Hx4oTlq8.cjs} +27 -28
  33. package/dist/{helpers-Cu4ag5bh.cjs → helpers-BfkBvokP.cjs} +8 -24
  34. package/dist/{helpers-BiN4qQZP.js → helpers-Du_OdHuy.js} +9 -25
  35. package/dist/{importFns-X8vBhZI2.js → importFns-BHs19muu.js} +3 -3
  36. package/dist/{importFns-DS4J1xLv.cjs → importFns-GySbuvVv.cjs} +3 -3
  37. package/dist/io.cjs +2 -2
  38. package/dist/io.js +2 -2
  39. package/dist/{loftFns-ChHjzUK-.cjs → loftFns-BdpZ8FMN.cjs} +2 -125
  40. package/dist/{loftFns-BF5X7ltI.js → loftFns-BeGJ6dxx.js} +4 -109
  41. package/dist/{measureFns-B5Zzg1qM.cjs → measureFns-CJGrmhHT.cjs} +4 -4
  42. package/dist/{measureFns-CC7HhAH3.js → measureFns-CMnbcUZC.js} +4 -4
  43. package/dist/measurement.cjs +1 -1
  44. package/dist/measurement.js +1 -1
  45. package/dist/{meshFns-D57Fyqyf.js → meshFns-Cs5EBsf7.js} +4 -4
  46. package/dist/{meshFns-CaXmWmhe.cjs → meshFns-Dqf5QBhQ.cjs} +5 -5
  47. package/dist/operations.cjs +2 -2
  48. package/dist/operations.js +2 -2
  49. package/dist/originTrackingFns-DZmdiQ-O.js +203 -0
  50. package/dist/originTrackingFns-fpEgTIwV.cjs +226 -0
  51. package/dist/{planeOps-Cp6GQ23-.js → planeOps-CQahLrCx.js} +1 -1
  52. package/dist/{planeOps-Cr25KWWA.cjs → planeOps-VlFxtvzY.cjs} +1 -1
  53. package/dist/primitiveFns-B_rflH83.cjs +773 -0
  54. package/dist/primitiveFns-Cxo3xDKY.js +558 -0
  55. package/dist/projection.cjs +1 -1
  56. package/dist/projection.js +1 -1
  57. package/dist/query.cjs +2 -2
  58. package/dist/query.js +2 -2
  59. package/dist/{refResolveFns-3bw9-U-e.js → refResolveFns-BbRLD8LA.js} +6 -6
  60. package/dist/{refResolveFns-BxmgIhQM.cjs → refResolveFns-CVDLwh12.cjs} +6 -6
  61. package/dist/result.cjs +1 -1
  62. package/dist/result.js +1 -1
  63. package/dist/rolldown-runtime-DakpK96I.cjs +43 -0
  64. package/dist/shapeFns-BTFx-os7.js +43 -0
  65. package/dist/shapeFns-D_5TgiUi.cjs +84 -0
  66. package/dist/shapeRef.cjs +1 -1
  67. package/dist/shapeRef.js +1 -1
  68. package/dist/{shapeTypes-Bpsu5KJO.cjs → shapeTypes-CkcIL7zv.cjs} +1 -222
  69. package/dist/{shapeTypes-CnKFSfDT.js → shapeTypes-t49f64Dx.js} +2 -139
  70. package/dist/sketching.cjs +3 -3
  71. package/dist/sketching.js +3 -3
  72. package/dist/{solidBuilders-I8_V8qqU.js → solidBuilders-DTgqQC3W.js} +310 -8
  73. package/dist/{solidBuilders-Bp7lQW62.cjs → solidBuilders-IiIzjKAr.cjs} +401 -15
  74. package/dist/{surfaceBuilders-D8_08oOR.cjs → surfaceBuilders-Biqx51el.cjs} +6 -5
  75. package/dist/{surfaceBuilders-BNR7yMQO.js → surfaceBuilders-BryY-i0F.js} +4 -3
  76. package/dist/text.cjs +2 -2
  77. package/dist/text.js +2 -2
  78. package/dist/{textBlueprints-B5zcLGvJ.cjs → textBlueprints-8EcWreab.cjs} +138 -51
  79. package/dist/{textBlueprints-igbNvKcd.js → textBlueprints-rA1HT6j1.js} +116 -11
  80. package/dist/{textMetrics-CJvtpbc3.js → textMetrics-Bcbso1Ns.js} +2 -2
  81. package/dist/{textMetrics-08fF0QNf.cjs → textMetrics-GPBu9JKi.cjs} +2 -2
  82. package/dist/{threadFns-CqSMNyTZ.js → threadFns-BOtXTHZ9.js} +8 -8
  83. package/dist/{threadFns-Co6vWEWx.cjs → threadFns-DRrk9Qod.cjs} +8 -8
  84. package/dist/topology.cjs +9 -9
  85. package/dist/topology.js +9 -9
  86. package/dist/{topologyQueryFns-C3fhJndG.cjs → topologyQueryFns-Bia7o8l_.cjs} +97 -6
  87. package/dist/{topologyQueryFns-DNqT88yx.js → topologyQueryFns-BkQ6Q7gN.js} +93 -2
  88. package/dist/validityTypes-DiTgeCD9.js +129 -0
  89. package/dist/validityTypes-ZGMVlv7b.cjs +200 -0
  90. package/dist/vectors.cjs +1 -1
  91. package/dist/vectors.js +1 -1
  92. package/package.json +8 -8
  93. package/dist/primitiveFns-CRy_CUVg.cjs +0 -492
  94. package/dist/primitiveFns-DCIH-SBm.js +0 -331
  95. package/dist/shapeFns-BrHFNLMA.js +0 -771
  96. package/dist/shapeFns-qm9VRo4i.cjs +0 -962
package/dist/brepjs.cjs CHANGED
@@ -1,38 +1,51 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-B5zcLGvJ.cjs");
3
- const require_shapeTypes = require("./shapeTypes-Bpsu5KJO.cjs");
2
+ const require_rolldown_runtime = require("./rolldown-runtime-DakpK96I.cjs");
3
+ const require_shapeTypes = require("./shapeTypes-CkcIL7zv.cjs");
4
4
  const require_occtWasmAdapter = require("./occtWasmAdapter-BAzyxAJw.cjs");
5
5
  const require_bug = require("./bug-O02CsAmt.cjs");
6
- const require_errors = require("./errors-CJU8CHng.cjs");
7
- const require_topologyQueryFns = require("./topologyQueryFns-C3fhJndG.cjs");
6
+ const require_errors = require("./errors-RHkKO5bZ.cjs");
7
+ const require_topologyQueryFns = require("./topologyQueryFns-Bia7o8l_.cjs");
8
+ const require_validityTypes = require("./validityTypes-ZGMVlv7b.cjs");
8
9
  const require_constants = require("./constants-BOVyEYGH.cjs");
9
10
  const require_types = require("./types-KjA8tY4Y.cjs");
10
11
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
11
- const require_planeOps = require("./planeOps-Cr25KWWA.cjs");
12
- const require_faceFns = require("./faceFns-CPswi9Cm.cjs");
13
- const require_shapeFns = require("./shapeFns-qm9VRo4i.cjs");
14
- const require_curveFns = require("./curveFns-D7utcbnf.cjs");
15
- const require_meshFns = require("./meshFns-CaXmWmhe.cjs");
12
+ const require_planeOps = require("./planeOps-VlFxtvzY.cjs");
13
+ const require_faceFns = require("./faceFns-BK4r7Dxk.cjs");
14
+ const require_originTrackingFns = require("./originTrackingFns-fpEgTIwV.cjs");
15
+ const require_solidBuilders = require("./solidBuilders-IiIzjKAr.cjs");
16
+ const require_primitiveFns = require("./primitiveFns-B_rflH83.cjs");
17
+ const require_shapeFns = require("./shapeFns-D_5TgiUi.cjs");
18
+ const require_curveFns = require("./curveFns-GmFnqNo3.cjs");
19
+ const require_meshFns = require("./meshFns-Dqf5QBhQ.cjs");
16
20
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
17
- const require_surfaceBuilders = require("./surfaceBuilders-D8_08oOR.cjs");
18
- const require_solidBuilders = require("./solidBuilders-Bp7lQW62.cjs");
19
- const require_healingFns = require("./healingFns-bhMxTTqw.cjs");
20
- const require_threadFns = require("./threadFns-Co6vWEWx.cjs");
21
- const require_blueprintSketcher = require("./blueprintSketcher-C0EXFVb2.cjs");
22
- const require_helpers = require("./helpers-Cu4ag5bh.cjs");
23
- const require_drawFns = require("./drawFns-D9Rf4foW.cjs");
24
- const require_measureFns = require("./measureFns-B5Zzg1qM.cjs");
25
- const require_cornerFinder = require("./cornerFinder-DETRDOMz.cjs");
26
- const require_boolean2D = require("./boolean2D-Ddfo_dd0.cjs");
27
- const require_blueprintFns = require("./blueprintFns-2XDZfCxX.cjs");
28
- const require_importFns = require("./importFns-DS4J1xLv.cjs");
29
- const require_loftFns = require("./loftFns-ChHjzUK-.cjs");
30
- const require_cameraFns = require("./cameraFns-Czr5vABD.cjs");
31
- const require_textMetrics = require("./textMetrics-08fF0QNf.cjs");
32
- const require_adjacencyFns = require("./adjacencyFns-Brrc7jlS.cjs");
33
- const require_refResolveFns = require("./refResolveFns-BxmgIhQM.cjs");
21
+ const require_surfaceBuilders = require("./surfaceBuilders-Biqx51el.cjs");
22
+ const require_healingFns = require("./healingFns-Hx4oTlq8.cjs");
23
+ const require_threadFns = require("./threadFns-DRrk9Qod.cjs");
24
+ const require_blueprintSketcher = require("./blueprintSketcher-BNz6f36D.cjs");
25
+ const require_helpers = require("./helpers-BfkBvokP.cjs");
26
+ const require_drawFns = require("./drawFns-B14M5M68.cjs");
27
+ const require_measureFns = require("./measureFns-CJGrmhHT.cjs");
28
+ const require_cornerFinder = require("./cornerFinder-mfsUMi5g.cjs");
29
+ const require_boolean2D = require("./boolean2D-B-0xobBP.cjs");
30
+ const require_blueprintFns = require("./blueprintFns-CnoqynzI.cjs");
31
+ const require_importFns = require("./importFns-GySbuvVv.cjs");
32
+ const require_loftFns = require("./loftFns-BdpZ8FMN.cjs");
33
+ const require_textBlueprints = require("./textBlueprints-8EcWreab.cjs");
34
+ const require_cameraFns = require("./cameraFns-2-haLzLi.cjs");
35
+ const require_textMetrics = require("./textMetrics-GPBu9JKi.cjs");
36
+ const require_adjacencyFns = require("./adjacencyFns-DSxuQYnb.cjs");
37
+ const require_refResolveFns = require("./refResolveFns-CVDLwh12.cjs");
34
38
  const require_workerPool = require("./workerPool-D30NsiIW.cjs");
35
- const require_primitiveFns = require("./primitiveFns-CRy_CUVg.cjs");
39
+ //#region src/kernel/types.ts
40
+ /** Check if the kernel supports hidden-line-removal projection. */
41
+ function supportsProjection(kernel) {
42
+ return "projectEdges" in kernel;
43
+ }
44
+ /** Check if the kernel supports 2D constraint sketch solving. */
45
+ function supportsConstraintSketch(kernel) {
46
+ return "sketchNew" in kernel && "sketchDof" in kernel;
47
+ }
48
+ //#endregion
36
49
  //#region src/topology/shapeBooleans.ts
37
50
  var BOPAlgo_GlueShift = 1;
38
51
  var BOPAlgo_GlueFull = 2;
@@ -2129,7 +2142,7 @@ function roof(w, options) {
2129
2142
  } catch (solidifyErr) {
2130
2143
  try {
2131
2144
  const sewn = require_shapeTypes.createSolid(kernel.sew(triFaces, 1e-6));
2132
- if (require_shapeTypes.isValidSolid(sewn)) return require_errors.ok(sewn);
2145
+ if (require_validityTypes.isValidSolid(sewn)) return require_errors.ok(sewn);
2133
2146
  return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.ROOF_FAILED, "Sew fallback produced invalid solid", solidifyErr));
2134
2147
  } catch (sewErr) {
2135
2148
  return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.ROOF_FAILED, "Failed to sew roof faces", sewErr));
@@ -2254,7 +2267,7 @@ function materialize(inst, opts = {}) {
2254
2267
  function combine(source, placements, fuse) {
2255
2268
  const copies = [];
2256
2269
  for (const m of placements) {
2257
- const placed = require_shapeFns.applyMatrix(source, m);
2270
+ const placed = require_primitiveFns.applyMatrix(source, m);
2258
2271
  if (!placed.ok) {
2259
2272
  for (const c of copies) c[Symbol.dispose]();
2260
2273
  return placed;
@@ -3396,7 +3409,7 @@ async function importThreeMF(blob) {
3396
3409
  const solid = buildSolidFromMesh(parsed);
3397
3410
  if (solid.ok) {
3398
3411
  const dominantColor = findDominantColor(parsed.triangleColors);
3399
- if (dominantColor !== null) require_shapeFns.colorShape(solid.value, dominantColor);
3412
+ if (dominantColor !== null) require_solidBuilders.colorShape(solid.value, dominantColor);
3400
3413
  }
3401
3414
  return solid;
3402
3415
  } catch (e) {
@@ -3447,7 +3460,7 @@ function resolve3D(s) {
3447
3460
  //#region src/topology/api.ts
3448
3461
  /** Translate a shape by a vector. Returns a new shape. */
3449
3462
  function translate(shape, v) {
3450
- return require_shapeFns.translate(resolve(shape), v);
3463
+ return require_primitiveFns.translate(resolve(shape), v);
3451
3464
  }
3452
3465
  function assertNotPositionalOptions(options, fn) {
3453
3466
  if (Array.isArray(options)) throw new Error(`${fn}() expects an options object, e.g. ${fn}(shape, { ... }), not an array of coordinates.`);
@@ -3456,13 +3469,13 @@ function assertNotPositionalOptions(options, fn) {
3456
3469
  function rotate(shape, angle, options) {
3457
3470
  assertNotPositionalOptions(options, "rotate");
3458
3471
  const pivotPoint = options?.at;
3459
- return require_shapeFns.rotate(resolve(shape), angle, pivotPoint, options?.axis);
3472
+ return require_primitiveFns.rotate(resolve(shape), angle, pivotPoint, options?.axis);
3460
3473
  }
3461
3474
  /** Mirror a shape through a plane. Returns a new shape. */
3462
3475
  function mirror(shape, options) {
3463
3476
  assertNotPositionalOptions(options, "mirror");
3464
3477
  const planeOrigin = options?.at;
3465
- return require_shapeFns.mirror(resolve(shape), options?.normal ?? [
3478
+ return require_primitiveFns.mirror(resolve(shape), options?.normal ?? [
3466
3479
  1,
3467
3480
  0,
3468
3481
  0
@@ -3470,7 +3483,7 @@ function mirror(shape, options) {
3470
3483
  }
3471
3484
  /** Scale a shape uniformly. Returns a new shape. */
3472
3485
  function scale(shape, factor, options) {
3473
- return require_shapeFns.scale(resolve(shape), factor, options?.center);
3486
+ return require_primitiveFns.scale(resolve(shape), factor, options?.center);
3474
3487
  }
3475
3488
  /** Clone a shape (deep copy). */
3476
3489
  function clone(shape) {
@@ -3484,14 +3497,14 @@ function clone(shape) {
3484
3497
  * `MatrixTransform` with explicit `linear` and `translation` fields.
3485
3498
  */
3486
3499
  function applyMatrix(shape, matrix) {
3487
- return require_shapeFns.applyMatrix(resolve(shape), matrix);
3500
+ return require_primitiveFns.applyMatrix(resolve(shape), matrix);
3488
3501
  }
3489
3502
  /**
3490
3503
  * Clone a shape and apply a pre-composed transform in a single kernel operation.
3491
3504
  * Much faster than separate clone() + translate() + rotate() calls for batch patterns.
3492
3505
  */
3493
3506
  function transformCopy(shape, composed) {
3494
- return require_shapeFns.transformCopy(resolve(shape), composed);
3507
+ return require_primitiveFns.transformCopy(resolve(shape), composed);
3495
3508
  }
3496
3509
  /**
3497
3510
  * Placement-only rigid move (translate / rotate) via the kernel's cheap location
@@ -3500,7 +3513,7 @@ function transformCopy(shape, composed) {
3500
3513
  * placing one cached cell at N positions without paying for N deep copies.
3501
3514
  */
3502
3515
  function locate(shape, placement) {
3503
- return require_shapeFns.locate(resolve(shape), placement);
3516
+ return require_primitiveFns.locate(resolve(shape), placement);
3504
3517
  }
3505
3518
  /** Fuse two 3D shapes (boolean union). */
3506
3519
  function fuse(a, b, options) {
@@ -3700,7 +3713,7 @@ function extrude(face, height) {
3700
3713
  0,
3701
3714
  height
3702
3715
  ] : height;
3703
- return require_loftFns.extrude(f, vec);
3716
+ return require_textBlueprints.extrude(f, vec);
3704
3717
  }
3705
3718
  /**
3706
3719
  * Revolve a face around an axis to create a solid of revolution.
@@ -3711,7 +3724,7 @@ function revolve(face, options) {
3711
3724
  0,
3712
3725
  0
3713
3726
  ];
3714
- return require_loftFns.revolve(resolve(face), pivotPoint, options?.axis ?? [
3727
+ return require_textBlueprints.revolve(resolve(face), pivotPoint, options?.axis ?? [
3715
3728
  0,
3716
3729
  0,
3717
3730
  1
@@ -3882,7 +3895,7 @@ function pocket(shape, options) {
3882
3895
  const faceResult = require_surfaceBuilders.makeFace(w);
3883
3896
  if (require_errors.isErr(faceResult)) return faceResult;
3884
3897
  scope.register(faceResult.value);
3885
- const toolResult = require_loftFns.extrude(scope.register(require_shapeFns.translate(faceResult.value, center)), require_vecOps.vecScale(require_vecOps.vecNormalize(normal), -depth));
3898
+ const toolResult = require_textBlueprints.extrude(scope.register(require_primitiveFns.translate(faceResult.value, center)), require_vecOps.vecScale(require_vecOps.vecNormalize(normal), -depth));
3886
3899
  if (require_errors.isErr(toolResult)) return toolResult;
3887
3900
  scope.register(toolResult.value);
3888
3901
  return require_solidBuilders.cut(s, toolResult.value, { unsafe: true });
@@ -3915,7 +3928,7 @@ function boss(shape, options) {
3915
3928
  const faceResult = require_surfaceBuilders.makeFace(w);
3916
3929
  if (require_errors.isErr(faceResult)) return faceResult;
3917
3930
  scope.register(faceResult.value);
3918
- const toolResult = require_loftFns.extrude(scope.register(require_shapeFns.translate(faceResult.value, center)), require_vecOps.vecScale(require_vecOps.vecNormalize(normal), height));
3931
+ const toolResult = require_textBlueprints.extrude(scope.register(require_primitiveFns.translate(faceResult.value, center)), require_vecOps.vecScale(require_vecOps.vecNormalize(normal), height));
3919
3932
  if (require_errors.isErr(toolResult)) return toolResult;
3920
3933
  scope.register(toolResult.value);
3921
3934
  return require_solidBuilders.fuse(s, toolResult.value, { unsafe: true });
@@ -3941,7 +3954,7 @@ function mirrorJoin(shape, options) {
3941
3954
  ];
3942
3955
  const planeOrigin = options?.at;
3943
3956
  if (require_vecOps.vecIsZero(normal)) return require_errors.err(require_errors.validationError("MIRROR_ZERO_NORMAL", "Mirror plane normal cannot be zero"));
3944
- return require_solidBuilders.fuse(s, _usingCtx4.u(require_shapeFns.mirror(s, normal, planeOrigin)), { unsafe: true });
3957
+ return require_solidBuilders.fuse(s, _usingCtx4.u(require_primitiveFns.mirror(s, normal, planeOrigin)), { unsafe: true });
3945
3958
  } catch (_) {
3946
3959
  _usingCtx4.e = _;
3947
3960
  } finally {
@@ -3967,7 +3980,7 @@ function rectangularPattern(shape, options) {
3967
3980
  const owned = [];
3968
3981
  for (let xi = 0; xi < xCount; xi++) for (let yi = 0; yi < yCount; yi++) {
3969
3982
  if (xi === 0 && yi === 0) continue;
3970
- const c = require_shapeFns.translate(s, [
3983
+ const c = require_primitiveFns.translate(s, [
3971
3984
  xNorm[0] * xSpacing * xi + yNorm[0] * ySpacing * yi,
3972
3985
  xNorm[1] * xSpacing * xi + yNorm[1] * ySpacing * yi,
3973
3986
  xNorm[2] * xSpacing * xi + yNorm[2] * ySpacing * yi
@@ -4690,7 +4703,7 @@ function finalizeExternalSolid(wire, thickness, bore, geom, diagnostics) {
4690
4703
  const faceResult = require_surfaceBuilders.makeFace(wire);
4691
4704
  if (require_errors.isErr(faceResult)) return faceResult;
4692
4705
  profileScope.register(faceResult.value);
4693
- const solidResult = require_loftFns.extrude(faceResult.value, [
4706
+ const solidResult = require_textBlueprints.extrude(faceResult.value, [
4694
4707
  0,
4695
4708
  0,
4696
4709
  thickness
@@ -4702,14 +4715,14 @@ function finalizeExternalSolid(wire, thickness, bore, geom, diagnostics) {
4702
4715
  const boreFaceResult = makeBoreFace(bore / 2);
4703
4716
  if (require_errors.isErr(boreFaceResult)) return boreFaceResult;
4704
4717
  boreScope.register(boreFaceResult.value);
4705
- const boreRaw = require_loftFns.extrude(boreFaceResult.value, [
4718
+ const boreRaw = require_textBlueprints.extrude(boreFaceResult.value, [
4706
4719
  0,
4707
4720
  0,
4708
4721
  thickness + 1
4709
4722
  ]);
4710
4723
  if (require_errors.isErr(boreRaw)) return boreRaw;
4711
4724
  boreScope.register(boreRaw.value);
4712
- const boreSolid = boreScope.register(require_shapeFns.translate(boreRaw.value, [
4725
+ const boreSolid = boreScope.register(require_primitiveFns.translate(boreRaw.value, [
4713
4726
  0,
4714
4727
  0,
4715
4728
  -.5
@@ -4731,7 +4744,7 @@ function makeBoreFace(radius) {
4731
4744
  function finalizeInternalSolid(outerWire, innerToothedWire, thickness, geom, diagnostics) {
4732
4745
  const faceResult = require_surfaceBuilders.makeFace(outerWire, [innerToothedWire]);
4733
4746
  if (require_errors.isErr(faceResult)) return faceResult;
4734
- const solidResult = require_loftFns.extrude(faceResult.value, [
4747
+ const solidResult = require_textBlueprints.extrude(faceResult.value, [
4735
4748
  0,
4736
4749
  0,
4737
4750
  thickness
@@ -4754,14 +4767,14 @@ function placePlanets(planetProto, cfg) {
4754
4767
  try {
4755
4768
  for (let i = 0; i < cfg.numPlanets; i++) {
4756
4769
  const orbital = i * 2 * Math.PI / cfg.numPlanets;
4757
- const rotated = require_shapeFns.rotate(planetProto, planetSelfRotationAngle(orbital, cfg.sunTeeth, cfg.planetTeeth) * 180 / Math.PI);
4770
+ const rotated = require_primitiveFns.rotate(planetProto, planetSelfRotationAngle(orbital, cfg.sunTeeth, cfg.planetTeeth) * 180 / Math.PI);
4758
4771
  try {
4759
4772
  const offset = [
4760
4773
  cfg.centerDistance * Math.cos(orbital),
4761
4774
  cfg.centerDistance * Math.sin(orbital),
4762
4775
  0
4763
4776
  ];
4764
- planets.push(require_shapeFns.translate(rotated, offset));
4777
+ planets.push(require_primitiveFns.translate(rotated, offset));
4765
4778
  } finally {
4766
4779
  rotated.delete();
4767
4780
  }
@@ -4775,7 +4788,7 @@ function placePlanets(planetProto, cfg) {
4775
4788
  function applyRingPhase(ring, zr) {
4776
4789
  const phaseRad = evenToothPhaseOffset(zr);
4777
4790
  if (phaseRad === 0) return ring;
4778
- const rotated = require_shapeFns.rotate(ring, phaseRad * 180 / Math.PI);
4791
+ const rotated = require_primitiveFns.rotate(ring, phaseRad * 180 / Math.PI);
4779
4792
  ring.delete();
4780
4793
  return rotated;
4781
4794
  }
@@ -4855,7 +4868,7 @@ function collectDiagnostics(cfg, metrics) {
4855
4868
  }
4856
4869
  //#endregion
4857
4870
  //#region src/ns/primitives.ts
4858
- var primitives_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4871
+ var primitives_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
4859
4872
  addHoles: () => require_primitiveFns.addHoles,
4860
4873
  bezier: () => require_primitiveFns.bezier,
4861
4874
  box: () => require_primitiveFns.box,
@@ -4888,7 +4901,7 @@ var primitives_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4888
4901
  });
4889
4902
  //#endregion
4890
4903
  //#region src/ns/booleans.ts
4891
- var booleans_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4904
+ var booleans_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
4892
4905
  checkBoolean: () => require_healingFns.checkBoolean,
4893
4906
  convexHull: () => convexHull,
4894
4907
  cut: () => cut,
@@ -4907,7 +4920,7 @@ var booleans_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4907
4920
  });
4908
4921
  //#endregion
4909
4922
  //#region src/ns/modifiers.ts
4910
- var modifiers_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4923
+ var modifiers_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
4911
4924
  chamfer: () => chamfer,
4912
4925
  draft: () => draft,
4913
4926
  fillet: () => fillet,
@@ -4920,10 +4933,10 @@ var modifiers_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4920
4933
  });
4921
4934
  //#endregion
4922
4935
  //#region src/ns/transforms.ts
4923
- var transforms_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4936
+ var transforms_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
4924
4937
  applyMatrix: () => applyMatrix,
4925
4938
  clone: () => clone,
4926
- composeTransforms: () => require_shapeFns.composeTransforms,
4939
+ composeTransforms: () => require_primitiveFns.composeTransforms,
4927
4940
  mirror: () => mirror,
4928
4941
  rotate: () => rotate,
4929
4942
  scale: () => scale,
@@ -4932,7 +4945,7 @@ var transforms_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4932
4945
  });
4933
4946
  //#endregion
4934
4947
  //#region src/ns/measurement.ts
4935
- var measurement_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4948
+ var measurement_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
4936
4949
  checkAllInterferences: () => checkAllInterferences,
4937
4950
  checkInterference: () => checkInterference,
4938
4951
  createDistanceQuery: () => require_measureFns.createDistanceQuery,
@@ -4949,7 +4962,7 @@ var measurement_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4949
4962
  });
4950
4963
  //#endregion
4951
4964
  //#region src/ns/ioNs.ts
4952
- var ioNs_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4965
+ var ioNs_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
4953
4966
  blueprintToDXF: () => require_importFns.blueprintToDXF,
4954
4967
  exportAssemblySTEP: () => require_threadFns.exportAssemblySTEP,
4955
4968
  exportDXF: () => require_importFns.exportDXF,
@@ -4973,7 +4986,7 @@ var ioNs_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4973
4986
  });
4974
4987
  //#endregion
4975
4988
  //#region src/ns/query.ts
4976
- var query_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4989
+ var query_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
4977
4990
  cornerFinder: () => require_cornerFinder.cornerFinder,
4978
4991
  edgeFinder: () => require_helpers.edgeFinder,
4979
4992
  faceFinder: () => require_helpers.faceFinder,
@@ -4983,7 +4996,7 @@ var query_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4983
4996
  });
4984
4997
  //#endregion
4985
4998
  //#region src/ns/construction.ts
4986
- var construction_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4999
+ var construction_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
4987
5000
  complexExtrude: () => require_loftFns.complexExtrude,
4988
5001
  extrude: () => extrude,
4989
5002
  guidedSweep: () => require_loftFns.guidedSweep,
@@ -4999,7 +5012,7 @@ var construction_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
4999
5012
  });
5000
5013
  //#endregion
5001
5014
  //#region src/ns/patterns.ts
5002
- var patterns_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
5015
+ var patterns_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
5003
5016
  circularPattern: () => require_threadFns.circularPattern,
5004
5017
  linearPattern: () => require_threadFns.linearPattern
5005
5018
  });
@@ -5773,7 +5786,7 @@ function relocate(shape, ops) {
5773
5786
  } finally {
5774
5787
  dispose();
5775
5788
  }
5776
- if (require_shapeFns.hasAnyMetadata(shape)) require_shapeFns.propagateMetadataThroughRelocation(shape, moved);
5789
+ if (require_solidBuilders.hasAnyMetadata(shape)) require_solidBuilders.propagateMetadataThroughRelocation(shape, moved);
5777
5790
  return moved;
5778
5791
  }
5779
5792
  function evalTranslate(node, ctx) {
@@ -5826,7 +5839,7 @@ function evalScale(node, ctx) {
5826
5839
  if (!center.ok) return center;
5827
5840
  const r = ctx.evalNode(node.target);
5828
5841
  if (!r.ok) return r;
5829
- return require_errors.ok(require_shapeFns.scale(r.value, f.value, center.value));
5842
+ return require_errors.ok(require_primitiveFns.scale(r.value, f.value, center.value));
5830
5843
  }
5831
5844
  function evalMirror(node, ctx) {
5832
5845
  if (node.target.kind === "Empty") return emptyResult("Mirror");
@@ -5844,7 +5857,7 @@ function evalMirror(node, ctx) {
5844
5857
  if (!at.ok) return at;
5845
5858
  const r = ctx.evalNode(node.target);
5846
5859
  if (!r.ok) return r;
5847
- return require_errors.ok(require_shapeFns.mirror(r.value, normal.value, at.value));
5860
+ return require_errors.ok(require_primitiveFns.mirror(r.value, normal.value, at.value));
5848
5861
  }
5849
5862
  //#endregion
5850
5863
  //#region src/csg/evaluators/compound.ts
@@ -7006,7 +7019,7 @@ function nodeCount(root) {
7006
7019
  }
7007
7020
  //#endregion
7008
7021
  //#region src/ns/csg.ts
7009
- var csg_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
7022
+ var csg_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
7010
7023
  CSG_VERSION: () => 1,
7011
7024
  Evaluator: () => Evaluator,
7012
7025
  add: () => add,
@@ -7121,13 +7134,13 @@ exports.circularPattern = require_threadFns.circularPattern;
7121
7134
  exports.classifyPointOnFace = require_faceFns.classifyPointOnFace;
7122
7135
  exports.clearMeshCache = require_meshFns.clearMeshCache;
7123
7136
  exports.clone = clone;
7124
- exports.closedWire = require_shapeTypes.closedWire;
7137
+ exports.closedWire = require_validityTypes.closedWire;
7125
7138
  exports.collect = require_errors.collect;
7126
7139
  exports.collectShapes = require_threadFns.collectShapes;
7127
- exports.colorFaces = require_shapeFns.colorFaces;
7128
- exports.colorShape = require_shapeFns.colorShape;
7140
+ exports.colorFaces = require_solidBuilders.colorFaces;
7141
+ exports.colorShape = require_solidBuilders.colorShape;
7129
7142
  exports.complexExtrude = require_loftFns.complexExtrude;
7130
- exports.composeTransforms = require_shapeFns.composeTransforms;
7143
+ exports.composeTransforms = require_primitiveFns.composeTransforms;
7131
7144
  exports.compound = require_primitiveFns.compound;
7132
7145
  exports.compoundSketchExtrude = require_textBlueprints.compoundSketchExtrude;
7133
7146
  exports.compoundSketchFace = require_textBlueprints.compoundSketchFace;
@@ -7253,7 +7266,7 @@ exports.exportSTL = require_meshFns.exportSTL;
7253
7266
  exports.exportThreeMF = require_importFns.exportThreeMF;
7254
7267
  exports.exportURDF = require_threadFns.exportURDF;
7255
7268
  exports.extrude = extrude;
7256
- exports.extrudeAll = require_loftFns.extrudeAll;
7269
+ exports.extrudeAll = require_textBlueprints.extrudeAll;
7257
7270
  exports.face = require_primitiveFns.face;
7258
7271
  exports.faceAxis = require_faceFns.faceAxis;
7259
7272
  exports.faceCenter = require_faceFns.faceCenter;
@@ -7271,7 +7284,7 @@ exports.fill = require_surfaceBuilders.fill;
7271
7284
  exports.filledFace = require_primitiveFns.filledFace;
7272
7285
  exports.fillet = fillet;
7273
7286
  exports.filletWithEvolution = require_healingFns.filletWithEvolution;
7274
- exports.findFacesByTag = require_shapeFns.findFacesByTag;
7287
+ exports.findFacesByTag = require_solidBuilders.findFacesByTag;
7275
7288
  exports.findNode = require_threadFns.findNode;
7276
7289
  exports.findStep = require_threadFns.findStep;
7277
7290
  exports.fixSelfIntersection = require_healingFns.fixSelfIntersection;
@@ -7301,9 +7314,9 @@ exports.getCompSolids = require_topologyQueryFns.getCompSolids;
7301
7314
  exports.getCurveType = require_curveFns.getCurveType;
7302
7315
  exports.getDisposalStats = require_shapeTypes.getDisposalStats;
7303
7316
  exports.getEdges = require_topologyQueryFns.getEdges;
7304
- exports.getFaceColor = require_shapeFns.getFaceColor;
7305
- exports.getFaceOrigins = require_shapeFns.getFaceOrigins;
7306
- exports.getFaceTags = require_shapeFns.getFaceTags;
7317
+ exports.getFaceColor = require_solidBuilders.getFaceColor;
7318
+ exports.getFaceOrigins = require_originTrackingFns.getFaceOrigins;
7319
+ exports.getFaceTags = require_solidBuilders.getFaceTags;
7307
7320
  exports.getFaces = require_topologyQueryFns.getFaces;
7308
7321
  exports.getFont = require_textBlueprints.getFont;
7309
7322
  exports.getHashCode = require_shapeFns.getHashCode;
@@ -7316,13 +7329,13 @@ exports.getNurbsSurfaceData = require_healingFns.getNurbsSurfaceData;
7316
7329
  exports.getOrientation = require_curveFns.getOrientation;
7317
7330
  exports.getOrientation2D = require_blueprintFns.getOrientation2D;
7318
7331
  exports.getPerformanceStats = require_shapeTypes.getPerformanceStats;
7319
- exports.getShapeColor = require_shapeFns.getShapeColor;
7332
+ exports.getShapeColor = require_solidBuilders.getShapeColor;
7320
7333
  exports.getShapeKind = require_shapeTypes.getShapeKind;
7321
7334
  exports.getShells = require_topologyQueryFns.getShells;
7322
7335
  exports.getSingleFace = require_helpers.getSingleFace;
7323
7336
  exports.getSolids = require_topologyQueryFns.getSolids;
7324
7337
  exports.getSurfaceType = require_faceFns.getSurfaceType;
7325
- exports.getTagMetadata = require_shapeFns.getTagMetadata;
7338
+ exports.getTagMetadata = require_solidBuilders.getTagMetadata;
7326
7339
  exports.getVertices = require_topologyQueryFns.getVertices;
7327
7340
  exports.getVoxel = getVoxel;
7328
7341
  exports.getWires = require_topologyQueryFns.getWires;
@@ -7371,7 +7384,7 @@ exports.is2D = require_shapeTypes.is2D;
7371
7384
  exports.is3D = require_shapeTypes.is3D;
7372
7385
  exports.isBatchRequest = require_workerPool.isBatchRequest;
7373
7386
  exports.isChamferRadius = isChamferRadius;
7374
- exports.isClosedWire = require_shapeTypes.isClosedWire;
7387
+ exports.isClosedWire = require_validityTypes.isClosedWire;
7375
7388
  exports.isCompSolid = require_faceFns.isCompSolid;
7376
7389
  exports.isCompound = require_shapeTypes.isCompound;
7377
7390
  exports.isDerivedFaceRef = require_refResolveFns.isDerivedFaceRef;
@@ -7390,13 +7403,13 @@ exports.isInside2D = require_blueprintFns.isInside2D;
7390
7403
  exports.isInstanced = isInstanced;
7391
7404
  exports.isLineageRef = require_refResolveFns.isLineageRef;
7392
7405
  exports.isLive = require_shapeTypes.isLive;
7393
- exports.isManifoldShell = require_shapeTypes.isManifoldShell;
7406
+ exports.isManifoldShell = require_validityTypes.isManifoldShell;
7394
7407
  exports.isNumber = isNumber;
7395
7408
  exports.isOk = require_errors.isOk;
7396
7409
  exports.isOperationRequest = require_workerPool.isOperationRequest;
7397
- exports.isOrientedFace = require_shapeTypes.isOrientedFace;
7398
- exports.isPlanarFace = require_shapeTypes.isPlanarFace;
7399
- exports.isPlanarWire = require_shapeTypes.isPlanarWire;
7410
+ exports.isOrientedFace = require_validityTypes.isOrientedFace;
7411
+ exports.isPlanarFace = require_validityTypes.isPlanarFace;
7412
+ exports.isPlanarWire = require_validityTypes.isPlanarWire;
7400
7413
  exports.isProjectionPlane = require_cameraFns.isProjectionPlane;
7401
7414
  exports.isQueueEmpty = require_workerPool.isEmpty;
7402
7415
  exports.isSameShape = require_shapeFns.isSameShape;
@@ -7406,7 +7419,7 @@ exports.isShell = require_shapeTypes.isShell;
7406
7419
  exports.isSolid = require_shapeTypes.isSolid;
7407
7420
  exports.isSuccessResponse = require_workerPool.isSuccessResponse;
7408
7421
  exports.isValid = isValid;
7409
- exports.isValidSolid = require_shapeTypes.isValidSolid;
7422
+ exports.isValidSolid = require_validityTypes.isValidSolid;
7410
7423
  exports.isVertex = require_shapeTypes.isVertex;
7411
7424
  exports.isVertexRef = require_refResolveFns.isVertexRef;
7412
7425
  exports.isWire = require_shapeTypes.isWire;
@@ -7439,7 +7452,7 @@ exports.makeInternalGear = makeInternalGear;
7439
7452
  exports.makePlane = require_planeOps.makePlane;
7440
7453
  exports.makePlanetaryGear = makePlanetaryGear;
7441
7454
  exports.makeProjectedEdges = require_cameraFns.makeProjectedEdges;
7442
- exports.manifoldShell = require_shapeTypes.manifoldShell;
7455
+ exports.manifoldShell = require_validityTypes.manifoldShell;
7443
7456
  exports.map = require_errors.map;
7444
7457
  exports.mapBoth = require_errors.mapBoth;
7445
7458
  exports.mapErr = require_errors.mapErr;
@@ -7491,7 +7504,7 @@ exports.ok = require_errors.ok;
7491
7504
  exports.or = require_errors.or;
7492
7505
  exports.orElse = require_errors.orElse;
7493
7506
  exports.organiseBlueprints = require_blueprintSketcher.organiseBlueprints;
7494
- exports.orientedFace = require_shapeTypes.orientedFace;
7507
+ exports.orientedFace = require_validityTypes.orientedFace;
7495
7508
  exports.outerWire = require_faceFns.outerWire;
7496
7509
  Object.defineProperty(exports, "patterns", {
7497
7510
  enumerable: true,
@@ -7502,9 +7515,9 @@ Object.defineProperty(exports, "patterns", {
7502
7515
  exports.pendingCount = require_workerPool.pendingCount;
7503
7516
  exports.pipeline = require_errors.pipeline;
7504
7517
  exports.pivotPlane = require_planeOps.pivotPlane;
7505
- exports.planarFace = require_shapeTypes.planarFace;
7518
+ exports.planarFace = require_validityTypes.planarFace;
7506
7519
  exports.planarJoint = require_threadFns.planarJoint;
7507
- exports.planarWire = require_shapeTypes.planarWire;
7520
+ exports.planarWire = require_validityTypes.planarWire;
7508
7521
  exports.planetPlacements = planetPlacements;
7509
7522
  exports.pocket = pocket;
7510
7523
  exports.pointOnSurface = require_faceFns.pointOnSurface;
@@ -7546,7 +7559,7 @@ exports.replayFrom = require_threadFns.replayFrom;
7546
7559
  exports.replayHistory = require_threadFns.replayHistory;
7547
7560
  exports.resetDisposalStats = require_shapeTypes.resetDisposalStats;
7548
7561
  exports.resetPerformanceStats = require_shapeTypes.resetPerformanceStats;
7549
- exports.resize = require_shapeFns.resize;
7562
+ exports.resize = require_primitiveFns.resize;
7550
7563
  exports.resolve = resolve;
7551
7564
  exports.resolve3D = resolve3D;
7552
7565
  exports.resolveDerivedFaceRef = require_refResolveFns.resolveDerivedFaceRef;
@@ -7590,8 +7603,8 @@ exports.sectionToFace = sectionToFace;
7590
7603
  exports.serializeHistory = require_threadFns.serializeHistory;
7591
7604
  exports.setJointValue = require_threadFns.setJointValue;
7592
7605
  exports.setJointValues = require_threadFns.setJointValues;
7593
- exports.setShapeOrigin = require_shapeFns.setShapeOrigin;
7594
- exports.setTagMetadata = require_shapeFns.setTagMetadata;
7606
+ exports.setShapeOrigin = require_originTrackingFns.setShapeOrigin;
7607
+ exports.setTagMetadata = require_solidBuilders.setTagMetadata;
7595
7608
  exports.sewShells = require_primitiveFns.sewShells;
7596
7609
  exports.shape = shape;
7597
7610
  exports.shapeToMeshInput = shapeToMeshInput;
@@ -7632,12 +7645,12 @@ exports.stepsFrom = require_threadFns.stepsFrom;
7632
7645
  exports.stretch2D = require_blueprintFns.stretch2D;
7633
7646
  exports.subFace = require_primitiveFns.subFace;
7634
7647
  exports.supportExtrude = require_loftFns.supportExtrude;
7635
- exports.supportsConstraintSketch = require_shapeTypes.supportsConstraintSketch;
7636
- exports.supportsProjection = require_shapeTypes.supportsProjection;
7648
+ exports.supportsConstraintSketch = supportsConstraintSketch;
7649
+ exports.supportsProjection = supportsProjection;
7637
7650
  exports.surfaceFromGrid = surfaceFromGrid;
7638
7651
  exports.surfaceFromImage = surfaceFromImage;
7639
7652
  exports.sweep = require_loftFns.sweep;
7640
- exports.tagFaces = require_shapeFns.tagFaces;
7653
+ exports.tagFaces = require_solidBuilders.tagFaces;
7641
7654
  exports.tangentArc = require_primitiveFns.tangentArc;
7642
7655
  exports.tap = require_errors.tap;
7643
7656
  exports.tapErr = require_errors.tapErr;
@@ -7683,7 +7696,7 @@ exports.updateNode = require_threadFns.updateNode;
7683
7696
  exports.updateRoles = require_refResolveFns.updateRoles;
7684
7697
  exports.uvBounds = require_faceFns.uvBounds;
7685
7698
  exports.uvCoordinates = require_faceFns.uvCoordinates;
7686
- exports.validSolid = require_shapeTypes.validSolid;
7699
+ exports.validSolid = require_validityTypes.validSolid;
7687
7700
  exports.validatePlanetary = validatePlanetary;
7688
7701
  exports.validationError = require_errors.validationError;
7689
7702
  exports.variableFillet = require_healingFns.variableFillet;