brepjs 18.69.1 → 18.69.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/2d.cjs +6 -6
  2. package/dist/2d.js +6 -6
  3. package/dist/{blueprint-a7QLhV4U.cjs → blueprint-DIQeD9xj.cjs} +5 -5
  4. package/dist/{blueprint-Z5mhI2QD.js → blueprint-Dgl9IkCV.js} +5 -5
  5. package/dist/{blueprintFns-DULa6FpG.cjs → blueprintFns-BO44cqFY.cjs} +2 -2
  6. package/dist/{blueprintFns-BNhsXv6q.js → blueprintFns-sKzHcJ4U.js} +2 -2
  7. package/dist/{blueprintSketcher-4zOPSOnK.cjs → blueprintSketcher-BpOknLmX.cjs} +3 -3
  8. package/dist/{blueprintSketcher-0DeTMXwj.js → blueprintSketcher-DbINWerx.js} +3 -3
  9. package/dist/{boolean2D-BNWuFXK_.js → boolean2D-CreNaKXt.js} +4 -4
  10. package/dist/{boolean2D-xDBZQH_n.cjs → boolean2D-DZcOTOSA.cjs} +4 -4
  11. package/dist/{booleanFns-CaKngiuu.js → booleanFns-0jDBFjAv.js} +4 -4
  12. package/dist/{booleanFns-aeG4pQmM.cjs → booleanFns-DvXg6a2Y.cjs} +4 -4
  13. package/dist/brepjs.cjs +120 -85
  14. package/dist/brepjs.js +120 -85
  15. package/dist/{cameraFns-k787od3u.js → cameraFns-Bwxq0IDz.js} +2 -2
  16. package/dist/{cameraFns-Bk8frXwa.cjs → cameraFns-CsGSVYgb.cjs} +2 -2
  17. package/dist/core.cjs +1 -1
  18. package/dist/core.js +1 -1
  19. package/dist/{cornerFinder-tTS3ny7e.cjs → cornerFinder-ChltJ_ur.cjs} +1 -1
  20. package/dist/{cornerFinder-B8GvvW0U.js → cornerFinder-fMf9-El_.js} +1 -1
  21. package/dist/{curveFns-DvNBwUdJ.js → curveFns-BhTtS18d.js} +1 -1
  22. package/dist/{curveFns-CYP8UOgX.cjs → curveFns-CXytEfTr.cjs} +1 -1
  23. package/dist/{drawFns-Chpdmj4G.cjs → drawFns-Bn4vzbUr.cjs} +12 -12
  24. package/dist/{drawFns-DmAPsfmx.js → drawFns-Bzr38vZx.js} +12 -12
  25. package/dist/{extrudeFns-IvYW5-8y.cjs → extrudeFns-C0FsOXev.cjs} +1 -1
  26. package/dist/{extrudeFns-CMr1tf7I.js → extrudeFns-rnUgev_g.js} +1 -1
  27. package/dist/{faceFns-CZp3Y8vi.js → faceFns-Dreo5ksY.js} +2 -2
  28. package/dist/{faceFns-Byt7Vd3F.cjs → faceFns-FAZgMVCx.cjs} +2 -2
  29. package/dist/{helpers-BX-0e71G.js → helpers--BMa_zB7.js} +6 -6
  30. package/dist/{helpers-wFts3ttt.cjs → helpers-D8ycrNeD.cjs} +6 -6
  31. package/dist/{historyFns-CZ9oNL7j.js → historyFns-CR0RejKJ.js} +4 -4
  32. package/dist/{historyFns-BzPsKySX.cjs → historyFns-mnmeZ0kB.cjs} +4 -4
  33. package/dist/{importFns-8zgPWa83.cjs → importFns-4mi5Ih46.cjs} +2 -2
  34. package/dist/{importFns-BAJm4qfD.js → importFns-DRPQExAD.js} +2 -2
  35. package/dist/io.cjs +2 -2
  36. package/dist/io.js +2 -2
  37. package/dist/kernel/brepkit/ioOps.d.ts +2 -2
  38. package/dist/kernel/occtWasm/ioOps.d.ts +1 -1
  39. package/dist/kernel/occtWasm/occtWasmAdapter.cjs +1 -1
  40. package/dist/kernel/occtWasm/occtWasmAdapter.js +1 -1
  41. package/dist/kernel/solverAdapter.d.ts +7 -2
  42. package/dist/kernel/stlBuilder.d.ts +20 -0
  43. package/dist/{measureFns-CvvenWkS.js → measureFns-BLEx4ZU3.js} +3 -3
  44. package/dist/{measureFns-CrSEblGG.cjs → measureFns-CT0XaSOt.cjs} +3 -3
  45. package/dist/measurement.cjs +1 -1
  46. package/dist/measurement.js +1 -1
  47. package/dist/{meshFns-0RHalM3t.js → meshFns-B3MjIqk1.js} +3 -3
  48. package/dist/{meshFns-DwHAYqRN.cjs → meshFns-lwgHYQ79.cjs} +3 -3
  49. package/dist/{occtWasmAdapter-BPu07Zxg.cjs → occtWasmAdapter-BH7r2nTq.cjs} +137 -51
  50. package/dist/{occtWasmAdapter-Ctfykwr2.js → occtWasmAdapter-C7FDeTaw.js} +114 -52
  51. package/dist/operations.cjs +2 -2
  52. package/dist/operations.js +2 -2
  53. package/dist/{primitiveFns-CKCALTVe.cjs → primitiveFns-DZmgvzvk.cjs} +7 -7
  54. package/dist/{primitiveFns-ecKWNC5k.js → primitiveFns-DcZDTQ_R.js} +7 -7
  55. package/dist/projection.cjs +1 -1
  56. package/dist/projection.js +1 -1
  57. package/dist/query.cjs +2 -2
  58. package/dist/query.js +2 -2
  59. package/dist/{shapeFns-D63FuB8f.js → shapeFns-BnkizFjV.js} +2 -2
  60. package/dist/{shapeFns-B5JrP5aD.cjs → shapeFns-w1YoIn_p.cjs} +2 -2
  61. package/dist/shapeRef.cjs +1 -1
  62. package/dist/shapeRef.js +1 -1
  63. package/dist/{shapeRefFns-H_O8zyAx.cjs → shapeRefFns-B3myHs0D.cjs} +4 -4
  64. package/dist/{shapeRefFns-DjGKujf0.js → shapeRefFns-OVWdFOAC.js} +4 -4
  65. package/dist/{shapeTypes-kAKwccy_.cjs → shapeTypes-BIlZar9m.cjs} +174 -172
  66. package/dist/{shapeTypes-RYLpXWzG.js → shapeTypes-yCQ8z5Hc.js} +174 -172
  67. package/dist/sketching.cjs +3 -3
  68. package/dist/sketching.js +3 -3
  69. package/dist/{solidBuilders-0SgkQ386.js → solidBuilders-CPOTKI5i.js} +2 -2
  70. package/dist/{solidBuilders-B2IX6Pm8.cjs → solidBuilders-dNhToZgl.cjs} +2 -2
  71. package/dist/{surfaceBuilders-jx81G_YJ.js → surfaceBuilders-CS1QccDv.js} +2 -2
  72. package/dist/{surfaceBuilders-BkvJS8pw.cjs → surfaceBuilders-CzHPZtd3.cjs} +2 -2
  73. package/dist/text.cjs +2 -2
  74. package/dist/text.js +2 -2
  75. package/dist/{textBlueprints-BXGrW7Ak.js → textBlueprints-B57ej88L.js} +7 -7
  76. package/dist/{textBlueprints-Q2gxuZd1.cjs → textBlueprints-TG6AH06v.cjs} +7 -7
  77. package/dist/{textMetrics-V7TXOETY.js → textMetrics-BxtB3sjj.js} +1 -1
  78. package/dist/{textMetrics-CnCjqf59.cjs → textMetrics-Dag-YREs.cjs} +1 -1
  79. package/dist/topology.cjs +7 -7
  80. package/dist/topology.js +7 -7
  81. package/dist/{topologyQueryFns-Ck5trXrW.cjs → topologyQueryFns-BuWZAQ_o.cjs} +1 -1
  82. package/dist/{topologyQueryFns-BtWPlP5v.js → topologyQueryFns-Bxdnl5Vt.js} +1 -1
  83. package/package.json +1 -1
package/dist/2d.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_shapeTypes = require("./shapeTypes-kAKwccy_.cjs");
2
+ const require_shapeTypes = require("./shapeTypes-BIlZar9m.cjs");
3
3
  const require_errors = require("./errors-CXJtc4I7.cjs");
4
- const require_topologyQueryFns = require("./topologyQueryFns-Ck5trXrW.cjs");
5
- const require_blueprintSketcher = require("./blueprintSketcher-4zOPSOnK.cjs");
6
- const require_blueprint = require("./blueprint-a7QLhV4U.cjs");
7
- const require_boolean2D = require("./boolean2D-xDBZQH_n.cjs");
8
- const require_blueprintFns = require("./blueprintFns-DULa6FpG.cjs");
4
+ const require_topologyQueryFns = require("./topologyQueryFns-BuWZAQ_o.cjs");
5
+ const require_blueprintSketcher = require("./blueprintSketcher-BpOknLmX.cjs");
6
+ const require_blueprint = require("./blueprint-DIQeD9xj.cjs");
7
+ const require_boolean2D = require("./boolean2D-DZcOTOSA.cjs");
8
+ const require_blueprintFns = require("./blueprintFns-BO44cqFY.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
- import { B as createKernelHandle, Q as getKernel2D, a as createEdge } from "./shapeTypes-RYLpXWzG.js";
1
+ import { B as createKernelHandle, Q as getKernel2D, a as createEdge } from "./shapeTypes-yCQ8z5Hc.js";
2
2
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
3
- import { w as kernelCallRaw } from "./topologyQueryFns-BtWPlP5v.js";
4
- import { a as Blueprints, i as CompoundBlueprint, r as organiseBlueprints } from "./blueprintSketcher-0DeTMXwj.js";
5
- import { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./blueprint-Z5mhI2QD.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-BNWuFXK_.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-BNhsXv6q.js";
3
+ import { w as kernelCallRaw } from "./topologyQueryFns-Bxdnl5Vt.js";
4
+ import { a as Blueprints, i as CompoundBlueprint, r as organiseBlueprints } from "./blueprintSketcher-DbINWerx.js";
5
+ import { _ as Curve2D, t as Blueprint, y as BoundingBox2d } from "./blueprint-Dgl9IkCV.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-CreNaKXt.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-sKzHcJ4U.js";
8
8
  //#region src/core/curve2dHandle.ts
9
9
  /**
10
10
  * Wrap a raw kernel 2D curve handle with brand + disposal tracking.
@@ -1,14 +1,14 @@
1
- const require_shapeTypes = require("./shapeTypes-kAKwccy_.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-BIlZar9m.cjs");
2
2
  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_types = require("./types-KjA8tY4Y.cjs");
6
6
  const require_planeOps = require("./planeOps-BA4HfgQu.cjs");
7
- const require_faceFns = require("./faceFns-Byt7Vd3F.cjs");
8
- const require_curveFns = require("./curveFns-CYP8UOgX.cjs");
7
+ const require_faceFns = require("./faceFns-FAZgMVCx.cjs");
8
+ const require_curveFns = require("./curveFns-CXytEfTr.cjs");
9
9
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
10
- const require_surfaceBuilders = require("./surfaceBuilders-BkvJS8pw.cjs");
11
- const require_helpers = require("./helpers-wFts3ttt.cjs");
10
+ const require_surfaceBuilders = require("./surfaceBuilders-CzHPZtd3.cjs");
11
+ const require_helpers = require("./helpers-D8ycrNeD.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) {
@@ -1,14 +1,14 @@
1
- import { G as unregisterFromCleanup, Q as getKernel2D, U as registerForCleanup, Z as getKernel, a as createEdge, u as createWire } from "./shapeTypes-RYLpXWzG.js";
1
+ import { G as unregisterFromCleanup, Q as getKernel2D, U as registerForCleanup, Z as getKernel, a as createEdge, u as createWire } from "./shapeTypes-yCQ8z5Hc.js";
2
2
  import { n as wasmIndex } from "./vec3-Dpha8d5k.js";
3
3
  import { A as ok, R as unwrap, b as err, d as validationError, h as bug, n as computationError } from "./errors-DNWJsfVU.js";
4
4
  import { r as RAD2DEG, t as DEG2RAD } from "./constants-ITRzCnCp.js";
5
5
  import { r as toVec3 } from "./types-D24Y27N0.js";
6
6
  import { r as makePlane } from "./planeOps-DSjjtrjg.js";
7
- import { g as cast, m as uvCoordinates, n as faceCenter, p as uvBounds, r as faceGeomType } from "./faceFns-CZp3Y8vi.js";
8
- import { f as getOrientation } from "./curveFns-DvNBwUdJ.js";
7
+ import { g as cast, m as uvCoordinates, n as faceCenter, p as uvBounds, r as faceGeomType } from "./faceFns-Dreo5ksY.js";
8
+ import { f as getOrientation } from "./curveFns-BhTtS18d.js";
9
9
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
10
- import { r as makeFace } from "./surfaceBuilders-jx81G_YJ.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-BX-0e71G.js";
10
+ import { r as makeFace } from "./surfaceBuilders-CS1QccDv.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--BMa_zB7.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-4zOPSOnK.cjs");
3
- const require_blueprint = require("./blueprint-a7QLhV4U.cjs");
2
+ const require_blueprintSketcher = require("./blueprintSketcher-BpOknLmX.cjs");
3
+ const require_blueprint = require("./blueprint-DIQeD9xj.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-0DeTMXwj.js";
3
- import { t as Blueprint } from "./blueprint-Z5mhI2QD.js";
2
+ import { i as CompoundBlueprint } from "./blueprintSketcher-DbINWerx.js";
3
+ import { t as Blueprint } from "./blueprint-Dgl9IkCV.js";
4
4
  //#region src/2d/lib/curve2dFns.ts
5
5
  /**
6
6
  * Return a reversed copy of the curve (non-mutating).
@@ -1,10 +1,10 @@
1
- const require_shapeTypes = require("./shapeTypes-kAKwccy_.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-BIlZar9m.cjs");
2
2
  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-wFts3ttt.cjs");
7
- const require_blueprint = require("./blueprint-a7QLhV4U.cjs");
6
+ const require_helpers = require("./helpers-D8ycrNeD.cjs");
7
+ const require_blueprint = require("./blueprint-DIQeD9xj.cjs");
8
8
  //#region node_modules/flatqueue/index.js
9
9
  /** @template T */
10
10
  var FlatQueue = class {
@@ -1,10 +1,10 @@
1
- import { Q as getKernel2D, Z as getKernel } from "./shapeTypes-RYLpXWzG.js";
1
+ import { Q as getKernel2D, Z as getKernel } from "./shapeTypes-yCQ8z5Hc.js";
2
2
  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-BX-0e71G.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-Z5mhI2QD.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--BMa_zB7.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-Dgl9IkCV.js";
8
8
  //#region node_modules/flatqueue/index.js
9
9
  /** @template T */
10
10
  var FlatQueue = class {
@@ -1,10 +1,10 @@
1
1
  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
- import { v as zip } from "./surfaceBuilders-jx81G_YJ.js";
5
- import { a as Blueprints, i as CompoundBlueprint, l as intersectCurves, r as organiseBlueprints, t as BlueprintSketcher, u as Flatbush } from "./blueprintSketcher-0DeTMXwj.js";
6
- import { _ as samePoint$1, b as subtract2d, f as crossProduct2d, s as PRECISION_INTERSECTION } from "./helpers-BX-0e71G.js";
7
- import { b as removeDuplicatePoints, f as make2dSegmentCurve, t as Blueprint } from "./blueprint-Z5mhI2QD.js";
4
+ import { v as zip } from "./surfaceBuilders-CS1QccDv.js";
5
+ import { a as Blueprints, i as CompoundBlueprint, l as intersectCurves, r as organiseBlueprints, t as BlueprintSketcher, u as Flatbush } from "./blueprintSketcher-DbINWerx.js";
6
+ import { _ as samePoint$1, b as subtract2d, f as crossProduct2d, s as PRECISION_INTERSECTION } from "./helpers--BMa_zB7.js";
7
+ import { b as removeDuplicatePoints, f as make2dSegmentCurve, t as Blueprint } from "./blueprint-Dgl9IkCV.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.
@@ -1,10 +1,10 @@
1
1
  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
- const require_surfaceBuilders = require("./surfaceBuilders-BkvJS8pw.cjs");
5
- const require_blueprintSketcher = require("./blueprintSketcher-4zOPSOnK.cjs");
6
- const require_helpers = require("./helpers-wFts3ttt.cjs");
7
- const require_blueprint = require("./blueprint-a7QLhV4U.cjs");
4
+ const require_surfaceBuilders = require("./surfaceBuilders-CzHPZtd3.cjs");
5
+ const require_blueprintSketcher = require("./blueprintSketcher-BpOknLmX.cjs");
6
+ const require_helpers = require("./helpers-D8ycrNeD.cjs");
7
+ const require_blueprint = require("./blueprint-DIQeD9xj.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.
@@ -1,12 +1,12 @@
1
- import { Z as getKernel, h as isShape3D, t as castShape } from "./shapeTypes-RYLpXWzG.js";
1
+ import { Z as getKernel, h as isShape3D, t as castShape } from "./shapeTypes-yCQ8z5Hc.js";
2
2
  import { A as ok, R as unwrap, b as err, d as validationError, i as kernelError, l as typeCastError, t as BrepErrorCode, w as isErr } from "./errors-DNWJsfVU.js";
3
- import { f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-BtWPlP5v.js";
3
+ import { f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-Bxdnl5Vt.js";
4
4
  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
- import { _ as propagateAllMetadata, g as collectInputFaceHashes, v as propagateMetadataByHash } from "./shapeFns-D63FuB8f.js";
7
+ import { _ as propagateAllMetadata, g as collectInputFaceHashes, v as propagateMetadataByHash } from "./shapeFns-BnkizFjV.js";
8
8
  import { n as getAtOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
9
- import { r as makeFace } from "./surfaceBuilders-jx81G_YJ.js";
9
+ import { r as makeFace } from "./surfaceBuilders-CS1QccDv.js";
10
10
  //#region src/topology/booleanFns.ts
11
11
  /**
12
12
  * Boolean and compound operations — functional replacements for _3DShape boolean methods.
@@ -1,12 +1,12 @@
1
- const require_shapeTypes = require("./shapeTypes-kAKwccy_.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-BIlZar9m.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-Ck5trXrW.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-BuWZAQ_o.cjs");
4
4
  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
- const require_shapeFns = require("./shapeFns-B5JrP5aD.cjs");
7
+ const require_shapeFns = require("./shapeFns-w1YoIn_p.cjs");
8
8
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
9
- const require_surfaceBuilders = require("./surfaceBuilders-BkvJS8pw.cjs");
9
+ const require_surfaceBuilders = require("./surfaceBuilders-CzHPZtd3.cjs");
10
10
  //#region src/topology/booleanFns.ts
11
11
  /**
12
12
  * Boolean and compound operations — functional replacements for _3DShape boolean methods.
package/dist/brepjs.cjs CHANGED
@@ -1,36 +1,36 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-Q2gxuZd1.cjs");
3
- const require_shapeTypes = require("./shapeTypes-kAKwccy_.cjs");
4
- const require_occtWasmAdapter = require("./occtWasmAdapter-BPu07Zxg.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-TG6AH06v.cjs");
3
+ const require_shapeTypes = require("./shapeTypes-BIlZar9m.cjs");
4
+ const require_occtWasmAdapter = require("./occtWasmAdapter-BH7r2nTq.cjs");
5
5
  const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
6
6
  const require_errors = require("./errors-CXJtc4I7.cjs");
7
- const require_topologyQueryFns = require("./topologyQueryFns-Ck5trXrW.cjs");
7
+ const require_topologyQueryFns = require("./topologyQueryFns-BuWZAQ_o.cjs");
8
8
  const require_constants = require("./constants-BOVyEYGH.cjs");
9
9
  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
- const require_faceFns = require("./faceFns-Byt7Vd3F.cjs");
13
- const require_shapeFns = require("./shapeFns-B5JrP5aD.cjs");
14
- const require_curveFns = require("./curveFns-CYP8UOgX.cjs");
15
- const require_meshFns = require("./meshFns-DwHAYqRN.cjs");
12
+ const require_faceFns = require("./faceFns-FAZgMVCx.cjs");
13
+ const require_shapeFns = require("./shapeFns-w1YoIn_p.cjs");
14
+ const require_curveFns = require("./curveFns-CXytEfTr.cjs");
15
+ const require_meshFns = require("./meshFns-lwgHYQ79.cjs");
16
16
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
17
- const require_surfaceBuilders = require("./surfaceBuilders-BkvJS8pw.cjs");
18
- const require_booleanFns = require("./booleanFns-aeG4pQmM.cjs");
19
- const require_primitiveFns = require("./primitiveFns-CKCALTVe.cjs");
20
- const require_historyFns = require("./historyFns-BzPsKySX.cjs");
21
- const require_blueprintSketcher = require("./blueprintSketcher-4zOPSOnK.cjs");
22
- const require_helpers = require("./helpers-wFts3ttt.cjs");
23
- const require_drawFns = require("./drawFns-Chpdmj4G.cjs");
24
- const require_solidBuilders = require("./solidBuilders-B2IX6Pm8.cjs");
25
- const require_measureFns = require("./measureFns-CrSEblGG.cjs");
26
- const require_cornerFinder = require("./cornerFinder-tTS3ny7e.cjs");
27
- const require_boolean2D = require("./boolean2D-xDBZQH_n.cjs");
28
- const require_blueprintFns = require("./blueprintFns-DULa6FpG.cjs");
29
- const require_importFns = require("./importFns-8zgPWa83.cjs");
30
- const require_extrudeFns = require("./extrudeFns-IvYW5-8y.cjs");
31
- const require_cameraFns = require("./cameraFns-Bk8frXwa.cjs");
32
- const require_textMetrics = require("./textMetrics-CnCjqf59.cjs");
33
- const require_shapeRefFns = require("./shapeRefFns-H_O8zyAx.cjs");
17
+ const require_surfaceBuilders = require("./surfaceBuilders-CzHPZtd3.cjs");
18
+ const require_booleanFns = require("./booleanFns-DvXg6a2Y.cjs");
19
+ const require_primitiveFns = require("./primitiveFns-DZmgvzvk.cjs");
20
+ const require_historyFns = require("./historyFns-mnmeZ0kB.cjs");
21
+ const require_blueprintSketcher = require("./blueprintSketcher-BpOknLmX.cjs");
22
+ const require_helpers = require("./helpers-D8ycrNeD.cjs");
23
+ const require_drawFns = require("./drawFns-Bn4vzbUr.cjs");
24
+ const require_solidBuilders = require("./solidBuilders-dNhToZgl.cjs");
25
+ const require_measureFns = require("./measureFns-CT0XaSOt.cjs");
26
+ const require_cornerFinder = require("./cornerFinder-ChltJ_ur.cjs");
27
+ const require_boolean2D = require("./boolean2D-DZcOTOSA.cjs");
28
+ const require_blueprintFns = require("./blueprintFns-BO44cqFY.cjs");
29
+ const require_importFns = require("./importFns-4mi5Ih46.cjs");
30
+ const require_extrudeFns = require("./extrudeFns-C0FsOXev.cjs");
31
+ const require_cameraFns = require("./cameraFns-CsGSVYgb.cjs");
32
+ const require_textMetrics = require("./textMetrics-Dag-YREs.cjs");
33
+ const require_shapeRefFns = require("./shapeRefFns-B3myHs0D.cjs");
34
34
  const require_workerHandler = require("./workerHandler-CdlOTwJg.cjs");
35
35
  //#region src/topology/shapeBooleans.ts
36
36
  var BOPAlgo_GlueShift = 1;
@@ -2146,11 +2146,64 @@ var UNSUPPORTED_DOF = {
2146
2146
  distance: 1,
2147
2147
  angle: 1
2148
2148
  };
2149
+ var IDENTITY_ROTATION = [
2150
+ 1,
2151
+ 0,
2152
+ 0,
2153
+ 0
2154
+ ];
2155
+ function add$1(a, b) {
2156
+ return [
2157
+ a[0] + b[0],
2158
+ a[1] + b[1],
2159
+ a[2] + b[2]
2160
+ ];
2161
+ }
2162
+ function dot(a, b) {
2163
+ return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
2164
+ }
2165
+ /**
2166
+ * Position a dependent plane against an already-placed reference plane.
2167
+ *
2168
+ * The reference's solved translation is applied to its (local) entity origin
2169
+ * before measuring, so a chain composes down already-solved poses instead of
2170
+ * reading original geometry. The dependent is at the origin (a node is only
2171
+ * solved once, while unplaced), so the returned position is its absolute
2172
+ * translation. `extra` is the gap for a distance mate (0 for coincident).
2173
+ * Rotation stays identity — coincident/distance produce pure translations;
2174
+ * Phase 1 rotational constraints will extend this.
2175
+ */
2176
+ function solvePlanePair(ref, refPos, dep, extra) {
2177
+ const n = ref.normal ?? [
2178
+ 0,
2179
+ 0,
2180
+ 1
2181
+ ];
2182
+ const refOrigin = add$1(ref.origin, refPos);
2183
+ const offset = dot(n, [
2184
+ refOrigin[0] - dep.origin[0],
2185
+ refOrigin[1] - dep.origin[1],
2186
+ refOrigin[2] - dep.origin[2]
2187
+ ]) + extra;
2188
+ return {
2189
+ position: [
2190
+ offset * n[0],
2191
+ offset * n[1],
2192
+ offset * n[2]
2193
+ ],
2194
+ rotation: IDENTITY_ROTATION
2195
+ };
2196
+ }
2149
2197
  /**
2150
2198
  * Solve assembly constraints analytically.
2151
2199
  *
2152
- * Currently handles: fixed, coincident (plane-plane), distance (plane-plane).
2153
- * Returns `converged: false` with unsupported constraint details for concentric and angle.
2200
+ * Handles: fixed, coincident (plane-plane), distance (plane-plane). For a
2201
+ * positioning mate, entityA is the reference and entityB the dependent. Chain
2202
+ * roots (nodes never positioned by a mate) and explicit `fixed` nodes anchor at
2203
+ * the origin; constraints then resolve in topological order — each places its
2204
+ * dependent against the reference's solved pose, so multi-body chains compose.
2205
+ * Returns `converged: false` with unsupported details for concentric, angle,
2206
+ * non-plane pairs, and any constraint whose reference never resolves.
2154
2207
  */
2155
2208
  function solveConstraints(nodes, constraints) {
2156
2209
  const transforms = /* @__PURE__ */ new Map();
@@ -2160,69 +2213,51 @@ function solveConstraints(nodes, constraints) {
2160
2213
  0,
2161
2214
  0
2162
2215
  ],
2163
- rotation: [
2164
- 1,
2165
- 0,
2166
- 0,
2167
- 0
2168
- ]
2216
+ rotation: IDENTITY_ROTATION
2169
2217
  });
2170
2218
  const unsupported = [];
2171
- for (const c of constraints) if (c.type === "coincident" && c.entityA && c.entityB) {
2172
- const a = c.entityA;
2173
- const b = c.entityB;
2174
- if (a.entity.type === "plane" && b.entity.type === "plane") {
2175
- const aNormal = a.entity.normal ?? [
2176
- 0,
2177
- 0,
2178
- 1
2179
- ];
2180
- const aOrigin = a.entity.origin;
2181
- const bOrigin = b.entity.origin;
2182
- const dot = aNormal[0] * (aOrigin[0] - bOrigin[0]) + aNormal[1] * (aOrigin[1] - bOrigin[1]) + aNormal[2] * (aOrigin[2] - bOrigin[2]);
2183
- const pos = [
2184
- dot * aNormal[0],
2185
- dot * aNormal[1],
2186
- dot * aNormal[2]
2187
- ];
2188
- transforms.set(b.node, {
2189
- position: pos,
2190
- rotation: [
2191
- 1,
2192
- 0,
2193
- 0,
2194
- 0
2195
- ]
2196
- });
2197
- } else unsupported.push(`coincident(${a.entity.type}-${b.entity.type})`);
2198
- } else if (c.type === "distance" && c.entityA && c.entityB && c.value !== void 0) {
2199
- const a = c.entityA;
2200
- const b = c.entityB;
2201
- if (a.entity.type === "plane" && b.entity.type === "plane") {
2202
- const aNormal = a.entity.normal ?? [
2203
- 0,
2204
- 0,
2205
- 1
2206
- ];
2207
- const aOrigin = a.entity.origin;
2208
- const bOrigin = b.entity.origin;
2209
- const offset = aNormal[0] * (aOrigin[0] - bOrigin[0]) + aNormal[1] * (aOrigin[1] - bOrigin[1]) + aNormal[2] * (aOrigin[2] - bOrigin[2]) + c.value;
2210
- const pos = [
2211
- offset * aNormal[0],
2212
- offset * aNormal[1],
2213
- offset * aNormal[2]
2214
- ];
2215
- transforms.set(b.node, {
2216
- position: pos,
2217
- rotation: [
2218
- 1,
2219
+ const positioning = constraints.filter((c) => (c.type === "coincident" || c.type === "distance") && c.entityA && c.entityB);
2220
+ const dependents = /* @__PURE__ */ new Set();
2221
+ for (const c of positioning) if (c.entityB) dependents.add(c.entityB.node);
2222
+ const placed = /* @__PURE__ */ new Set();
2223
+ for (const node of nodes) if (!dependents.has(node)) placed.add(node);
2224
+ for (const c of constraints) if (c.type === "fixed" && c.entityA) placed.add(c.entityA.node);
2225
+ for (const c of constraints) if (c.type === "concentric" || c.type === "angle") unsupported.push(c.type);
2226
+ const pending = [];
2227
+ for (const c of positioning) {
2228
+ if (!c.entityA || !c.entityB) continue;
2229
+ if (c.entityA.entity.type !== "plane" || c.entityB.entity.type !== "plane") {
2230
+ unsupported.push(`${c.type}(${c.entityA.entity.type}-${c.entityB.entity.type})`);
2231
+ continue;
2232
+ }
2233
+ pending.push(c);
2234
+ }
2235
+ let progress = true;
2236
+ while (progress && pending.length > 0) {
2237
+ progress = false;
2238
+ for (let i = pending.length - 1; i >= 0; i--) {
2239
+ const c = pending[i];
2240
+ if (!c?.entityA || !c.entityB) continue;
2241
+ const ref = c.entityA;
2242
+ const dep = c.entityB;
2243
+ if (!placed.has(ref.node)) continue;
2244
+ pending.splice(i, 1);
2245
+ progress = true;
2246
+ if (placed.has(dep.node)) continue;
2247
+ const refPose = transforms.get(ref.node) ?? {
2248
+ position: [
2219
2249
  0,
2220
2250
  0,
2221
2251
  0
2222
- ]
2223
- });
2224
- } else unsupported.push(`distance(${a.entity.type}-${b.entity.type})`);
2225
- } else if (c.type === "concentric" || c.type === "angle") unsupported.push(c.type);
2252
+ ],
2253
+ rotation: IDENTITY_ROTATION
2254
+ };
2255
+ const extra = c.type === "distance" ? c.value ?? 0 : 0;
2256
+ transforms.set(dep.node, solvePlanePair(ref.entity, refPose.position, dep.entity, extra));
2257
+ placed.add(dep.node);
2258
+ }
2259
+ }
2260
+ for (const c of pending) unsupported.push(`${c.type}(unanchored)`);
2226
2261
  return {
2227
2262
  transforms,
2228
2263
  dof: unsupported.reduce((sum, type) => {