brepjs 18.116.1 → 18.117.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 (57) hide show
  1. package/dist/2d.cjs +4 -4
  2. package/dist/2d.js +4 -4
  3. package/dist/{blueprint-BwkD2qeC.cjs → blueprint-Bb6y8xmG.cjs} +1 -1
  4. package/dist/{blueprint-Dw0QqImu.js → blueprint-ccFH0CU4.js} +1 -1
  5. package/dist/{blueprintFns-B-aybpEo.cjs → blueprintFns-B7nDXYsr.cjs} +2 -2
  6. package/dist/{blueprintFns-BowWsZgJ.js → blueprintFns-Cvhzcmrk.js} +2 -2
  7. package/dist/{blueprintSketcher-RK-cH6ps.cjs → blueprintSketcher-BY6R2umG.cjs} +2 -2
  8. package/dist/{blueprintSketcher-7rtwqUHZ.js → blueprintSketcher-Cw_Epicg.js} +2 -2
  9. package/dist/{boolean2D-y0SSZfe2.js → boolean2D-BiPWJMSB.js} +3 -3
  10. package/dist/{boolean2D-CZUEOoAh.cjs → boolean2D-mBIMAMP3.cjs} +3 -3
  11. package/dist/brepjs.cjs +26 -16
  12. package/dist/brepjs.js +26 -17
  13. package/dist/{cornerFinder-DUGeBIvD.js → cornerFinder-Baa3j5Ph.js} +1 -1
  14. package/dist/{cornerFinder-B4q88TRb.cjs → cornerFinder-DaHVcKSL.cjs} +1 -1
  15. package/dist/{drawFns-SQIBls6p.js → drawFns-Blkxt9ei.js} +6 -6
  16. package/dist/{drawFns-DNxs7PAT.cjs → drawFns-NEdyNRo-.cjs} +6 -6
  17. package/dist/{healingFns-xLJ6Cp_O.cjs → healingFns-DiVnJgwh.cjs} +2 -2
  18. package/dist/{healingFns-2TJHHDg5.js → healingFns-TnTWI_K_.js} +2 -2
  19. package/dist/{helpers-DhJwFrkC.js → helpers-BuJ2542Q.js} +1 -1
  20. package/dist/{helpers-BSLPCflF.cjs → helpers-Cy4IH0Dc.cjs} +1 -1
  21. package/dist/{importFns-CgMQIi0z.cjs → importFns-2X1Bh_-e.cjs} +1 -1
  22. package/dist/{importFns-nR9lEx22.js → importFns-DU6m8NVC.js} +1 -1
  23. package/dist/index.d.ts +1 -1
  24. package/dist/io.cjs +2 -2
  25. package/dist/io.js +2 -2
  26. package/dist/{meshFns-DbmidUzH.js → meshFns-DBsxqJd3.js} +1 -1
  27. package/dist/{meshFns-1hQSn1p2.cjs → meshFns-HyzvCIhb.cjs} +1 -1
  28. package/dist/operations.cjs +1 -1
  29. package/dist/operations.js +1 -1
  30. package/dist/{primitiveFns-DLIWtQWA.cjs → primitiveFns-DvGRmEox.cjs} +2 -2
  31. package/dist/{primitiveFns-CBrOyk5S.js → primitiveFns-LYeAjO6E.js} +2 -2
  32. package/dist/query.cjs +2 -2
  33. package/dist/query.js +2 -2
  34. package/dist/{refResolveFns-BiEBAREW.cjs → refResolveFns-BGcsRo5a.cjs} +1 -1
  35. package/dist/{refResolveFns-Ck6kJzLE.js → refResolveFns-BzIXnBrs.js} +1 -1
  36. package/dist/{shapeFns-DrZOVwHX.js → shapeFns-DJHbIsRX.js} +26 -1
  37. package/dist/{shapeFns-ybo0INGL.cjs → shapeFns-aI4Hr4XV.cjs} +31 -0
  38. package/dist/shapeRef.cjs +1 -1
  39. package/dist/shapeRef.js +1 -1
  40. package/dist/sketching.cjs +3 -3
  41. package/dist/sketching.js +3 -3
  42. package/dist/{solidBuilders-C32wXQWG.js → solidBuilders-CjrjwCtG.js} +1 -1
  43. package/dist/{solidBuilders-DiUv_mD0.cjs → solidBuilders-DSokszEg.cjs} +1 -1
  44. package/dist/text.cjs +2 -2
  45. package/dist/text.js +2 -2
  46. package/dist/{textBlueprints-D5lsZswr.cjs → textBlueprints-BvD0c2S0.cjs} +2 -2
  47. package/dist/{textBlueprints-BnkWAqwS.js → textBlueprints-gMoNCh6B.js} +2 -2
  48. package/dist/{textMetrics-COGYk0LE.js → textMetrics-7Je4nat3.js} +1 -1
  49. package/dist/{textMetrics-IC_IoI7l.cjs → textMetrics-BZwyjpX_.cjs} +1 -1
  50. package/dist/{threadFns-KbYZu7Q9.js → threadFns-B9udL9Zs.js} +4 -4
  51. package/dist/{threadFns-BqWHWpea.cjs → threadFns-cKaZIY34.cjs} +4 -4
  52. package/dist/topology/api.d.ts +7 -0
  53. package/dist/topology/shapeFns.d.ts +1 -1
  54. package/dist/topology/transformFns.d.ts +15 -0
  55. package/dist/topology.cjs +5 -5
  56. package/dist/topology.js +5 -5
  57. package/package.json +1 -1
package/dist/2d.cjs CHANGED
@@ -2,10 +2,10 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_shapeTypes = require("./shapeTypes-BTTwjHy5.cjs");
3
3
  const require_errors = require("./errors-CXJtc4I7.cjs");
4
4
  const require_topologyQueryFns = require("./topologyQueryFns-CoXVHuN7.cjs");
5
- const require_blueprintSketcher = require("./blueprintSketcher-RK-cH6ps.cjs");
6
- const require_blueprint = require("./blueprint-BwkD2qeC.cjs");
7
- const require_boolean2D = require("./boolean2D-CZUEOoAh.cjs");
8
- const require_blueprintFns = require("./blueprintFns-B-aybpEo.cjs");
5
+ const require_blueprintSketcher = require("./blueprintSketcher-BY6R2umG.cjs");
6
+ const require_blueprint = require("./blueprint-Bb6y8xmG.cjs");
7
+ const require_boolean2D = require("./boolean2D-mBIMAMP3.cjs");
8
+ const require_blueprintFns = require("./blueprintFns-B7nDXYsr.cjs");
9
9
  //#region src/core/curve2dHandle.ts
10
10
  /**
11
11
  * Wrap a raw kernel 2D curve handle with brand + disposal tracking.
package/dist/2d.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { B as createKernelHandle, Q as getKernel2D, a as createEdge } from "./shapeTypes-Dpu6mD3m.js";
2
2
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
3
3
  import { w as kernelCallRaw } from "./topologyQueryFns-BeKaWpNm.js";
4
- import { a as Blueprints, i as CompoundBlueprint, r as organiseBlueprints } from "./blueprintSketcher-7rtwqUHZ.js";
5
- import { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./blueprint-Dw0QqImu.js";
6
- import { a as fuseBlueprints, c as roundedRectangleBlueprint, i as cutBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-y0SSZfe2.js";
7
- import { S as reverseCurve, _ as curve2dIsOnCurve, a as isInside2D, b as curve2dSplitAt, c as scale2D, d as stretch2D, f as toSVGPathD, g as curve2dFirstPoint, h as curve2dDistanceFrom, i as getOrientation2D, l as sketchOnFace2D, m as curve2dBoundingBox, o as mirror2D, p as translate2D, r as getBounds2D, s as rotate2D, t as createBlueprint, u as sketchOnPlane2D, v as curve2dLastPoint, x as curve2dTangentAt, y as curve2dParameter } from "./blueprintFns-BowWsZgJ.js";
4
+ import { a as Blueprints, i as CompoundBlueprint, r as organiseBlueprints } from "./blueprintSketcher-Cw_Epicg.js";
5
+ import { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./blueprint-ccFH0CU4.js";
6
+ import { a as fuseBlueprints, c as roundedRectangleBlueprint, i as cutBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-BiPWJMSB.js";
7
+ import { S as reverseCurve, _ as curve2dIsOnCurve, a as isInside2D, b as curve2dSplitAt, c as scale2D, d as stretch2D, f as toSVGPathD, g as curve2dFirstPoint, h as curve2dDistanceFrom, i as getOrientation2D, l as sketchOnFace2D, m as curve2dBoundingBox, o as mirror2D, p as translate2D, r as getBounds2D, s as rotate2D, t as createBlueprint, u as sketchOnPlane2D, v as curve2dLastPoint, x as curve2dTangentAt, y as curve2dParameter } from "./blueprintFns-Cvhzcmrk.js";
8
8
  //#region src/core/curve2dHandle.ts
9
9
  /**
10
10
  * Wrap a raw kernel 2D curve handle with brand + disposal tracking.
@@ -8,7 +8,7 @@ const require_faceFns = require("./faceFns-BV0GnTlt.cjs");
8
8
  const require_curveFns = require("./curveFns-DgUJpH4z.cjs");
9
9
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
10
10
  const require_surfaceBuilders = require("./surfaceBuilders-UyyfZy8w.cjs");
11
- const require_helpers = require("./helpers-BSLPCflF.cjs");
11
+ const require_helpers = require("./helpers-Cy4IH0Dc.cjs");
12
12
  //#region src/2d/lib/definitions.ts
13
13
  /** Type guard that checks whether a value is a `Point2D`. */
14
14
  function isPoint2D(point) {
@@ -8,7 +8,7 @@ import { _ as cast, h as uvCoordinates, i as faceGeomType, m as uvBounds, r as f
8
8
  import { p as getOrientation } from "./curveFns-CcSn4-Rf.js";
9
9
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
10
10
  import { r as makeFace } from "./surfaceBuilders-rkE-jE90.js";
11
- import { _ as samePoint, b as subtract2d, l as add2d, o as normalize2d, p as distance2d, t as getSingleFace, v as scalarMultiply2d } from "./helpers-DhJwFrkC.js";
11
+ import { _ as samePoint, b as subtract2d, l as add2d, o as normalize2d, p as distance2d, t as getSingleFace, v as scalarMultiply2d } from "./helpers-BuJ2542Q.js";
12
12
  //#region src/2d/lib/definitions.ts
13
13
  /** Type guard that checks whether a value is a `Point2D`. */
14
14
  function isPoint2D(point) {
@@ -1,6 +1,6 @@
1
1
  const require_errors = require("./errors-CXJtc4I7.cjs");
2
- const require_blueprintSketcher = require("./blueprintSketcher-RK-cH6ps.cjs");
3
- const require_blueprint = require("./blueprint-BwkD2qeC.cjs");
2
+ const require_blueprintSketcher = require("./blueprintSketcher-BY6R2umG.cjs");
3
+ const require_blueprint = require("./blueprint-Bb6y8xmG.cjs");
4
4
  //#region src/2d/lib/curve2dFns.ts
5
5
  /**
6
6
  * Return a reversed copy of the curve (non-mutating).
@@ -1,6 +1,6 @@
1
1
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
2
- import { i as CompoundBlueprint } from "./blueprintSketcher-7rtwqUHZ.js";
3
- import { t as Blueprint } from "./blueprint-Dw0QqImu.js";
2
+ import { i as CompoundBlueprint } from "./blueprintSketcher-Cw_Epicg.js";
3
+ import { t as Blueprint } from "./blueprint-ccFH0CU4.js";
4
4
  //#region src/2d/lib/curve2dFns.ts
5
5
  /**
6
6
  * Return a reversed copy of the curve (non-mutating).
@@ -3,8 +3,8 @@ const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
3
3
  const require_errors = require("./errors-CXJtc4I7.cjs");
4
4
  const require_constants = require("./constants-BOVyEYGH.cjs");
5
5
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
6
- const require_helpers = require("./helpers-BSLPCflF.cjs");
7
- const require_blueprint = require("./blueprint-BwkD2qeC.cjs");
6
+ const require_helpers = require("./helpers-Cy4IH0Dc.cjs");
7
+ const require_blueprint = require("./blueprint-Bb6y8xmG.cjs");
8
8
  //#region node_modules/flatqueue/index.js
9
9
  /**
10
10
  * @typedef {Float64ArrayConstructor | Float32ArrayConstructor |
@@ -3,8 +3,8 @@ import { n as wasmIndex } from "./vec3-Dpha8d5k.js";
3
3
  import { A as ok, R as unwrap, T as isOk, b as err, h as bug, n as computationError, s as safeIndex } from "./errors-DNWJsfVU.js";
4
4
  import { r as RAD2DEG, t as DEG2RAD } from "./constants-ITRzCnCp.js";
5
5
  import { t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
6
- import { _ as samePoint, b as subtract2d, d as cartesianToPolar, f as crossProduct2d, g as rotate2d, h as polarToCartesian, l as add2d, m as polarAngle2d, o as normalize2d, p as distance2d, v as scalarMultiply2d } from "./helpers-DhJwFrkC.js";
7
- import { _ as Curve2D, c as make2dCircle, f as make2dSegmentCurve, h as approximateAsBSpline, m as make2dThreePointArc, n as asSVG, o as make2dArcFromCenter, p as make2dTangentArc, r as viewbox, s as make2dBezierCurve, t as Blueprint, u as make2dEllipseArc, x as isPoint2D, y as BoundingBox2d } from "./blueprint-Dw0QqImu.js";
6
+ import { _ as samePoint, b as subtract2d, d as cartesianToPolar, f as crossProduct2d, g as rotate2d, h as polarToCartesian, l as add2d, m as polarAngle2d, o as normalize2d, p as distance2d, v as scalarMultiply2d } from "./helpers-BuJ2542Q.js";
7
+ import { _ as Curve2D, c as make2dCircle, f as make2dSegmentCurve, h as approximateAsBSpline, m as make2dThreePointArc, n as asSVG, o as make2dArcFromCenter, p as make2dTangentArc, r as viewbox, s as make2dBezierCurve, t as Blueprint, u as make2dEllipseArc, x as isPoint2D, y as BoundingBox2d } from "./blueprint-ccFH0CU4.js";
8
8
  //#region node_modules/flatqueue/index.js
9
9
  /**
10
10
  * @typedef {Float64ArrayConstructor | Float32ArrayConstructor |
@@ -2,9 +2,9 @@ import { n as wasmIndex } from "./vec3-Dpha8d5k.js";
2
2
  import { R as unwrap, h as bug, s as safeIndex } from "./errors-DNWJsfVU.js";
3
3
  import { r as lastOrThrow } from "./arrayAccess-DrUGPADn.js";
4
4
  import { v as zip } from "./surfaceBuilders-rkE-jE90.js";
5
- import { a as Blueprints, i as CompoundBlueprint, l as intersectCurves, r as organiseBlueprints, t as BlueprintSketcher, u as Flatbush } from "./blueprintSketcher-7rtwqUHZ.js";
6
- import { _ as samePoint$1, b as subtract2d, f as crossProduct2d, s as PRECISION_INTERSECTION } from "./helpers-DhJwFrkC.js";
7
- import { b as removeDuplicatePoints, f as make2dSegmentCurve, t as Blueprint } from "./blueprint-Dw0QqImu.js";
5
+ import { a as Blueprints, i as CompoundBlueprint, l as intersectCurves, r as organiseBlueprints, t as BlueprintSketcher, u as Flatbush } from "./blueprintSketcher-Cw_Epicg.js";
6
+ import { _ as samePoint$1, b as subtract2d, f as crossProduct2d, s as PRECISION_INTERSECTION } from "./helpers-BuJ2542Q.js";
7
+ import { b as removeDuplicatePoints, f as make2dSegmentCurve, t as Blueprint } from "./blueprint-ccFH0CU4.js";
8
8
  //#region src/2d/blueprints/cannedBlueprints.ts
9
9
  /**
10
10
  * Create a regular polygon blueprint inscribed in a circle of the given radius.
@@ -2,9 +2,9 @@ const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
3
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
4
4
  const require_surfaceBuilders = require("./surfaceBuilders-UyyfZy8w.cjs");
5
- const require_blueprintSketcher = require("./blueprintSketcher-RK-cH6ps.cjs");
6
- const require_helpers = require("./helpers-BSLPCflF.cjs");
7
- const require_blueprint = require("./blueprint-BwkD2qeC.cjs");
5
+ const require_blueprintSketcher = require("./blueprintSketcher-BY6R2umG.cjs");
6
+ const require_helpers = require("./helpers-Cy4IH0Dc.cjs");
7
+ const require_blueprint = require("./blueprint-Bb6y8xmG.cjs");
8
8
  //#region src/2d/blueprints/cannedBlueprints.ts
9
9
  /**
10
10
  * Create a regular polygon blueprint inscribed in a circle of the given radius.
package/dist/brepjs.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-D5lsZswr.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-BvD0c2S0.cjs");
3
3
  const require_shapeTypes = require("./shapeTypes-BTTwjHy5.cjs");
4
4
  const require_occtWasmAdapter = require("./occtWasmAdapter-B2TEQOjs.cjs");
5
5
  const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
@@ -10,29 +10,29 @@ const require_types = require("./types-KjA8tY4Y.cjs");
10
10
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
11
11
  const require_planeOps = require("./planeOps-BA4HfgQu.cjs");
12
12
  const require_faceFns = require("./faceFns-BV0GnTlt.cjs");
13
- const require_shapeFns = require("./shapeFns-ybo0INGL.cjs");
13
+ const require_shapeFns = require("./shapeFns-aI4Hr4XV.cjs");
14
14
  const require_curveFns = require("./curveFns-DgUJpH4z.cjs");
15
- const require_meshFns = require("./meshFns-1hQSn1p2.cjs");
15
+ const require_meshFns = require("./meshFns-HyzvCIhb.cjs");
16
16
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
17
17
  const require_surfaceBuilders = require("./surfaceBuilders-UyyfZy8w.cjs");
18
- const require_solidBuilders = require("./solidBuilders-DiUv_mD0.cjs");
19
- const require_healingFns = require("./healingFns-xLJ6Cp_O.cjs");
20
- const require_threadFns = require("./threadFns-BqWHWpea.cjs");
21
- const require_blueprintSketcher = require("./blueprintSketcher-RK-cH6ps.cjs");
22
- const require_helpers = require("./helpers-BSLPCflF.cjs");
23
- const require_drawFns = require("./drawFns-DNxs7PAT.cjs");
18
+ const require_solidBuilders = require("./solidBuilders-DSokszEg.cjs");
19
+ const require_healingFns = require("./healingFns-DiVnJgwh.cjs");
20
+ const require_threadFns = require("./threadFns-cKaZIY34.cjs");
21
+ const require_blueprintSketcher = require("./blueprintSketcher-BY6R2umG.cjs");
22
+ const require_helpers = require("./helpers-Cy4IH0Dc.cjs");
23
+ const require_drawFns = require("./drawFns-NEdyNRo-.cjs");
24
24
  const require_measureFns = require("./measureFns-DblG0Yaz.cjs");
25
- const require_cornerFinder = require("./cornerFinder-B4q88TRb.cjs");
26
- const require_boolean2D = require("./boolean2D-CZUEOoAh.cjs");
27
- const require_blueprintFns = require("./blueprintFns-B-aybpEo.cjs");
28
- const require_importFns = require("./importFns-CgMQIi0z.cjs");
25
+ const require_cornerFinder = require("./cornerFinder-DaHVcKSL.cjs");
26
+ const require_boolean2D = require("./boolean2D-mBIMAMP3.cjs");
27
+ const require_blueprintFns = require("./blueprintFns-B7nDXYsr.cjs");
28
+ const require_importFns = require("./importFns-2X1Bh_-e.cjs");
29
29
  const require_loftFns = require("./loftFns-fpTmrIdd.cjs");
30
30
  const require_cameraFns = require("./cameraFns-uo1sZbBT.cjs");
31
- const require_textMetrics = require("./textMetrics-IC_IoI7l.cjs");
31
+ const require_textMetrics = require("./textMetrics-BZwyjpX_.cjs");
32
32
  const require_adjacencyFns = require("./adjacencyFns-d8ZabkvX.cjs");
33
- const require_refResolveFns = require("./refResolveFns-BiEBAREW.cjs");
33
+ const require_refResolveFns = require("./refResolveFns-BGcsRo5a.cjs");
34
34
  const require_workerPool = require("./workerPool-D30NsiIW.cjs");
35
- const require_primitiveFns = require("./primitiveFns-DLIWtQWA.cjs");
35
+ const require_primitiveFns = require("./primitiveFns-DvGRmEox.cjs");
36
36
  //#region src/topology/shapeBooleans.ts
37
37
  var BOPAlgo_GlueShift = 1;
38
38
  var BOPAlgo_GlueFull = 2;
@@ -3474,6 +3474,15 @@ function applyMatrix(shape, matrix) {
3474
3474
  function transformCopy(shape, composed) {
3475
3475
  return require_shapeFns.transformCopy(resolve(shape), composed);
3476
3476
  }
3477
+ /**
3478
+ * Placement-only rigid move (translate / rotate) via the kernel's cheap location
3479
+ * re-tag — O(1) on occt-wasm ≥3.6.0, falling back to a copy elsewhere. Same
3480
+ * face-metadata guarantee as `translate`, at location-swap cost. Ideal for
3481
+ * placing one cached cell at N positions without paying for N deep copies.
3482
+ */
3483
+ function locate(shape, placement) {
3484
+ return require_shapeFns.locate(resolve(shape), placement);
3485
+ }
3477
3486
  /** Fuse two 3D shapes (boolean union). */
3478
3487
  function fuse(a, b, options) {
3479
3488
  return require_solidBuilders.fuse(resolve(a), resolve(b), {
@@ -7347,6 +7356,7 @@ exports.latticeInfillShape = latticeInfillShape;
7347
7356
  exports.line = require_primitiveFns.line;
7348
7357
  exports.linearPattern = require_threadFns.linearPattern;
7349
7358
  exports.loadFont = require_textBlueprints.loadFont;
7359
+ exports.locate = locate;
7350
7360
  exports.loft = loft;
7351
7361
  exports.loftAll = require_loftFns.loftAll;
7352
7362
  exports.makeBaseBox = require_drawFns.makeBaseBox;
package/dist/brepjs.js CHANGED
@@ -8,30 +8,30 @@ import { n as toVec2, r as toVec3, t as resolveDirection } from "./types-D24Y27N
8
8
  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-SKPRvPH-.js";
9
9
  import { i as pivotPlane, n as createPlane, o as resolvePlane, r as makePlane, s as translatePlane, t as createNamedPlane } from "./planeOps-DSjjtrjg.js";
10
10
  import { S as shapeType, _ as cast, a as faceOrientation, b as isCompSolid, c as innerWires, d as pointOnSurface, f as projectPointOnFace, g as asTopo, h as uvCoordinates, i as faceGeomType, l as normalAt, m as uvBounds, n as faceAxis, o as flipFaceOrientation, p as removeHolesFromFace, r as faceCenter, s as getSurfaceType, t as classifyPointOnFace, u as outerWire, v as downcast, x as iterTopo, y as fromBREP } from "./faceFns-B86WGqDg.js";
11
- import { A as getFaceOrigins, C as getFaceColor, D as getTagMetadata, E as getFaceTags, O as setTagMetadata, S as colorShape, T as findFacesByTag, _ as hasAnyMetadata, a as isSameShape, b as propagateMetadataThroughRelocation, c as applyMatrix$1, d as resize, f as rotate$2, h as translate$2, i as isEqualShape, j as setShapeOrigin, k as tagFaces, l as composeTransforms, m as transformCopy$1, n as getHashCode, o as simplify$1, p as scale$3, r as isEmpty$2, s as toBREP$1, t as clone$1, u as mirror$2, w as getShapeColor, x as colorFaces } from "./shapeFns-DrZOVwHX.js";
11
+ import { A as tagFaces, C as colorShape, D as getFaceTags, E as findFacesByTag, M as setShapeOrigin, O as getTagMetadata, S as colorFaces, T as getShapeColor, a as isSameShape, c as applyMatrix$1, d as mirror$2, f as resize, g as translate$2, h as transformCopy$1, i as isEqualShape, j as getFaceOrigins, k as setTagMetadata, l as composeTransforms, m as scale$3, n as getHashCode, o as simplify$1, p as rotate$2, r as isEmpty$2, s as toBREP$1, t as clone$1, u as locate$1, v as hasAnyMetadata, w as getFaceColor, x as propagateMetadataThroughRelocation } from "./shapeFns-DJHbIsRX.js";
12
12
  import { a as curveIsPeriodic, c as curvePointAt, d as flipOrientation, f as getCurveType, h as offsetWire2D, i as curveIsClosed, l as curveStartPoint, m as interpolateCurve, n as curveAxis, o as curveLength, p as getOrientation, r as curveEndPoint, s as curvePeriod, t as approximateCurve, u as curveTangentAt } from "./curveFns-CcSn4-Rf.js";
13
- import { a as meshEdges$1, c as meshMultiLOD, d as createMeshCache, i as mesh$1, l as buildMeshCacheKey, n as exportSTEP, o as meshLODs, r as exportSTL, s as meshLODsProgressive, t as exportIGES, u as clearMeshCache } from "./meshFns-DbmidUzH.js";
13
+ import { a as meshEdges$1, c as meshMultiLOD, d as createMeshCache, i as mesh$1, l as buildMeshCacheKey, n as exportSTEP, o as meshLODs, r as exportSTL, s as meshLODsProgressive, t as exportIGES, u as clearMeshCache } from "./meshFns-DBsxqJd3.js";
14
14
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
15
15
  import { _ as makeThreePointArc, d as makeCircle, h as makeLine, l as makeBSplineInterpolation, n as fill, r as makeFace, s as assembleWire } from "./surfaceBuilders-rkE-jE90.js";
16
- import { _ as section$1, b as split$1, d as booleanPipeline, f as cut$2, g as intersect$2, h as fuseAll$2, m as fuse$2, p as cutAll$2, r as makeCylinder, t as makeCompound, v as sectionToFace$1, y as slice$1 } from "./solidBuilders-C32wXQWG.js";
17
- import { A as toBufferGeometryData, C as shellWithEvolution, D as getNurbsCurveData, E as fuseAllBisect, M as toLODGeometryData, N as toLODGeometryLevels, O as getNurbsSurfaceData, P as toLineGeometryData, S as intersectWithEvolution, T as cutAllBisect, _ as positionOnCurve, a as healFace, b as filletWithEvolution, c as isValid$1, d as draft$1, f as fillet$1, g as variableFillet, h as thicken$1, i as heal$1, j as toGroupedBufferGeometryData, k as chamferDistAngle, l as solidFromShell, m as shell$1, n as fixSelfIntersection, o as healSolid, p as offset$1, r as fixShape, s as healWire, t as autoHeal, u as chamfer$1, v as chamferWithEvolution, w as checkBoolean, x as fuseWithEvolution, y as cutWithEvolution } from "./healingFns-2TJHHDg5.js";
18
- import { A as setJointValue, B as createAssemblyNode, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, F as quatMultiply, G as circularPattern, H as removeChild, I as quatRotate, J as exportAssemblySTEP, K as gridPattern, L as addChild, M as sphericalJoint, N as quatFromAxisAngle, O as prismaticJoint, P as quatFromTo, R as collectShapes, S as addJoint, T as jointTransform, U as updateNode, V as findNode, W as walkAssembly, Y as createAssembly, _ as exportURDF, a as deserializeHistory, 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, p as serializeHistory, q as linearPattern, 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 countNodes } from "./threadFns-KbYZu7Q9.js";
19
- import { n as BaseSketcher2d, r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-7rtwqUHZ.js";
20
- import { a as createTypedFinder, i as wireFinder, n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-DhJwFrkC.js";
21
- import { A as sketchEllipse, 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, _ 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-SQIBls6p.js";
16
+ import { _ as section$1, b as split$1, d as booleanPipeline, f as cut$2, g as intersect$2, h as fuseAll$2, m as fuse$2, p as cutAll$2, r as makeCylinder, t as makeCompound, v as sectionToFace$1, y as slice$1 } from "./solidBuilders-CjrjwCtG.js";
17
+ import { A as toBufferGeometryData, C as shellWithEvolution, D as getNurbsCurveData, E as fuseAllBisect, M as toLODGeometryData, N as toLODGeometryLevels, O as getNurbsSurfaceData, P as toLineGeometryData, S as intersectWithEvolution, T as cutAllBisect, _ as positionOnCurve, a as healFace, b as filletWithEvolution, c as isValid$1, d as draft$1, f as fillet$1, g as variableFillet, h as thicken$1, i as heal$1, j as toGroupedBufferGeometryData, k as chamferDistAngle, l as solidFromShell, m as shell$1, n as fixSelfIntersection, o as healSolid, p as offset$1, r as fixShape, s as healWire, t as autoHeal, u as chamfer$1, v as chamferWithEvolution, w as checkBoolean, x as fuseWithEvolution, y as cutWithEvolution } from "./healingFns-TnTWI_K_.js";
18
+ import { A as setJointValue, B as createAssemblyNode, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, F as quatMultiply, G as circularPattern, H as removeChild, I as quatRotate, J as exportAssemblySTEP, K as gridPattern, L as addChild, M as sphericalJoint, N as quatFromAxisAngle, O as prismaticJoint, P as quatFromTo, R as collectShapes, S as addJoint, T as jointTransform, U as updateNode, V as findNode, W as walkAssembly, Y as createAssembly, _ as exportURDF, a as deserializeHistory, 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, p as serializeHistory, q as linearPattern, 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 countNodes } from "./threadFns-B9udL9Zs.js";
19
+ import { n as BaseSketcher2d, r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-Cw_Epicg.js";
20
+ import { a as createTypedFinder, i as wireFinder, n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-BuJ2542Q.js";
21
+ import { A as sketchEllipse, 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, _ 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-Blkxt9ei.js";
22
22
  import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps, i as measureCurvatureAtMid, l as measureSurfaceProps, n as measureArea, o as measureDistanceProps, r as measureCurvatureAt, s as measureLength, t as createDistanceQuery, u as measureVolume } from "./measureFns-a5Vx25or.js";
23
- import { t as cornerFinder } from "./cornerFinder-DUGeBIvD.js";
24
- import { a as fuseBlueprints, c as roundedRectangleBlueprint, i as cutBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-y0SSZfe2.js";
25
- import { S as reverseCurve, _ as curve2dIsOnCurve, a as isInside2D, b as curve2dSplitAt, c as scale2D, d as stretch2D, f as toSVGPathD, g as curve2dFirstPoint, h as curve2dDistanceFrom, i as getOrientation2D, l as sketchOnFace2D, m as curve2dBoundingBox, n as createCompoundBlueprint, o as mirror2D, p as translate2D, r as getBounds2D, s as rotate2D, t as createBlueprint, u as sketchOnPlane2D, v as curve2dLastPoint, x as curve2dTangentAt, y as curve2dParameter } from "./blueprintFns-BowWsZgJ.js";
26
- import { a as importSVG, c as blueprintToDXF, d as exportGltf, f as exportOBJ, i as exportSTEPConfigured, l as exportDXF, n as importSTEP, o as importSVGPathD, r as importSTL, s as exportThreeMF, t as importIGES, u as exportGlb } from "./importFns-nR9lEx22.js";
23
+ import { t as cornerFinder } from "./cornerFinder-Baa3j5Ph.js";
24
+ import { a as fuseBlueprints, c as roundedRectangleBlueprint, i as cutBlueprints, n as fuse2D, o as intersectBlueprints, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-BiPWJMSB.js";
25
+ import { S as reverseCurve, _ as curve2dIsOnCurve, a as isInside2D, b as curve2dSplitAt, c as scale2D, d as stretch2D, f as toSVGPathD, g as curve2dFirstPoint, h as curve2dDistanceFrom, i as getOrientation2D, l as sketchOnFace2D, m as curve2dBoundingBox, n as createCompoundBlueprint, o as mirror2D, p as translate2D, r as getBounds2D, s as rotate2D, t as createBlueprint, u as sketchOnPlane2D, v as curve2dLastPoint, x as curve2dTangentAt, y as curve2dParameter } from "./blueprintFns-Cvhzcmrk.js";
26
+ import { a as importSVG, c as blueprintToDXF, d as exportGltf, f as exportOBJ, i as exportSTEPConfigured, l as exportDXF, n as importSTEP, o as importSVGPathD, r as importSTL, s as exportThreeMF, t as importIGES, u as exportGlb } from "./importFns-DU6m8NVC.js";
27
27
  import { a as revolve$1, c as multiSectionSweep, d as twistExtrude, i as extrudeAll, l as supportExtrude, n as loftAll, o as complexExtrude, r as extrude$1, s as guidedSweep, t as loft$1, u as sweep$1 } from "./loftFns-CmShFQlv.js";
28
- 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, n as getFont, o as compoundSketchExtrude, p as sketchRevolve, r as loadFont, s as compoundSketchFace, t as textBlueprints, u as sketchExtrude, v as CompoundSketch } from "./textBlueprints-BnkWAqwS.js";
28
+ 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, n as getFont, o as compoundSketchExtrude, p as sketchRevolve, r as loadFont, s as compoundSketchFace, t as textBlueprints, u as sketchExtrude, v as CompoundSketch } from "./textBlueprints-gMoNCh6B.js";
29
29
  import { a as makeProjectedEdges, i as projectEdges, n as cameraLookAt, r as createCamera, s as isProjectionPlane, t as cameraFromPlane } from "./cameraFns-bk9e0F-T.js";
30
- import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-COGYk0LE.js";
30
+ import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-7Je4nat3.js";
31
31
  import { a as sharedEdges, c as wiresOfFace, i as facesOfVertex, n as edgesOfFace, o as verticesOfEdge, r as facesOfEdge, s as verticesOfFace, t as adjacentFaces } from "./adjacencyFns-BYnyXXqt.js";
32
- import { _ as createRef, a as isVertexRef, b as defaultScorer, c as resolveRefParams, d as createVertexRef, f as resolveVertexRef, g as captureHint, h as assignRoles, i as isLineageRef, l as createDerivedFaceRef, m as resolveEdgeRef, n as isEdgeRef, o as resolveLineageRef, p as createEdgeRef, r as isFaceRef, s as resolveRefIn, t as isDerivedFaceRef, u as resolveDerivedFaceRef, v as resolveRef, y as updateRoles } from "./refResolveFns-Ck6kJzLE.js";
32
+ import { _ as createRef, a as isVertexRef, b as defaultScorer, c as resolveRefParams, d as createVertexRef, f as resolveVertexRef, g as captureHint, h as assignRoles, i as isLineageRef, l as createDerivedFaceRef, m as resolveEdgeRef, n as isEdgeRef, o as resolveLineageRef, p as createEdgeRef, r as isFaceRef, s as resolveRefIn, t as isDerivedFaceRef, u as resolveDerivedFaceRef, v as resolveRef, y as updateRoles } from "./refResolveFns-BzIXnBrs.js";
33
33
  import { _ as isSuccessResponse, a as createWorkerClient, c as enqueueTask, d as rejectAll, f as isBatchRequest, g as isOperationRequest, h as isInitRequest, i as registerHandler, l as isEmpty$1, m as isErrorResponse, n as createOperationRegistry, o as createTaskQueue, p as isDisposeRequest, r as createWorkerHandler, s as dequeueTask, t as createWorkerPool, u as pendingCount } from "./workerPool-XcYX2UZ0.js";
34
- import { C as threePointArc, D as wireLoop, E as wire, S as tangentArc, T as vertex, _ as polygon, a as circle, b as sphere$1, c as cylinder, d as ellipsoid, f as face, g as offsetFace, h as line, i as bsplineApprox, l as ellipse, m as helix, n as bezier, o as compound, p as filledFace, r as box, s as cone, t as addHoles, u as ellipseArc, v as sewShells, w as torus$1, x as subFace, y as solid } from "./primitiveFns-CBrOyk5S.js";
34
+ import { C as threePointArc, D as wireLoop, E as wire, S as tangentArc, T as vertex, _ as polygon, a as circle, b as sphere$1, c as cylinder, d as ellipsoid, f as face, g as offsetFace, h as line, i as bsplineApprox, l as ellipse, m as helix, n as bezier, o as compound, p as filledFace, r as box, s as cone, t as addHoles, u as ellipseArc, v as sewShells, w as torus$1, x as subFace, y as solid } from "./primitiveFns-LYeAjO6E.js";
35
35
  //#region \0rolldown/runtime.js
36
36
  var __defProp = Object.defineProperty;
37
37
  var __exportAll = (all, no_symbols) => {
@@ -3485,6 +3485,15 @@ function applyMatrix(shape, matrix) {
3485
3485
  function transformCopy(shape, composed) {
3486
3486
  return transformCopy$1(resolve(shape), composed);
3487
3487
  }
3488
+ /**
3489
+ * Placement-only rigid move (translate / rotate) via the kernel's cheap location
3490
+ * re-tag — O(1) on occt-wasm ≥3.6.0, falling back to a copy elsewhere. Same
3491
+ * face-metadata guarantee as `translate`, at location-swap cost. Ideal for
3492
+ * placing one cached cell at N positions without paying for N deep copies.
3493
+ */
3494
+ function locate(shape, placement) {
3495
+ return locate$1(resolve(shape), placement);
3496
+ }
3488
3497
  /** Fuse two 3D shapes (boolean union). */
3489
3498
  function fuse(a, b, options) {
3490
3499
  return fuse$2(resolve(a), resolve(b), {
@@ -6976,4 +6985,4 @@ var csg_exports = /* @__PURE__ */ __exportAll({
6976
6985
  withEvaluator: () => withEvaluator
6977
6986
  });
6978
6987
  //#endregion
6979
- export { BaseSketcher2d, BlueprintSketcher, BrepBugError, BrepErrorCode, BrepWrapperError, BrepkitAdapter, CompoundSketch, DEFAULT_CAPABILITIES, DEG2RAD, DisposalScope, EXACT_BREP_CAPABILITIES, FaceSketcher, HASH_CODE_MAX, OK, OcctWasmAdapter, RAD2DEG, Sketch, Sketcher, Sketches, addChild, addHoles, addJoint, addMate, addStep, adjacentFaces, all, andThen, applyGlue, applyMatrix, approximateCurve, as2D, as3D, asTopo, assignRoles, autoHeal, bezier, blueprintToDXF, booleanPipeline, booleans_exports as booleans, boss, box, bsplineApprox, bug, cameraFromPlane, cameraLookAt, captureHint, cast, castShape, castShape3D, chamfer, chamferDistAngle as chamferDistAngleShape, chamferWithEvolution, checkAllInterferences, checkBoolean, checkInterference, circle, circularPattern, classifyPointOnFace, clearMeshCache, clone, closedWire, collect, collectShapes, colorFaces, colorShape, complexExtrude, composeTransforms, compound, compoundSketchExtrude, compoundSketchFace, compoundSketchLoft, compoundSketchRevolve, computationError, computeStraightSkeleton, cone, construction_exports as construction, convexHull, cornerFinder, countNodes, createAssembly, createAssemblyNode, createBlueprint, createCamera, createCompound, createCompoundBlueprint, createDerivedFaceRef, createDistanceQuery, createEdge, createEdgeRef, createFace, createHandle, createHistory, createKernelHandle, createMeshCache, createNamedPlane, createOperationRegistry, createPlane, createRef, createRegistry, createShell, createSolid, createTaskQueue, createVertex, createVertexRef, createWire, createWorkerClient, createWorkerHandler, createWorkerPool, csg_exports as csg, currentQuality, curve2dBoundingBox, curve2dDistanceFrom, curve2dFirstPoint, curve2dIsOnCurve, curve2dLastPoint, curve2dParameter, curve2dSplitAt, curve2dTangentAt, curveAxis, curveEndPoint, curveIsClosed, curveIsPeriodic, curveLength, curvePeriod, curvePointAt, curveStartPoint, curveTangentAt, cut, cut2D, cutAll, cutAllBisect, cutBlueprints, cutWithEvolution, cylinder, cylindricalJoint, defaultScorer, dequeueTask, describe, deserializeDrawing, deserializeHistory, fromBREP as deserializeShape, downcast, draft, draw, drawCircle, drawEllipse, drawFaceOutline, drawParametricFunction, drawPointsInterpolation, drawPolysides, drawProjection, drawRectangle, drawRoundedRectangle, drawSingleCircle, drawSingleEllipse, drawText, drawingChamfer, drawingCut, drawingFillet, drawingFuse, drawingIntersect, drawingToSketchOnPlane, drill, edgeFinder, edgesOfFace, ellipse, ellipseArc, ellipsoid, enqueueTask, err, exportAssemblySTEP, exportDXF, exportGlb, exportGltf, exportIGES, exportOBJ, exportSTEP, exportSTEPConfigured, exportSTL, exportThreeMF, exportURDF, extrude, extrudeAll, face, faceAxis, faceCenter, faceFinder, faceGeomType, faceOrientation, facesOfEdge, facesOfVertex, fieldBoolean, fieldContour, fieldOffset, fieldReinit, fieldShell, fill, filledFace, fillet, filletWithEvolution, findFacesByTag, findNode, findStep, fixSelfIntersection, fixShape, flatMap, flatten, flipFaceOrientation, flipOrientation, fontMetrics, forwardKinematics, fromBREP$1 as fromBREP, fromKernelDir, fromKernelPnt, fromKernelVec, fromNullable, fuse, fuse2D, fuseAll, fuseAllBisect, fuseBlueprints, fuseWithEvolution, gearGeometry, getActiveVoxelId, getBounds, getBounds2D, getCompSolids, getCurveType, getDisposalStats, getEdges, getFaceColor, getFaceOrigins, getFaceTags, getFaces, getFont, getHashCode, getShape as getHistoryShape, getKernel, getKernelCapabilities, getKernelTier, getNurbsCurveData, getNurbsSurfaceData, getOrientation, getOrientation2D, getPerformanceStats, getShapeColor, getShapeKind, getShells, getSingleFace, getSolids, getSurfaceType, getTagMetadata, getVertices, getVoxel, getWires, gridPattern, guidedSweep, heal, healFace, healSolid, healWire, helix, hull, importDXF, importGLB, importIGES, importOBJ, importSTEP, importSTL, importSVG, importSVGPathD, importThreeMF, importURDF, init, initFromManifold, initFromOC, initVoxel, innerWires, instance, instanceCount, instanceGrid, instancedMesh, interpolateCurve, intersect, intersect2D, intersectBlueprints, intersectWithEvolution, invalidateShapeCache, inverseKinematics, ioNs_exports as io, ioError, is2D, is3D, isBatchRequest, isChamferRadius, isClosedWire, isCompSolid, isCompound, isDerivedFaceRef, isDisposeRequest, isEdge, isEdgeRef, isEmpty, isEqualShape, isErr, isErrorResponse, isFace, isFaceRef, isFilletRadius, isInitRequest, isInside2D, isInstanced, isLineageRef, isLive, isManifoldShell, isNumber, isOk, isOperationRequest, isOrientedFace, isPlanarFace, isPlanarWire, isProjectionPlane, isEmpty$1 as isQueueEmpty, isSameShape, isShape1D, isShape3D, isShell, isSolid, isSuccessResponse, isValid, isValidSolid, isVertex, isVertexRef, isWire, iterCompSolids, iterEdges, iterFaces, iterShells, iterSolids, iterTopo, iterVertices, iterWires, jointTrajectory, jointTransform, jointsFromDH, kernelCall, kernelCallRaw, kernelCallScoped, kernelError, latticeInfill, latticeInfillShape, line, linearPattern, loadFont, loft, loftAll, makeBaseBox, makeExternalGear, makeInternalGear, makePlane, makePlanetaryGear, makeProjectedEdges, manifoldShell, map, mapBoth, mapErr, match, materialize, measureArea, measureCurvatureAt, measureCurvatureAtMid, measureDistance, measureDistanceProps, measureLength, measureLinearProps, measureSurfaceProps, measureVolume, measureVolumeProps, measurement_exports as measurement, mechanismDOF, mesh, meshEdges, meshLODs, meshLODsProgressive, meshMultiLOD, minkowski, mirror, mirror2D, mirrorDrawing, mirrorJoin, modifiers_exports as modifiers, modifyStep, moduleInitError, multiSectionSweep, normalAt, offset, offsetFace, offsetMesh, offsetShape, offsetWire2D, ok, or, orElse, organiseBlueprints, orientedFace, outerWire, patterns_exports as patterns, pendingCount, pipeline, pivotPlane, planarFace, planarJoint, planarWire, planetPlacements, pocket, pointOnSurface, pointsInside, polygon, polyhedron, polysideInnerRadius, polysidesBlueprint, positionOnCurve, prewarm, primitives_exports as primitives, prismaticJoint, projectEdges, projectPointOnFace, query_exports as query, queryError, rectangularPattern, registerHandler, registerKernel, registerKernelTier, registerOperation, registerShape, registerVoxel, rejectAll, removeChild, removeHolesFromFace, repairMesh, replayFrom, replayHistory, resetDisposalStats, resetPerformanceStats, resize, resolve, resolve3D, resolveDerivedFaceRef, resolveDirection, resolveEdgeRef, resolveLineageRef, resolvePlane, resolveRef, resolveRefIn, resolveRefParams, resolveVertexRef, reverseCurve, revoluteJoint, revolve, roof, rotate, rotate2D, rotateDrawing, roundedRectangleBlueprint, scale, scale2D, scaleDrawing, box$1 as sdfBox, capsule as sdfCapsule, cone$1 as sdfCone, cylinder$1 as sdfCylinder, fieldAxialRamp as sdfFieldAxialRamp, fieldClamp as sdfFieldClamp, fieldConst as sdfFieldConst, fieldFromSdf as sdfFieldFromSdf, fieldRadialRamp as sdfFieldRadialRamp, lattice as sdfLattice, plane as sdfPlane, roundedBox as sdfRoundedBox, sphere as sdfSphere, strutLattice as sdfStrutLattice, sweep as sdfSweep, torus as sdfTorus, section, sectionToFace, serializeHistory, setJointValue, setJointValues, setShapeOrigin, setTagMetadata, sewShells, shape, shapeToMeshInput, shapeType, sharedEdges, shell, shellMesh, shellShape, shellWithEvolution, simplify, sketchCircle, sketchEllipse, sketchExtrude, sketchFace, sketchFaceOffset, sketchHelix, sketchLoft, sketchOnFace2D, sketchOnPlane2D, sketchParametricFunction, sketchPolysides, sketchRectangle, sketchRevolve, sketchRoundedRectangle, sketchSweep, sketchText, sketchWires, sketcherStateError, slice, solid, solidFromShell, solveAssembly, sphere$1 as sphere, sphericalJoint, split, stepCount, stepsFrom, stretch2D, subFace, supportExtrude, supportsConstraintSketch, supportsProjection, surfaceFromGrid, surfaceFromImage, sweep$1 as sweep, tagFaces, tangentArc, tap, tapErr, textBlueprints, textMetrics, thicken, thread, threePointArc, toBREP, toBufferGeometryData, toGroupedBufferGeometryData, toKernelVec, toLODGeometryData, toLODGeometryLevels, toLineGeometryData, toSVGPathD, toVec2, toVec3, torus$1 as torus, tpmsLattice, transformCopy, transforms_exports as transforms, translate, translate2D, translateDrawing, translatePlane, tryCatch, tryCatchAsync, twistExtrude, typeCastError, undoLast, unsupportedError, unwrap, unwrapErr, unwrapOr, unwrapOrElse, updateNode, updateRoles, uvBounds, uvCoordinates, validSolid, validatePlanetary, validationError, variableFillet, vecAdd, vecAngle, vecCross, vecDistance, vecDot, vecEquals, vecIsZero, vecLength, vecLengthSq, vecNegate, vecNormalize, vecProjectToPlane, vecRepr, vecRotate, vecScale, vecSub, vertex, vertexFinder, vertexPosition, verticesOfEdge, verticesOfFace, voxelBoolean, voxelBooleanField, voxelBooleanFieldShapes, voxelBooleanShapes, voxelField, voxelFieldFromShape, walkAssembly, windingNumbers, wire, wireFinder, wireLoop, wiresOfFace, withKernel, withKernelDir, withKernelPnt, withKernelVec, withQuality, withScope, withScopeResult, withScopeResultAsync, withTier, zip as zipResults };
6988
+ export { BaseSketcher2d, BlueprintSketcher, BrepBugError, BrepErrorCode, BrepWrapperError, BrepkitAdapter, CompoundSketch, DEFAULT_CAPABILITIES, DEG2RAD, DisposalScope, EXACT_BREP_CAPABILITIES, FaceSketcher, HASH_CODE_MAX, OK, OcctWasmAdapter, RAD2DEG, Sketch, Sketcher, Sketches, addChild, addHoles, addJoint, addMate, addStep, adjacentFaces, all, andThen, applyGlue, applyMatrix, approximateCurve, as2D, as3D, asTopo, assignRoles, autoHeal, bezier, blueprintToDXF, booleanPipeline, booleans_exports as booleans, boss, box, bsplineApprox, bug, cameraFromPlane, cameraLookAt, captureHint, cast, castShape, castShape3D, chamfer, chamferDistAngle as chamferDistAngleShape, chamferWithEvolution, checkAllInterferences, checkBoolean, checkInterference, circle, circularPattern, classifyPointOnFace, clearMeshCache, clone, closedWire, collect, collectShapes, colorFaces, colorShape, complexExtrude, composeTransforms, compound, compoundSketchExtrude, compoundSketchFace, compoundSketchLoft, compoundSketchRevolve, computationError, computeStraightSkeleton, cone, construction_exports as construction, convexHull, cornerFinder, countNodes, createAssembly, createAssemblyNode, createBlueprint, createCamera, createCompound, createCompoundBlueprint, createDerivedFaceRef, createDistanceQuery, createEdge, createEdgeRef, createFace, createHandle, createHistory, createKernelHandle, createMeshCache, createNamedPlane, createOperationRegistry, createPlane, createRef, createRegistry, createShell, createSolid, createTaskQueue, createVertex, createVertexRef, createWire, createWorkerClient, createWorkerHandler, createWorkerPool, csg_exports as csg, currentQuality, curve2dBoundingBox, curve2dDistanceFrom, curve2dFirstPoint, curve2dIsOnCurve, curve2dLastPoint, curve2dParameter, curve2dSplitAt, curve2dTangentAt, curveAxis, curveEndPoint, curveIsClosed, curveIsPeriodic, curveLength, curvePeriod, curvePointAt, curveStartPoint, curveTangentAt, cut, cut2D, cutAll, cutAllBisect, cutBlueprints, cutWithEvolution, cylinder, cylindricalJoint, defaultScorer, dequeueTask, describe, deserializeDrawing, deserializeHistory, fromBREP as deserializeShape, downcast, draft, draw, drawCircle, drawEllipse, drawFaceOutline, drawParametricFunction, drawPointsInterpolation, drawPolysides, drawProjection, drawRectangle, drawRoundedRectangle, drawSingleCircle, drawSingleEllipse, drawText, drawingChamfer, drawingCut, drawingFillet, drawingFuse, drawingIntersect, drawingToSketchOnPlane, drill, edgeFinder, edgesOfFace, ellipse, ellipseArc, ellipsoid, enqueueTask, err, exportAssemblySTEP, exportDXF, exportGlb, exportGltf, exportIGES, exportOBJ, exportSTEP, exportSTEPConfigured, exportSTL, exportThreeMF, exportURDF, extrude, extrudeAll, face, faceAxis, faceCenter, faceFinder, faceGeomType, faceOrientation, facesOfEdge, facesOfVertex, fieldBoolean, fieldContour, fieldOffset, fieldReinit, fieldShell, fill, filledFace, fillet, filletWithEvolution, findFacesByTag, findNode, findStep, fixSelfIntersection, fixShape, flatMap, flatten, flipFaceOrientation, flipOrientation, fontMetrics, forwardKinematics, fromBREP$1 as fromBREP, fromKernelDir, fromKernelPnt, fromKernelVec, fromNullable, fuse, fuse2D, fuseAll, fuseAllBisect, fuseBlueprints, fuseWithEvolution, gearGeometry, getActiveVoxelId, getBounds, getBounds2D, getCompSolids, getCurveType, getDisposalStats, getEdges, getFaceColor, getFaceOrigins, getFaceTags, getFaces, getFont, getHashCode, getShape as getHistoryShape, getKernel, getKernelCapabilities, getKernelTier, getNurbsCurveData, getNurbsSurfaceData, getOrientation, getOrientation2D, getPerformanceStats, getShapeColor, getShapeKind, getShells, getSingleFace, getSolids, getSurfaceType, getTagMetadata, getVertices, getVoxel, getWires, gridPattern, guidedSweep, heal, healFace, healSolid, healWire, helix, hull, importDXF, importGLB, importIGES, importOBJ, importSTEP, importSTL, importSVG, importSVGPathD, importThreeMF, importURDF, init, initFromManifold, initFromOC, initVoxel, innerWires, instance, instanceCount, instanceGrid, instancedMesh, interpolateCurve, intersect, intersect2D, intersectBlueprints, intersectWithEvolution, invalidateShapeCache, inverseKinematics, ioNs_exports as io, ioError, is2D, is3D, isBatchRequest, isChamferRadius, isClosedWire, isCompSolid, isCompound, isDerivedFaceRef, isDisposeRequest, isEdge, isEdgeRef, isEmpty, isEqualShape, isErr, isErrorResponse, isFace, isFaceRef, isFilletRadius, isInitRequest, isInside2D, isInstanced, isLineageRef, isLive, isManifoldShell, isNumber, isOk, isOperationRequest, isOrientedFace, isPlanarFace, isPlanarWire, isProjectionPlane, isEmpty$1 as isQueueEmpty, isSameShape, isShape1D, isShape3D, isShell, isSolid, isSuccessResponse, isValid, isValidSolid, isVertex, isVertexRef, isWire, iterCompSolids, iterEdges, iterFaces, iterShells, iterSolids, iterTopo, iterVertices, iterWires, jointTrajectory, jointTransform, jointsFromDH, kernelCall, kernelCallRaw, kernelCallScoped, kernelError, latticeInfill, latticeInfillShape, line, linearPattern, loadFont, locate, loft, loftAll, makeBaseBox, makeExternalGear, makeInternalGear, makePlane, makePlanetaryGear, makeProjectedEdges, manifoldShell, map, mapBoth, mapErr, match, materialize, measureArea, measureCurvatureAt, measureCurvatureAtMid, measureDistance, measureDistanceProps, measureLength, measureLinearProps, measureSurfaceProps, measureVolume, measureVolumeProps, measurement_exports as measurement, mechanismDOF, mesh, meshEdges, meshLODs, meshLODsProgressive, meshMultiLOD, minkowski, mirror, mirror2D, mirrorDrawing, mirrorJoin, modifiers_exports as modifiers, modifyStep, moduleInitError, multiSectionSweep, normalAt, offset, offsetFace, offsetMesh, offsetShape, offsetWire2D, ok, or, orElse, organiseBlueprints, orientedFace, outerWire, patterns_exports as patterns, pendingCount, pipeline, pivotPlane, planarFace, planarJoint, planarWire, planetPlacements, pocket, pointOnSurface, pointsInside, polygon, polyhedron, polysideInnerRadius, polysidesBlueprint, positionOnCurve, prewarm, primitives_exports as primitives, prismaticJoint, projectEdges, projectPointOnFace, query_exports as query, queryError, rectangularPattern, registerHandler, registerKernel, registerKernelTier, registerOperation, registerShape, registerVoxel, rejectAll, removeChild, removeHolesFromFace, repairMesh, replayFrom, replayHistory, resetDisposalStats, resetPerformanceStats, resize, resolve, resolve3D, resolveDerivedFaceRef, resolveDirection, resolveEdgeRef, resolveLineageRef, resolvePlane, resolveRef, resolveRefIn, resolveRefParams, resolveVertexRef, reverseCurve, revoluteJoint, revolve, roof, rotate, rotate2D, rotateDrawing, roundedRectangleBlueprint, scale, scale2D, scaleDrawing, box$1 as sdfBox, capsule as sdfCapsule, cone$1 as sdfCone, cylinder$1 as sdfCylinder, fieldAxialRamp as sdfFieldAxialRamp, fieldClamp as sdfFieldClamp, fieldConst as sdfFieldConst, fieldFromSdf as sdfFieldFromSdf, fieldRadialRamp as sdfFieldRadialRamp, lattice as sdfLattice, plane as sdfPlane, roundedBox as sdfRoundedBox, sphere as sdfSphere, strutLattice as sdfStrutLattice, sweep as sdfSweep, torus as sdfTorus, section, sectionToFace, serializeHistory, setJointValue, setJointValues, setShapeOrigin, setTagMetadata, sewShells, shape, shapeToMeshInput, shapeType, sharedEdges, shell, shellMesh, shellShape, shellWithEvolution, simplify, sketchCircle, sketchEllipse, sketchExtrude, sketchFace, sketchFaceOffset, sketchHelix, sketchLoft, sketchOnFace2D, sketchOnPlane2D, sketchParametricFunction, sketchPolysides, sketchRectangle, sketchRevolve, sketchRoundedRectangle, sketchSweep, sketchText, sketchWires, sketcherStateError, slice, solid, solidFromShell, solveAssembly, sphere$1 as sphere, sphericalJoint, split, stepCount, stepsFrom, stretch2D, subFace, supportExtrude, supportsConstraintSketch, supportsProjection, surfaceFromGrid, surfaceFromImage, sweep$1 as sweep, tagFaces, tangentArc, tap, tapErr, textBlueprints, textMetrics, thicken, thread, threePointArc, toBREP, toBufferGeometryData, toGroupedBufferGeometryData, toKernelVec, toLODGeometryData, toLODGeometryLevels, toLineGeometryData, toSVGPathD, toVec2, toVec3, torus$1 as torus, tpmsLattice, transformCopy, transforms_exports as transforms, translate, translate2D, translateDrawing, translatePlane, tryCatch, tryCatchAsync, twistExtrude, typeCastError, undoLast, unsupportedError, unwrap, unwrapErr, unwrapOr, unwrapOrElse, updateNode, updateRoles, uvBounds, uvCoordinates, validSolid, validatePlanetary, validationError, variableFillet, vecAdd, vecAngle, vecCross, vecDistance, vecDot, vecEquals, vecIsZero, vecLength, vecLengthSq, vecNegate, vecNormalize, vecProjectToPlane, vecRepr, vecRotate, vecScale, vecSub, vertex, vertexFinder, vertexPosition, verticesOfEdge, verticesOfFace, voxelBoolean, voxelBooleanField, voxelBooleanFieldShapes, voxelBooleanShapes, voxelField, voxelFieldFromShape, walkAssembly, windingNumbers, wire, wireFinder, wireLoop, wiresOfFace, withKernel, withKernelDir, withKernelPnt, withKernelVec, withQuality, withScope, withScopeResult, withScopeResultAsync, withTier, zip as zipResults };
@@ -1,6 +1,6 @@
1
1
  import { t as DEG2RAD } from "./constants-ITRzCnCp.js";
2
2
  import { n as getAtOrThrow } from "./arrayAccess-DrUGPADn.js";
3
- import { _ as samePoint, p as distance2d, u as angle2d } from "./helpers-DhJwFrkC.js";
3
+ import { _ as samePoint, p as distance2d, u as angle2d } from "./helpers-BuJ2542Q.js";
4
4
  //#region 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-BOVyEYGH.cjs");
2
2
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
3
- const require_helpers = require("./helpers-BSLPCflF.cjs");
3
+ const require_helpers = require("./helpers-Cy4IH0Dc.cjs");
4
4
  //#region src/query/cornerFinder.ts
5
5
  var PI_2 = 2 * Math.PI;
6
6
  function positiveHalfAngle(angle) {
@@ -10,12 +10,12 @@ import { d as pointOnSurface, l as normalAt, m as uvBounds, r as faceCenter, u a
10
10
  import { h as offsetWire2D, i as curveIsClosed, l as curveStartPoint } from "./curveFns-CcSn4-Rf.js";
11
11
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
12
12
  import { c as makeBSplineApproximation, d as makeCircle, f as makeEllipse, m as makeHelix, r as makeFace, s as assembleWire } from "./surfaceBuilders-rkE-jE90.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-7rtwqUHZ.js";
14
- import { _ as samePoint$1, b as subtract2d, c as PRECISION_OFFSET, l as add2d, y as squareDistance2d } from "./helpers-DhJwFrkC.js";
15
- import { _ as Curve2D, a as edgeToCurve, c as make2dCircle, d as make2dInerpolatedBSplineCurve, f as make2dSegmentCurve, g as approximateAsSvgCompatibleCurve, i as curvesAsEdgesOnPlane, l as make2dEllipse, o as make2dArcFromCenter, t as Blueprint, v as deserializeCurve2D, y as BoundingBox2d } from "./blueprint-Dw0QqImu.js";
16
- import { t as cornerFinder } from "./cornerFinder-DUGeBIvD.js";
17
- import { c as roundedRectangleBlueprint, n as fuse2D, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-y0SSZfe2.js";
18
- import { _ as wrapSketchDataArray, a as Sketch, g as wrapSketchData, i as Sketches, t as textBlueprints } from "./textBlueprints-BnkWAqwS.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-Cw_Epicg.js";
14
+ import { _ as samePoint$1, b as subtract2d, c as PRECISION_OFFSET, l as add2d, y as squareDistance2d } from "./helpers-BuJ2542Q.js";
15
+ import { _ as Curve2D, a as edgeToCurve, c as make2dCircle, d as make2dInerpolatedBSplineCurve, f as make2dSegmentCurve, g as approximateAsSvgCompatibleCurve, i as curvesAsEdgesOnPlane, l as make2dEllipse, o as make2dArcFromCenter, t as Blueprint, v as deserializeCurve2D, y as BoundingBox2d } from "./blueprint-ccFH0CU4.js";
16
+ import { t as cornerFinder } from "./cornerFinder-Baa3j5Ph.js";
17
+ import { c as roundedRectangleBlueprint, n as fuse2D, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-BiPWJMSB.js";
18
+ import { _ as wrapSketchDataArray, a as Sketch, g as wrapSketchData, i as Sketches, t as textBlueprints } from "./textBlueprints-gMoNCh6B.js";
19
19
  import { i as projectEdges, t as cameraFromPlane } from "./cameraFns-bk9e0F-T.js";
20
20
  //#region src/2d/lib/stitching.ts
21
21
  /**
@@ -1,4 +1,4 @@
1
- const require_textBlueprints = require("./textBlueprints-D5lsZswr.cjs");
1
+ const require_textBlueprints = require("./textBlueprints-BvD0c2S0.cjs");
2
2
  const require_shapeTypes = require("./shapeTypes-BTTwjHy5.cjs");
3
3
  const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
4
4
  const require_errors = require("./errors-CXJtc4I7.cjs");
@@ -11,11 +11,11 @@ const require_faceFns = require("./faceFns-BV0GnTlt.cjs");
11
11
  const require_curveFns = require("./curveFns-DgUJpH4z.cjs");
12
12
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
13
13
  const require_surfaceBuilders = require("./surfaceBuilders-UyyfZy8w.cjs");
14
- const require_blueprintSketcher = require("./blueprintSketcher-RK-cH6ps.cjs");
15
- const require_helpers = require("./helpers-BSLPCflF.cjs");
16
- const require_blueprint = require("./blueprint-BwkD2qeC.cjs");
17
- const require_cornerFinder = require("./cornerFinder-B4q88TRb.cjs");
18
- const require_boolean2D = require("./boolean2D-CZUEOoAh.cjs");
14
+ const require_blueprintSketcher = require("./blueprintSketcher-BY6R2umG.cjs");
15
+ const require_helpers = require("./helpers-Cy4IH0Dc.cjs");
16
+ const require_blueprint = require("./blueprint-Bb6y8xmG.cjs");
17
+ const require_cornerFinder = require("./cornerFinder-DaHVcKSL.cjs");
18
+ const require_boolean2D = require("./boolean2D-mBIMAMP3.cjs");
19
19
  const require_cameraFns = require("./cameraFns-uo1sZbBT.cjs");
20
20
  //#region src/2d/lib/stitching.ts
21
21
  /**
@@ -3,9 +3,9 @@ const require_errors = require("./errors-CXJtc4I7.cjs");
3
3
  const require_topologyQueryFns = require("./topologyQueryFns-CoXVHuN7.cjs");
4
4
  const require_constants = require("./constants-BOVyEYGH.cjs");
5
5
  const require_faceFns = require("./faceFns-BV0GnTlt.cjs");
6
- const require_shapeFns = require("./shapeFns-ybo0INGL.cjs");
6
+ const require_shapeFns = require("./shapeFns-aI4Hr4XV.cjs");
7
7
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
8
- const require_solidBuilders = require("./solidBuilders-DiUv_mD0.cjs");
8
+ const require_solidBuilders = require("./solidBuilders-DSokszEg.cjs");
9
9
  //#region src/topology/threeHelpers.ts
10
10
  /**
11
11
  * Convert a ShapeMesh into BufferGeometry-compatible typed arrays.
@@ -3,9 +3,9 @@ import { A as ok, T as isOk, b as err, d as validationError, i as kernelError, l
3
3
  import { c as getFaces, i as getCachedIsValid, m as invalidateShapeCache, p as getWires, s as getEdges } from "./topologyQueryFns-BeKaWpNm.js";
4
4
  import { n as HASH_CODE_MAX } from "./constants-ITRzCnCp.js";
5
5
  import { v as downcast } from "./faceFns-B86WGqDg.js";
6
- import { g as collectInputFaceHashes, v as propagateAllMetadata } from "./shapeFns-DrZOVwHX.js";
6
+ import { _ as collectInputFaceHashes, y as propagateAllMetadata } from "./shapeFns-DJHbIsRX.js";
7
7
  import { t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
8
- import { f as cut, h as fuseAll, m as fuse, p as cutAll } from "./solidBuilders-C32wXQWG.js";
8
+ import { f as cut, h as fuseAll, m as fuse, p as cutAll } from "./solidBuilders-CjrjwCtG.js";
9
9
  //#region src/topology/threeHelpers.ts
10
10
  /**
11
11
  * Convert a ShapeMesh into BufferGeometry-compatible typed arrays.
@@ -4,7 +4,7 @@ import { c as getFaces, f as getVertices, p as getWires, s as getEdges } from ".
4
4
  import { t as DEG2RAD } from "./constants-ITRzCnCp.js";
5
5
  import { a as vecDot, d as vecNormalize } from "./vecOps-SKPRvPH-.js";
6
6
  import { l as normalAt, s as getSurfaceType } from "./faceFns-B86WGqDg.js";
7
- import { a as isSameShape, n as getHashCode } from "./shapeFns-DrZOVwHX.js";
7
+ import { a as isSameShape, n as getHashCode } from "./shapeFns-DJHbIsRX.js";
8
8
  import { f as getCurveType, i as curveIsClosed, o as curveLength } from "./curveFns-CcSn4-Rf.js";
9
9
  import { n as measureArea } from "./measureFns-a5Vx25or.js";
10
10
  //#region src/utils/vec2d.ts
@@ -4,7 +4,7 @@ const require_topologyQueryFns = require("./topologyQueryFns-CoXVHuN7.cjs");
4
4
  const require_constants = require("./constants-BOVyEYGH.cjs");
5
5
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
6
6
  const require_faceFns = require("./faceFns-BV0GnTlt.cjs");
7
- const require_shapeFns = require("./shapeFns-ybo0INGL.cjs");
7
+ const require_shapeFns = require("./shapeFns-aI4Hr4XV.cjs");
8
8
  const require_curveFns = require("./curveFns-DgUJpH4z.cjs");
9
9
  const require_measureFns = require("./measureFns-DblG0Yaz.cjs");
10
10
  //#region src/utils/vec2d.ts
@@ -2,7 +2,7 @@ const require_shapeTypes = require("./shapeTypes-BTTwjHy5.cjs");
2
2
  const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
3
3
  const require_errors = require("./errors-CXJtc4I7.cjs");
4
4
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
5
- const require_blueprint = require("./blueprint-BwkD2qeC.cjs");
5
+ const require_blueprint = require("./blueprint-Bb6y8xmG.cjs");
6
6
  //#region src/io/objExportFns.ts
7
7
  /** Read a vec3 from a typed array at the given vertex index. */
8
8
  function vec3At(arr, i) {
@@ -2,7 +2,7 @@ import { Z as getKernel, t as castShape } from "./shapeTypes-Dpu6mD3m.js";
2
2
  import { n as wasmIndex, t as vec3At$1 } from "./vec3-Dpha8d5k.js";
3
3
  import { A as ok, b as err, r as ioError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
4
4
  import { n as getAtOrThrow } from "./arrayAccess-DrUGPADn.js";
5
- import { f as make2dSegmentCurve, m as make2dThreePointArc, s as make2dBezierCurve, t as Blueprint } from "./blueprint-Dw0QqImu.js";
5
+ import { f as make2dSegmentCurve, m as make2dThreePointArc, s as make2dBezierCurve, t as Blueprint } from "./blueprint-ccFH0CU4.js";
6
6
  //#region src/io/objExportFns.ts
7
7
  /** Read a vec3 from a typed array at the given vertex index. */
8
8
  function vec3At(arr, i) {
package/dist/index.d.ts CHANGED
@@ -142,7 +142,7 @@ export type { Shapeable, WrappedMarker, FinderFn, FilletRadius, ChamferDistance,
142
142
  export { resolve, resolve3D } from './topology/apiTypes.js';
143
143
  export { box, cylinder, sphere, cone, torus, ellipsoid, line, circle, ellipse, helix, threePointArc, ellipseArc, bsplineApprox, bezier, tangentArc, wire, wireLoop, face, filledFace, subFace, polygon, vertex, compound, solid, offsetFace, sewShells, addHoles, type BoxOptions, type CylinderOptions, type SphereOptions, type ConeOptions, type TorusOptions, type EllipsoidOptions, type CircleOptions, type EllipseOptions, type HelixOptions, type EllipseArcOptions, } from './topology/primitiveFns.js';
144
144
  export { fill } from './topology/surfaceBuilders.js';
145
- export { translate, rotate, mirror, scale, clone, applyMatrix, composeTransforms, transformCopy, type TransformOp, type ComposedTransform, fuse, cut, fuseAll, cutAll, intersect, section, sectionToFace, split, slice, fillet, chamfer, shell, offset, thicken, draft, heal, simplify, mesh, meshEdges, describe, toBREP, fromBREP, isValid, isEmpty, type RotateOptions, type MirrorOptions, type ScaleOptions, } from './topology/api.js';
145
+ export { translate, rotate, mirror, scale, clone, locate, applyMatrix, composeTransforms, transformCopy, type TransformOp, type ComposedTransform, fuse, cut, fuseAll, cutAll, intersect, section, sectionToFace, split, slice, fillet, chamfer, shell, offset, thicken, draft, heal, simplify, mesh, meshEdges, describe, toBREP, fromBREP, isValid, isEmpty, type RotateOptions, type MirrorOptions, type ScaleOptions, } from './topology/api.js';
146
146
  export { extrude, revolve, loft, type RevolveOptions, type LoftOptions as CleanLoftOptions, type SweepOptions as CleanSweepOptions, } from './operations/api.js';
147
147
  export { loftAll, type LoftAllEntry } from './operations/loftFns.js';
148
148
  export { thread, type ThreadOptions } from './operations/threadFns.js';
package/dist/io.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_meshFns = require("./meshFns-1hQSn1p2.cjs");
3
- const require_importFns = require("./importFns-CgMQIi0z.cjs");
2
+ const require_meshFns = require("./meshFns-HyzvCIhb.cjs");
3
+ const require_importFns = require("./importFns-2X1Bh_-e.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-DbmidUzH.js";
2
- import { a as importSVG, c as blueprintToDXF, d as exportGltf, f as exportOBJ, i as exportSTEPConfigured, l as exportDXF, n as importSTEP, o as importSVGPathD, r as importSTL, s as exportThreeMF, t as importIGES, u as exportGlb } from "./importFns-nR9lEx22.js";
1
+ import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-DBsxqJd3.js";
2
+ import { a as importSVG, c as blueprintToDXF, d as exportGltf, f as exportOBJ, i as exportSTEPConfigured, l as exportDXF, n as importSTEP, o as importSVGPathD, r as importSTL, s as exportThreeMF, t as importIGES, u as exportGlb } from "./importFns-DU6m8NVC.js";
3
3
  export { blueprintToDXF, exportDXF, exportGlb, exportGltf, exportIGES, exportOBJ, exportSTEP, exportSTEPConfigured, exportSTL, exportThreeMF, importIGES, importSTEP, importSTL, importSVG, importSVGPathD };
@@ -1,7 +1,7 @@
1
1
  import { Z as getKernel, gt as qualityDeflection } from "./shapeTypes-Dpu6mD3m.js";
2
2
  import { A as ok, b as err, r as ioError } from "./errors-DNWJsfVU.js";
3
3
  import { d as getSolids, n as getBounds } from "./topologyQueryFns-BeKaWpNm.js";
4
- import { A as getFaceOrigins } from "./shapeFns-DrZOVwHX.js";
4
+ import { j as getFaceOrigins } from "./shapeFns-DJHbIsRX.js";
5
5
  //#region src/topology/meshCache.ts
6
6
  /**
7
7
  * Build a parameter key for the inner cache map (excludes shape identity).
@@ -1,7 +1,7 @@
1
1
  const require_shapeTypes = require("./shapeTypes-BTTwjHy5.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
3
  const require_topologyQueryFns = require("./topologyQueryFns-CoXVHuN7.cjs");
4
- const require_shapeFns = require("./shapeFns-ybo0INGL.cjs");
4
+ const require_shapeFns = require("./shapeFns-aI4Hr4XV.cjs");
5
5
  //#region src/topology/meshCache.ts
6
6
  /**
7
7
  * Build a parameter key for the inner cache map (excludes shape identity).
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_threadFns = require("./threadFns-BqWHWpea.cjs");
2
+ const require_threadFns = require("./threadFns-cKaZIY34.cjs");
3
3
  const require_loftFns = require("./loftFns-fpTmrIdd.cjs");
4
4
  exports.addChild = require_threadFns.addChild;
5
5
  exports.addJoint = require_threadFns.addJoint;
@@ -1,3 +1,3 @@
1
- import { A as setJointValue, B as createAssemblyNode, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, G as circularPattern, H as removeChild, J as exportAssemblySTEP, K as gridPattern, L as addChild, M as sphericalJoint, O as prismaticJoint, R as collectShapes, S as addJoint, T as jointTransform, U as updateNode, V as findNode, W as walkAssembly, 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, q as linearPattern, 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 countNodes } from "./threadFns-KbYZu7Q9.js";
1
+ import { A as setJointValue, B as createAssemblyNode, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, G as circularPattern, H as removeChild, J as exportAssemblySTEP, K as gridPattern, L as addChild, M as sphericalJoint, O as prismaticJoint, R as collectShapes, S as addJoint, T as jointTransform, U as updateNode, V as findNode, W as walkAssembly, 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, q as linearPattern, 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 countNodes } from "./threadFns-B9udL9Zs.js";
2
2
  import { d as twistExtrude, l as supportExtrude, o as complexExtrude, u as sweep } from "./loftFns-CmShFQlv.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,9 +1,9 @@
1
1
  const require_shapeTypes = require("./shapeTypes-BTTwjHy5.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
3
  const require_constants = require("./constants-BOVyEYGH.cjs");
4
- const require_shapeFns = require("./shapeFns-ybo0INGL.cjs");
4
+ const require_shapeFns = require("./shapeFns-aI4Hr4XV.cjs");
5
5
  const require_surfaceBuilders = require("./surfaceBuilders-UyyfZy8w.cjs");
6
- const require_solidBuilders = require("./solidBuilders-DiUv_mD0.cjs");
6
+ const require_solidBuilders = require("./solidBuilders-DSokszEg.cjs");
7
7
  //#region src/topology/primitiveFns.ts
8
8
  /**
9
9
  * Create a box with the given dimensions.
@@ -1,9 +1,9 @@
1
1
  import { Z as getKernel, c as createSolid, x as isClosedWire } from "./shapeTypes-Dpu6mD3m.js";
2
2
  import { A as ok, b as err, d as validationError, v as andThen } from "./errors-DNWJsfVU.js";
3
3
  import { t as DEG2RAD } from "./constants-ITRzCnCp.js";
4
- import { h as translate } from "./shapeFns-DrZOVwHX.js";
4
+ import { g as translate } from "./shapeFns-DJHbIsRX.js";
5
5
  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-rkE-jE90.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-C32wXQWG.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-CjrjwCtG.js";
7
7
  //#region src/topology/primitiveFns.ts
8
8
  /**
9
9
  * Create a box with the given dimensions.
package/dist/query.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_helpers = require("./helpers-BSLPCflF.cjs");
3
- const require_cornerFinder = require("./cornerFinder-B4q88TRb.cjs");
2
+ const require_helpers = require("./helpers-Cy4IH0Dc.cjs");
3
+ const require_cornerFinder = require("./cornerFinder-DaHVcKSL.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-DhJwFrkC.js";
2
- import { t as cornerFinder } from "./cornerFinder-DUGeBIvD.js";
1
+ import { n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-BuJ2542Q.js";
2
+ import { t as cornerFinder } from "./cornerFinder-Baa3j5Ph.js";
3
3
  export { cornerFinder, edgeFinder, faceFinder, getSingleFace };
@@ -1,6 +1,6 @@
1
1
  const require_topologyQueryFns = require("./topologyQueryFns-CoXVHuN7.cjs");
2
2
  const require_faceFns = require("./faceFns-BV0GnTlt.cjs");
3
- const require_shapeFns = require("./shapeFns-ybo0INGL.cjs");
3
+ const require_shapeFns = require("./shapeFns-aI4Hr4XV.cjs");
4
4
  const require_measureFns = require("./measureFns-DblG0Yaz.cjs");
5
5
  const require_adjacencyFns = require("./adjacencyFns-d8ZabkvX.cjs");
6
6
  //#region src/topology/shapeRef/scoring.ts
@@ -1,6 +1,6 @@
1
1
  import { S as vertexPosition, c as getFaces } from "./topologyQueryFns-BeKaWpNm.js";
2
2
  import { i as faceGeomType, l as normalAt, r as faceCenter } from "./faceFns-B86WGqDg.js";
3
- import { n as getHashCode } from "./shapeFns-DrZOVwHX.js";
3
+ import { n as getHashCode } from "./shapeFns-DJHbIsRX.js";
4
4
  import { n as measureArea, s as measureLength } from "./measureFns-a5Vx25or.js";
5
5
  import { a as sharedEdges, i as facesOfVertex, o as verticesOfEdge, r as facesOfEdge, s as verticesOfFace, t as adjacentFaces } from "./adjacencyFns-BYnyXXqt.js";
6
6
  //#region src/topology/shapeRef/scoring.ts
@@ -644,6 +644,31 @@ function composeTransforms(ops) {
644
644
  };
645
645
  }
646
646
  /**
647
+ * Placement-only rigid move (translate / rotate) via the kernel's cheap location
648
+ * re-tag — an O(1) `TopLoc_Location` swap on occt-wasm ≥3.6.0, falling back to a
649
+ * copying transform on kernels without it. Unlike `translate` / `rotate` (which
650
+ * deep-copy through the history-tracking path), `locate` shares the source
651
+ * geometry and only re-tags its placement, then re-keys face metadata
652
+ * (tags/colors) onto the moved faces so it survives — the same metadata
653
+ * guarantee `translate` gives, at location-swap cost. For per-position placement
654
+ * of one cached cell (template instancing), this is the move without the copy.
655
+ *
656
+ * Accepts a single op or an ordered list (applied first-to-last, e.g. rotate
657
+ * then translate). Non-rigid ops (`scale`) aren't a placement and don't belong
658
+ * here — use `applyMatrix` for those.
659
+ */
660
+ function locate(shape, placement) {
661
+ const { trsf, cleanup } = composeTransforms("type" in placement ? [placement] : placement);
662
+ let moved;
663
+ try {
664
+ moved = castShape(getKernel().locate(shape.wrapped, trsf));
665
+ } finally {
666
+ cleanup();
667
+ }
668
+ if (hasAnyMetadata(shape)) propagateMetadataThroughRelocation(shape, moved);
669
+ return moved;
670
+ }
671
+ /**
647
672
  * Clone a shape and apply a pre-composed transform in a single kernel operation.
648
673
  * Much faster than separate clone() + translate() + rotate() calls.
649
674
  */
@@ -693,4 +718,4 @@ function simplify(shape) {
693
718
  return kernelCall(() => getKernel().simplify(shape.wrapped), BrepErrorCode.SIMPLIFY_FAILED, "Failed to simplify shape");
694
719
  }
695
720
  //#endregion
696
- export { getFaceOrigins as A, getFaceColor as C, getTagMetadata as D, getFaceTags as E, setTagMetadata as O, colorShape as S, findFacesByTag as T, hasAnyMetadata as _, isSameShape as a, propagateMetadataThroughRelocation as b, applyMatrix as c, resize as d, rotate as f, collectInputFaceHashes as g, translate as h, isEqualShape as i, setShapeOrigin as j, tagFaces as k, composeTransforms as l, transformCopy as m, getHashCode as n, simplify as o, scale as p, isEmpty as r, toBREP as s, clone as t, mirror as u, propagateAllMetadata as v, getShapeColor as w, colorFaces as x, propagateMetadataByHash as y };
721
+ export { tagFaces as A, colorShape as C, getFaceTags as D, findFacesByTag as E, setShapeOrigin as M, getTagMetadata as O, colorFaces as S, getShapeColor as T, collectInputFaceHashes as _, isSameShape as a, propagateMetadataByHash as b, applyMatrix as c, mirror as d, resize as f, translate as g, transformCopy as h, isEqualShape as i, getFaceOrigins as j, setTagMetadata as k, composeTransforms as l, scale as m, getHashCode as n, simplify as o, rotate as p, isEmpty as r, toBREP as s, clone as t, locate as u, hasAnyMetadata as v, getFaceColor as w, propagateMetadataThroughRelocation as x, propagateAllMetadata as y };
@@ -644,6 +644,31 @@ function composeTransforms(ops) {
644
644
  };
645
645
  }
646
646
  /**
647
+ * Placement-only rigid move (translate / rotate) via the kernel's cheap location
648
+ * re-tag — an O(1) `TopLoc_Location` swap on occt-wasm ≥3.6.0, falling back to a
649
+ * copying transform on kernels without it. Unlike `translate` / `rotate` (which
650
+ * deep-copy through the history-tracking path), `locate` shares the source
651
+ * geometry and only re-tags its placement, then re-keys face metadata
652
+ * (tags/colors) onto the moved faces so it survives — the same metadata
653
+ * guarantee `translate` gives, at location-swap cost. For per-position placement
654
+ * of one cached cell (template instancing), this is the move without the copy.
655
+ *
656
+ * Accepts a single op or an ordered list (applied first-to-last, e.g. rotate
657
+ * then translate). Non-rigid ops (`scale`) aren't a placement and don't belong
658
+ * here — use `applyMatrix` for those.
659
+ */
660
+ function locate(shape, placement) {
661
+ const { trsf, cleanup } = composeTransforms("type" in placement ? [placement] : placement);
662
+ let moved;
663
+ try {
664
+ moved = require_shapeTypes.castShape(require_shapeTypes.getKernel().locate(shape.wrapped, trsf));
665
+ } finally {
666
+ cleanup();
667
+ }
668
+ if (hasAnyMetadata(shape)) propagateMetadataThroughRelocation(shape, moved);
669
+ return moved;
670
+ }
671
+ /**
647
672
  * Clone a shape and apply a pre-composed transform in a single kernel operation.
648
673
  * Much faster than separate clone() + translate() + rotate() calls.
649
674
  */
@@ -795,6 +820,12 @@ Object.defineProperty(exports, "isSameShape", {
795
820
  return isSameShape;
796
821
  }
797
822
  });
823
+ Object.defineProperty(exports, "locate", {
824
+ enumerable: true,
825
+ get: function() {
826
+ return locate;
827
+ }
828
+ });
798
829
  Object.defineProperty(exports, "mirror", {
799
830
  enumerable: true,
800
831
  get: function() {
package/dist/shapeRef.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_refResolveFns = require("./refResolveFns-BiEBAREW.cjs");
2
+ const require_refResolveFns = require("./refResolveFns-BGcsRo5a.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,2 +1,2 @@
1
- import { _ as createRef, a as isVertexRef, b as defaultScorer, c as resolveRefParams, d as createVertexRef, f as resolveVertexRef, g as captureHint, h as assignRoles, i as isLineageRef, l as createDerivedFaceRef, m as resolveEdgeRef, n as isEdgeRef, o as resolveLineageRef, p as createEdgeRef, r as isFaceRef, s as resolveRefIn, t as isDerivedFaceRef, u as resolveDerivedFaceRef, v as resolveRef, y as updateRoles } from "./refResolveFns-Ck6kJzLE.js";
1
+ import { _ as createRef, a as isVertexRef, b as defaultScorer, c as resolveRefParams, d as createVertexRef, f as resolveVertexRef, g as captureHint, h as assignRoles, i as isLineageRef, l as createDerivedFaceRef, m as resolveEdgeRef, n as isEdgeRef, o as resolveLineageRef, p as createEdgeRef, r as isFaceRef, s as resolveRefIn, t as isDerivedFaceRef, u as resolveDerivedFaceRef, v as resolveRef, y as updateRoles } from "./refResolveFns-BzIXnBrs.js";
2
2
  export { assignRoles, captureHint, createDerivedFaceRef, createEdgeRef, createRef, createVertexRef, defaultScorer, isDerivedFaceRef, isEdgeRef, isFaceRef, isLineageRef, isVertexRef, resolveDerivedFaceRef, resolveEdgeRef, resolveLineageRef, resolveRef, resolveRefIn, resolveRefParams, resolveVertexRef, updateRoles };
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-D5lsZswr.cjs");
3
- const require_blueprintSketcher = require("./blueprintSketcher-RK-cH6ps.cjs");
4
- const require_drawFns = require("./drawFns-DNxs7PAT.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-BvD0c2S0.cjs");
3
+ const require_blueprintSketcher = require("./blueprintSketcher-BY6R2umG.cjs");
4
+ const require_drawFns = require("./drawFns-NEdyNRo-.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-7rtwqUHZ.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-SQIBls6p.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-BnkWAqwS.js";
1
+ import { n as BaseSketcher2d, t as BlueprintSketcher } from "./blueprintSketcher-Cw_Epicg.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-Blkxt9ei.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-gMoNCh6B.js";
4
4
  //#region src/sketching.ts
5
5
  /**
6
6
  * brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.
@@ -5,7 +5,7 @@ import { n as HASH_CODE_MAX } from "./constants-ITRzCnCp.js";
5
5
  import { h as vecScale, t as vecAdd } from "./vecOps-SKPRvPH-.js";
6
6
  import { o as resolvePlane } from "./planeOps-DSjjtrjg.js";
7
7
  import { _ as cast, v as downcast } from "./faceFns-B86WGqDg.js";
8
- import { g as collectInputFaceHashes, v as propagateAllMetadata, y as propagateMetadataByHash } from "./shapeFns-DrZOVwHX.js";
8
+ import { _ as collectInputFaceHashes, b as propagateMetadataByHash, y as propagateAllMetadata } from "./shapeFns-DJHbIsRX.js";
9
9
  import { n as getAtOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
10
10
  import { r as makeFace } from "./surfaceBuilders-rkE-jE90.js";
11
11
  //#region src/topology/booleanFns.ts
@@ -5,7 +5,7 @@ const require_constants = require("./constants-BOVyEYGH.cjs");
5
5
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
6
6
  const require_planeOps = require("./planeOps-BA4HfgQu.cjs");
7
7
  const require_faceFns = require("./faceFns-BV0GnTlt.cjs");
8
- const require_shapeFns = require("./shapeFns-ybo0INGL.cjs");
8
+ const require_shapeFns = require("./shapeFns-aI4Hr4XV.cjs");
9
9
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
10
10
  const require_surfaceBuilders = require("./surfaceBuilders-UyyfZy8w.cjs");
11
11
  //#region src/topology/booleanFns.ts
package/dist/text.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-D5lsZswr.cjs");
3
- const require_textMetrics = require("./textMetrics-IC_IoI7l.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-BvD0c2S0.cjs");
3
+ const require_textMetrics = require("./textMetrics-BZwyjpX_.cjs");
4
4
  exports.fontMetrics = require_textMetrics.fontMetrics;
5
5
  exports.getFont = require_textBlueprints.getFont;
6
6
  exports.loadFont = require_textBlueprints.loadFont;
package/dist/text.js CHANGED
@@ -1,3 +1,3 @@
1
- import { n as getFont, r as loadFont, t as textBlueprints } from "./textBlueprints-BnkWAqwS.js";
2
- import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-COGYk0LE.js";
1
+ import { n as getFont, r as loadFont, t as textBlueprints } from "./textBlueprints-gMoNCh6B.js";
2
+ import { n as textMetrics, r as sketchText, t as fontMetrics } from "./textMetrics-7Je4nat3.js";
3
3
  export { fontMetrics, getFont, loadFont, sketchText, textBlueprints, textMetrics };
@@ -38,8 +38,8 @@ const require_faceFns = require("./faceFns-BV0GnTlt.cjs");
38
38
  const require_curveFns = require("./curveFns-DgUJpH4z.cjs");
39
39
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
40
40
  const require_surfaceBuilders = require("./surfaceBuilders-UyyfZy8w.cjs");
41
- const require_solidBuilders = require("./solidBuilders-DiUv_mD0.cjs");
42
- const require_blueprintSketcher = require("./blueprintSketcher-RK-cH6ps.cjs");
41
+ const require_solidBuilders = require("./solidBuilders-DSokszEg.cjs");
42
+ const require_blueprintSketcher = require("./blueprintSketcher-BY6R2umG.cjs");
43
43
  const require_loftFns = require("./loftFns-fpTmrIdd.cjs");
44
44
  let opentype_js = require("opentype.js");
45
45
  opentype_js = __toESM(opentype_js, 1);
@@ -7,8 +7,8 @@ import { v as downcast } from "./faceFns-B86WGqDg.js";
7
7
  import { l as curveStartPoint, u as curveTangentAt } from "./curveFns-CcSn4-Rf.js";
8
8
  import { n as getAtOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
9
9
  import { i as makeNewFaceWithinFace, r as makeFace, t as addHolesInFace } from "./surfaceBuilders-rkE-jE90.js";
10
- import { o as makeSolid, p as cutAll, t as makeCompound } from "./solidBuilders-C32wXQWG.js";
11
- import { r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-7rtwqUHZ.js";
10
+ import { o as makeSolid, p as cutAll, t as makeCompound } from "./solidBuilders-CjrjwCtG.js";
11
+ import { r as organiseBlueprints, t as BlueprintSketcher } from "./blueprintSketcher-Cw_Epicg.js";
12
12
  import { a as revolve, d as twistExtrude, o as complexExtrude, r as extrude, t as loft, u as sweep } from "./loftFns-CmShFQlv.js";
13
13
  import opentype from "opentype.js";
14
14
  //#region src/sketching/compoundSketch.ts
@@ -1,5 +1,5 @@
1
1
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
2
- import { g as wrapSketchData, i as Sketches, n as getFont, t as textBlueprints, v as CompoundSketch } from "./textBlueprints-BnkWAqwS.js";
2
+ import { g as wrapSketchData, i as Sketches, n as getFont, t as textBlueprints, v as CompoundSketch } from "./textBlueprints-gMoNCh6B.js";
3
3
  //#region src/text/sketchText.ts
4
4
  /**
5
5
  * Render text as 3D sketch outlines on a plane.
@@ -1,4 +1,4 @@
1
- const require_textBlueprints = require("./textBlueprints-D5lsZswr.cjs");
1
+ const require_textBlueprints = require("./textBlueprints-BvD0c2S0.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
3
  //#region src/text/sketchText.ts
4
4
  /**
@@ -2,11 +2,11 @@ import { B as createKernelHandle, R as DisposalScope, Y as _usingCtx, Z as getKe
2
2
  import { A as ok, T as isOk, b as err, d as validationError, n as computationError, r as ioError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
3
3
  import { d as vecNormalize, s as vecIsZero } from "./vecOps-SKPRvPH-.js";
4
4
  import { y as fromBREP } from "./faceFns-B86WGqDg.js";
5
- import { s as toBREP } from "./shapeFns-DrZOVwHX.js";
6
- import { h as fuseAll } from "./solidBuilders-C32wXQWG.js";
5
+ import { s as toBREP } from "./shapeFns-DJHbIsRX.js";
6
+ import { h as fuseAll } from "./solidBuilders-CjrjwCtG.js";
7
7
  import { t as loft } from "./loftFns-CmShFQlv.js";
8
- import { c as resolveRefParams } from "./refResolveFns-Ck6kJzLE.js";
9
- import { E as wire, h as line } from "./primitiveFns-CBrOyk5S.js";
8
+ import { c as resolveRefParams } from "./refResolveFns-BzIXnBrs.js";
9
+ import { E as wire, h as line } from "./primitiveFns-LYeAjO6E.js";
10
10
  //#region src/utils/uuid.ts
11
11
  /** Generate a v4-style UUID string using `crypto.getRandomValues`. */
12
12
  function uuidv() {
@@ -2,11 +2,11 @@ const require_shapeTypes = require("./shapeTypes-BTTwjHy5.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
3
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
4
4
  const require_faceFns = require("./faceFns-BV0GnTlt.cjs");
5
- const require_shapeFns = require("./shapeFns-ybo0INGL.cjs");
6
- const require_solidBuilders = require("./solidBuilders-DiUv_mD0.cjs");
5
+ const require_shapeFns = require("./shapeFns-aI4Hr4XV.cjs");
6
+ const require_solidBuilders = require("./solidBuilders-DSokszEg.cjs");
7
7
  const require_loftFns = require("./loftFns-fpTmrIdd.cjs");
8
- const require_refResolveFns = require("./refResolveFns-BiEBAREW.cjs");
9
- const require_primitiveFns = require("./primitiveFns-DLIWtQWA.cjs");
8
+ const require_refResolveFns = require("./refResolveFns-BGcsRo5a.cjs");
9
+ const require_primitiveFns = require("./primitiveFns-DvGRmEox.cjs");
10
10
  //#region src/utils/uuid.ts
11
11
  /** Generate a v4-style UUID string using `crypto.getRandomValues`. */
12
12
  function uuidv() {
@@ -52,6 +52,13 @@ export { composeTransforms } from './shapeFns.js';
52
52
  * Much faster than separate clone() + translate() + rotate() calls for batch patterns.
53
53
  */
54
54
  export declare function transformCopy<T extends AnyShape<Dimension>>(shape: Shapeable<T>, composed: transforms.ComposedTransform): T;
55
+ /**
56
+ * Placement-only rigid move (translate / rotate) via the kernel's cheap location
57
+ * re-tag — O(1) on occt-wasm ≥3.6.0, falling back to a copy elsewhere. Same
58
+ * face-metadata guarantee as `translate`, at location-swap cost. Ideal for
59
+ * placing one cached cell at N positions without paying for N deep copies.
60
+ */
61
+ export declare function locate<T extends AnyShape<Dimension>>(shape: Shapeable<T>, placement: transforms.TransformOp | readonly transforms.TransformOp[]): T;
55
62
  /** Fuse two 3D shapes (boolean union). */
56
63
  export declare function fuse<T extends Shape3D>(a: Shapeable<T>, b: Shapeable<Shape3D>, options?: booleans.BooleanOptions): Result<T>;
57
64
  /** Cut a tool from a base shape (boolean subtraction). */
@@ -14,7 +14,7 @@ export declare function isSameShape(a: AnyShape<Dimension>, b: AnyShape<Dimensio
14
14
  export declare function isEqualShape(a: AnyShape<Dimension>, b: AnyShape<Dimension>): boolean;
15
15
  /** Simplify a shape by merging same-domain faces/edges. Returns a new shape. */
16
16
  export declare function simplify<T extends AnyShape<Dimension>>(shape: T): Result<T>;
17
- export { translate, rotate, mirror, scale, resize, applyMatrix, composeTransforms, transformCopy, } from './transformFns.js';
17
+ export { translate, rotate, mirror, scale, resize, applyMatrix, composeTransforms, transformCopy, locate, } from './transformFns.js';
18
18
  export type { TransformOp, ComposedTransform } from './transformFns.js';
19
19
  export { getEdges, getFaces, getWires, getVertices, getSolids, getShells, getCompSolids, iterEdges, iterFaces, iterWires, iterVertices, iterSolids, iterShells, iterCompSolids, getBounds, getCachedShapeKind, describe, vertexPosition, invalidateShapeCache, } from './topologyQueryFns.js';
20
20
  export type { Bounds3D, ShapeDescription } from './topologyQueryFns.js';
@@ -42,6 +42,21 @@ export interface ComposedTransform {
42
42
  * Call `.cleanup()` on the result when done to free the kernel object.
43
43
  */
44
44
  export declare function composeTransforms(ops: readonly TransformOp[]): ComposedTransform;
45
+ /**
46
+ * Placement-only rigid move (translate / rotate) via the kernel's cheap location
47
+ * re-tag — an O(1) `TopLoc_Location` swap on occt-wasm ≥3.6.0, falling back to a
48
+ * copying transform on kernels without it. Unlike `translate` / `rotate` (which
49
+ * deep-copy through the history-tracking path), `locate` shares the source
50
+ * geometry and only re-tags its placement, then re-keys face metadata
51
+ * (tags/colors) onto the moved faces so it survives — the same metadata
52
+ * guarantee `translate` gives, at location-swap cost. For per-position placement
53
+ * of one cached cell (template instancing), this is the move without the copy.
54
+ *
55
+ * Accepts a single op or an ordered list (applied first-to-last, e.g. rotate
56
+ * then translate). Non-rigid ops (`scale`) aren't a placement and don't belong
57
+ * here — use `applyMatrix` for those.
58
+ */
59
+ export declare function locate<T extends AnyShape<Dimension>>(shape: T, placement: TransformOp | readonly TransformOp[]): T;
45
60
  /**
46
61
  * Clone a shape and apply a pre-composed transform in a single kernel operation.
47
62
  * Much faster than separate clone() + translate() + rotate() calls.
package/dist/topology.cjs CHANGED
@@ -1,13 +1,13 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_topologyQueryFns = require("./topologyQueryFns-CoXVHuN7.cjs");
3
3
  const require_faceFns = require("./faceFns-BV0GnTlt.cjs");
4
- const require_shapeFns = require("./shapeFns-ybo0INGL.cjs");
4
+ const require_shapeFns = require("./shapeFns-aI4Hr4XV.cjs");
5
5
  const require_curveFns = require("./curveFns-DgUJpH4z.cjs");
6
- const require_meshFns = require("./meshFns-1hQSn1p2.cjs");
7
- const require_solidBuilders = require("./solidBuilders-DiUv_mD0.cjs");
8
- const require_healingFns = require("./healingFns-xLJ6Cp_O.cjs");
6
+ const require_meshFns = require("./meshFns-HyzvCIhb.cjs");
7
+ const require_solidBuilders = require("./solidBuilders-DSokszEg.cjs");
8
+ const require_healingFns = require("./healingFns-DiVnJgwh.cjs");
9
9
  const require_adjacencyFns = require("./adjacencyFns-d8ZabkvX.cjs");
10
- const require_primitiveFns = require("./primitiveFns-DLIWtQWA.cjs");
10
+ const require_primitiveFns = require("./primitiveFns-DvGRmEox.cjs");
11
11
  exports.addHoles = require_primitiveFns.addHoles;
12
12
  exports.adjacentFaces = require_adjacencyFns.adjacentFaces;
13
13
  exports.approximateCurve = require_curveFns.approximateCurve;
package/dist/topology.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { S as vertexPosition, _ as iterFaces, b as iterVertices, c as getFaces, f as getVertices, g as iterEdges, m as invalidateShapeCache, n as getBounds, p as getWires, s as getEdges, x as iterWires } from "./topologyQueryFns-BeKaWpNm.js";
2
2
  import { S as shapeType, _ as cast, a as faceOrientation, b as isCompSolid, c as innerWires, d as pointOnSurface, f as projectPointOnFace, g as asTopo, h as uvCoordinates, i as faceGeomType, l as normalAt, m as uvBounds, n as faceAxis, o as flipFaceOrientation, r as faceCenter, s as getSurfaceType, t as classifyPointOnFace, u as outerWire, v as downcast, x as iterTopo, y as fromBREP } from "./faceFns-B86WGqDg.js";
3
- import { a as isSameShape, i as isEqualShape, n as getHashCode } from "./shapeFns-DrZOVwHX.js";
3
+ import { a as isSameShape, i as isEqualShape, n as getHashCode } from "./shapeFns-DJHbIsRX.js";
4
4
  import { a as curveIsPeriodic, c as curvePointAt, d as flipOrientation, f as getCurveType, h as offsetWire2D, i as curveIsClosed, l as curveStartPoint, m as interpolateCurve, n as curveAxis, o as curveLength, p as getOrientation, r as curveEndPoint, s as curvePeriod, t as approximateCurve, u as curveTangentAt } from "./curveFns-CcSn4-Rf.js";
5
- import { d as createMeshCache, n as exportSTEP, r as exportSTL, t as exportIGES, u as clearMeshCache } from "./meshFns-DbmidUzH.js";
6
- import { h as fuseAll, p as cutAll } from "./solidBuilders-C32wXQWG.js";
7
- import { A as toBufferGeometryData, C as shellWithEvolution, D as getNurbsCurveData, E as fuseAllBisect, O as getNurbsSurfaceData, P as toLineGeometryData, S as intersectWithEvolution, T as cutAllBisect, _ as positionOnCurve, a as healFace, b as filletWithEvolution, g as variableFillet, j as toGroupedBufferGeometryData, k as chamferDistAngle, l as solidFromShell, n as fixSelfIntersection, o as healSolid, r as fixShape, s as healWire, t as autoHeal, v as chamferWithEvolution, w as checkBoolean, x as fuseWithEvolution, y as cutWithEvolution } from "./healingFns-2TJHHDg5.js";
5
+ import { d as createMeshCache, n as exportSTEP, r as exportSTL, t as exportIGES, u as clearMeshCache } from "./meshFns-DBsxqJd3.js";
6
+ import { h as fuseAll, p as cutAll } from "./solidBuilders-CjrjwCtG.js";
7
+ import { A as toBufferGeometryData, C as shellWithEvolution, D as getNurbsCurveData, E as fuseAllBisect, O as getNurbsSurfaceData, P as toLineGeometryData, S as intersectWithEvolution, T as cutAllBisect, _ as positionOnCurve, a as healFace, b as filletWithEvolution, g as variableFillet, j as toGroupedBufferGeometryData, k as chamferDistAngle, l as solidFromShell, n as fixSelfIntersection, o as healSolid, r as fixShape, s as healWire, t as autoHeal, v as chamferWithEvolution, w as checkBoolean, x as fuseWithEvolution, y as cutWithEvolution } from "./healingFns-TnTWI_K_.js";
8
8
  import { a as sharedEdges, c as wiresOfFace, n as edgesOfFace, o as verticesOfEdge, r as facesOfEdge, t as adjacentFaces } from "./adjacencyFns-BYnyXXqt.js";
9
- import { C as threePointArc, D as wireLoop, E as wire, S as tangentArc, T as vertex, _ as polygon, a as circle, b as sphere, c as cylinder, d as ellipsoid, f as face, g as offsetFace, h as line, i as bsplineApprox, l as ellipse, m as helix, n as bezier, o as compound, p as filledFace, r as box, s as cone, t as addHoles, u as ellipseArc, v as sewShells, w as torus, x as subFace, y as solid } from "./primitiveFns-CBrOyk5S.js";
9
+ import { C as threePointArc, D as wireLoop, E as wire, S as tangentArc, T as vertex, _ as polygon, a as circle, b as sphere, c as cylinder, d as ellipsoid, f as face, g as offsetFace, h as line, i as bsplineApprox, l as ellipse, m as helix, n as bezier, o as compound, p as filledFace, r as box, s as cone, t as addHoles, u as ellipseArc, v as sewShells, w as torus, x as subFace, y as solid } from "./primitiveFns-LYeAjO6E.js";
10
10
  export { addHoles, adjacentFaces, approximateCurve, asTopo, autoHeal, bezier, box, bsplineApprox, cast, chamferDistAngle as chamferDistAngleShape, chamferWithEvolution, checkBoolean, circle, classifyPointOnFace, clearMeshCache, compound, cone, createMeshCache, curveAxis, curveEndPoint, curveIsClosed, curveIsPeriodic, curveLength, curvePeriod, curvePointAt, curveStartPoint, curveTangentAt, cutAll, cutAllBisect, cutWithEvolution, cylinder, fromBREP as deserializeShape, downcast, edgesOfFace, ellipse, ellipseArc, ellipsoid, exportIGES, exportSTEP, exportSTL, face, faceAxis, faceCenter, faceGeomType, faceOrientation, facesOfEdge, filledFace, filletWithEvolution, fixSelfIntersection, fixShape, flipFaceOrientation, flipOrientation, fuseAll, fuseAllBisect, fuseWithEvolution, getBounds, getCurveType, getEdges, getFaces, getHashCode, getNurbsCurveData, getNurbsSurfaceData, getOrientation, getSurfaceType, getVertices, getWires, healFace, healSolid, healWire, helix, innerWires, interpolateCurve, intersectWithEvolution, invalidateShapeCache, isCompSolid, isEqualShape, isSameShape, iterEdges, iterFaces, iterTopo, iterVertices, iterWires, line, normalAt, offsetFace, offsetWire2D, outerWire, pointOnSurface, polygon, positionOnCurve, projectPointOnFace, sewShells, shapeType, sharedEdges, shellWithEvolution, solid, solidFromShell, sphere, subFace, tangentArc, threePointArc, toBufferGeometryData, toGroupedBufferGeometryData, toLineGeometryData, torus, uvBounds, uvCoordinates, variableFillet, vertex, vertexPosition, verticesOfEdge, wire, wireLoop, wiresOfFace };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brepjs",
3
- "version": "18.116.1",
3
+ "version": "18.117.1",
4
4
  "description": "Web CAD library with pluggable geometry kernel",
5
5
  "keywords": [
6
6
  "cad",