brepjs 20.13.5 → 20.14.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 (94) hide show
  1. package/dist/2d.cjs +6 -6
  2. package/dist/2d.js +6 -6
  3. package/dist/{adjacencyFns-B1ZWTkxw.cjs → adjacencyFns-B6fMyAj0.cjs} +3 -3
  4. package/dist/{adjacencyFns-XdjXKCXE.js → adjacencyFns-n6XWEyj1.js} +3 -3
  5. package/dist/{blueprint-WAucCqwY.js → blueprint-2j8szIQ6.js} +5 -5
  6. package/dist/{blueprint-DzhzGFy2.cjs → blueprint-Cfj9EupK.cjs} +5 -5
  7. package/dist/{blueprintFns-DnzHyTjv.cjs → blueprintFns-7SWJcrSi.cjs} +2 -2
  8. package/dist/{blueprintFns-C8gt4OYm.js → blueprintFns-C4VacaAG.js} +2 -2
  9. package/dist/{blueprintSketcher-CeMrC8k-.js → blueprintSketcher-D81yS5Em.js} +3 -3
  10. package/dist/{blueprintSketcher-JoLn4vSB.cjs → blueprintSketcher-zx0yhxOF.cjs} +3 -3
  11. package/dist/{boolean2D-Cwc_4mU8.cjs → boolean2D-BMfzZ4n8.cjs} +4 -4
  12. package/dist/{boolean2D-D8_6vKh_.js → boolean2D-DhW8iZoR.js} +4 -4
  13. package/dist/{booleanFns-BhW5eybV.cjs → booleanFns-CaHF13T-.cjs} +5 -5
  14. package/dist/{booleanFns-aGRfk4ud.js → booleanFns-DIqS3nBK.js} +5 -5
  15. package/dist/brepjs.cjs +30 -30
  16. package/dist/brepjs.js +30 -30
  17. package/dist/{cameraFns-CBc6tpRl.js → cameraFns-DB_nPXR7.js} +3 -3
  18. package/dist/{cameraFns-DhgM5-Nl.cjs → cameraFns-T60Qk0tk.cjs} +3 -3
  19. package/dist/core.cjs +2 -2
  20. package/dist/core.js +2 -2
  21. package/dist/{cornerFinder-xI6O0ZCv.cjs → cornerFinder-CNuTBfRo.cjs} +1 -1
  22. package/dist/{cornerFinder-ChkO3EOO.js → cornerFinder-GtiadLBr.js} +1 -1
  23. package/dist/{curveFns-Cnh0Hljx.js → curveFns-CGQCy_D5.js} +1 -1
  24. package/dist/{curveFns-Dz36SOE6.cjs → curveFns-m73YVbFb.cjs} +1 -1
  25. package/dist/{drawFns-RuUOUlSC.js → drawFns-D9GuLtRK.js} +12 -12
  26. package/dist/{drawFns-BrRyiHKp.cjs → drawFns-DCY1v4nI.cjs} +12 -12
  27. package/dist/{faceFns-Dz3eRgNR.js → faceFns-BNv6thpF.js} +2 -2
  28. package/dist/{faceFns-DfEUZlnf.cjs → faceFns-CPGJ_cx6.cjs} +2 -2
  29. package/dist/{healingFns-D7LTrPO8.cjs → healingFns-D33MBaNA.cjs} +41 -28
  30. package/dist/{healingFns-CCRPtrvE.js → healingFns-w-PHd-Lj.js} +41 -28
  31. package/dist/{helpers-C0MoldOO.cjs → helpers-CCnN8-PY.cjs} +6 -6
  32. package/dist/{helpers-D3oo0Zfs.js → helpers-Ci_WZ5ou.js} +6 -6
  33. package/dist/{importFns-BVcmm3T0.js → importFns-DQgcQQCb.js} +5 -5
  34. package/dist/{importFns-Sp5phi5Y.cjs → importFns-zfbC3bIK.cjs} +5 -5
  35. package/dist/io.cjs +2 -2
  36. package/dist/io.js +2 -2
  37. package/dist/kernel/brepkit/brepkitWasmTypes.d.ts +4 -8
  38. package/dist/kernel/brepkit/constructionOps.d.ts +1 -1
  39. package/dist/kernel/brepkit/modifierOps.d.ts +3 -3
  40. package/dist/kernel/occtWasm/helpers.d.ts +12 -2
  41. package/dist/kernel/occtWasm/occtWasmAdapter.cjs +1 -1
  42. package/dist/kernel/occtWasm/occtWasmAdapter.js +1 -1
  43. package/dist/{loftFns-BoGWrMPg.cjs → loftFns-DQJM-35I.cjs} +4 -4
  44. package/dist/{loftFns-oH6dldzO.js → loftFns-mrTzIf4_.js} +4 -4
  45. package/dist/{measureFns-CmKNZ0gC.cjs → measureFns-CpoPgAZt.cjs} +4 -4
  46. package/dist/{measureFns-6mHYvqUc.js → measureFns-MSr05_kf.js} +4 -4
  47. package/dist/measurement.cjs +2 -2
  48. package/dist/measurement.js +2 -2
  49. package/dist/{meshFns-D29JHTr6.js → meshFns-BIWD7IFN.js} +4 -4
  50. package/dist/{meshFns-BFgQZGty.cjs → meshFns-BxRKwY5z.cjs} +4 -4
  51. package/dist/{occtWasmAdapter-4YnvqZOW.cjs → occtWasmAdapter-BH1JcAgl.cjs} +13 -5
  52. package/dist/{occtWasmAdapter-CGsnjMOe.js → occtWasmAdapter-DD_6IAVj.js} +13 -5
  53. package/dist/operations/sweepFns.d.ts +3 -3
  54. package/dist/operations.cjs +2 -2
  55. package/dist/operations.js +2 -2
  56. package/dist/{primitiveFns-uywjJ06V.js → primitiveFns-BaYEo9qN.js} +5 -5
  57. package/dist/{primitiveFns-Dovused4.cjs → primitiveFns-D8D9dI_P.cjs} +5 -5
  58. package/dist/{principalBoxFns-CTVc4f8W.js → principalBoxFns-CBWLch1h.js} +3 -3
  59. package/dist/{principalBoxFns-KvlaTxMs.cjs → principalBoxFns-CNSK-z3k.cjs} +3 -3
  60. package/dist/projection.cjs +1 -1
  61. package/dist/projection.js +1 -1
  62. package/dist/query.cjs +2 -2
  63. package/dist/query.js +2 -2
  64. package/dist/{refResolveFns-BFws5K2t.cjs → refResolveFns-CuewCIRB.cjs} +6 -6
  65. package/dist/{refResolveFns-DZoPfglj.js → refResolveFns-DaZPev13.js} +6 -6
  66. package/dist/{shapeFns-CHsoXWeu.js → shapeFns-3NzCE2kz.js} +2 -2
  67. package/dist/{shapeFns-C9P1KmqH.cjs → shapeFns-Cklw3p3S.cjs} +2 -2
  68. package/dist/shapeRef.cjs +1 -1
  69. package/dist/shapeRef.js +1 -1
  70. package/dist/{shapeTypes-BK53GmLC.cjs → shapeTypes-CgayxMvX.cjs} +195 -37
  71. package/dist/{shapeTypes-Ckz9bpYW.js → shapeTypes-qhs8f2zx.js} +195 -37
  72. package/dist/sketching.cjs +3 -3
  73. package/dist/sketching.js +3 -3
  74. package/dist/{solidBuilders-CETSjBW2.cjs → solidBuilders-BvIdZUkI.cjs} +3 -3
  75. package/dist/{solidBuilders-DMfqtfIG.js → solidBuilders-DhDGnOTQ.js} +3 -3
  76. package/dist/{surfaceBuilders-vKXtKSqY.cjs → surfaceBuilders-BPAW6RbN.cjs} +3 -3
  77. package/dist/{surfaceBuilders-BeHgAqDx.js → surfaceBuilders-D9WX9gHX.js} +3 -3
  78. package/dist/text.cjs +2 -2
  79. package/dist/text.js +2 -2
  80. package/dist/{textBlueprints-DSiQKpe8.cjs → textBlueprints-CTMykb_E.cjs} +8 -8
  81. package/dist/{textBlueprints-CLwy1uWM.js → textBlueprints-CxufM4VF.js} +8 -8
  82. package/dist/{textMetrics-1e-VHhTX.js → textMetrics-CdvERXfK.js} +1 -1
  83. package/dist/{textMetrics-CzSpui4K.cjs → textMetrics-D51K9Ddx.cjs} +1 -1
  84. package/dist/{threadFns-DveRUJwK.js → threadFns-BUy4gIG3.js} +7 -7
  85. package/dist/{threadFns-BEopBSv3.cjs → threadFns-zNevH3kU.cjs} +7 -7
  86. package/dist/topology/apiTypes.d.ts +2 -4
  87. package/dist/topology/modifierFns.d.ts +15 -6
  88. package/dist/topology.cjs +9 -9
  89. package/dist/topology.js +9 -9
  90. package/dist/{topologyQueryFns-SINsBrMe.js → topologyQueryFns-CArmw9sE.js} +1 -1
  91. package/dist/{topologyQueryFns--p_-tywe.cjs → topologyQueryFns-EI-aso9K.cjs} +1 -1
  92. package/dist/{validityTypes-DPAkV5rC.cjs → validityTypes-DFEPeAkV.cjs} +1 -1
  93. package/dist/{validityTypes-BCZ8XRzO.js → validityTypes-DiOmm0sf.js} +1 -1
  94. package/package.json +2 -2
@@ -1,8 +1,8 @@
1
- const require_shapeTypes = require("./shapeTypes-BK53GmLC.cjs");
2
- const require_occtWasmAdapter = require("./occtWasmAdapter-4YnvqZOW.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-CgayxMvX.cjs");
2
+ const require_occtWasmAdapter = require("./occtWasmAdapter-BH1JcAgl.cjs");
3
3
  const require_errors = require("./errors-O_blYTWT.cjs");
4
- const require_topologyQueryFns = require("./topologyQueryFns--p_-tywe.cjs");
5
- const require_faceFns = require("./faceFns-DfEUZlnf.cjs");
4
+ const require_topologyQueryFns = require("./topologyQueryFns-EI-aso9K.cjs");
5
+ const require_faceFns = require("./faceFns-CPGJ_cx6.cjs");
6
6
  // src/measurement/measureCache.ts
7
7
  var cache = /* @__PURE__ */ new WeakMap();
8
8
  function getCachedMeasurement(shape, key) {
@@ -1,8 +1,8 @@
1
- import { q as getKernel } from "./shapeTypes-Ckz9bpYW.js";
2
- import { j as isUnsupportedKernelOperationError } from "./occtWasmAdapter-CGsnjMOe.js";
1
+ import { q as getKernel } from "./shapeTypes-qhs8f2zx.js";
2
+ import { j as isUnsupportedKernelOperationError } from "./occtWasmAdapter-DD_6IAVj.js";
3
3
  import { E as ok, d as validationError, g as err, t as BrepErrorCode, u as unsupportedError } from "./errors-BTccWbtE.js";
4
- import { E as kernelCallRaw } from "./topologyQueryFns-SINsBrMe.js";
5
- import { m as uvBounds } from "./faceFns-Dz3eRgNR.js";
4
+ import { E as kernelCallRaw } from "./topologyQueryFns-CArmw9sE.js";
5
+ import { m as uvBounds } from "./faceFns-BNv6thpF.js";
6
6
  // src/measurement/measureCache.ts
7
7
  var cache = /* @__PURE__ */ new WeakMap();
8
8
  function getCachedMeasurement(shape, key) {
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_measureFns = require("./measureFns-CmKNZ0gC.cjs");
3
- const require_principalBoxFns = require("./principalBoxFns-KvlaTxMs.cjs");
2
+ const require_measureFns = require("./measureFns-CpoPgAZt.cjs");
3
+ const require_principalBoxFns = require("./principalBoxFns-CNSK-z3k.cjs");
4
4
  exports.createDistanceQuery = require_measureFns.createDistanceQuery;
5
5
  exports.measureArea = require_measureFns.measureArea;
6
6
  exports.measureDistance = require_measureFns.measureDistance;
@@ -1,3 +1,3 @@
1
- import { c as measureLength, d as measureVolume, f as measureVolumeProps, l as measureLinearProps, o as measureDistance, r as measureArea, s as measureDistanceProps, t as createDistanceQuery, u as measureSurfaceProps } from "./measureFns-6mHYvqUc.js";
2
- import { t as principalBoundingBox } from "./principalBoxFns-CTVc4f8W.js";
1
+ import { c as measureLength, d as measureVolume, f as measureVolumeProps, l as measureLinearProps, o as measureDistance, r as measureArea, s as measureDistanceProps, t as createDistanceQuery, u as measureSurfaceProps } from "./measureFns-MSr05_kf.js";
2
+ import { t as principalBoundingBox } from "./principalBoxFns-CBWLch1h.js";
3
3
  export { createDistanceQuery, measureArea, measureDistance, measureDistanceProps, measureLength, measureLinearProps, measureSurfaceProps, measureVolume, measureVolumeProps, principalBoundingBox };
@@ -1,8 +1,8 @@
1
- import { q as getKernel, ut as qualityDeflection } from "./shapeTypes-Ckz9bpYW.js";
2
- import { j as isUnsupportedKernelOperationError } from "./occtWasmAdapter-CGsnjMOe.js";
1
+ import { q as getKernel, ut as qualityDeflection } from "./shapeTypes-qhs8f2zx.js";
2
+ import { j as isUnsupportedKernelOperationError } from "./occtWasmAdapter-DD_6IAVj.js";
3
3
  import { E as ok, g as err, r as ioError, t as BrepErrorCode, u as unsupportedError } from "./errors-BTccWbtE.js";
4
- import { d as getSolids, n as getBounds } from "./topologyQueryFns-SINsBrMe.js";
5
- import { d as getFaceOrigins } from "./solidBuilders-DMfqtfIG.js";
4
+ import { d as getSolids, n as getBounds } from "./topologyQueryFns-CArmw9sE.js";
5
+ import { d as getFaceOrigins } from "./solidBuilders-DhDGnOTQ.js";
6
6
  // src/topology/meshCache.ts
7
7
  /**
8
8
  * Build a parameter key for the inner cache map (excludes shape identity).
@@ -1,8 +1,8 @@
1
- const require_shapeTypes = require("./shapeTypes-BK53GmLC.cjs");
2
- const require_occtWasmAdapter = require("./occtWasmAdapter-4YnvqZOW.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-CgayxMvX.cjs");
2
+ const require_occtWasmAdapter = require("./occtWasmAdapter-BH1JcAgl.cjs");
3
3
  const require_errors = require("./errors-O_blYTWT.cjs");
4
- const require_topologyQueryFns = require("./topologyQueryFns--p_-tywe.cjs");
5
- const require_solidBuilders = require("./solidBuilders-CETSjBW2.cjs");
4
+ const require_topologyQueryFns = require("./topologyQueryFns-EI-aso9K.cjs");
5
+ const require_solidBuilders = require("./solidBuilders-BvIdZUkI.cjs");
6
6
  // src/topology/meshCache.ts
7
7
  /**
8
8
  * Build a parameter key for the inner cache map (excludes shape identity).
@@ -2313,6 +2313,13 @@ function resolveEdgeValues(edges, value) {
2313
2313
  second
2314
2314
  };
2315
2315
  }
2316
+ /**
2317
+ * occt-wasm's fillet entry points take only positive radii, though its
2318
+ * single-edge filletVariable builds a fillet that runs out to a radius of 0.
2319
+ */
2320
+ function refuseVanishingFilletRadius({ first, second }) {
2321
+ if (first.includes(0) || second.includes(0)) throw new UnsupportedKernelOperationError("occt-wasm: a fillet radius that runs to 0 is built only by variableFillet");
2322
+ }
2316
2323
  /** The value every edge takes on both sides, or `undefined` when they differ. */
2317
2324
  function uniformEdgeValue({ first, second }) {
2318
2325
  const [value] = first;
@@ -2323,10 +2330,11 @@ function uniformEdgeValue({ first, second }) {
2323
2330
  * Run a fillet or chamfer over `edges`, naming the edges it fails on. Edges
2324
2331
  * that all take one value go to `uniform`, the single-value entry point every
2325
2332
  * occt-wasm build has; otherwise `perEdge` gets each edge's pair as `first`
2326
- * and `second`.
2333
+ * and `second`. `check` sees the resolved values first and throws to refuse them.
2327
2334
  */
2328
- function runEdgeTreatment(Module, edges, value, uniform, perEdge) {
2335
+ function runEdgeTreatment(Module, edges, value, uniform, perEdge, check) {
2329
2336
  const values = resolveEdgeValues(edges, value);
2337
+ check?.(values);
2330
2338
  const shared = uniformEdgeValue(values);
2331
2339
  const edgeVec = makeVecU32(Module, edges.map(unwrap));
2332
2340
  try {
@@ -3813,7 +3821,7 @@ function fillet(k, Module, shape, edges, radius) {
3813
3821
  return wrapResult(k, runEdgeTreatment(Module, edges, radius, (edgeVec, r) => k.fillet(id, edgeVec, r), (edgeVec, startRadii, endRadii) => {
3814
3822
  if (!k.filletRadii) throw needsOcctWasm59("per-edge or tapered fillet radii");
3815
3823
  return k.filletRadii(id, edgeVec, startRadii, endRadii);
3816
- }));
3824
+ }, refuseVanishingFilletRadius));
3817
3825
  }
3818
3826
  function chamfer(k, Module, shape, edges, distance) {
3819
3827
  const id = unwrap(shape);
@@ -3920,7 +3928,7 @@ function filletVariable(k, shape, spec) {
3920
3928
  if (parsed.edgeId !== void 0 && parsed.startRadius !== void 0 && parsed.endRadius !== void 0) return runFilletVariable(k, unwrap(shape), parsed.edgeId, parsed.startRadius, parsed.endRadius);
3921
3929
  if (parsed.edge !== void 0 && Array.isArray(parsed.radii) && parsed.radii.length > 0) {
3922
3930
  const radii = parsed.radii;
3923
- if (radii.length > 2) throw new UnsupportedKernelOperationError("occt-wasm: filletVariable supports only a linear (<=2-point) radius profile; a multi-point variable radius requires the brepkit kernel");
3931
+ if (radii.length > 2) throw new UnsupportedKernelOperationError("occt-wasm: filletVariable supports only a linear (<=2-point) radius profile");
3924
3932
  const startRadius = radii[0].radius;
3925
3933
  const endRadius = radii[radii.length - 1].radius;
3926
3934
  const shapeId = unwrap(shape);
@@ -6259,7 +6267,7 @@ function filletWithHistory(k, Module, shape, edges, radius, inputFaceHashes, has
6259
6267
  const { id, evolution } = parseEvolution(runEdgeTreatment(Module, edges, radius, (edgeVec, r) => k.filletWithHistory(shapeId, edgeVec, r, hashVec, hashUpperBound), (edgeVec, startRadii, endRadii) => {
6260
6268
  if (!k.filletRadiiWithHistory) throw needsOcctWasm59("per-edge or tapered fillet radii");
6261
6269
  return k.filletRadiiWithHistory(shapeId, edgeVec, startRadii, endRadii, hashVec, hashUpperBound);
6262
- }));
6270
+ }, refuseVanishingFilletRadius));
6263
6271
  return {
6264
6272
  shape: wrapResult(k, id),
6265
6273
  evolution
@@ -2313,6 +2313,13 @@ function resolveEdgeValues(edges, value) {
2313
2313
  second
2314
2314
  };
2315
2315
  }
2316
+ /**
2317
+ * occt-wasm's fillet entry points take only positive radii, though its
2318
+ * single-edge filletVariable builds a fillet that runs out to a radius of 0.
2319
+ */
2320
+ function refuseVanishingFilletRadius({ first, second }) {
2321
+ if (first.includes(0) || second.includes(0)) throw new UnsupportedKernelOperationError("occt-wasm: a fillet radius that runs to 0 is built only by variableFillet");
2322
+ }
2316
2323
  /** The value every edge takes on both sides, or `undefined` when they differ. */
2317
2324
  function uniformEdgeValue({ first, second }) {
2318
2325
  const [value] = first;
@@ -2323,10 +2330,11 @@ function uniformEdgeValue({ first, second }) {
2323
2330
  * Run a fillet or chamfer over `edges`, naming the edges it fails on. Edges
2324
2331
  * that all take one value go to `uniform`, the single-value entry point every
2325
2332
  * occt-wasm build has; otherwise `perEdge` gets each edge's pair as `first`
2326
- * and `second`.
2333
+ * and `second`. `check` sees the resolved values first and throws to refuse them.
2327
2334
  */
2328
- function runEdgeTreatment(Module, edges, value, uniform, perEdge) {
2335
+ function runEdgeTreatment(Module, edges, value, uniform, perEdge, check) {
2329
2336
  const values = resolveEdgeValues(edges, value);
2337
+ check?.(values);
2330
2338
  const shared = uniformEdgeValue(values);
2331
2339
  const edgeVec = makeVecU32(Module, edges.map(unwrap));
2332
2340
  try {
@@ -3813,7 +3821,7 @@ function fillet(k, Module, shape, edges, radius) {
3813
3821
  return wrapResult(k, runEdgeTreatment(Module, edges, radius, (edgeVec, r) => k.fillet(id, edgeVec, r), (edgeVec, startRadii, endRadii) => {
3814
3822
  if (!k.filletRadii) throw needsOcctWasm59("per-edge or tapered fillet radii");
3815
3823
  return k.filletRadii(id, edgeVec, startRadii, endRadii);
3816
- }));
3824
+ }, refuseVanishingFilletRadius));
3817
3825
  }
3818
3826
  function chamfer(k, Module, shape, edges, distance) {
3819
3827
  const id = unwrap(shape);
@@ -3920,7 +3928,7 @@ function filletVariable(k, shape, spec) {
3920
3928
  if (parsed.edgeId !== void 0 && parsed.startRadius !== void 0 && parsed.endRadius !== void 0) return runFilletVariable(k, unwrap(shape), parsed.edgeId, parsed.startRadius, parsed.endRadius);
3921
3929
  if (parsed.edge !== void 0 && Array.isArray(parsed.radii) && parsed.radii.length > 0) {
3922
3930
  const radii = parsed.radii;
3923
- if (radii.length > 2) throw new UnsupportedKernelOperationError("occt-wasm: filletVariable supports only a linear (<=2-point) radius profile; a multi-point variable radius requires the brepkit kernel");
3931
+ if (radii.length > 2) throw new UnsupportedKernelOperationError("occt-wasm: filletVariable supports only a linear (<=2-point) radius profile");
3924
3932
  const startRadius = radii[0].radius;
3925
3933
  const endRadius = radii[radii.length - 1].radius;
3926
3934
  const shapeId = unwrap(shape);
@@ -6259,7 +6267,7 @@ function filletWithHistory(k, Module, shape, edges, radius, inputFaceHashes, has
6259
6267
  const { id, evolution } = parseEvolution(runEdgeTreatment(Module, edges, radius, (edgeVec, r) => k.filletWithHistory(shapeId, edgeVec, r, hashVec, hashUpperBound), (edgeVec, startRadii, endRadii) => {
6260
6268
  if (!k.filletRadiiWithHistory) throw needsOcctWasm59("per-edge or tapered fillet radii");
6261
6269
  return k.filletRadiiWithHistory(shapeId, edgeVec, startRadii, endRadii, hashVec, hashUpperBound);
6262
- }));
6270
+ }, refuseVanishingFilletRadius));
6263
6271
  return {
6264
6272
  shape: wrapResult(k, id),
6265
6273
  evolution
@@ -40,8 +40,8 @@ export interface GuidedSweepOptions {
40
40
  * @param config - Sweep configuration (frenet, transition mode, scaling law, etc.).
41
41
  * @param shellMode - When `true`, return `[shell, startWire, endWire]` instead of a solid.
42
42
  * @returns `Result` containing the swept shape, or a `[Shape3D, Wire, Wire]` tuple in shell mode;
43
- * Err `UNSUPPORTED_CAPABILITY` when the kernel cannot build the auxiliary spine or law
44
- * (brepkit builds neither).
43
+ * Err `UNSUPPORTED_CAPABILITY` when the kernel cannot build the law (brepkit), or an
44
+ * auxiliary spine along a spine of more than one edge (brepkit).
45
45
  */
46
46
  export declare function sweep(wire: ClosedWire<Dimension>, spine: Wire<Dimension>, config?: SweepOptions, shellMode?: false): Result<Shape3D>;
47
47
  /** Sweep in shell mode, returning `[shell, startWire, endWire]`. */
@@ -95,7 +95,7 @@ export declare function complexExtrude(wire: ClosedWire<Dimension>, center: Vec3
95
95
  * @param profileShape - Optional scaling profile applied along the extrusion.
96
96
  * @param shellMode - When `true`, return `[shell, startWire, endWire]` instead of a solid.
97
97
  * @returns `Result` containing the twisted extruded shape, or a shell tuple in shell mode;
98
- * Err `UNSUPPORTED_CAPABILITY` on a kernel without a twisted sweep (brepkit).
98
+ * Err `UNSUPPORTED_CAPABILITY` for a profile on a kernel without a scaling-law sweep (brepkit).
99
99
  */
100
100
  export declare function twistExtrude(wire: ClosedWire<Dimension>, angleDegrees: number, center: Vec3, normal: Vec3, profileShape?: ExtrusionProfile, shellMode?: false): Result<Shape3D>;
101
101
  /** Twisted extrusion in shell mode, returning `[shell, startWire, endWire]`. */
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_threadFns = require("./threadFns-BEopBSv3.cjs");
3
- const require_loftFns = require("./loftFns-BoGWrMPg.cjs");
2
+ const require_threadFns = require("./threadFns-zNevH3kU.cjs");
3
+ const require_loftFns = require("./loftFns-DQJM-35I.cjs");
4
4
  exports.addChild = require_threadFns.addChild;
5
5
  exports.addJoint = require_threadFns.addJoint;
6
6
  exports.addStep = require_threadFns.addStep;
@@ -1,3 +1,3 @@
1
- import { A as setJointValue, B as walkAssembly, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, F as countNodes, H as circularPattern, I as createAssemblyNode, L as findNode, M as sphericalJoint, N as addChild, O as prismaticJoint, P as collectShapes, R as removeChild, S as addJoint, T as jointTransform, U as gridPattern, V as exportAssemblySTEP, W as linearPattern, Y as createAssembly, _ as exportURDF, b as inverseKinematics, c as modifyStep, d as replayFrom, f as replayHistory, g as undoLast, h as stepsFrom, i as createRegistry, j as setJointValues, k as revoluteJoint, l as registerOperation, m as stepCount, n as addStep, o as findStep, r as createHistory, s as getShape, t as thread, u as registerShape, v as importURDF, w as forwardKinematics, x as jointTrajectory, y as jointsFromDH, z as updateNode } from "./threadFns-DveRUJwK.js";
2
- import { c as twistExtrude, o as supportExtrude, r as complexExtrude, s as sweep } from "./loftFns-oH6dldzO.js";
1
+ import { A as setJointValue, B as walkAssembly, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, F as countNodes, H as circularPattern, I as createAssemblyNode, L as findNode, M as sphericalJoint, N as addChild, O as prismaticJoint, P as collectShapes, R as removeChild, S as addJoint, T as jointTransform, U as gridPattern, V as exportAssemblySTEP, W as linearPattern, Y as createAssembly, _ as exportURDF, b as inverseKinematics, c as modifyStep, d as replayFrom, f as replayHistory, g as undoLast, h as stepsFrom, i as createRegistry, j as setJointValues, k as revoluteJoint, l as registerOperation, m as stepCount, n as addStep, o as findStep, r as createHistory, s as getShape, t as thread, u as registerShape, v as importURDF, w as forwardKinematics, x as jointTrajectory, y as jointsFromDH, z as updateNode } from "./threadFns-BUy4gIG3.js";
2
+ import { c as twistExtrude, o as supportExtrude, r as complexExtrude, s as sweep } from "./loftFns-mrTzIf4_.js";
3
3
  export { addChild, addJoint, addStep, circularPattern, collectShapes, complexExtrude, countNodes, createAssembly, createAssemblyNode, createHistory, createRegistry, cylindricalJoint, exportAssemblySTEP, exportURDF, findNode, findStep, forwardKinematics, getShape as getHistoryShape, gridPattern, importURDF, inverseKinematics, jointTrajectory, jointTransform, jointsFromDH, linearPattern, mechanismDOF, modifyStep, planarJoint, prismaticJoint, registerOperation, registerShape, removeChild, replayFrom, replayHistory, revoluteJoint, setJointValue, setJointValues, sphericalJoint, stepCount, stepsFrom, supportExtrude, sweep, thread, twistExtrude, undoLast, updateNode, walkAssembly };
@@ -1,11 +1,11 @@
1
- import { E as GeometryCleanupError, G as _usingCtx, d as createSolid, n as castResultShape, q as getKernel } from "./shapeTypes-Ckz9bpYW.js";
1
+ import { E as GeometryCleanupError, G as _usingCtx, d as createSolid, n as castResultShape, q as getKernel } from "./shapeTypes-qhs8f2zx.js";
2
2
  import { E as ok, d as validationError, g as err, m as andThen, t as BrepErrorCode } from "./errors-BTccWbtE.js";
3
- import { n as isClosedWire } from "./validityTypes-BCZ8XRzO.js";
3
+ import { n as isClosedWire } from "./validityTypes-DiOmm0sf.js";
4
4
  import { n as HASH_CODE_MAX, t as DEG2RAD } from "./constants-iraOnb2p.js";
5
5
  import { d as vecNormalize, h as vecScale } from "./vecOps-S-m9H_fe.js";
6
- import { a as makeOffset, c as makeTorus, i as makeEllipsoid, l as makeVertex, n as makeCone, o as makeSolid, r as makeCylinder, s as makeSphere, t as makeCompound, u as weldShellsAndFaces } from "./solidBuilders-DMfqtfIG.js";
7
- import { f as collectInputFaceHashes, g as propagateMetadataThroughRelocation, h as propagateMetadataByHash, m as propagateAllMetadata, p as hasAnyMetadata } from "./booleanFns-aGRfk4ud.js";
8
- import { _ as makeThreePointArc, a as makeNonPlanarFace, c as makeBSplineApproximation, d as makeCircle, f as makeEllipse, g as makeTangentArc, h as makeLine, i as makeNewFaceWithinFace, m as makeHelix, o as makePolygon, p as makeEllipseArc, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeBezierCurve } from "./surfaceBuilders-BeHgAqDx.js";
6
+ import { a as makeOffset, c as makeTorus, i as makeEllipsoid, l as makeVertex, n as makeCone, o as makeSolid, r as makeCylinder, s as makeSphere, t as makeCompound, u as weldShellsAndFaces } from "./solidBuilders-DhDGnOTQ.js";
7
+ import { f as collectInputFaceHashes, g as propagateMetadataThroughRelocation, h as propagateMetadataByHash, m as propagateAllMetadata, p as hasAnyMetadata } from "./booleanFns-DIqS3nBK.js";
8
+ import { _ as makeThreePointArc, a as makeNonPlanarFace, c as makeBSplineApproximation, d as makeCircle, f as makeEllipse, g as makeTangentArc, h as makeLine, i as makeNewFaceWithinFace, m as makeHelix, o as makePolygon, p as makeEllipseArc, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeBezierCurve } from "./surfaceBuilders-D9WX9gHX.js";
9
9
  // src/topology/transformFns.ts
10
10
  /**
11
11
  * Immutable shape transforms — translate, rotate, scale, mirror, applyMatrix.
@@ -1,11 +1,11 @@
1
- const require_shapeTypes = require("./shapeTypes-BK53GmLC.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-CgayxMvX.cjs");
2
2
  const require_errors = require("./errors-O_blYTWT.cjs");
3
- const require_validityTypes = require("./validityTypes-DPAkV5rC.cjs");
3
+ const require_validityTypes = require("./validityTypes-DFEPeAkV.cjs");
4
4
  const require_constants = require("./constants-oee0S_x6.cjs");
5
5
  const require_vecOps = require("./vecOps-CrGEPPQM.cjs");
6
- const require_solidBuilders = require("./solidBuilders-CETSjBW2.cjs");
7
- const require_booleanFns = require("./booleanFns-BhW5eybV.cjs");
8
- const require_surfaceBuilders = require("./surfaceBuilders-vKXtKSqY.cjs");
6
+ const require_solidBuilders = require("./solidBuilders-BvIdZUkI.cjs");
7
+ const require_booleanFns = require("./booleanFns-CaHF13T-.cjs");
8
+ const require_surfaceBuilders = require("./surfaceBuilders-BPAW6RbN.cjs");
9
9
  // src/topology/transformFns.ts
10
10
  /**
11
11
  * Immutable shape transforms — translate, rotate, scale, mirror, applyMatrix.
@@ -1,9 +1,9 @@
1
- import { G as _usingCtx, n as castResultShape, q as getKernel } from "./shapeTypes-Ckz9bpYW.js";
1
+ import { G as _usingCtx, n as castResultShape, q as getKernel } from "./shapeTypes-qhs8f2zx.js";
2
2
  import { i as wasmIndex } from "./bug-ClMTAJhe.js";
3
3
  import { E as ok, d as validationError, g as err, t as BrepErrorCode, u as unsupportedError } from "./errors-BTccWbtE.js";
4
- import { E as kernelCallRaw } from "./topologyQueryFns-SINsBrMe.js";
4
+ import { E as kernelCallRaw } from "./topologyQueryFns-CArmw9sE.js";
5
5
  import { r as vecCross } from "./vecOps-S-m9H_fe.js";
6
- import { g as setCachedMeasurement, h as getCachedMeasurement, m as withSubShapes, p as withCompoundOf } from "./measureFns-6mHYvqUc.js";
6
+ import { g as setCachedMeasurement, h as getCachedMeasurement, m as withSubShapes, p as withCompoundOf } from "./measureFns-MSr05_kf.js";
7
7
  // src/measurement/principalBoxFns.ts
8
8
  /**
9
9
  * Principal-axes bounding box: a solid's extent measured in the frame of its
@@ -1,9 +1,9 @@
1
- const require_shapeTypes = require("./shapeTypes-BK53GmLC.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-CgayxMvX.cjs");
2
2
  const require_bug = require("./bug-CBcpIPuf.cjs");
3
3
  const require_errors = require("./errors-O_blYTWT.cjs");
4
- const require_topologyQueryFns = require("./topologyQueryFns--p_-tywe.cjs");
4
+ const require_topologyQueryFns = require("./topologyQueryFns-EI-aso9K.cjs");
5
5
  const require_vecOps = require("./vecOps-CrGEPPQM.cjs");
6
- const require_measureFns = require("./measureFns-CmKNZ0gC.cjs");
6
+ const require_measureFns = require("./measureFns-CpoPgAZt.cjs");
7
7
  // src/measurement/principalBoxFns.ts
8
8
  /**
9
9
  * Principal-axes bounding box: a solid's extent measured in the frame of its
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_cameraFns = require("./cameraFns-DhgM5-Nl.cjs");
2
+ const require_cameraFns = require("./cameraFns-T60Qk0tk.cjs");
3
3
  exports.PROJECTION_PLANES = require_cameraFns.PROJECTION_PLANES;
4
4
  exports.cameraFromPlane = require_cameraFns.cameraFromPlane;
5
5
  exports.cameraLookAt = require_cameraFns.cameraLookAt;
@@ -1 +1 @@
1
- export { o as PROJECTION_PLANES, t as cameraFromPlane, n as cameraLookAt, r as createCamera, s as isProjectionPlane, a as makeProjectedEdges, i as projectEdges } from "./cameraFns-CBc6tpRl.js";
1
+ export { o as PROJECTION_PLANES, t as cameraFromPlane, n as cameraLookAt, r as createCamera, s as isProjectionPlane, a as makeProjectedEdges, i as projectEdges } from "./cameraFns-DB_nPXR7.js";
package/dist/query.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_helpers = require("./helpers-C0MoldOO.cjs");
3
- const require_cornerFinder = require("./cornerFinder-xI6O0ZCv.cjs");
2
+ const require_helpers = require("./helpers-CCnN8-PY.cjs");
3
+ const require_cornerFinder = require("./cornerFinder-CNuTBfRo.cjs");
4
4
  exports.cornerFinder = require_cornerFinder.cornerFinder;
5
5
  exports.edgeFinder = require_helpers.edgeFinder;
6
6
  exports.faceFinder = require_helpers.faceFinder;
package/dist/query.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-D3oo0Zfs.js";
2
- import { t as cornerFinder } from "./cornerFinder-ChkO3EOO.js";
1
+ import { n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-Ci_WZ5ou.js";
2
+ import { t as cornerFinder } from "./cornerFinder-GtiadLBr.js";
3
3
  export { cornerFinder, edgeFinder, faceFinder, getSingleFace };
@@ -1,10 +1,10 @@
1
- const require_shapeTypes = require("./shapeTypes-BK53GmLC.cjs");
2
- const require_topologyQueryFns = require("./topologyQueryFns--p_-tywe.cjs");
3
- const require_faceFns = require("./faceFns-DfEUZlnf.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-CgayxMvX.cjs");
2
+ const require_topologyQueryFns = require("./topologyQueryFns-EI-aso9K.cjs");
3
+ const require_faceFns = require("./faceFns-CPGJ_cx6.cjs");
4
4
  const require_faceRoleFns = require("./faceRoleFns-Db5bYj4Q.cjs");
5
- const require_shapeFns = require("./shapeFns-C9P1KmqH.cjs");
6
- const require_measureFns = require("./measureFns-CmKNZ0gC.cjs");
7
- const require_adjacencyFns = require("./adjacencyFns-B1ZWTkxw.cjs");
5
+ const require_shapeFns = require("./shapeFns-Cklw3p3S.cjs");
6
+ const require_measureFns = require("./measureFns-CpoPgAZt.cjs");
7
+ const require_adjacencyFns = require("./adjacencyFns-B6fMyAj0.cjs");
8
8
  // src/topology/shapeRef/scoring.ts
9
9
  /**
10
10
  * Default face scorer combining surface type, normal alignment, centroid proximity,
@@ -1,10 +1,10 @@
1
- import { g as disposeTransientSubShape, o as castShapeWithKnownType, q as getKernel } from "./shapeTypes-Ckz9bpYW.js";
2
- import { c as getFaces, w as vertexPosition } from "./topologyQueryFns-SINsBrMe.js";
3
- import { i as faceGeomType, l as normalAt, r as faceCenter } from "./faceFns-Dz3eRgNR.js";
1
+ import { g as disposeTransientSubShape, o as castShapeWithKnownType, q as getKernel } from "./shapeTypes-qhs8f2zx.js";
2
+ import { c as getFaces, w as vertexPosition } from "./topologyQueryFns-CArmw9sE.js";
3
+ import { i as faceGeomType, l as normalAt, r as faceCenter } from "./faceFns-BNv6thpF.js";
4
4
  import { t as getFaceRoles } from "./faceRoleFns-BPxzQF-n.js";
5
- import { n as getHashCode } from "./shapeFns-CHsoXWeu.js";
6
- import { c as measureLength, r as measureArea } from "./measureFns-6mHYvqUc.js";
7
- import { a as facesOfVertex, c as verticesOfFace, i as facesOfEdge, o as sharedEdges, s as verticesOfEdge, t as adjacentFaceHashes } from "./adjacencyFns-XdjXKCXE.js";
5
+ import { n as getHashCode } from "./shapeFns-3NzCE2kz.js";
6
+ import { c as measureLength, r as measureArea } from "./measureFns-MSr05_kf.js";
7
+ import { a as facesOfVertex, c as verticesOfFace, i as facesOfEdge, o as sharedEdges, s as verticesOfEdge, t as adjacentFaceHashes } from "./adjacencyFns-n6XWEyj1.js";
8
8
  // src/topology/shapeRef/scoring.ts
9
9
  /**
10
10
  * Default face scorer combining surface type, normal alignment, centroid proximity,
@@ -1,6 +1,6 @@
1
- import { q as getKernel } from "./shapeTypes-Ckz9bpYW.js";
1
+ import { q as getKernel } from "./shapeTypes-qhs8f2zx.js";
2
2
  import { t as BrepErrorCode } from "./errors-BTccWbtE.js";
3
- import { E as kernelCallRaw, T as kernelCall } from "./topologyQueryFns-SINsBrMe.js";
3
+ import { E as kernelCallRaw, T as kernelCall } from "./topologyQueryFns-CArmw9sE.js";
4
4
  import { n as HASH_CODE_MAX } from "./constants-iraOnb2p.js";
5
5
  // src/topology/shapeFns.ts
6
6
  /**
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-BK53GmLC.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-CgayxMvX.cjs");
2
2
  const require_errors = require("./errors-O_blYTWT.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns--p_-tywe.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-EI-aso9K.cjs");
4
4
  const require_constants = require("./constants-oee0S_x6.cjs");
5
5
  // src/topology/shapeFns.ts
6
6
  /**
package/dist/shapeRef.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_refResolveFns = require("./refResolveFns-BFws5K2t.cjs");
2
+ const require_refResolveFns = require("./refResolveFns-CuewCIRB.cjs");
3
3
  exports.assignRoles = require_refResolveFns.assignRoles;
4
4
  exports.captureHint = require_refResolveFns.captureHint;
5
5
  exports.createDerivedFaceRef = require_refResolveFns.createDerivedFaceRef;
package/dist/shapeRef.js CHANGED
@@ -1 +1 @@
1
- export { h as assignRoles, g as captureHint, l as createDerivedFaceRef, p as createEdgeRef, _ as createRef, d as createVertexRef, b as defaultScorer, t as isDerivedFaceRef, n as isEdgeRef, r as isFaceRef, i as isLineageRef, a as isVertexRef, u as resolveDerivedFaceRef, m as resolveEdgeRef, o as resolveLineageRef, v as resolveRef, s as resolveRefIn, c as resolveRefParams, f as resolveVertexRef, y as updateRoles } from "./refResolveFns-DZoPfglj.js";
1
+ export { h as assignRoles, g as captureHint, l as createDerivedFaceRef, p as createEdgeRef, _ as createRef, d as createVertexRef, b as defaultScorer, t as isDerivedFaceRef, n as isEdgeRef, r as isFaceRef, i as isLineageRef, a as isVertexRef, u as resolveDerivedFaceRef, m as resolveEdgeRef, o as resolveLineageRef, v as resolveRef, s as resolveRefIn, c as resolveRefParams, f as resolveVertexRef, y as updateRoles } from "./refResolveFns-DaZPev13.js";