brepjs 18.65.0 → 18.66.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/dist/2d.cjs +6 -6
  2. package/dist/2d.js +6 -6
  3. package/dist/{blueprint-smNMCQA1.cjs → blueprint-D0HcOCoD.cjs} +5 -5
  4. package/dist/{blueprint-1wDhBDmB.js → blueprint-DUu2ps2h.js} +5 -5
  5. package/dist/{blueprintFns-DeCDdsDz.js → blueprintFns-BoMZHBGl.js} +2 -2
  6. package/dist/{blueprintFns-DkHfzzv0.cjs → blueprintFns-pq0yw94E.cjs} +2 -2
  7. package/dist/{blueprintSketcher-Bpd7nMHt.cjs → blueprintSketcher-CWSesXXR.cjs} +3 -3
  8. package/dist/{blueprintSketcher-BL85kdgo.js → blueprintSketcher-DelJzBzJ.js} +3 -3
  9. package/dist/{boolean2D-CHu_3RIB.cjs → boolean2D-C6xLLzU_.cjs} +4 -4
  10. package/dist/{boolean2D-CWgORqab.js → boolean2D-DYjuIlFY.js} +4 -4
  11. package/dist/{booleanFns-ogc1TMXG.js → booleanFns-CLzeqmgT.js} +4 -4
  12. package/dist/{booleanFns-C9olM-r4.cjs → booleanFns-D57G9tJA.cjs} +4 -4
  13. package/dist/brepjs.cjs +33 -25
  14. package/dist/brepjs.js +26 -26
  15. package/dist/{cameraFns-Za6Rsnmg.cjs → cameraFns-DSAYGgrz.cjs} +2 -2
  16. package/dist/{cameraFns-9SLctf9O.js → cameraFns-D_UnhA2O.js} +2 -2
  17. package/dist/core.cjs +1 -1
  18. package/dist/core.js +1 -1
  19. package/dist/{cornerFinder-Cchldpsv.js → cornerFinder-CszkHDW1.js} +1 -1
  20. package/dist/{cornerFinder-CUhZgX6X.cjs → cornerFinder-Dvu2q_-E.cjs} +1 -1
  21. package/dist/{curveFns-DR68aqxR.cjs → curveFns-BJLQixZw.cjs} +1 -1
  22. package/dist/{curveFns-DH5NpaKO.js → curveFns-CLNHpU2N.js} +1 -1
  23. package/dist/{drawFns-DPE6EU_v.cjs → drawFns-BuE0lne3.cjs} +12 -12
  24. package/dist/{drawFns-Cq6bAjFC.js → drawFns-Cw29tkrx.js} +12 -12
  25. package/dist/{extrudeFns-DZEN4PPg.js → extrudeFns-19bOK66L.js} +1 -1
  26. package/dist/{extrudeFns-yfUN1m7e.cjs → extrudeFns-BDgqrytA.cjs} +1 -1
  27. package/dist/{faceFns-_m0px2ug.cjs → faceFns-BmaS4kkW.cjs} +2 -2
  28. package/dist/{faceFns-Qrz3lIDv.js → faceFns-CWU_70z7.js} +2 -2
  29. package/dist/{helpers-Bk538__I.js → helpers-CA8uFXQW.js} +6 -6
  30. package/dist/{helpers-BXiYZ2Dl.cjs → helpers-qkB-gFkC.cjs} +6 -6
  31. package/dist/{historyFns-B-R48Dze.cjs → historyFns-CDVZ3KM8.cjs} +4 -4
  32. package/dist/{historyFns-BJKkvynn.js → historyFns-CnUZzNHQ.js} +4 -4
  33. package/dist/{importFns-D8EPeKcC.cjs → importFns-B7pbqJhZ.cjs} +2 -2
  34. package/dist/{importFns-Cid57qQ1.js → importFns-BBnjqm6T.js} +2 -2
  35. package/dist/index.d.ts +5 -1
  36. package/dist/io.cjs +2 -2
  37. package/dist/io.js +2 -2
  38. package/dist/kernel/brepkit/brepkitAdapter.d.ts +2 -0
  39. package/dist/kernel/capabilities.d.ts +35 -0
  40. package/dist/kernel/index.d.ts +30 -0
  41. package/dist/kernel/interfaces/core.d.ts +15 -0
  42. package/dist/kernel/manifold/manifoldAdapter.d.ts +9 -0
  43. package/dist/kernel/manifold/sweepOps.d.ts +1 -0
  44. package/dist/kernel/occt/defaultAdapter.d.ts +2 -0
  45. package/dist/kernel/occtWasm/occtWasmAdapter.cjs +1 -1
  46. package/dist/kernel/occtWasm/occtWasmAdapter.d.ts +2 -0
  47. package/dist/kernel/occtWasm/occtWasmAdapter.js +1 -1
  48. package/dist/kernel/quality.d.ts +29 -0
  49. package/dist/{measureFns-95m36tbx.js → measureFns-Bye5UsOe.js} +3 -3
  50. package/dist/{measureFns-CqSFeI4R.cjs → measureFns-HhPPUiRO.cjs} +3 -3
  51. package/dist/measurement.cjs +1 -1
  52. package/dist/measurement.js +1 -1
  53. package/dist/{meshFns-CR8dRmoo.cjs → meshFns-B5jxU_H4.cjs} +12 -6
  54. package/dist/{meshFns-BCggXbKk.js → meshFns-Cog1SKSV.js} +12 -6
  55. package/dist/{occtWasmAdapter-BuIYbIwy.cjs → occtWasmAdapter-BPu07Zxg.cjs} +33 -0
  56. package/dist/{occtWasmAdapter-B0PIezOZ.js → occtWasmAdapter-Ctfykwr2.js} +22 -1
  57. package/dist/operations.cjs +2 -2
  58. package/dist/operations.js +2 -2
  59. package/dist/{primitiveFns-DFsImECE.cjs → primitiveFns-B_Vhus6h.cjs} +7 -7
  60. package/dist/{primitiveFns-Fy3scr-a.js → primitiveFns-DTg4kOPD.js} +7 -7
  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/{shapeFns-Ct1lekCK.js → shapeFns-CMQD_3Rz.js} +2 -2
  66. package/dist/{shapeFns-DNqkQ2yJ.cjs → shapeFns-ClKe2vri.cjs} +2 -2
  67. package/dist/shapeRef.cjs +1 -1
  68. package/dist/shapeRef.js +1 -1
  69. package/dist/{shapeRefFns-BB9iWqZb.cjs → shapeRefFns-DUt-hIWq.cjs} +4 -4
  70. package/dist/{shapeRefFns-CZqzvMgX.js → shapeRefFns-DqmUj3wF.js} +4 -4
  71. package/dist/{shapeTypes-DAhE_41P.cjs → shapeTypes-CPClTSJn.cjs} +168 -15
  72. package/dist/{shapeTypes-C-32Klnb.js → shapeTypes-CQscfe8k.js} +127 -16
  73. package/dist/sketching.cjs +3 -3
  74. package/dist/sketching.js +3 -3
  75. package/dist/{solidBuilders-iapbn6CO.cjs → solidBuilders-CtxTfDlu.cjs} +2 -2
  76. package/dist/{solidBuilders-B-gb9ZsJ.js → solidBuilders-U04-5yA1.js} +2 -2
  77. package/dist/{surfaceBuilders-B9kzwe0E.cjs → surfaceBuilders-88vLyzZe.cjs} +2 -2
  78. package/dist/{surfaceBuilders-Cwecm13F.js → surfaceBuilders-GesSUnRk.js} +2 -2
  79. package/dist/text.cjs +2 -2
  80. package/dist/text.js +2 -2
  81. package/dist/{textBlueprints-7KWxP1zT.cjs → textBlueprints-BRqklfRI.cjs} +7 -7
  82. package/dist/{textBlueprints-CyIv54Ac.js → textBlueprints-DP_2uuR2.js} +7 -7
  83. package/dist/{textMetrics-D740OLnV.js → textMetrics-BAOyWVzI.js} +1 -1
  84. package/dist/{textMetrics-BXoJfZKn.cjs → textMetrics-F2qR-eqQ.cjs} +1 -1
  85. package/dist/topology/meshFns.d.ts +5 -5
  86. package/dist/topology.cjs +7 -7
  87. package/dist/topology.js +7 -7
  88. package/dist/{topologyQueryFns-C0yUIRDE.js → topologyQueryFns-BuZ2h4o9.js} +1 -1
  89. package/dist/{topologyQueryFns-CBVVRWvE.cjs → topologyQueryFns-jK9Vpzqr.cjs} +1 -1
  90. package/package.json +1 -1
@@ -1,13 +1,13 @@
1
- const require_shapeTypes = require("./shapeTypes-DAhE_41P.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-CPClTSJn.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-CBVVRWvE.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-jK9Vpzqr.cjs");
4
4
  const require_constants = require("./constants-BOVyEYGH.cjs");
5
- const require_faceFns = require("./faceFns-_m0px2ug.cjs");
6
- const require_shapeFns = require("./shapeFns-DNqkQ2yJ.cjs");
5
+ const require_faceFns = require("./faceFns-BmaS4kkW.cjs");
6
+ const require_shapeFns = require("./shapeFns-ClKe2vri.cjs");
7
7
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
8
- const require_surfaceBuilders = require("./surfaceBuilders-B9kzwe0E.cjs");
9
- const require_booleanFns = require("./booleanFns-C9olM-r4.cjs");
10
- const require_solidBuilders = require("./solidBuilders-iapbn6CO.cjs");
8
+ const require_surfaceBuilders = require("./surfaceBuilders-88vLyzZe.cjs");
9
+ const require_booleanFns = require("./booleanFns-D57G9tJA.cjs");
10
+ const require_solidBuilders = require("./solidBuilders-CtxTfDlu.cjs");
11
11
  //#region src/topology/threeHelpers.ts
12
12
  /**
13
13
  * Convert a ShapeMesh into BufferGeometry-compatible typed arrays.
@@ -1,13 +1,13 @@
1
- import { Z as getKernel, _ as isSolid, c as createSolid, h as isShape3D, p as isFace, r as castShapeWithKnownType, t as castShape, x as isClosedWire, y as isWire } from "./shapeTypes-C-32Klnb.js";
1
+ import { Z as getKernel, _ as isSolid, c as createSolid, h as isShape3D, p as isFace, r as castShapeWithKnownType, t as castShape, x as isClosedWire, y as isWire } from "./shapeTypes-CQscfe8k.js";
2
2
  import { A as ok, T as isOk, b as err, d as validationError, i as kernelError, l as typeCastError, t as BrepErrorCode, v as andThen, w as isErr } from "./errors-DNWJsfVU.js";
3
- import { c as getFaces, i as getCachedIsValid, l as getOrCreateCache, m as invalidateShapeCache, p as getWires, s as getEdges } from "./topologyQueryFns-C0yUIRDE.js";
3
+ import { c as getFaces, i as getCachedIsValid, l as getOrCreateCache, m as invalidateShapeCache, p as getWires, s as getEdges } from "./topologyQueryFns-BuZ2h4o9.js";
4
4
  import { n as HASH_CODE_MAX, t as DEG2RAD } from "./constants-ITRzCnCp.js";
5
- import { _ as downcast } from "./faceFns-Qrz3lIDv.js";
6
- import { _ as propagateAllMetadata, g as collectInputFaceHashes, h as translate } from "./shapeFns-Ct1lekCK.js";
5
+ import { _ as downcast } from "./faceFns-CWU_70z7.js";
6
+ import { _ as propagateAllMetadata, g as collectInputFaceHashes, h as translate } from "./shapeFns-CMQD_3Rz.js";
7
7
  import { t as firstOrThrow } from "./arrayAccess-DrUGPADn.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-Cwecm13F.js";
9
- import { a as fuseAll, i as fuse, n as cut, r as cutAll } from "./booleanFns-ogc1TMXG.js";
10
- 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-B-gb9ZsJ.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-GesSUnRk.js";
9
+ import { a as fuseAll, i as fuse, n as cut, r as cutAll } from "./booleanFns-CLzeqmgT.js";
10
+ 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-U04-5yA1.js";
11
11
  //#region src/topology/threeHelpers.ts
12
12
  /**
13
13
  * Convert a ShapeMesh into BufferGeometry-compatible typed arrays.
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_cameraFns = require("./cameraFns-Za6Rsnmg.cjs");
2
+ const require_cameraFns = require("./cameraFns-DSAYGgrz.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,2 +1,2 @@
1
- import { a as makeProjectedEdges, i as projectEdges, n as cameraLookAt, o as PROJECTION_PLANES, r as createCamera, s as isProjectionPlane, t as cameraFromPlane } from "./cameraFns-9SLctf9O.js";
1
+ import { a as makeProjectedEdges, i as projectEdges, n as cameraLookAt, o as PROJECTION_PLANES, r as createCamera, s as isProjectionPlane, t as cameraFromPlane } from "./cameraFns-D_UnhA2O.js";
2
2
  export { PROJECTION_PLANES, cameraFromPlane, cameraLookAt, createCamera, isProjectionPlane, makeProjectedEdges, projectEdges };
package/dist/query.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_helpers = require("./helpers-BXiYZ2Dl.cjs");
3
- const require_cornerFinder = require("./cornerFinder-CUhZgX6X.cjs");
2
+ const require_helpers = require("./helpers-qkB-gFkC.cjs");
3
+ const require_cornerFinder = require("./cornerFinder-Dvu2q_-E.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-Bk538__I.js";
2
- import { t as cornerFinder } from "./cornerFinder-Cchldpsv.js";
1
+ import { n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-CA8uFXQW.js";
2
+ import { t as cornerFinder } from "./cornerFinder-CszkHDW1.js";
3
3
  export { cornerFinder, edgeFinder, faceFinder, getSingleFace };
@@ -1,6 +1,6 @@
1
- import { Z as getKernel, t as castShape } from "./shapeTypes-C-32Klnb.js";
1
+ import { Z as getKernel, t as castShape } from "./shapeTypes-CQscfe8k.js";
2
2
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
3
- import { C as kernelCall, c as getFaces, l as getOrCreateCache, r as getCacheEntry, w as kernelCallRaw } from "./topologyQueryFns-C0yUIRDE.js";
3
+ import { C as kernelCall, c as getFaces, l as getOrCreateCache, r as getCacheEntry, w as kernelCallRaw } from "./topologyQueryFns-BuZ2h4o9.js";
4
4
  import { n as HASH_CODE_MAX, t as DEG2RAD } from "./constants-ITRzCnCp.js";
5
5
  //#region src/topology/metadata/originTrackingFns.ts
6
6
  /**
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-DAhE_41P.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-CPClTSJn.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-CBVVRWvE.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-jK9Vpzqr.cjs");
4
4
  const require_constants = require("./constants-BOVyEYGH.cjs");
5
5
  //#region src/topology/metadata/originTrackingFns.ts
6
6
  /**
package/dist/shapeRef.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_shapeRefFns = require("./shapeRefFns-BB9iWqZb.cjs");
2
+ const require_shapeRefFns = require("./shapeRefFns-DUt-hIWq.cjs");
3
3
  exports.assignRoles = require_shapeRefFns.assignRoles;
4
4
  exports.captureHint = require_shapeRefFns.captureHint;
5
5
  exports.createRef = require_shapeRefFns.createRef;
package/dist/shapeRef.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as updateRoles, i as resolveRef, n as captureHint, o as defaultScorer, r as createRef, t as assignRoles } from "./shapeRefFns-CZqzvMgX.js";
1
+ import { a as updateRoles, i as resolveRef, n as captureHint, o as defaultScorer, r as createRef, t as assignRoles } from "./shapeRefFns-DqmUj3wF.js";
2
2
  export { assignRoles, captureHint, createRef, defaultScorer, resolveRef, updateRoles };
@@ -1,8 +1,8 @@
1
1
  const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
2
- const require_topologyQueryFns = require("./topologyQueryFns-CBVVRWvE.cjs");
3
- const require_faceFns = require("./faceFns-_m0px2ug.cjs");
4
- const require_shapeFns = require("./shapeFns-DNqkQ2yJ.cjs");
5
- const require_measureFns = require("./measureFns-CqSFeI4R.cjs");
2
+ const require_topologyQueryFns = require("./topologyQueryFns-jK9Vpzqr.cjs");
3
+ const require_faceFns = require("./faceFns-BmaS4kkW.cjs");
4
+ const require_shapeFns = require("./shapeFns-ClKe2vri.cjs");
5
+ const require_measureFns = require("./measureFns-HhPPUiRO.cjs");
6
6
  //#region src/topology/shapeRef/scoring.ts
7
7
  /**
8
8
  * Default face scorer combining surface type, normal alignment, centroid proximity,
@@ -1,8 +1,8 @@
1
1
  import { n as wasmIndex } from "./vec3-Dpha8d5k.js";
2
- import { c as getFaces } from "./topologyQueryFns-C0yUIRDE.js";
3
- import { c as normalAt, n as faceCenter, r as faceGeomType } from "./faceFns-Qrz3lIDv.js";
4
- import { n as getHashCode } from "./shapeFns-Ct1lekCK.js";
5
- import { n as measureArea } from "./measureFns-95m36tbx.js";
2
+ import { c as getFaces } from "./topologyQueryFns-BuZ2h4o9.js";
3
+ import { c as normalAt, n as faceCenter, r as faceGeomType } from "./faceFns-CWU_70z7.js";
4
+ import { n as getHashCode } from "./shapeFns-CMQD_3Rz.js";
5
+ import { n as measureArea } from "./measureFns-Bye5UsOe.js";
6
6
  //#region src/topology/shapeRef/scoring.ts
7
7
  /**
8
8
  * Default face scorer combining surface type, normal alignment, centroid proximity,
@@ -1,6 +1,40 @@
1
+ const require_occtWasmAdapter = require("./occtWasmAdapter-BPu07Zxg.cjs");
1
2
  const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
2
- const require_occtWasmAdapter = require("./occtWasmAdapter-BuIYbIwy.cjs");
3
3
  const require_errors = require("./errors-CXJtc4I7.cjs");
4
+ //#region src/kernel/quality.ts
5
+ /**
6
+ * Extract-time deflection per level. `'standard'` matches brepjs's historical
7
+ * `mesh()` defaults (1e-3 / 0.1) so behaviour is unchanged when no quality is
8
+ * set.
9
+ */
10
+ var DEFLECTION = {
11
+ draft: {
12
+ tolerance: .01,
13
+ angularTolerance: .5
14
+ },
15
+ standard: {
16
+ tolerance: .001,
17
+ angularTolerance: .1
18
+ },
19
+ fine: {
20
+ tolerance: 1e-4,
21
+ angularTolerance: .05
22
+ }
23
+ };
24
+ var _current = "standard";
25
+ /** The active quality level (defaults to `'standard'`). */
26
+ function currentQuality() {
27
+ return _current;
28
+ }
29
+ /** Deflection params for a level (defaults to the active level). */
30
+ function qualityDeflection(level = _current) {
31
+ return DEFLECTION[level];
32
+ }
33
+ /** @internal — set by `withQuality`/`withTier`; restored in their `finally`. */
34
+ function setQualityState(level) {
35
+ _current = level;
36
+ }
37
+ //#endregion
4
38
  //#region src/kernel/kernel2dTypes.ts
5
39
  /** Check if the kernel supports 2D geometry operations. */
6
40
  function supportsKernel2D(kernel) {
@@ -5291,6 +5325,7 @@ function makeDraftAdapter(oc) {
5291
5325
  var DefaultAdapter = class {
5292
5326
  oc;
5293
5327
  kernelId = "occt";
5328
+ capabilities = require_occtWasmAdapter.EXACT_BREP_CAPABILITIES;
5294
5329
  constructor(oc) {
5295
5330
  this.oc = oc;
5296
5331
  Object.assign(this, makeBooleanOps$2(oc), makeBooleanPipelineOps(oc), makeHullOps(oc), makeConstructorOps(oc), makeExtendedConstructorOps(oc), makeSweepOps$2(oc), makeModifierOps$2(oc), makeTransformOps$2(oc), makeMeshOps$2(oc), makeIoOps$2(oc), makeMeasureOps$2(oc), makeTopologyOps$2(oc), makeGeometryQueryOps(oc), makeNurbsQueryOps(oc), makeCurveOps(oc), makeHealingOps(oc), makeHistoryOps(oc), makeAdvancedOps(oc), makeKernel2dOps$1(oc), makeDraftAdapter(oc), makeBrepkitOnlyStubs());
@@ -9630,6 +9665,7 @@ function makeCoreOps$1(bk) {
9630
9665
  var BrepkitAdapter = class {
9631
9666
  oc;
9632
9667
  kernelId = "brepkit";
9668
+ capabilities = require_occtWasmAdapter.EXACT_BREP_CAPABILITIES;
9633
9669
  /** The underlying brepkit WASM kernel instance (typed). */
9634
9670
  bk;
9635
9671
  constructor(brepkitKernel) {
@@ -11465,23 +11501,28 @@ function spineNodeOrSynthetic(spine) {
11465
11501
  * exact and otherwise re-bases onto the section frame.
11466
11502
  */
11467
11503
  function orientExtrusion(solid, section, dir) {
11468
- let placed = solid;
11469
- if (!(Math.abs(dir[0]) < 1e-9 && Math.abs(dir[1]) < 1e-9 && dir[2] > 0)) {
11470
- const pitch = Math.atan2(Math.hypot(dir[0], dir[1]), dir[2]) * (180 / Math.PI);
11471
- const yaw = Math.atan2(dir[1], dir[0]) * (180 / Math.PI);
11472
- placed = placed.rotate([
11473
- 0,
11474
- pitch,
11475
- yaw
11476
- ]);
11477
- }
11504
+ const x = section.xAxis;
11505
+ const y = section.yAxis;
11478
11506
  const o = section.origin;
11479
- if (o[0] !== 0 || o[1] !== 0 || o[2] !== 0) placed = placed.translate([
11507
+ const matrix = [
11508
+ x[0],
11509
+ x[1],
11510
+ x[2],
11511
+ 0,
11512
+ y[0],
11513
+ y[1],
11514
+ y[2],
11515
+ 0,
11516
+ dir[0],
11517
+ dir[1],
11518
+ dir[2],
11519
+ 0,
11480
11520
  o[0],
11481
11521
  o[1],
11482
- o[2]
11483
- ]);
11484
- return placed;
11522
+ o[2],
11523
+ 1
11524
+ ];
11525
+ return solid.transform(matrix);
11485
11526
  }
11486
11527
  /**
11487
11528
  * Express the section outline as (radius, axialOffset) pairs relative to the
@@ -14981,9 +15022,32 @@ function makeCoreOps(_module) {
14981
15022
  discardCheckpoint: () => notImplemented("discardCheckpoint")
14982
15023
  };
14983
15024
  }
15025
+ /** Manifold min circular angle (degrees) per quality level: finer ⇒ smaller angle ⇒ more segments. */
15026
+ var MIN_CIRCULAR_ANGLE_DEG = {
15027
+ draft: 30,
15028
+ standard: 10,
15029
+ fine: 3
15030
+ };
14984
15031
  var ManifoldAdapter = class {
14985
15032
  oc;
14986
15033
  kernelId = "manifold";
15034
+ capabilities = {
15035
+ exact: false,
15036
+ brepExport: false,
15037
+ exactMeasurement: false,
15038
+ tessellationModel: "build-time"
15039
+ };
15040
+ /**
15041
+ * Map a quality level to Manifold's global tessellation. Clearing the segment
15042
+ * count and driving by an angle bound makes it radius-adaptive (a small sphere
15043
+ * still gets enough facets).
15044
+ */
15045
+ setQuality(level) {
15046
+ const m = this.oc;
15047
+ m.setCircularSegments?.(0);
15048
+ m.setMinCircularEdgeLength?.(0);
15049
+ m.setMinCircularAngle?.(MIN_CIRCULAR_ANGLE_DEG[level]);
15050
+ }
14987
15051
  constructor(module) {
14988
15052
  this.oc = module;
14989
15053
  Object.assign(this, makePrimitiveOps(module), makeBooleanOps(module), makeTransformOps(module), makeBuilderOps(module), makeSweepOps(module), makeModifierOps(module), makeMeshOps(module), makeMeasureOps(module), makeTopologyOps(module), makeIoOps(module), makeGeometryOps(module), makeEvolutionOps(module), makeRepairOps(module), makeKernel2DOps(module), makeConstraintSketchOps(module), makeProjectionOps(module), makeCoreOps(module));
@@ -15065,6 +15129,53 @@ function withKernel(id, fn) {
15065
15129
  _cachedDefault = prev ? _kernels.get(prev) ?? null : null;
15066
15130
  }
15067
15131
  }
15132
+ /** Capabilities of a kernel (defaults to the active kernel). */
15133
+ function getKernelCapabilities(id) {
15134
+ return getKernel(id).capabilities;
15135
+ }
15136
+ /**
15137
+ * Run `fn` at a tessellation quality level. For `build-time` kernels (Manifold)
15138
+ * the level is pushed to the kernel's global setting on enter and restored on
15139
+ * exit; for `extract-time` kernels (OCCT) it becomes the default deflection at
15140
+ * `mesh()`/export inside `fn`. Synchronous only (mirrors {@link withKernel}).
15141
+ */
15142
+ function withQuality(level, fn) {
15143
+ const prevLevel = currentQuality();
15144
+ try {
15145
+ setQualityState(level);
15146
+ getKernel().setQuality?.(level);
15147
+ const result = fn();
15148
+ if (result instanceof Promise) throw new Error("withQuality() callback returned a Promise. Async code must read currentQuality()/getKernel() directly.");
15149
+ return result;
15150
+ } finally {
15151
+ setQualityState(prevLevel);
15152
+ getKernel().setQuality?.(prevLevel);
15153
+ }
15154
+ }
15155
+ var _tiers = /* @__PURE__ */ new Map();
15156
+ /**
15157
+ * Bind a named tier to a (kernel, quality) pair — e.g. a `'preview'` tier on a
15158
+ * fast mesh kernel at `'draft'` quality, and an `'exact'` tier on an OCCT
15159
+ * kernel at `'fine'`. Lets call sites express intent (`withTier('preview', …)`)
15160
+ * instead of hard-coding a kernel id + quality knob.
15161
+ */
15162
+ function registerKernelTier(name, tier) {
15163
+ _tiers.set(name, tier);
15164
+ }
15165
+ /** The (kernel, quality) a tier resolves to, or undefined if unregistered. */
15166
+ function getKernelTier(name) {
15167
+ return _tiers.get(name);
15168
+ }
15169
+ /**
15170
+ * Run `fn` under a registered tier: switches to the tier's kernel and applies
15171
+ * its quality (both restored on exit). Composes {@link withKernel} and
15172
+ * {@link withQuality}. Throws if the tier is unregistered.
15173
+ */
15174
+ function withTier(name, fn) {
15175
+ const tier = _tiers.get(name);
15176
+ if (!tier) throw new Error(`withTier: no tier registered for "${name}". Call registerKernelTier("${name}", { kernel, quality }) first.`);
15177
+ return withKernel(tier.kernel, () => withQuality(tier.quality, fn));
15178
+ }
15068
15179
  /** Initialise the brepjs kernel from a loaded WASM instance. */
15069
15180
  function initFromOC(oc) {
15070
15181
  resetMeasureDetectionCache();
@@ -15833,6 +15944,12 @@ Object.defineProperty(exports, "createWire", {
15833
15944
  return createWire;
15834
15945
  }
15835
15946
  });
15947
+ Object.defineProperty(exports, "currentQuality", {
15948
+ enumerable: true,
15949
+ get: function() {
15950
+ return currentQuality;
15951
+ }
15952
+ });
15836
15953
  Object.defineProperty(exports, "getActiveKernelId", {
15837
15954
  enumerable: true,
15838
15955
  get: function() {
@@ -15857,6 +15974,18 @@ Object.defineProperty(exports, "getKernel2D", {
15857
15974
  return getKernel2D;
15858
15975
  }
15859
15976
  });
15977
+ Object.defineProperty(exports, "getKernelCapabilities", {
15978
+ enumerable: true,
15979
+ get: function() {
15980
+ return getKernelCapabilities;
15981
+ }
15982
+ });
15983
+ Object.defineProperty(exports, "getKernelTier", {
15984
+ enumerable: true,
15985
+ get: function() {
15986
+ return getKernelTier;
15987
+ }
15988
+ });
15860
15989
  Object.defineProperty(exports, "getOrQueryType", {
15861
15990
  enumerable: true,
15862
15991
  get: function() {
@@ -16031,6 +16160,12 @@ Object.defineProperty(exports, "prewarm", {
16031
16160
  return prewarm;
16032
16161
  }
16033
16162
  });
16163
+ Object.defineProperty(exports, "qualityDeflection", {
16164
+ enumerable: true,
16165
+ get: function() {
16166
+ return qualityDeflection;
16167
+ }
16168
+ });
16034
16169
  Object.defineProperty(exports, "registerForCleanup", {
16035
16170
  enumerable: true,
16036
16171
  get: function() {
@@ -16043,6 +16178,12 @@ Object.defineProperty(exports, "registerKernel", {
16043
16178
  return registerKernel;
16044
16179
  }
16045
16180
  });
16181
+ Object.defineProperty(exports, "registerKernelTier", {
16182
+ enumerable: true,
16183
+ get: function() {
16184
+ return registerKernelTier;
16185
+ }
16186
+ });
16046
16187
  Object.defineProperty(exports, "resetDisposalStats", {
16047
16188
  enumerable: true,
16048
16189
  get: function() {
@@ -16085,6 +16226,12 @@ Object.defineProperty(exports, "withKernel", {
16085
16226
  return withKernel;
16086
16227
  }
16087
16228
  });
16229
+ Object.defineProperty(exports, "withQuality", {
16230
+ enumerable: true,
16231
+ get: function() {
16232
+ return withQuality;
16233
+ }
16234
+ });
16088
16235
  Object.defineProperty(exports, "withScope", {
16089
16236
  enumerable: true,
16090
16237
  get: function() {
@@ -16103,3 +16250,9 @@ Object.defineProperty(exports, "withScopeResultAsync", {
16103
16250
  return withScopeResultAsync;
16104
16251
  }
16105
16252
  });
16253
+ Object.defineProperty(exports, "withTier", {
16254
+ enumerable: true,
16255
+ get: function() {
16256
+ return withTier;
16257
+ }
16258
+ });
@@ -1,6 +1,40 @@
1
+ import { S as EXACT_BREP_CAPABILITIES, _ as serializeCurve2d$2, a as curveTypeName, b as quickHull, c as intersectCurves2dFn, d as makeEllipse2d$2, f as makeLine2d$2, g as scaleCurve2d$2, h as rotateCurve2d$2, i as curveBounds, l as makeBezier2d$2, m as mirrorAtPoint, n as addCurveToBBox, o as deserializeCurve2d$2, p as mirrorAcrossAxis, r as createBBox2d, s as evaluateCurve2d$2, t as OcctWasmAdapter, u as makeCircle2d$2, v as tangentCurve2d, y as translateCurve2d$2 } from "./occtWasmAdapter-Ctfykwr2.js";
1
2
  import { n as wasmIndex, t as vec3At } from "./vec3-Dpha8d5k.js";
2
- import { _ as serializeCurve2d$2, a as curveTypeName, b as quickHull, c as intersectCurves2dFn, d as makeEllipse2d$2, f as makeLine2d$2, g as scaleCurve2d$2, h as rotateCurve2d$2, i as curveBounds, l as makeBezier2d$2, m as mirrorAtPoint, n as addCurveToBBox, o as deserializeCurve2d$2, p as mirrorAcrossAxis, r as createBBox2d, s as evaluateCurve2d$2, t as OcctWasmAdapter, u as makeCircle2d$2, v as tangentCurve2d, y as translateCurve2d$2 } from "./occtWasmAdapter-B0PIezOZ.js";
3
3
  import { A as ok, b as err } from "./errors-DNWJsfVU.js";
4
+ //#region src/kernel/quality.ts
5
+ /**
6
+ * Extract-time deflection per level. `'standard'` matches brepjs's historical
7
+ * `mesh()` defaults (1e-3 / 0.1) so behaviour is unchanged when no quality is
8
+ * set.
9
+ */
10
+ var DEFLECTION = {
11
+ draft: {
12
+ tolerance: .01,
13
+ angularTolerance: .5
14
+ },
15
+ standard: {
16
+ tolerance: .001,
17
+ angularTolerance: .1
18
+ },
19
+ fine: {
20
+ tolerance: 1e-4,
21
+ angularTolerance: .05
22
+ }
23
+ };
24
+ var _current = "standard";
25
+ /** The active quality level (defaults to `'standard'`). */
26
+ function currentQuality() {
27
+ return _current;
28
+ }
29
+ /** Deflection params for a level (defaults to the active level). */
30
+ function qualityDeflection(level = _current) {
31
+ return DEFLECTION[level];
32
+ }
33
+ /** @internal — set by `withQuality`/`withTier`; restored in their `finally`. */
34
+ function setQualityState(level) {
35
+ _current = level;
36
+ }
37
+ //#endregion
4
38
  //#region src/kernel/kernel2dTypes.ts
5
39
  /** Check if the kernel supports 2D geometry operations. */
6
40
  function supportsKernel2D(kernel) {
@@ -5287,6 +5321,7 @@ function makeDraftAdapter(oc) {
5287
5321
  var DefaultAdapter = class {
5288
5322
  oc;
5289
5323
  kernelId = "occt";
5324
+ capabilities = EXACT_BREP_CAPABILITIES;
5290
5325
  constructor(oc) {
5291
5326
  this.oc = oc;
5292
5327
  Object.assign(this, makeBooleanOps$2(oc), makeBooleanPipelineOps(oc), makeHullOps(oc), makeConstructorOps(oc), makeExtendedConstructorOps(oc), makeSweepOps$2(oc), makeModifierOps$2(oc), makeTransformOps$2(oc), makeMeshOps$2(oc), makeIoOps$2(oc), makeMeasureOps$2(oc), makeTopologyOps$2(oc), makeGeometryQueryOps(oc), makeNurbsQueryOps(oc), makeCurveOps(oc), makeHealingOps(oc), makeHistoryOps(oc), makeAdvancedOps(oc), makeKernel2dOps$1(oc), makeDraftAdapter(oc), makeBrepkitOnlyStubs());
@@ -9622,6 +9657,7 @@ function makeCoreOps$1(bk) {
9622
9657
  var BrepkitAdapter = class {
9623
9658
  oc;
9624
9659
  kernelId = "brepkit";
9660
+ capabilities = EXACT_BREP_CAPABILITIES;
9625
9661
  /** The underlying brepkit WASM kernel instance (typed). */
9626
9662
  bk;
9627
9663
  constructor(brepkitKernel) {
@@ -11457,23 +11493,28 @@ function spineNodeOrSynthetic(spine) {
11457
11493
  * exact and otherwise re-bases onto the section frame.
11458
11494
  */
11459
11495
  function orientExtrusion(solid, section, dir) {
11460
- let placed = solid;
11461
- if (!(Math.abs(dir[0]) < 1e-9 && Math.abs(dir[1]) < 1e-9 && dir[2] > 0)) {
11462
- const pitch = Math.atan2(Math.hypot(dir[0], dir[1]), dir[2]) * (180 / Math.PI);
11463
- const yaw = Math.atan2(dir[1], dir[0]) * (180 / Math.PI);
11464
- placed = placed.rotate([
11465
- 0,
11466
- pitch,
11467
- yaw
11468
- ]);
11469
- }
11496
+ const x = section.xAxis;
11497
+ const y = section.yAxis;
11470
11498
  const o = section.origin;
11471
- if (o[0] !== 0 || o[1] !== 0 || o[2] !== 0) placed = placed.translate([
11499
+ const matrix = [
11500
+ x[0],
11501
+ x[1],
11502
+ x[2],
11503
+ 0,
11504
+ y[0],
11505
+ y[1],
11506
+ y[2],
11507
+ 0,
11508
+ dir[0],
11509
+ dir[1],
11510
+ dir[2],
11511
+ 0,
11472
11512
  o[0],
11473
11513
  o[1],
11474
- o[2]
11475
- ]);
11476
- return placed;
11514
+ o[2],
11515
+ 1
11516
+ ];
11517
+ return solid.transform(matrix);
11477
11518
  }
11478
11519
  /**
11479
11520
  * Express the section outline as (radius, axialOffset) pairs relative to the
@@ -14973,9 +15014,32 @@ function makeCoreOps(_module) {
14973
15014
  discardCheckpoint: () => notImplemented("discardCheckpoint")
14974
15015
  };
14975
15016
  }
15017
+ /** Manifold min circular angle (degrees) per quality level: finer ⇒ smaller angle ⇒ more segments. */
15018
+ var MIN_CIRCULAR_ANGLE_DEG = {
15019
+ draft: 30,
15020
+ standard: 10,
15021
+ fine: 3
15022
+ };
14976
15023
  var ManifoldAdapter = class {
14977
15024
  oc;
14978
15025
  kernelId = "manifold";
15026
+ capabilities = {
15027
+ exact: false,
15028
+ brepExport: false,
15029
+ exactMeasurement: false,
15030
+ tessellationModel: "build-time"
15031
+ };
15032
+ /**
15033
+ * Map a quality level to Manifold's global tessellation. Clearing the segment
15034
+ * count and driving by an angle bound makes it radius-adaptive (a small sphere
15035
+ * still gets enough facets).
15036
+ */
15037
+ setQuality(level) {
15038
+ const m = this.oc;
15039
+ m.setCircularSegments?.(0);
15040
+ m.setMinCircularEdgeLength?.(0);
15041
+ m.setMinCircularAngle?.(MIN_CIRCULAR_ANGLE_DEG[level]);
15042
+ }
14979
15043
  constructor(module) {
14980
15044
  this.oc = module;
14981
15045
  Object.assign(this, makePrimitiveOps(module), makeBooleanOps(module), makeTransformOps(module), makeBuilderOps(module), makeSweepOps(module), makeModifierOps(module), makeMeshOps(module), makeMeasureOps(module), makeTopologyOps(module), makeIoOps(module), makeGeometryOps(module), makeEvolutionOps(module), makeRepairOps(module), makeKernel2DOps(module), makeConstraintSketchOps(module), makeProjectionOps(module), makeCoreOps(module));
@@ -15057,6 +15121,53 @@ function withKernel(id, fn) {
15057
15121
  _cachedDefault = prev ? _kernels.get(prev) ?? null : null;
15058
15122
  }
15059
15123
  }
15124
+ /** Capabilities of a kernel (defaults to the active kernel). */
15125
+ function getKernelCapabilities(id) {
15126
+ return getKernel(id).capabilities;
15127
+ }
15128
+ /**
15129
+ * Run `fn` at a tessellation quality level. For `build-time` kernels (Manifold)
15130
+ * the level is pushed to the kernel's global setting on enter and restored on
15131
+ * exit; for `extract-time` kernels (OCCT) it becomes the default deflection at
15132
+ * `mesh()`/export inside `fn`. Synchronous only (mirrors {@link withKernel}).
15133
+ */
15134
+ function withQuality(level, fn) {
15135
+ const prevLevel = currentQuality();
15136
+ try {
15137
+ setQualityState(level);
15138
+ getKernel().setQuality?.(level);
15139
+ const result = fn();
15140
+ if (result instanceof Promise) throw new Error("withQuality() callback returned a Promise. Async code must read currentQuality()/getKernel() directly.");
15141
+ return result;
15142
+ } finally {
15143
+ setQualityState(prevLevel);
15144
+ getKernel().setQuality?.(prevLevel);
15145
+ }
15146
+ }
15147
+ var _tiers = /* @__PURE__ */ new Map();
15148
+ /**
15149
+ * Bind a named tier to a (kernel, quality) pair — e.g. a `'preview'` tier on a
15150
+ * fast mesh kernel at `'draft'` quality, and an `'exact'` tier on an OCCT
15151
+ * kernel at `'fine'`. Lets call sites express intent (`withTier('preview', …)`)
15152
+ * instead of hard-coding a kernel id + quality knob.
15153
+ */
15154
+ function registerKernelTier(name, tier) {
15155
+ _tiers.set(name, tier);
15156
+ }
15157
+ /** The (kernel, quality) a tier resolves to, or undefined if unregistered. */
15158
+ function getKernelTier(name) {
15159
+ return _tiers.get(name);
15160
+ }
15161
+ /**
15162
+ * Run `fn` under a registered tier: switches to the tier's kernel and applies
15163
+ * its quality (both restored on exit). Composes {@link withKernel} and
15164
+ * {@link withQuality}. Throws if the tier is unregistered.
15165
+ */
15166
+ function withTier(name, fn) {
15167
+ const tier = _tiers.get(name);
15168
+ if (!tier) throw new Error(`withTier: no tier registered for "${name}". Call registerKernelTier("${name}", { kernel, quality }) first.`);
15169
+ return withKernel(tier.kernel, () => withQuality(tier.quality, fn));
15170
+ }
15060
15171
  /** Initialise the brepjs kernel from a loaded WASM instance. */
15061
15172
  function initFromOC(oc) {
15062
15173
  resetMeasureDetectionCache();
@@ -15717,4 +15828,4 @@ function castShapeWithKnownType(ocShape, knownType, dim) {
15717
15828
  return createCompound(dc, dim);
15718
15829
  }
15719
15830
  //#endregion
15720
- export { init as $, planarWire as A, createKernelHandle as B, isOrientedFace as C, manifoldShell as D, isValidSolid as E, as3D as F, unregisterFromCleanup as G, isLive as H, is2D as I, withScopeResultAsync as J, withScope as K, is3D as L, getShapeKind as M, getOrQueryType as N, orientedFace as O, as2D as P, getKernel2D as Q, DisposalScope as R, isManifoldShell as S, isPlanarWire as T, registerForCleanup as U, getDisposalStats as V, resetDisposalStats as W, getActiveKernelId as X, _usingCtx as Y, getKernel as Z, isSolid as _, createEdge as a, supportsConstraintSketch as at, closedWire as b, createSolid as c, getPerformanceStats as ct, isCompound as d, initFromManifold as et, isEdge as f, isShell as g, isShape3D as h, createCompound as i, withKernel as it, validSolid as j, planarFace as k, createVertex as l, resetPerformanceStats as lt, isShape1D as m, castShape3D as n, prewarm as nt, createFace as o, supportsProjection as ot, isFace as p, withScopeResult as q, castShapeWithKnownType as r, registerKernel as rt, createShell as s, BrepkitAdapter as st, castShape as t, initFromOC as tt, createWire as u, isVertex as v, isPlanarFace as w, isClosedWire as x, isWire as y, createHandle as z };
15831
+ export { getKernelCapabilities as $, planarWire as A, createKernelHandle as B, isOrientedFace as C, manifoldShell as D, isValidSolid as E, as3D as F, unregisterFromCleanup as G, isLive as H, is2D as I, withScopeResultAsync as J, withScope as K, is3D as L, getShapeKind as M, getOrQueryType as N, orientedFace as O, as2D as P, getKernel2D as Q, DisposalScope as R, isManifoldShell as S, isPlanarWire as T, registerForCleanup as U, getDisposalStats as V, resetDisposalStats as W, getActiveKernelId as X, _usingCtx as Y, getKernel as Z, isSolid as _, createEdge as a, registerKernel as at, closedWire as b, createSolid as c, withQuality as ct, isCompound as d, supportsProjection as dt, getKernelTier as et, isEdge as f, BrepkitAdapter as ft, isShell as g, qualityDeflection as gt, isShape3D as h, currentQuality as ht, createCompound as i, prewarm as it, validSolid as j, planarFace as k, createVertex as l, withTier as lt, isShape1D as m, resetPerformanceStats as mt, castShape3D as n, initFromManifold as nt, createFace as o, registerKernelTier as ot, isFace as p, getPerformanceStats as pt, withScopeResult as q, castShapeWithKnownType as r, initFromOC as rt, createShell as s, withKernel as st, castShape as t, init as tt, createWire as u, supportsConstraintSketch as ut, isVertex as v, isPlanarFace as w, isClosedWire as x, isWire as y, createHandle as z };
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-7KWxP1zT.cjs");
3
- const require_blueprintSketcher = require("./blueprintSketcher-Bpd7nMHt.cjs");
4
- const require_drawFns = require("./drawFns-DPE6EU_v.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-BRqklfRI.cjs");
3
+ const require_blueprintSketcher = require("./blueprintSketcher-CWSesXXR.cjs");
4
+ const require_drawFns = require("./drawFns-BuE0lne3.cjs");
5
5
  //#region src/sketching.ts
6
6
  /**
7
7
  * brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
package/dist/sketching.js CHANGED
@@ -1,6 +1,6 @@
1
- import { n as BaseSketcher2d, t as BlueprintSketcher } from "./blueprintSketcher-BL85kdgo.js";
2
- import { A as sketchEllipse, C as DrawingPen, D as makeBaseBox, E as deserializeDrawing, F as sketchRectangle, I as sketchRoundedRectangle, L as FaceSketcher, M as sketchHelix, N as sketchParametricFunction, O as polysideInnerRadius, P as sketchPolysides, R as Sketcher, S as drawText, T as Drawing, _ as drawPolysides, a as drawingIntersect, b as drawSingleCircle, c as rotateDrawing, d as drawFaceOutline, f as drawProjection, g as drawPointsInterpolation, h as drawParametricFunction, i as drawingFuse, j as sketchFaceOffset, k as sketchCircle, l as scaleDrawing, m as drawEllipse, n as drawingCut, o as drawingToSketchOnPlane, p as drawCircle, r as drawingFillet, s as mirrorDrawing, t as drawingChamfer, u as translateDrawing, v as drawRectangle, w as draw, x as drawSingleEllipse, y as drawRoundedRectangle } from "./drawFns-Cq6bAjFC.js";
3
- import { a as Sketch, c as compoundSketchLoft, d as sketchFace, f as sketchLoft, h as sketchWires, i as Sketches, l as compoundSketchRevolve, m as sketchSweep, o as compoundSketchExtrude, p as sketchRevolve, s as compoundSketchFace, u as sketchExtrude, v as CompoundSketch } from "./textBlueprints-CyIv54Ac.js";
1
+ import { n as BaseSketcher2d, t as BlueprintSketcher } from "./blueprintSketcher-DelJzBzJ.js";
2
+ import { A as sketchEllipse, C as DrawingPen, D as makeBaseBox, E as deserializeDrawing, F as sketchRectangle, I as sketchRoundedRectangle, L as FaceSketcher, M as sketchHelix, N as sketchParametricFunction, O as polysideInnerRadius, P as sketchPolysides, R as Sketcher, S as drawText, T as Drawing, _ as drawPolysides, a as drawingIntersect, b as drawSingleCircle, c as rotateDrawing, d as drawFaceOutline, f as drawProjection, g as drawPointsInterpolation, h as drawParametricFunction, i as drawingFuse, j as sketchFaceOffset, k as sketchCircle, l as scaleDrawing, m as drawEllipse, n as drawingCut, o as drawingToSketchOnPlane, p as drawCircle, r as drawingFillet, s as mirrorDrawing, t as drawingChamfer, u as translateDrawing, v as drawRectangle, w as draw, x as drawSingleEllipse, y as drawRoundedRectangle } from "./drawFns-Cw29tkrx.js";
3
+ import { a as Sketch, c as compoundSketchLoft, d as sketchFace, f as sketchLoft, h as sketchWires, i as Sketches, l as compoundSketchRevolve, m as sketchSweep, o as compoundSketchExtrude, p as sketchRevolve, s as compoundSketchFace, u as sketchExtrude, v as CompoundSketch } from "./textBlueprints-DP_2uuR2.js";
4
4
  //#region src/sketching.ts
5
5
  /**
6
6
  * brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-DAhE_41P.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-CPClTSJn.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_faceFns = require("./faceFns-_m0px2ug.cjs");
3
+ const require_faceFns = require("./faceFns-BmaS4kkW.cjs");
4
4
  //#region src/topology/shapeUtils.ts
5
5
  /**
6
6
  * Shape assembly utilities — welding and sewing operations.
@@ -1,6 +1,6 @@
1
- import { Z as getKernel, _ as isSolid, c as createSolid, g as isShell, h as isShape3D, i as createCompound, l as createVertex } from "./shapeTypes-C-32Klnb.js";
1
+ import { Z as getKernel, _ as isSolid, c as createSolid, g as isShell, h as isShape3D, i as createCompound, l as createVertex } from "./shapeTypes-CQscfe8k.js";
2
2
  import { A as ok, R as unwrap, b as err, l as typeCastError, v as andThen } from "./errors-DNWJsfVU.js";
3
- import { _ as downcast, g as cast } from "./faceFns-Qrz3lIDv.js";
3
+ import { _ as downcast, g as cast } from "./faceFns-CWU_70z7.js";
4
4
  //#region src/topology/shapeUtils.ts
5
5
  /**
6
6
  * Shape assembly utilities — welding and sewing operations.