brepjs 20.12.9 → 20.12.11

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 (95) hide show
  1. package/dist/2d.cjs +6 -6
  2. package/dist/2d.js +6 -6
  3. package/dist/{adjacencyFns-CfhGIMeR.cjs → adjacencyFns-DSGyqGyy.cjs} +3 -3
  4. package/dist/{adjacencyFns-1Cmjb2ot.js → adjacencyFns-DfPO5LGP.js} +3 -3
  5. package/dist/{blueprint-DbJVzU9F.cjs → blueprint-BY2aygt_.cjs} +5 -5
  6. package/dist/{blueprint-BVcuEefs.js → blueprint-DbNFPHzC.js} +5 -5
  7. package/dist/{blueprintFns-DePTHG1I.cjs → blueprintFns-AfHtvBKP.cjs} +2 -2
  8. package/dist/{blueprintFns-mD4pDyFP.js → blueprintFns-dU5V5WcD.js} +2 -2
  9. package/dist/{blueprintSketcher-B5CFmhjg.cjs → blueprintSketcher-DHp6AeEM.cjs} +3 -3
  10. package/dist/{blueprintSketcher-BrGmq-65.js → blueprintSketcher-nBI9PlsW.js} +3 -3
  11. package/dist/{boolean2D-CFKg1FJ_.cjs → boolean2D-C6TS6oFP.cjs} +4 -4
  12. package/dist/{boolean2D-BrHrY60M.js → boolean2D-DuWgyjOR.js} +4 -4
  13. package/dist/{booleanFns-CKDyqKz0.js → booleanFns-BwzBRGqj.js} +4 -4
  14. package/dist/{booleanFns-C640CeaY.cjs → booleanFns-D0qfjH0a.cjs} +4 -4
  15. package/dist/brepjs.cjs +72 -55
  16. package/dist/brepjs.js +72 -55
  17. package/dist/{cameraFns-hXUKJkLg.cjs → cameraFns-B9xKg36U.cjs} +3 -3
  18. package/dist/{cameraFns-DIbua1lC.js → cameraFns-CLkNCsYU.js} +3 -3
  19. package/dist/core.cjs +2 -2
  20. package/dist/core.js +2 -2
  21. package/dist/{cornerFinder-BYDkloVc.js → cornerFinder-CeyQ5JMA.js} +1 -1
  22. package/dist/{cornerFinder-ByBGU0r7.cjs → cornerFinder-Da8Dv4bp.cjs} +1 -1
  23. package/dist/{curveFns-Cqgtmhr0.cjs → curveFns-B8mm5cou.cjs} +1 -1
  24. package/dist/{curveFns-DphpaoQ4.js → curveFns-EsJgIpc6.js} +1 -1
  25. package/dist/{drawFns-Ch3ah8K9.js → drawFns-BQIHgHQg.js} +12 -12
  26. package/dist/{drawFns-GwVZX47o.cjs → drawFns-JZV96JGO.cjs} +12 -12
  27. package/dist/{faceFns-D4cDeMRf.js → faceFns-2jGPfqvB.js} +2 -2
  28. package/dist/{faceFns-BDqVGEoB.cjs → faceFns-Jo9hMVqL.cjs} +2 -2
  29. package/dist/{healingFns--vBKh5pa.js → healingFns-D6mUhe0Z.js} +85 -22
  30. package/dist/{healingFns-Fu7Xl8fu.cjs → healingFns-qioD81Of.cjs} +91 -22
  31. package/dist/{helpers-Wnq-YPWv.cjs → helpers-BvYkHZK7.cjs} +6 -6
  32. package/dist/{helpers-CroIo2SI.js → helpers-CsHdKbfF.js} +6 -6
  33. package/dist/{importFns-tHr15Lhm.cjs → importFns-BzzUvnKA.cjs} +5 -5
  34. package/dist/{importFns-D5Bt_44J.js → importFns-C8yUNPzJ.js} +5 -5
  35. package/dist/io/stepConfigFns.d.ts +1 -1
  36. package/dist/io.cjs +2 -2
  37. package/dist/io.js +2 -2
  38. package/dist/kernel/interfaces/modifierOps.d.ts +12 -0
  39. package/dist/kernel/occtWasm/helpers.d.ts +1 -0
  40. package/dist/kernel/occtWasm/modifierOps.d.ts +8 -0
  41. package/dist/kernel/occtWasm/occtWasmAdapter.cjs +1 -1
  42. package/dist/kernel/occtWasm/occtWasmAdapter.d.ts +5 -0
  43. package/dist/kernel/occtWasm/occtWasmAdapter.js +1 -1
  44. package/dist/kernel/occtWasm/occtWasmTypes.d.ts +4 -0
  45. package/dist/{loftFns-T0GxcPlB.cjs → loftFns-CnerVgTM.cjs} +1 -1
  46. package/dist/{loftFns-Bh_RuF7a.js → loftFns-jnQL_zpD.js} +1 -1
  47. package/dist/{measureFns-C3TZ5Fj9.js → measureFns-D3egqKcW.js} +3 -3
  48. package/dist/{measureFns-DGm6ndQY.cjs → measureFns-R85865k9.cjs} +3 -3
  49. package/dist/measurement.cjs +2 -2
  50. package/dist/measurement.js +2 -2
  51. package/dist/{meshFns-Go1XSyUh.js → meshFns-Bo4EQJFO.js} +4 -4
  52. package/dist/{meshFns-DDgZ3vpr.cjs → meshFns-Cs_qrlXI.cjs} +4 -4
  53. package/dist/{occtWasmAdapter-CZPZnpCe.cjs → occtWasmAdapter-BK--kx4R.cjs} +62 -12
  54. package/dist/{occtWasmAdapter-EM3EhKwk.js → occtWasmAdapter-C-Qi-jxS.js} +62 -12
  55. package/dist/operations.cjs +2 -2
  56. package/dist/operations.js +2 -2
  57. package/dist/{primitiveFns-CeRc4Sls.js → primitiveFns-NxbTqKy7.js} +5 -5
  58. package/dist/{primitiveFns-Dg_XWYtp.cjs → primitiveFns-eiM6OjWU.cjs} +5 -5
  59. package/dist/{principalBoxFns-BuK-ueAB.js → principalBoxFns-BgetPvvQ.js} +3 -3
  60. package/dist/{principalBoxFns-B5zdek3y.cjs → principalBoxFns-DepJW5im.cjs} +3 -3
  61. package/dist/projection.cjs +1 -1
  62. package/dist/projection.js +1 -1
  63. package/dist/query.cjs +2 -2
  64. package/dist/query.js +2 -2
  65. package/dist/{refResolveFns-WRcvVhV-.js → refResolveFns-Bl10yOGJ.js} +6 -6
  66. package/dist/{refResolveFns-CFwsYCKA.cjs → refResolveFns-DpWvqRm0.cjs} +6 -6
  67. package/dist/{shapeFns-DuxfaqTw.cjs → shapeFns-D47cmLG8.cjs} +2 -2
  68. package/dist/{shapeFns-CYjU8PsF.js → shapeFns-kFm-m8jh.js} +2 -2
  69. package/dist/shapeRef.cjs +1 -1
  70. package/dist/shapeRef.js +1 -1
  71. package/dist/{shapeTypes--7XBFlOD.cjs → shapeTypes-C06KHgTm.cjs} +1 -1
  72. package/dist/{shapeTypes-DvzbSivn.js → shapeTypes-DoPnZHn_.js} +1 -1
  73. package/dist/sketching.cjs +3 -3
  74. package/dist/sketching.js +3 -3
  75. package/dist/{solidBuilders-D0bIZX9K.cjs → solidBuilders-Dwm0hXn5.cjs} +3 -3
  76. package/dist/{solidBuilders-BqSVC4cB.js → solidBuilders-ZDGdvaTU.js} +3 -3
  77. package/dist/{surfaceBuilders--HOoTQad.js → surfaceBuilders-BBs6D6Km.js} +3 -3
  78. package/dist/{surfaceBuilders-CPQHyL_5.cjs → surfaceBuilders-D5kFAV1i.cjs} +3 -3
  79. package/dist/text.cjs +2 -2
  80. package/dist/text.js +2 -2
  81. package/dist/{textBlueprints-plsbHqiI.js → textBlueprints-BvZNjVwM.js} +8 -8
  82. package/dist/{textBlueprints-B4HzJzZM.cjs → textBlueprints-D3XhH1kb.cjs} +8 -8
  83. package/dist/{textMetrics-IIS6DUTr.js → textMetrics-BGPUxjiq.js} +1 -1
  84. package/dist/{textMetrics-CBwUIDI7.cjs → textMetrics-zk48vXsM.cjs} +1 -1
  85. package/dist/{threadFns-CmZFykpi.js → threadFns-CEr8JDsu.js} +7 -7
  86. package/dist/{threadFns-e8_26ZYw.cjs → threadFns-DNFoBBrH.cjs} +7 -7
  87. package/dist/topology/apiTypes.d.ts +6 -2
  88. package/dist/topology/chamferAngleFns.d.ts +24 -0
  89. package/dist/topology.cjs +9 -9
  90. package/dist/topology.js +9 -9
  91. package/dist/{topologyQueryFns-NszVx8a0.cjs → topologyQueryFns-BUhKY2Kj.cjs} +1 -1
  92. package/dist/{topologyQueryFns-BUzMuIs5.js → topologyQueryFns-yOGEI9hO.js} +1 -1
  93. package/dist/{validityTypes-CdY06B8c.js → validityTypes-CGrEOscY.js} +1 -1
  94. package/dist/{validityTypes-Ds4zNICF.cjs → validityTypes-lfyOkCQm.cjs} +1 -1
  95. package/package.json +2 -2
@@ -1,8 +1,8 @@
1
- import { G as _usingCtx, n as castResultShape, q as getKernel } from "./shapeTypes-DvzbSivn.js";
1
+ import { G as _usingCtx, n as castResultShape, q as getKernel } from "./shapeTypes-DoPnZHn_.js";
2
2
  import { E as ok, P as unwrap, d as validationError, g as err } from "./errors-BTccWbtE.js";
3
- import { s as getEdges } from "./topologyQueryFns-BUzMuIs5.js";
3
+ import { s as getEdges } from "./topologyQueryFns-yOGEI9hO.js";
4
4
  import { c as vecLength, d as vecNormalize, g as vecSub, r as vecCross } from "./vecOps-S-m9H_fe.js";
5
- import { t as clone } from "./shapeFns-CYjU8PsF.js";
5
+ import { t as clone } from "./shapeFns-kFm-m8jh.js";
6
6
  // src/projection/projectionPlanes.ts
7
7
  /** Lookup table mapping each {@link ProjectionPlane} to its camera configuration. */
8
8
  var PROJECTION_PLANES = {
package/dist/core.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_shapeTypes = require("./shapeTypes--7XBFlOD.cjs");
2
+ const require_shapeTypes = require("./shapeTypes-C06KHgTm.cjs");
3
3
  const require_bug = require("./bug-CBcpIPuf.cjs");
4
4
  const require_errors = require("./errors-O_blYTWT.cjs");
5
- const require_validityTypes = require("./validityTypes-Ds4zNICF.cjs");
5
+ const require_validityTypes = require("./validityTypes-lfyOkCQm.cjs");
6
6
  const require_constants = require("./constants-oee0S_x6.cjs");
7
7
  const require_types = require("./types-CjF9Rofr.cjs");
8
8
  const require_vecOps = require("./vecOps-CrGEPPQM.cjs");
package/dist/core.js CHANGED
@@ -1,7 +1,7 @@
1
- import { C as isSolid, D as getShapeKind, E as GeometryCleanupError, F as createKernelHandle, H as withScope, L as isLive, M as is3D, N as DisposalScope, P as createHandle, S as isShell, T as isWire, U as withScopeResult, W as withScopeResultAsync, _ as isCompound, b as isShape1D, i as castShape, j as is2D, v as isEdge, w as isVertex, x as isShape3D, y as isFace } from "./shapeTypes-DvzbSivn.js";
1
+ import { C as isSolid, D as getShapeKind, E as GeometryCleanupError, F as createKernelHandle, H as withScope, L as isLive, M as is3D, N as DisposalScope, P as createHandle, S as isShell, T as isWire, U as withScopeResult, W as withScopeResultAsync, _ as isCompound, b as isShape1D, i as castShape, j as is2D, v as isEdge, w as isVertex, x as isShape3D, y as isFace } from "./shapeTypes-DoPnZHn_.js";
2
2
  import { n as bug, t as BrepBugError } from "./bug-ClMTAJhe.js";
3
3
  import { E as ok, F as unwrapErr, I as unwrapOr, L as unwrapOrElse, M as tryCatch, N as tryCatchAsync, P as unwrap, S as map, T as match, _ as flatMap, a as moduleInitError, b as isErr, c as sketcherStateError, d as validationError, f as OK, g as err, h as collect, i as kernelError, l as typeCastError, m as andThen, n as computationError, o as queryError, r as ioError, u as unsupportedError, w as mapErr, x as isOk } from "./errors-BTccWbtE.js";
4
- import { c as manifoldShell, f as validSolid, i as isOrientedFace, l as orientedFace, n as isClosedWire, r as isManifoldShell, s as isValidSolid, t as closedWire } from "./validityTypes-CdY06B8c.js";
4
+ import { c as manifoldShell, f as validSolid, i as isOrientedFace, l as orientedFace, n as isClosedWire, r as isManifoldShell, s as isValidSolid, t as closedWire } from "./validityTypes-CGrEOscY.js";
5
5
  import { n as HASH_CODE_MAX, r as RAD2DEG, t as DEG2RAD } from "./constants-iraOnb2p.js";
6
6
  import { n as toVec2, r as toVec3, t as resolveDirection } from "./types-CKXsIm9-.js";
7
7
  import { a as vecDot, c as vecLength, d as vecNormalize, f as vecProjectToPlane, g as vecSub, h as vecScale, i as vecDistance, l as vecLengthSq, m as vecRotate, n as vecAngle, o as vecEquals, p as vecRepr, r as vecCross, s as vecIsZero, t as vecAdd, u as vecNegate } from "./vecOps-S-m9H_fe.js";
@@ -1,6 +1,6 @@
1
1
  import { t as DEG2RAD } from "./constants-iraOnb2p.js";
2
2
  import { n as getAtOrThrow } from "./arrayAccess-BpgouNir.js";
3
- import { p as distance2d, u as angle2d, v as samePoint } from "./helpers-CroIo2SI.js";
3
+ import { p as distance2d, u as angle2d, v as samePoint } from "./helpers-CsHdKbfF.js";
4
4
  // src/query/cornerFinder.ts
5
5
  var PI_2 = 2 * Math.PI;
6
6
  function positiveHalfAngle(angle) {
@@ -1,6 +1,6 @@
1
1
  const require_constants = require("./constants-oee0S_x6.cjs");
2
2
  const require_arrayAccess = require("./arrayAccess-DpJYARwv.cjs");
3
- const require_helpers = require("./helpers-Wnq-YPWv.cjs");
3
+ const require_helpers = require("./helpers-BvYkHZK7.cjs");
4
4
  // src/query/cornerFinder.ts
5
5
  var PI_2 = 2 * Math.PI;
6
6
  function positiveHalfAngle(angle) {
@@ -1,4 +1,4 @@
1
- const require_shapeTypes = require("./shapeTypes--7XBFlOD.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-C06KHgTm.cjs");
2
2
  const require_errors = require("./errors-O_blYTWT.cjs");
3
3
  // src/topology/curveFns.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { T as isWire, h as disposeResultShape, n as castResultShape, q as getKernel, v as isEdge } from "./shapeTypes-DvzbSivn.js";
1
+ import { T as isWire, h as disposeResultShape, n as castResultShape, q as getKernel, v as isEdge } from "./shapeTypes-DoPnZHn_.js";
2
2
  import { E as ok, g as err, l as typeCastError } from "./errors-BTccWbtE.js";
3
3
  // src/topology/curveFns.ts
4
4
  /**
@@ -1,22 +1,22 @@
1
- import { G as _usingCtx, N as DisposalScope, c as createEdge, l as createFace, p as createWire, q as getKernel } from "./shapeTypes-DvzbSivn.js";
1
+ import { G as _usingCtx, N as DisposalScope, c as createEdge, l as createFace, p as createWire, q as getKernel } from "./shapeTypes-DoPnZHn_.js";
2
2
  import { i as wasmIndex, n as bug } from "./bug-ClMTAJhe.js";
3
3
  import { P as unwrap, s as safeIndex } from "./errors-BTccWbtE.js";
4
- import { s as getEdges } from "./topologyQueryFns-BUzMuIs5.js";
4
+ import { s as getEdges } from "./topologyQueryFns-yOGEI9hO.js";
5
5
  import { t as DEG2RAD } from "./constants-iraOnb2p.js";
6
6
  import { r as toVec3 } from "./types-CKXsIm9-.js";
7
7
  import { d as vecNormalize, g as vecSub, h as vecScale, m as vecRotate, r as vecCross } from "./vecOps-S-m9H_fe.js";
8
8
  import { a as planeToWorld, o as resolvePlane } from "./planeOps-D3yDuMux.js";
9
- import { d as pointOnSurface, l as normalAt, m as uvBounds, r as faceCenter, u as outerWire, v as copyShape, y as downcast } from "./faceFns-D4cDeMRf.js";
10
- import { h as offsetWire2D, i as curveIsClosed, l as curveStartPoint } from "./curveFns-DphpaoQ4.js";
9
+ import { d as pointOnSurface, l as normalAt, m as uvBounds, r as faceCenter, u as outerWire, v as copyShape, y as downcast } from "./faceFns-2jGPfqvB.js";
10
+ import { h as offsetWire2D, i as curveIsClosed, l as curveStartPoint } from "./curveFns-EsJgIpc6.js";
11
11
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-BpgouNir.js";
12
- import { c as makeBSplineApproximation, d as makeCircle, f as makeEllipse, m as makeHelix, r as makeFace, s as assembleWire } from "./surfaceBuilders--HOoTQad.js";
13
- import { a as Blueprints, c as make2dOffset, i as CompoundBlueprint, l as intersectCurves, n as BaseSketcher2d, o as chamferCurves, s as filletCurves, u as Flatbush } from "./blueprintSketcher-BrGmq-65.js";
14
- import { b as squareDistance2d, l as add2d, s as PRECISION_OFFSET, v as samePoint$1, x as subtract2d } from "./helpers-CroIo2SI.js";
15
- import { _ as approximateAsSvgCompatibleCurve, a as edgeToCurve, f as make2dInerpolatedBSplineCurve, i as curvesAsEdgesOnPlane, l as make2dCircle, p as make2dSegmentCurve, s as make2dArcFromCenter, t as Blueprint, u as make2dEllipse, v as Curve2D, x as BoundingBox2d, y as deserializeCurve2D } from "./blueprint-BVcuEefs.js";
16
- import { t as cornerFinder } from "./cornerFinder-BYDkloVc.js";
17
- import { c as roundedRectangleBlueprint, n as fuse2D, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-BrHrY60M.js";
18
- import { _ as wrapSketchData, a as Sketches, o as Sketch, t as textBlueprints, v as wrapSketchDataArray } from "./textBlueprints-plsbHqiI.js";
19
- import { i as projectEdges, t as cameraFromPlane } from "./cameraFns-DIbua1lC.js";
12
+ import { c as makeBSplineApproximation, d as makeCircle, f as makeEllipse, m as makeHelix, r as makeFace, s as assembleWire } from "./surfaceBuilders-BBs6D6Km.js";
13
+ import { a as Blueprints, c as make2dOffset, i as CompoundBlueprint, l as intersectCurves, n as BaseSketcher2d, o as chamferCurves, s as filletCurves, u as Flatbush } from "./blueprintSketcher-nBI9PlsW.js";
14
+ import { b as squareDistance2d, l as add2d, s as PRECISION_OFFSET, v as samePoint$1, x as subtract2d } from "./helpers-CsHdKbfF.js";
15
+ import { _ as approximateAsSvgCompatibleCurve, a as edgeToCurve, f as make2dInerpolatedBSplineCurve, i as curvesAsEdgesOnPlane, l as make2dCircle, p as make2dSegmentCurve, s as make2dArcFromCenter, t as Blueprint, u as make2dEllipse, v as Curve2D, x as BoundingBox2d, y as deserializeCurve2D } from "./blueprint-DbNFPHzC.js";
16
+ import { t as cornerFinder } from "./cornerFinder-CeyQ5JMA.js";
17
+ import { c as roundedRectangleBlueprint, n as fuse2D, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-DuWgyjOR.js";
18
+ import { _ as wrapSketchData, a as Sketches, o as Sketch, t as textBlueprints, v as wrapSketchDataArray } from "./textBlueprints-BvZNjVwM.js";
19
+ import { i as projectEdges, t as cameraFromPlane } from "./cameraFns-CLkNCsYU.js";
20
20
  // src/2d/lib/stitching.ts
21
21
  /**
22
22
  * Group a flat list of curves into connected chains by matching endpoints.
@@ -1,22 +1,22 @@
1
- const require_shapeTypes = require("./shapeTypes--7XBFlOD.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-C06KHgTm.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-NszVx8a0.cjs");
4
+ const require_topologyQueryFns = require("./topologyQueryFns-BUhKY2Kj.cjs");
5
5
  const require_constants = require("./constants-oee0S_x6.cjs");
6
6
  const require_types = require("./types-CjF9Rofr.cjs");
7
7
  const require_vecOps = require("./vecOps-CrGEPPQM.cjs");
8
8
  const require_planeOps = require("./planeOps-DZfLToKZ.cjs");
9
- const require_faceFns = require("./faceFns-BDqVGEoB.cjs");
10
- const require_curveFns = require("./curveFns-Cqgtmhr0.cjs");
9
+ const require_faceFns = require("./faceFns-Jo9hMVqL.cjs");
10
+ const require_curveFns = require("./curveFns-B8mm5cou.cjs");
11
11
  const require_arrayAccess = require("./arrayAccess-DpJYARwv.cjs");
12
- const require_surfaceBuilders = require("./surfaceBuilders-CPQHyL_5.cjs");
13
- const require_blueprintSketcher = require("./blueprintSketcher-B5CFmhjg.cjs");
14
- const require_helpers = require("./helpers-Wnq-YPWv.cjs");
15
- const require_blueprint = require("./blueprint-DbJVzU9F.cjs");
16
- const require_cornerFinder = require("./cornerFinder-ByBGU0r7.cjs");
17
- const require_boolean2D = require("./boolean2D-CFKg1FJ_.cjs");
18
- const require_textBlueprints = require("./textBlueprints-B4HzJzZM.cjs");
19
- const require_cameraFns = require("./cameraFns-hXUKJkLg.cjs");
12
+ const require_surfaceBuilders = require("./surfaceBuilders-D5kFAV1i.cjs");
13
+ const require_blueprintSketcher = require("./blueprintSketcher-DHp6AeEM.cjs");
14
+ const require_helpers = require("./helpers-BvYkHZK7.cjs");
15
+ const require_blueprint = require("./blueprint-BY2aygt_.cjs");
16
+ const require_cornerFinder = require("./cornerFinder-Da8Dv4bp.cjs");
17
+ const require_boolean2D = require("./boolean2D-C6TS6oFP.cjs");
18
+ const require_textBlueprints = require("./textBlueprints-D3XhH1kb.cjs");
19
+ const require_cameraFns = require("./cameraFns-B9xKg36U.cjs");
20
20
  // src/2d/lib/stitching.ts
21
21
  /**
22
22
  * Group a flat list of curves into connected chains by matching endpoints.
@@ -1,6 +1,6 @@
1
- import { O as getOrQueryType, i as castShape, q as getKernel } from "./shapeTypes-DvzbSivn.js";
1
+ import { O as getOrQueryType, i as castShape, q as getKernel } from "./shapeTypes-DoPnZHn_.js";
2
2
  import { E as ok, P as unwrap, g as err, l as typeCastError } from "./errors-BTccWbtE.js";
3
- import { a as getCachedSurfaceType } from "./topologyQueryFns-BUzMuIs5.js";
3
+ import { a as getCachedSurfaceType } from "./topologyQueryFns-yOGEI9hO.js";
4
4
  import { r as toVec3 } from "./types-CKXsIm9-.js";
5
5
  // src/topology/cast.ts
6
6
  var TOPO_ENUM = {
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes--7XBFlOD.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-C06KHgTm.cjs");
2
2
  const require_errors = require("./errors-O_blYTWT.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-NszVx8a0.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-BUhKY2Kj.cjs");
4
4
  const require_types = require("./types-CjF9Rofr.cjs");
5
5
  // src/topology/cast.ts
6
6
  var TOPO_ENUM = {
@@ -1,10 +1,10 @@
1
- import { C as isSolid, D as getShapeKind, T as isWire, Y as getKernelCapabilities, h as disposeResultShape, i as castShape, m as disposeDowncastSource, n as castResultShape, q as getKernel, r as castResultShapeWithKnownType, x as isShape3D, y as isFace } from "./shapeTypes-DvzbSivn.js";
2
- import { j as isUnsupportedKernelOperationError, n as faultyEdgeIndexesOf } from "./occtWasmAdapter-EM3EhKwk.js";
1
+ import { C as isSolid, D as getShapeKind, T as isWire, Y as getKernelCapabilities, h as disposeResultShape, i as castShape, m as disposeDowncastSource, n as castResultShape, q as getKernel, r as castResultShapeWithKnownType, x as isShape3D, y as isFace } from "./shapeTypes-DoPnZHn_.js";
2
+ import { j as isUnsupportedKernelOperationError, n as faultyEdgeIndexesOf } from "./occtWasmAdapter-C-Qi-jxS.js";
3
3
  import { E as ok, b as isErr, d as validationError, g as err, i as kernelError, l as typeCastError, t as BrepErrorCode, u as unsupportedError, x as isOk } from "./errors-BTccWbtE.js";
4
- import { C as subShapeHashes, O as getSuggestionForCode, c as getFaces, i as getCachedIsValid, m as invalidateShapeCache, p as getWires, s as getEdges } from "./topologyQueryFns-BUzMuIs5.js";
4
+ import { C as subShapeHashes, O as getSuggestionForCode, c as getFaces, i as getCachedIsValid, m as invalidateShapeCache, p as getWires, s as getEdges } from "./topologyQueryFns-yOGEI9hO.js";
5
5
  import { n as HASH_CODE_MAX } from "./constants-iraOnb2p.js";
6
- import { y as downcast } from "./faceFns-D4cDeMRf.js";
7
- import { a as fuseAll, d as collectInputFaceHashes, i as fuse, m as propagateMetadataByHash, n as cut, p as propagateAllMetadata, r as cutAll } from "./booleanFns-CKDyqKz0.js";
6
+ import { y as downcast } from "./faceFns-2jGPfqvB.js";
7
+ import { a as fuseAll, d as collectInputFaceHashes, i as fuse, m as propagateMetadataByHash, n as cut, p as propagateAllMetadata, r as cutAll } from "./booleanFns-BwzBRGqj.js";
8
8
  import { t as firstOrThrow } from "./arrayAccess-BpgouNir.js";
9
9
  // src/topology/threeHelpers.ts
10
10
  /**
@@ -711,9 +711,40 @@ function removeFaces(shape, faces) {
711
711
  /**
712
712
  * Chamfer with distance + angle — functional API.
713
713
  *
714
- * Provides chamferDistAngle() which chamfers edges using a distance
715
- * measured along one face and an angle to determine the chamfer on the other.
714
+ * Provides chamferDistAngle(), which chamfers edges using one distance
715
+ * measured along one face and one angle that determines the chamfer on the
716
+ * other, and chamferDistAngles(), which gives each edge its own pair.
716
717
  */
718
+ function validateDistAngle(distance, angleDeg) {
719
+ if (distance <= 0) return err(validationError("CHAMFER_ANGLE_BAD_DISTANCE", `distance must be positive, got ${distance}`, void 0, { distance }));
720
+ if (angleDeg <= 0 || angleDeg >= 90) return err(validationError("CHAMFER_ANGLE_BAD_ANGLE", `angleDeg must be in range (0, 90), got ${angleDeg}`, void 0, { angleDeg }));
721
+ }
722
+ /**
723
+ * `CHAMFER_ANGLE_FAILED`, with `metadata.failedEdges` set to the edges the
724
+ * kernel named when it could not build them (occt-wasm 5.8+).
725
+ */
726
+ function chamferAngleFailed(operation, e, edges, metadata) {
727
+ const failedEdges = faultyEdgeIndexesOf(e)?.flatMap((i) => edges[i] ?? []);
728
+ return err(kernelError("CHAMFER_ANGLE_FAILED", `${operation} kernel call failed: ${e instanceof Error ? e.message : String(e)}`, e, {
729
+ ...metadata,
730
+ ...failedEdges ? { failedEdges } : {}
731
+ }, failedEdges && failedEdges.length > 0 ? "The chamfer could not be built on metadata.failedEdges: use a smaller distance there, or leave those edges out" : void 0));
732
+ }
733
+ /** Cast a fresh kernel result to a 3D shape, releasing every intermediate slot. */
734
+ function castChamferResult(raw) {
735
+ const downcastResult = downcast(raw);
736
+ if (isErr(downcastResult)) {
737
+ getKernel().dispose(raw);
738
+ return downcastResult;
739
+ }
740
+ const wrapped = castResultShape(downcastResult.value);
741
+ disposeDowncastSource(raw, wrapped);
742
+ if (!isShape3D(wrapped)) {
743
+ disposeResultShape(wrapped);
744
+ return err(typeCastError("CHAMFER_ANGLE_NOT_3D", "chamferDistAngle did not produce a 3D shape"));
745
+ }
746
+ return ok(wrapped);
747
+ }
717
748
  /**
718
749
  * Chamfer edges of a shape using distance + angle.
719
750
  *
@@ -730,32 +761,64 @@ function removeFaces(shape, faces) {
730
761
  */
731
762
  function chamferDistAngle(shape, edges, distance, angleDeg) {
732
763
  if (edges.length === 0) return err(validationError("CHAMFER_ANGLE_NO_EDGES", "chamferDistAngle requires at least one edge", void 0, { edgeCount: 0 }));
733
- if (distance <= 0) return err(validationError("CHAMFER_ANGLE_BAD_DISTANCE", `distance must be positive, got ${distance}`, void 0, { distance }));
734
- if (angleDeg <= 0 || angleDeg >= 90) return err(validationError("CHAMFER_ANGLE_BAD_ANGLE", `angleDeg must be in range (0, 90), got ${angleDeg}`, void 0, { angleDeg }));
764
+ const invalid = validateDistAngle(distance, angleDeg);
765
+ if (invalid) return invalid;
735
766
  let raw;
736
767
  try {
737
768
  const kernel = getKernel();
738
769
  const rawEdges = edges.map((e) => e.wrapped);
739
770
  raw = kernel.chamferDistAngle(shape.wrapped, rawEdges, distance, angleDeg);
740
771
  } catch (e) {
741
- return err(kernelError("CHAMFER_ANGLE_FAILED", `chamferDistAngle kernel call failed: ${e instanceof Error ? e.message : String(e)}`, e, {
772
+ return chamferAngleFailed("chamferDistAngle", e, edges, {
742
773
  distance,
743
774
  angleDeg,
744
775
  edgeCount: edges.length
745
- }));
776
+ });
746
777
  }
747
- const downcastResult = downcast(raw);
748
- if (isErr(downcastResult)) {
749
- getKernel().dispose(raw);
750
- return downcastResult;
778
+ return castChamferResult(raw);
779
+ }
780
+ function perEdgeUnsupported(kernelId, cause) {
781
+ return err(unsupportedError(BrepErrorCode.UNSUPPORTED_CAPABILITY, `chamferDistAngles: the ${kernelId} kernel cannot give each edge its own distance and angle`, cause, { kernel: kernelId }, "Give every edge the same { distance, angle }, or use the occt-wasm kernel (5.9.0 or later)"));
782
+ }
783
+ /**
784
+ * Chamfer each edge by its own distance and angle, in one operation.
785
+ *
786
+ * Edges that all share one distance and angle go through
787
+ * {@link chamferDistAngle}, which every kernel provides. Different values need
788
+ * a kernel with a per-edge distance-angle chamfer (occt-wasm 5.9.0 or later);
789
+ * on any other kernel the result is an `UNSUPPORTED_CAPABILITY` error. On
790
+ * occt-wasm the edges of one tangent-continuous contour must share their
791
+ * distance and angle, or the result is `CHAMFER_ANGLE_FAILED`.
792
+ *
793
+ * @param shape - The 3D shape to chamfer.
794
+ * @param entries - Each edge with its distance and angle (must not be empty).
795
+ * @returns Ok with the chamfered shape, or Err on invalid input, an unsupported
796
+ * kernel, or kernel failure.
797
+ */
798
+ function chamferDistAngles(shape, entries) {
799
+ const [first] = entries;
800
+ if (first === void 0) return err(validationError("CHAMFER_ANGLE_NO_EDGES", "chamferDistAngles requires at least one edge", void 0, { edgeCount: 0 }));
801
+ for (const { distance, angle } of entries) {
802
+ const invalid = validateDistAngle(distance, angle);
803
+ if (invalid) return invalid;
751
804
  }
752
- const wrapped = castResultShape(downcastResult.value);
753
- disposeDowncastSource(raw, wrapped);
754
- if (!isShape3D(wrapped)) {
755
- disposeResultShape(wrapped);
756
- return err(typeCastError("CHAMFER_ANGLE_NOT_3D", "chamferDistAngle did not produce a 3D shape"));
805
+ const edges = entries.map((e) => e.edge);
806
+ if (entries.every((e) => e.distance === first.distance && e.angle === first.angle)) return chamferDistAngle(shape, edges, first.distance, first.angle);
807
+ const kernel = getKernel();
808
+ const perEdge = kernel.chamferDistAngles?.bind(kernel);
809
+ if (!perEdge) return perEdgeUnsupported(kernel.kernelId, void 0);
810
+ let raw;
811
+ try {
812
+ raw = perEdge(shape.wrapped, entries.map(({ edge, distance, angle }) => ({
813
+ edge: edge.wrapped,
814
+ distance,
815
+ angleDeg: angle
816
+ })));
817
+ } catch (e) {
818
+ if (isUnsupportedKernelOperationError(e)) return perEdgeUnsupported(kernel.kernelId, e);
819
+ return chamferAngleFailed("chamferDistAngles", e, edges, { edgeCount: entries.length });
757
820
  }
758
- return ok(wrapped);
821
+ return castChamferResult(raw);
759
822
  }
760
823
  // src/topology/nurbsFns.ts
761
824
  /**
@@ -1477,4 +1540,4 @@ function fixSelfIntersection(wire) {
1477
1540
  return err(kernelError(BrepErrorCode.FIX_SELF_INTERSECTION_FAILED, "Failed to fix wire self-intersection", e));
1478
1541
  }
1479
1542
  }
1480
- export { variableFillet as A, chamfer as C, removeFaces as D, offset as E, toLineGeometryData as F, toGroupedBufferGeometryData as M, toLODGeometryData as N, shell as O, toLODGeometryLevels as P, chamferDistAngle as S, fillet as T, checkBoolean as _, healFace as a, getNurbsCurveData as b, isValid as c, chamferWithEvolution as d, cutWithEvolution as f, shellWithEvolution as g, intersectWithEvolution as h, heal as i, toBufferGeometryData as j, thicken as k, solidFromShell as l, fuseWithEvolution as m, fixSelfIntersection as n, healSolid as o, filletWithEvolution as p, fixShape as r, healWire as s, autoHeal as t, positionOnCurve as u, cutAllBisect as v, draft as w, getNurbsSurfaceData as x, fuseAllBisect as y };
1543
+ export { thicken as A, chamferDistAngles as C, offset as D, fillet as E, toLODGeometryLevels as F, toLineGeometryData as I, toBufferGeometryData as M, toGroupedBufferGeometryData as N, removeFaces as O, toLODGeometryData as P, chamferDistAngle as S, draft as T, checkBoolean as _, healFace as a, getNurbsCurveData as b, isValid as c, chamferWithEvolution as d, cutWithEvolution as f, shellWithEvolution as g, intersectWithEvolution as h, heal as i, variableFillet as j, shell as k, solidFromShell as l, fuseWithEvolution as m, fixSelfIntersection as n, healSolid as o, filletWithEvolution as p, fixShape as r, healWire as s, autoHeal as t, positionOnCurve as u, cutAllBisect as v, chamfer as w, getNurbsSurfaceData as x, fuseAllBisect as y };
@@ -1,10 +1,10 @@
1
- const require_shapeTypes = require("./shapeTypes--7XBFlOD.cjs");
2
- const require_occtWasmAdapter = require("./occtWasmAdapter-CZPZnpCe.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-C06KHgTm.cjs");
2
+ const require_occtWasmAdapter = require("./occtWasmAdapter-BK--kx4R.cjs");
3
3
  const require_errors = require("./errors-O_blYTWT.cjs");
4
- const require_topologyQueryFns = require("./topologyQueryFns-NszVx8a0.cjs");
4
+ const require_topologyQueryFns = require("./topologyQueryFns-BUhKY2Kj.cjs");
5
5
  const require_constants = require("./constants-oee0S_x6.cjs");
6
- const require_faceFns = require("./faceFns-BDqVGEoB.cjs");
7
- const require_booleanFns = require("./booleanFns-C640CeaY.cjs");
6
+ const require_faceFns = require("./faceFns-Jo9hMVqL.cjs");
7
+ const require_booleanFns = require("./booleanFns-D0qfjH0a.cjs");
8
8
  const require_arrayAccess = require("./arrayAccess-DpJYARwv.cjs");
9
9
  // src/topology/threeHelpers.ts
10
10
  /**
@@ -711,9 +711,40 @@ function removeFaces(shape, faces) {
711
711
  /**
712
712
  * Chamfer with distance + angle — functional API.
713
713
  *
714
- * Provides chamferDistAngle() which chamfers edges using a distance
715
- * measured along one face and an angle to determine the chamfer on the other.
714
+ * Provides chamferDistAngle(), which chamfers edges using one distance
715
+ * measured along one face and one angle that determines the chamfer on the
716
+ * other, and chamferDistAngles(), which gives each edge its own pair.
716
717
  */
718
+ function validateDistAngle(distance, angleDeg) {
719
+ if (distance <= 0) return require_errors.err(require_errors.validationError("CHAMFER_ANGLE_BAD_DISTANCE", `distance must be positive, got ${distance}`, void 0, { distance }));
720
+ if (angleDeg <= 0 || angleDeg >= 90) return require_errors.err(require_errors.validationError("CHAMFER_ANGLE_BAD_ANGLE", `angleDeg must be in range (0, 90), got ${angleDeg}`, void 0, { angleDeg }));
721
+ }
722
+ /**
723
+ * `CHAMFER_ANGLE_FAILED`, with `metadata.failedEdges` set to the edges the
724
+ * kernel named when it could not build them (occt-wasm 5.8+).
725
+ */
726
+ function chamferAngleFailed(operation, e, edges, metadata) {
727
+ const failedEdges = require_occtWasmAdapter.faultyEdgeIndexesOf(e)?.flatMap((i) => edges[i] ?? []);
728
+ return require_errors.err(require_errors.kernelError("CHAMFER_ANGLE_FAILED", `${operation} kernel call failed: ${e instanceof Error ? e.message : String(e)}`, e, {
729
+ ...metadata,
730
+ ...failedEdges ? { failedEdges } : {}
731
+ }, failedEdges && failedEdges.length > 0 ? "The chamfer could not be built on metadata.failedEdges: use a smaller distance there, or leave those edges out" : void 0));
732
+ }
733
+ /** Cast a fresh kernel result to a 3D shape, releasing every intermediate slot. */
734
+ function castChamferResult(raw) {
735
+ const downcastResult = require_faceFns.downcast(raw);
736
+ if (require_errors.isErr(downcastResult)) {
737
+ require_shapeTypes.getKernel().dispose(raw);
738
+ return downcastResult;
739
+ }
740
+ const wrapped = require_shapeTypes.castResultShape(downcastResult.value);
741
+ require_shapeTypes.disposeDowncastSource(raw, wrapped);
742
+ if (!require_shapeTypes.isShape3D(wrapped)) {
743
+ require_shapeTypes.disposeResultShape(wrapped);
744
+ return require_errors.err(require_errors.typeCastError("CHAMFER_ANGLE_NOT_3D", "chamferDistAngle did not produce a 3D shape"));
745
+ }
746
+ return require_errors.ok(wrapped);
747
+ }
717
748
  /**
718
749
  * Chamfer edges of a shape using distance + angle.
719
750
  *
@@ -730,32 +761,64 @@ function removeFaces(shape, faces) {
730
761
  */
731
762
  function chamferDistAngle(shape, edges, distance, angleDeg) {
732
763
  if (edges.length === 0) return require_errors.err(require_errors.validationError("CHAMFER_ANGLE_NO_EDGES", "chamferDistAngle requires at least one edge", void 0, { edgeCount: 0 }));
733
- if (distance <= 0) return require_errors.err(require_errors.validationError("CHAMFER_ANGLE_BAD_DISTANCE", `distance must be positive, got ${distance}`, void 0, { distance }));
734
- if (angleDeg <= 0 || angleDeg >= 90) return require_errors.err(require_errors.validationError("CHAMFER_ANGLE_BAD_ANGLE", `angleDeg must be in range (0, 90), got ${angleDeg}`, void 0, { angleDeg }));
764
+ const invalid = validateDistAngle(distance, angleDeg);
765
+ if (invalid) return invalid;
735
766
  let raw;
736
767
  try {
737
768
  const kernel = require_shapeTypes.getKernel();
738
769
  const rawEdges = edges.map((e) => e.wrapped);
739
770
  raw = kernel.chamferDistAngle(shape.wrapped, rawEdges, distance, angleDeg);
740
771
  } catch (e) {
741
- return require_errors.err(require_errors.kernelError("CHAMFER_ANGLE_FAILED", `chamferDistAngle kernel call failed: ${e instanceof Error ? e.message : String(e)}`, e, {
772
+ return chamferAngleFailed("chamferDistAngle", e, edges, {
742
773
  distance,
743
774
  angleDeg,
744
775
  edgeCount: edges.length
745
- }));
746
- }
747
- const downcastResult = require_faceFns.downcast(raw);
748
- if (require_errors.isErr(downcastResult)) {
749
- require_shapeTypes.getKernel().dispose(raw);
750
- return downcastResult;
776
+ });
751
777
  }
752
- const wrapped = require_shapeTypes.castResultShape(downcastResult.value);
753
- require_shapeTypes.disposeDowncastSource(raw, wrapped);
754
- if (!require_shapeTypes.isShape3D(wrapped)) {
755
- require_shapeTypes.disposeResultShape(wrapped);
756
- return require_errors.err(require_errors.typeCastError("CHAMFER_ANGLE_NOT_3D", "chamferDistAngle did not produce a 3D shape"));
778
+ return castChamferResult(raw);
779
+ }
780
+ function perEdgeUnsupported(kernelId, cause) {
781
+ return require_errors.err(require_errors.unsupportedError(require_errors.BrepErrorCode.UNSUPPORTED_CAPABILITY, `chamferDistAngles: the ${kernelId} kernel cannot give each edge its own distance and angle`, cause, { kernel: kernelId }, "Give every edge the same { distance, angle }, or use the occt-wasm kernel (5.9.0 or later)"));
782
+ }
783
+ /**
784
+ * Chamfer each edge by its own distance and angle, in one operation.
785
+ *
786
+ * Edges that all share one distance and angle go through
787
+ * {@link chamferDistAngle}, which every kernel provides. Different values need
788
+ * a kernel with a per-edge distance-angle chamfer (occt-wasm 5.9.0 or later);
789
+ * on any other kernel the result is an `UNSUPPORTED_CAPABILITY` error. On
790
+ * occt-wasm the edges of one tangent-continuous contour must share their
791
+ * distance and angle, or the result is `CHAMFER_ANGLE_FAILED`.
792
+ *
793
+ * @param shape - The 3D shape to chamfer.
794
+ * @param entries - Each edge with its distance and angle (must not be empty).
795
+ * @returns Ok with the chamfered shape, or Err on invalid input, an unsupported
796
+ * kernel, or kernel failure.
797
+ */
798
+ function chamferDistAngles(shape, entries) {
799
+ const [first] = entries;
800
+ if (first === void 0) return require_errors.err(require_errors.validationError("CHAMFER_ANGLE_NO_EDGES", "chamferDistAngles requires at least one edge", void 0, { edgeCount: 0 }));
801
+ for (const { distance, angle } of entries) {
802
+ const invalid = validateDistAngle(distance, angle);
803
+ if (invalid) return invalid;
804
+ }
805
+ const edges = entries.map((e) => e.edge);
806
+ if (entries.every((e) => e.distance === first.distance && e.angle === first.angle)) return chamferDistAngle(shape, edges, first.distance, first.angle);
807
+ const kernel = require_shapeTypes.getKernel();
808
+ const perEdge = kernel.chamferDistAngles?.bind(kernel);
809
+ if (!perEdge) return perEdgeUnsupported(kernel.kernelId, void 0);
810
+ let raw;
811
+ try {
812
+ raw = perEdge(shape.wrapped, entries.map(({ edge, distance, angle }) => ({
813
+ edge: edge.wrapped,
814
+ distance,
815
+ angleDeg: angle
816
+ })));
817
+ } catch (e) {
818
+ if (require_occtWasmAdapter.isUnsupportedKernelOperationError(e)) return perEdgeUnsupported(kernel.kernelId, e);
819
+ return chamferAngleFailed("chamferDistAngles", e, edges, { edgeCount: entries.length });
757
820
  }
758
- return require_errors.ok(wrapped);
821
+ return castChamferResult(raw);
759
822
  }
760
823
  // src/topology/nurbsFns.ts
761
824
  /**
@@ -1495,6 +1558,12 @@ Object.defineProperty(exports, "chamferDistAngle", {
1495
1558
  return chamferDistAngle;
1496
1559
  }
1497
1560
  });
1561
+ Object.defineProperty(exports, "chamferDistAngles", {
1562
+ enumerable: true,
1563
+ get: function() {
1564
+ return chamferDistAngles;
1565
+ }
1566
+ });
1498
1567
  Object.defineProperty(exports, "chamferWithEvolution", {
1499
1568
  enumerable: true,
1500
1569
  get: function() {
@@ -1,12 +1,12 @@
1
- const require_shapeTypes = require("./shapeTypes--7XBFlOD.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-C06KHgTm.cjs");
2
2
  const require_errors = require("./errors-O_blYTWT.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-NszVx8a0.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-BUhKY2Kj.cjs");
4
4
  const require_constants = require("./constants-oee0S_x6.cjs");
5
5
  const require_vecOps = require("./vecOps-CrGEPPQM.cjs");
6
- const require_faceFns = require("./faceFns-BDqVGEoB.cjs");
7
- const require_shapeFns = require("./shapeFns-DuxfaqTw.cjs");
8
- const require_curveFns = require("./curveFns-Cqgtmhr0.cjs");
9
- const require_measureFns = require("./measureFns-DGm6ndQY.cjs");
6
+ const require_faceFns = require("./faceFns-Jo9hMVqL.cjs");
7
+ const require_shapeFns = require("./shapeFns-D47cmLG8.cjs");
8
+ const require_curveFns = require("./curveFns-B8mm5cou.cjs");
9
+ const require_measureFns = require("./measureFns-R85865k9.cjs");
10
10
  // src/utils/vec2d.ts
11
11
  /** Precision for curve intersection and parameter operations. */
12
12
  var PRECISION_INTERSECTION = 1e-9;
@@ -1,12 +1,12 @@
1
- import { q as getKernel, y as isFace } from "./shapeTypes-DvzbSivn.js";
1
+ import { q as getKernel, y as isFace } from "./shapeTypes-DoPnZHn_.js";
2
2
  import { E as ok, g as err, o as queryError, x as isOk } from "./errors-BTccWbtE.js";
3
- import { c as getFaces, f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-BUzMuIs5.js";
3
+ import { c as getFaces, f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-yOGEI9hO.js";
4
4
  import { t as DEG2RAD } from "./constants-iraOnb2p.js";
5
5
  import { a as vecDot, d as vecNormalize } from "./vecOps-S-m9H_fe.js";
6
- import { l as normalAt, s as getSurfaceType } from "./faceFns-D4cDeMRf.js";
7
- import { a as isSameShape, n as getHashCode } from "./shapeFns-CYjU8PsF.js";
8
- import { f as getCurveType, i as curveIsClosed, o as curveLength } from "./curveFns-DphpaoQ4.js";
9
- import { n as measureArea } from "./measureFns-C3TZ5Fj9.js";
6
+ import { l as normalAt, s as getSurfaceType } from "./faceFns-2jGPfqvB.js";
7
+ import { a as isSameShape, n as getHashCode } from "./shapeFns-kFm-m8jh.js";
8
+ import { f as getCurveType, i as curveIsClosed, o as curveLength } from "./curveFns-EsJgIpc6.js";
9
+ import { n as measureArea } from "./measureFns-D3egqKcW.js";
10
10
  // src/utils/vec2d.ts
11
11
  /** Precision for curve intersection and parameter operations. */
12
12
  var PRECISION_INTERSECTION = 1e-9;
@@ -1,12 +1,12 @@
1
- const require_shapeTypes = require("./shapeTypes--7XBFlOD.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-C06KHgTm.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-NszVx8a0.cjs");
4
+ const require_topologyQueryFns = require("./topologyQueryFns-BUhKY2Kj.cjs");
5
5
  const require_constants = require("./constants-oee0S_x6.cjs");
6
- const require_solidBuilders = require("./solidBuilders-D0bIZX9K.cjs");
7
- const require_meshFns = require("./meshFns-DDgZ3vpr.cjs");
6
+ const require_solidBuilders = require("./solidBuilders-Dwm0hXn5.cjs");
7
+ const require_meshFns = require("./meshFns-Cs_qrlXI.cjs");
8
8
  const require_arrayAccess = require("./arrayAccess-DpJYARwv.cjs");
9
- const require_blueprint = require("./blueprint-DbJVzU9F.cjs");
9
+ const require_blueprint = require("./blueprint-BY2aygt_.cjs");
10
10
  // src/io/objExportFns.ts
11
11
  /** Read a vec3 from a typed array at the given vertex index. */
12
12
  function vec3At(arr, i) {
@@ -1,12 +1,12 @@
1
- import { C as isSolid, G as _usingCtx, n as castResultShape, q as getKernel } from "./shapeTypes-DvzbSivn.js";
1
+ import { C as isSolid, G as _usingCtx, n as castResultShape, q as getKernel } from "./shapeTypes-DoPnZHn_.js";
2
2
  import { i as wasmIndex, r as vec3At$1 } from "./bug-ClMTAJhe.js";
3
3
  import { E as ok, g as err, r as ioError, t as BrepErrorCode } from "./errors-BTccWbtE.js";
4
- import { S as subShapeCount, c as getFaces, u as getShells } from "./topologyQueryFns-BUzMuIs5.js";
4
+ import { S as subShapeCount, c as getFaces, u as getShells } from "./topologyQueryFns-yOGEI9hO.js";
5
5
  import { n as HASH_CODE_MAX } from "./constants-iraOnb2p.js";
6
- import { t as makeCompound } from "./solidBuilders-BqSVC4cB.js";
7
- import { u as igesUnsupportedError } from "./meshFns-Go1XSyUh.js";
6
+ import { t as makeCompound } from "./solidBuilders-ZDGdvaTU.js";
7
+ import { u as igesUnsupportedError } from "./meshFns-Bo4EQJFO.js";
8
8
  import { n as getAtOrThrow } from "./arrayAccess-BpgouNir.js";
9
- import { c as make2dBezierCurve, h as make2dThreePointArc, p as make2dSegmentCurve, t as Blueprint } from "./blueprint-BVcuEefs.js";
9
+ import { c as make2dBezierCurve, h as make2dThreePointArc, p as make2dSegmentCurve, t as Blueprint } from "./blueprint-DbNFPHzC.js";
10
10
  // src/io/objExportFns.ts
11
11
  /** Read a vec3 from a typed array at the given vertex index. */
12
12
  function vec3At(arr, i) {
@@ -6,7 +6,7 @@ export interface StepExportOptions {
6
6
  readonly unit?: string | undefined;
7
7
  /** Model unit override. */
8
8
  readonly modelUnit?: string | undefined;
9
- /** STEP schema version (e.g., 203, 214, 242). */
9
+ /** STEP application protocol: 203, 214 (the default), or 242. */
10
10
  readonly schema?: number | undefined;
11
11
  }
12
12
  /** A shape with optional name and color for STEP assembly export. */
package/dist/io.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_meshFns = require("./meshFns-DDgZ3vpr.cjs");
3
- const require_importFns = require("./importFns-tHr15Lhm.cjs");
2
+ const require_meshFns = require("./meshFns-Cs_qrlXI.cjs");
3
+ const require_importFns = require("./importFns-BzzUvnKA.cjs");
4
4
  exports.blueprintToDXF = require_importFns.blueprintToDXF;
5
5
  exports.exportDXF = require_importFns.exportDXF;
6
6
  exports.exportGlb = require_importFns.exportGlb;
package/dist/io.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-Go1XSyUh.js";
2
- import { a as exportSTEPConfigured, c as exportThreeMF, d as exportGlb, f as exportGltf, l as blueprintToDXF, n as importSTEP, o as importSVG, p as exportOBJ, r as importSTL, s as importSVGPathD, t as importIGES, u as exportDXF } from "./importFns-D5Bt_44J.js";
1
+ import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-Bo4EQJFO.js";
2
+ import { a as exportSTEPConfigured, c as exportThreeMF, d as exportGlb, f as exportGltf, l as blueprintToDXF, n as importSTEP, o as importSVG, p as exportOBJ, r as importSTL, s as importSVGPathD, t as importIGES, u as exportDXF } from "./importFns-C8yUNPzJ.js";
3
3
  export { blueprintToDXF, exportDXF, exportGlb, exportGltf, exportIGES, exportOBJ, exportSTEP, exportSTEPConfigured, exportSTL, exportThreeMF, importIGES, importSTEP, importSTL, importSVG, importSVGPathD };
@@ -3,6 +3,18 @@ export interface KernelModifierOps {
3
3
  fillet(shape: KernelShape, edges: KernelShape[], radius: number | [number, number] | ((edge: KernelShape) => number | [number, number])): KernelShape;
4
4
  chamfer(shape: KernelShape, edges: KernelShape[], distance: number | [number, number] | ((edge: KernelShape) => number | [number, number])): KernelShape;
5
5
  chamferDistAngle(shape: KernelShape, edges: KernelShape[], distance: number, angleDeg: number): KernelShape;
6
+ /**
7
+ * Distance-angle chamfer with its own values on each edge, in one operation:
8
+ * `distance` is set back on the edge's reference face (as {@link chamferDistAngle}
9
+ * picks it) and `angleDeg` is measured from that face.
10
+ * Optional: kernels without it can chamfer by distance and angle only with
11
+ * one value for every edge.
12
+ */
13
+ chamferDistAngles?(shape: KernelShape, edges: ReadonlyArray<{
14
+ edge: KernelShape;
15
+ distance: number;
16
+ angleDeg: number;
17
+ }>): KernelShape;
6
18
  shell(shape: KernelShape, faces: KernelShape[], thickness: number, tolerance?: number): KernelShape;
7
19
  thicken(shape: KernelShape, thickness: number): KernelShape;
8
20
  offset(shape: KernelShape, distance: number, tolerance?: number): KernelShape;
@@ -39,6 +39,7 @@ export declare function runEdgeTreatment<T>(Module: OcctWasmModule, edges: Kerne
39
39
  export declare function draftAnglesRad(faces: readonly KernelShape[], angleDeg: number | ((face: KernelShape) => number)): number[];
40
40
  /** The peer range still admits older builds, which lack the per-edge and unit entry points. */
41
41
  export declare function needsOcctWasm59(what: string): UnsupportedKernelOperationError;
42
+ export declare function needsOcctWasm510(what: string): UnsupportedKernelOperationError;
42
43
  /**
43
44
  * Rotate a shape from the kernel's default Z-axis to an arbitrary direction.
44
45
  * Used by primitives whose creation API only takes a Z-aligned form.