brepjs 18.82.5 → 18.82.7

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 (82) hide show
  1. package/dist/2d.cjs +6 -6
  2. package/dist/2d.js +6 -6
  3. package/dist/{blueprint-DjzevNhB.js → blueprint-DmvnSTKs.js} +7 -7
  4. package/dist/{blueprint-BBUOweQy.cjs → blueprint-lbpshPPC.cjs} +7 -7
  5. package/dist/{blueprintFns-CxSMnMfl.js → blueprintFns-Bhmqz0_E.js} +2 -2
  6. package/dist/{blueprintFns-CRES_5vP.cjs → blueprintFns-Nl1hnrJX.cjs} +2 -2
  7. package/dist/{blueprintSketcher-CIydRzRr.js → blueprintSketcher-DzCTWt_f.js} +140 -86
  8. package/dist/{blueprintSketcher-CFa32JZU.cjs → blueprintSketcher-NDZKJGYh.cjs} +140 -86
  9. package/dist/{boolean2D-BRWPIJhe.js → boolean2D-DGtpfl2g.js} +4 -4
  10. package/dist/{boolean2D-Z0KE98a4.cjs → boolean2D-Dzs9Vkjv.cjs} +4 -4
  11. package/dist/brepjs.cjs +25 -25
  12. package/dist/brepjs.js +25 -25
  13. package/dist/{cameraFns-B3Wb4Br9.js → cameraFns-B2WR42Tm.js} +2 -2
  14. package/dist/{cameraFns-Drgka78Q.cjs → cameraFns-p4G3cFuC.cjs} +2 -2
  15. package/dist/core.cjs +1 -1
  16. package/dist/core.js +1 -1
  17. package/dist/{cornerFinder-BuYpqGO8.cjs → cornerFinder-B_SuHSBj.cjs} +1 -1
  18. package/dist/{cornerFinder-BRYZAgdE.js → cornerFinder-KoakXQze.js} +1 -1
  19. package/dist/{curveFns-BA5zsoce.cjs → curveFns-CJWxgcHu.cjs} +1 -1
  20. package/dist/{curveFns-XSz4F9j3.js → curveFns-XRM_FMU4.js} +1 -1
  21. package/dist/{drawFns-DK3DGHku.cjs → drawFns-7qn35uWm.cjs} +12 -12
  22. package/dist/{drawFns-C5Mdr0iH.js → drawFns-D7q8qpEI.js} +12 -12
  23. package/dist/{faceFns-6AarivqH.cjs → faceFns-B3bYfnGX.cjs} +2 -2
  24. package/dist/{faceFns-BO8IXhhf.js → faceFns-hGTQhRXB.js} +2 -2
  25. package/dist/{healingFns-D3BkAVML.cjs → healingFns-BpFs-Puf.cjs} +5 -5
  26. package/dist/{healingFns-C4JZHv8K.js → healingFns-CUn6v5p4.js} +5 -5
  27. package/dist/{helpers-DN6s-TLC.cjs → helpers-D6yNdVOO.cjs} +6 -6
  28. package/dist/{helpers-CTc8ZbY8.js → helpers-DOE4GlZ0.js} +6 -6
  29. package/dist/{importFns-Cb-cmpGG.cjs → importFns-BQTQKGbi.cjs} +2 -2
  30. package/dist/{importFns-D4Xet5aD.js → importFns-CPZWa8WK.js} +2 -2
  31. package/dist/io.cjs +2 -2
  32. package/dist/io.js +2 -2
  33. package/dist/kernel/brepkit/brepkitWasmTypes.d.ts +35 -6
  34. package/dist/kernel/occtWasm/kernel2dOps.d.ts +8 -1
  35. package/dist/kernel/occtWasm/occtWasmAdapter.cjs +1 -1
  36. package/dist/kernel/occtWasm/occtWasmAdapter.d.ts +1 -1
  37. package/dist/kernel/occtWasm/occtWasmAdapter.js +1 -1
  38. package/dist/{loftFns-DxhcdpAu.cjs → loftFns-B8UzGtwS.cjs} +1 -1
  39. package/dist/{loftFns-BVbzy6gm.js → loftFns-DusJd7Qq.js} +1 -1
  40. package/dist/{measureFns-7Nz5JklM.js → measureFns-Bka10mrS.js} +3 -3
  41. package/dist/{measureFns-BNHvjShh.cjs → measureFns-DwHd423H.cjs} +3 -3
  42. package/dist/measurement.cjs +1 -1
  43. package/dist/measurement.js +1 -1
  44. package/dist/{meshFns-YXFipjjx.cjs → meshFns-B2k02WJJ.cjs} +3 -3
  45. package/dist/{meshFns-CWwOpBlM.js → meshFns-CNfOU3D1.js} +3 -3
  46. package/dist/{occtWasmAdapter-BMV179Ji.js → occtWasmAdapter-BK6h0nKd.js} +29 -5
  47. package/dist/{occtWasmAdapter-5hzzhkME.cjs → occtWasmAdapter-Bfz5Zfmk.cjs} +29 -5
  48. package/dist/operations.cjs +2 -2
  49. package/dist/operations.js +2 -2
  50. package/dist/{primitiveFns-DkuLOFkI.js → primitiveFns-C-kQixz1.js} +4 -4
  51. package/dist/{primitiveFns-BPfYb_t5.cjs → primitiveFns-D3y2t4FS.cjs} +4 -4
  52. package/dist/projection.cjs +1 -1
  53. package/dist/projection.js +1 -1
  54. package/dist/query.cjs +2 -2
  55. package/dist/query.js +2 -2
  56. package/dist/{shapeFns-sF0x5Zhj.cjs → shapeFns-BPvq4QYa.cjs} +2 -2
  57. package/dist/{shapeFns-B6UAiYAx.js → shapeFns-kVgikxkG.js} +2 -2
  58. package/dist/shapeRef.cjs +1 -1
  59. package/dist/shapeRef.js +1 -1
  60. package/dist/{shapeRefFns-NdQvPa5J.js → shapeRefFns-CXWVzhbm.js} +4 -4
  61. package/dist/{shapeRefFns-Bb0aQZWz.cjs → shapeRefFns-CxB7OXOc.cjs} +4 -4
  62. package/dist/{shapeTypes-D4Evnmz_.js → shapeTypes-Caa9T1VR.js} +61 -6
  63. package/dist/{shapeTypes-D1eUDuzl.cjs → shapeTypes-DpDcMU0a.cjs} +61 -6
  64. package/dist/sketching.cjs +3 -3
  65. package/dist/sketching.js +3 -3
  66. package/dist/{solidBuilders-QUpJdbiK.js → solidBuilders-BHRL7010.js} +5 -5
  67. package/dist/{solidBuilders-lDXPwoCz.cjs → solidBuilders-Cve7yf13.cjs} +5 -5
  68. package/dist/{surfaceBuilders-R4DKNFkI.cjs → surfaceBuilders-5hLC_QeE.cjs} +2 -2
  69. package/dist/{surfaceBuilders-CLMyFimy.js → surfaceBuilders-BDEc8WSE.js} +2 -2
  70. package/dist/text.cjs +2 -2
  71. package/dist/text.js +2 -2
  72. package/dist/{textBlueprints-f8cgx9vi.js → textBlueprints-Cl5P2MkE.js} +7 -7
  73. package/dist/{textBlueprints-D4pLmVno.cjs → textBlueprints-bMa5164s.cjs} +7 -7
  74. package/dist/{textMetrics-DTRuXeXr.cjs → textMetrics-BDr82S48.cjs} +1 -1
  75. package/dist/{textMetrics-CQtQI4vF.js → textMetrics-DBEv2A2N.js} +1 -1
  76. package/dist/{threadFns-CvLvKdwB.js → threadFns-74sXf2tN.js} +6 -6
  77. package/dist/{threadFns-DvSdQiRw.cjs → threadFns-Cw1TzGd2.cjs} +6 -6
  78. package/dist/topology.cjs +8 -8
  79. package/dist/topology.js +8 -8
  80. package/dist/{topologyQueryFns-5EeBz6_7.js → topologyQueryFns-CR7zQvDK.js} +1 -1
  81. package/dist/{topologyQueryFns-Nnu56Ke2.cjs → topologyQueryFns-imRz9gK2.cjs} +1 -1
  82. package/package.json +16 -16
@@ -1,22 +1,22 @@
1
- const require_textBlueprints = require("./textBlueprints-D4pLmVno.cjs");
2
- const require_shapeTypes = require("./shapeTypes-D1eUDuzl.cjs");
1
+ const require_textBlueprints = require("./textBlueprints-bMa5164s.cjs");
2
+ const require_shapeTypes = require("./shapeTypes-DpDcMU0a.cjs");
3
3
  const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
4
4
  const require_errors = require("./errors-CXJtc4I7.cjs");
5
- const require_topologyQueryFns = require("./topologyQueryFns-Nnu56Ke2.cjs");
5
+ const require_topologyQueryFns = require("./topologyQueryFns-imRz9gK2.cjs");
6
6
  const require_constants = require("./constants-BOVyEYGH.cjs");
7
7
  const require_types = require("./types-KjA8tY4Y.cjs");
8
8
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
9
9
  const require_planeOps = require("./planeOps-BA4HfgQu.cjs");
10
- const require_faceFns = require("./faceFns-6AarivqH.cjs");
11
- const require_curveFns = require("./curveFns-BA5zsoce.cjs");
10
+ const require_faceFns = require("./faceFns-B3bYfnGX.cjs");
11
+ const require_curveFns = require("./curveFns-CJWxgcHu.cjs");
12
12
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
13
- const require_surfaceBuilders = require("./surfaceBuilders-R4DKNFkI.cjs");
14
- const require_blueprintSketcher = require("./blueprintSketcher-CFa32JZU.cjs");
15
- const require_helpers = require("./helpers-DN6s-TLC.cjs");
16
- const require_blueprint = require("./blueprint-BBUOweQy.cjs");
17
- const require_cornerFinder = require("./cornerFinder-BuYpqGO8.cjs");
18
- const require_boolean2D = require("./boolean2D-Z0KE98a4.cjs");
19
- const require_cameraFns = require("./cameraFns-Drgka78Q.cjs");
13
+ const require_surfaceBuilders = require("./surfaceBuilders-5hLC_QeE.cjs");
14
+ const require_blueprintSketcher = require("./blueprintSketcher-NDZKJGYh.cjs");
15
+ const require_helpers = require("./helpers-D6yNdVOO.cjs");
16
+ const require_blueprint = require("./blueprint-lbpshPPC.cjs");
17
+ const require_cornerFinder = require("./cornerFinder-B_SuHSBj.cjs");
18
+ const require_boolean2D = require("./boolean2D-Dzs9Vkjv.cjs");
19
+ const require_cameraFns = require("./cameraFns-p4G3cFuC.cjs");
20
20
  //#region src/2d/lib/stitching.ts
21
21
  /**
22
22
  * Group a flat list of curves into connected chains by matching endpoints.
@@ -1,22 +1,22 @@
1
- import { R as DisposalScope, Y as _usingCtx, Z as getKernel, a as createEdge, o as createFace, u as createWire } from "./shapeTypes-D4Evnmz_.js";
1
+ import { R as DisposalScope, Y as _usingCtx, Z as getKernel, a as createEdge, o as createFace, u as createWire } from "./shapeTypes-Caa9T1VR.js";
2
2
  import { n as wasmIndex } from "./vec3-Dpha8d5k.js";
3
3
  import { R as unwrap, h as bug, s as safeIndex } from "./errors-DNWJsfVU.js";
4
- import { s as getEdges } from "./topologyQueryFns-5EeBz6_7.js";
4
+ import { s as getEdges } from "./topologyQueryFns-CR7zQvDK.js";
5
5
  import { t as DEG2RAD } from "./constants-ITRzCnCp.js";
6
6
  import { r as toVec3 } from "./types-D24Y27N0.js";
7
7
  import { d as vecNormalize, g as vecSub, h as vecScale, m as vecRotate, r as vecCross } from "./vecOps-SKPRvPH-.js";
8
8
  import { a as planeToWorld, o as resolvePlane } from "./planeOps-DSjjtrjg.js";
9
- import { d as pointOnSurface, l as normalAt, m as uvBounds, r as faceCenter, u as outerWire, v as downcast } from "./faceFns-BO8IXhhf.js";
10
- import { h as offsetWire2D, i as curveIsClosed, l as curveStartPoint } from "./curveFns-XSz4F9j3.js";
9
+ import { d as pointOnSurface, l as normalAt, m as uvBounds, r as faceCenter, u as outerWire, v as downcast } from "./faceFns-hGTQhRXB.js";
10
+ import { h as offsetWire2D, i as curveIsClosed, l as curveStartPoint } from "./curveFns-XRM_FMU4.js";
11
11
  import { n as getAtOrThrow, r as lastOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
12
- import { c as makeBSplineApproximation, d as makeCircle, f as makeEllipse, m as makeHelix, r as makeFace, s as assembleWire } from "./surfaceBuilders-CLMyFimy.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-CIydRzRr.js";
14
- import { _ as samePoint$1, b as subtract2d, c as PRECISION_OFFSET, l as add2d, y as squareDistance2d } from "./helpers-CTc8ZbY8.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-DjzevNhB.js";
16
- import { t as cornerFinder } from "./cornerFinder-BRYZAgdE.js";
17
- import { c as roundedRectangleBlueprint, n as fuse2D, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-BRWPIJhe.js";
18
- import { _ as wrapSketchDataArray, a as Sketch, g as wrapSketchData, i as Sketches, t as textBlueprints } from "./textBlueprints-f8cgx9vi.js";
19
- import { i as projectEdges, t as cameraFromPlane } from "./cameraFns-B3Wb4Br9.js";
12
+ import { c as makeBSplineApproximation, d as makeCircle, f as makeEllipse, m as makeHelix, r as makeFace, s as assembleWire } from "./surfaceBuilders-BDEc8WSE.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-DzCTWt_f.js";
14
+ import { _ as samePoint$1, b as subtract2d, c as PRECISION_OFFSET, l as add2d, y as squareDistance2d } from "./helpers-DOE4GlZ0.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-DmvnSTKs.js";
16
+ import { t as cornerFinder } from "./cornerFinder-KoakXQze.js";
17
+ import { c as roundedRectangleBlueprint, n as fuse2D, r as intersect2D, s as polysidesBlueprint, t as cut2D } from "./boolean2D-DGtpfl2g.js";
18
+ import { _ as wrapSketchDataArray, a as Sketch, g as wrapSketchData, i as Sketches, t as textBlueprints } from "./textBlueprints-Cl5P2MkE.js";
19
+ import { i as projectEdges, t as cameraFromPlane } from "./cameraFns-B2WR42Tm.js";
20
20
  //#region src/2d/lib/stitching.ts
21
21
  /**
22
22
  * Group a flat list of curves into connected chains by matching endpoints.
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-D1eUDuzl.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DpDcMU0a.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-Nnu56Ke2.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-imRz9gK2.cjs");
4
4
  const require_types = require("./types-KjA8tY4Y.cjs");
5
5
  //#region src/topology/cast.ts
6
6
  var TOPO_ENUM = {
@@ -1,6 +1,6 @@
1
- import { Z as getKernel, t as castShape } from "./shapeTypes-D4Evnmz_.js";
1
+ import { Z as getKernel, t as castShape } from "./shapeTypes-Caa9T1VR.js";
2
2
  import { A as ok, R as unwrap, b as err, l as typeCastError } from "./errors-DNWJsfVU.js";
3
- import { a as getCachedSurfaceType } from "./topologyQueryFns-5EeBz6_7.js";
3
+ import { a as getCachedSurfaceType } from "./topologyQueryFns-CR7zQvDK.js";
4
4
  import { r as toVec3 } from "./types-D24Y27N0.js";
5
5
  //#region src/topology/cast.ts
6
6
  var TOPO_ENUM = {
@@ -1,11 +1,11 @@
1
- const require_shapeTypes = require("./shapeTypes-D1eUDuzl.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DpDcMU0a.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-Nnu56Ke2.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-imRz9gK2.cjs");
4
4
  const require_constants = require("./constants-BOVyEYGH.cjs");
5
- const require_faceFns = require("./faceFns-6AarivqH.cjs");
6
- const require_shapeFns = require("./shapeFns-sF0x5Zhj.cjs");
5
+ const require_faceFns = require("./faceFns-B3bYfnGX.cjs");
6
+ const require_shapeFns = require("./shapeFns-BPvq4QYa.cjs");
7
7
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
8
- const require_solidBuilders = require("./solidBuilders-lDXPwoCz.cjs");
8
+ const require_solidBuilders = require("./solidBuilders-Cve7yf13.cjs");
9
9
  //#region src/topology/threeHelpers.ts
10
10
  /**
11
11
  * Convert a ShapeMesh into BufferGeometry-compatible typed arrays.
@@ -1,11 +1,11 @@
1
- import { Z as getKernel, _ as isSolid, h as isShape3D, p as isFace, r as castShapeWithKnownType, t as castShape, y as isWire } from "./shapeTypes-D4Evnmz_.js";
1
+ import { Z as getKernel, _ as isSolid, h as isShape3D, p as isFace, r as castShapeWithKnownType, t as castShape, y as isWire } from "./shapeTypes-Caa9T1VR.js";
2
2
  import { A as ok, T as isOk, b as err, d as validationError, i as kernelError, l as typeCastError, t as BrepErrorCode, w as isErr } from "./errors-DNWJsfVU.js";
3
- import { c as getFaces, i as getCachedIsValid, l as getOrCreateCache, m as invalidateShapeCache, p as getWires, s as getEdges } from "./topologyQueryFns-5EeBz6_7.js";
3
+ import { c as getFaces, i as getCachedIsValid, l as getOrCreateCache, m as invalidateShapeCache, p as getWires, s as getEdges } from "./topologyQueryFns-CR7zQvDK.js";
4
4
  import { n as HASH_CODE_MAX } from "./constants-ITRzCnCp.js";
5
- import { v as downcast } from "./faceFns-BO8IXhhf.js";
6
- import { _ as propagateAllMetadata, g as collectInputFaceHashes } from "./shapeFns-B6UAiYAx.js";
5
+ import { v as downcast } from "./faceFns-hGTQhRXB.js";
6
+ import { _ as propagateAllMetadata, g as collectInputFaceHashes } from "./shapeFns-kVgikxkG.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-QUpJdbiK.js";
8
+ import { f as cut, h as fuseAll, m as fuse, p as cutAll } from "./solidBuilders-BHRL7010.js";
9
9
  //#region src/topology/threeHelpers.ts
10
10
  /**
11
11
  * Convert a ShapeMesh into BufferGeometry-compatible typed arrays.
@@ -1,12 +1,12 @@
1
- const require_shapeTypes = require("./shapeTypes-D1eUDuzl.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DpDcMU0a.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-Nnu56Ke2.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-imRz9gK2.cjs");
4
4
  const require_constants = require("./constants-BOVyEYGH.cjs");
5
5
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
6
- const require_faceFns = require("./faceFns-6AarivqH.cjs");
7
- const require_shapeFns = require("./shapeFns-sF0x5Zhj.cjs");
8
- const require_curveFns = require("./curveFns-BA5zsoce.cjs");
9
- const require_measureFns = require("./measureFns-BNHvjShh.cjs");
6
+ const require_faceFns = require("./faceFns-B3bYfnGX.cjs");
7
+ const require_shapeFns = require("./shapeFns-BPvq4QYa.cjs");
8
+ const require_curveFns = require("./curveFns-CJWxgcHu.cjs");
9
+ const require_measureFns = require("./measureFns-DwHd423H.cjs");
10
10
  //#region src/utils/vec2d.ts
11
11
  /** Precision for curve intersection and parameter operations. */
12
12
  var PRECISION_INTERSECTION = 1e-9;
@@ -1,12 +1,12 @@
1
- import { Z as getKernel, p as isFace } from "./shapeTypes-D4Evnmz_.js";
1
+ import { Z as getKernel, p as isFace } from "./shapeTypes-Caa9T1VR.js";
2
2
  import { A as ok, T as isOk, b as err, h as bug, o as queryError } from "./errors-DNWJsfVU.js";
3
- import { c as getFaces, f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-5EeBz6_7.js";
3
+ import { c as getFaces, f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-CR7zQvDK.js";
4
4
  import { t as DEG2RAD } from "./constants-ITRzCnCp.js";
5
5
  import { a as vecDot, d as vecNormalize } from "./vecOps-SKPRvPH-.js";
6
- import { l as normalAt, s as getSurfaceType } from "./faceFns-BO8IXhhf.js";
7
- import { a as isSameShape, n as getHashCode } from "./shapeFns-B6UAiYAx.js";
8
- import { f as getCurveType, i as curveIsClosed, o as curveLength } from "./curveFns-XSz4F9j3.js";
9
- import { n as measureArea } from "./measureFns-7Nz5JklM.js";
6
+ import { l as normalAt, s as getSurfaceType } from "./faceFns-hGTQhRXB.js";
7
+ import { a as isSameShape, n as getHashCode } from "./shapeFns-kVgikxkG.js";
8
+ import { f as getCurveType, i as curveIsClosed, o as curveLength } from "./curveFns-XRM_FMU4.js";
9
+ import { n as measureArea } from "./measureFns-Bka10mrS.js";
10
10
  //#region src/utils/vec2d.ts
11
11
  /** Precision for curve intersection and parameter operations. */
12
12
  var PRECISION_INTERSECTION = 1e-9;
@@ -1,8 +1,8 @@
1
- const require_shapeTypes = require("./shapeTypes-D1eUDuzl.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DpDcMU0a.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-BBUOweQy.cjs");
5
+ const require_blueprint = require("./blueprint-lbpshPPC.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) {
@@ -1,8 +1,8 @@
1
- import { Z as getKernel, t as castShape } from "./shapeTypes-D4Evnmz_.js";
1
+ import { Z as getKernel, t as castShape } from "./shapeTypes-Caa9T1VR.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-DjzevNhB.js";
5
+ import { f as make2dSegmentCurve, m as make2dThreePointArc, s as make2dBezierCurve, t as Blueprint } from "./blueprint-DmvnSTKs.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/io.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_meshFns = require("./meshFns-YXFipjjx.cjs");
3
- const require_importFns = require("./importFns-Cb-cmpGG.cjs");
2
+ const require_meshFns = require("./meshFns-B2k02WJJ.cjs");
3
+ const require_importFns = require("./importFns-BQTQKGbi.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-CWwOpBlM.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-D4Xet5aD.js";
1
+ import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-CNfOU3D1.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-CPZWa8WK.js";
3
3
  export { blueprintToDXF, exportDXF, exportGlb, exportGltf, exportIGES, exportOBJ, exportSTEP, exportSTEPConfigured, exportSTL, exportThreeMF, importIGES, importSTEP, importSTL, importSVG, importSVGPathD };
@@ -2,7 +2,7 @@
2
2
  * Type-safe interface for the brepkit WASM kernel (`BrepKernel`).
3
3
  *
4
4
  * AUTO-GENERATED by `npm run sync:brepkit-types`.
5
- * Synced against `brepkit-wasm@2.101.2`.
5
+ * Synced against `brepkit-wasm@2.104.1`.
6
6
  *
7
7
  * Methods not yet referenced in the adapter layer are tagged `@unwired`.
8
8
  *
@@ -23,6 +23,24 @@ export interface BrepkitMesh {
23
23
  /** All mesh data in a single packed buffer for efficient FFI transfer. */
24
24
  packedBuffer(): Uint8Array;
25
25
  }
26
+ /**
27
+ * Per-face-grouped mesh returned by `tessellateSolidGroupedBinary` (packed).
28
+ *
29
+ * Hand-added forward-declaration: the binary binding ships in a brepkit-wasm
30
+ * release newer than the one this file is synced against. Once the dependency
31
+ * is bumped, `npm run sync:brepkit-types` regenerates this from the upstream
32
+ * `.d.ts` (the method is already in the sync script's Tessellation list).
33
+ */
34
+ export interface BrepkitGroupedMesh {
35
+ /** Flattened vertex positions `[x, y, z, ...]`. */
36
+ readonly positions: Float32Array;
37
+ /** Flattened per-vertex normals `[nx, ny, nz, ...]`. */
38
+ readonly normals: Float32Array;
39
+ /** Triangle indices (groups of 3). */
40
+ readonly indices: Uint32Array;
41
+ /** Per-face start offsets into `indices`; last element equals `indices.length`. */
42
+ readonly faceOffsets: Uint32Array;
43
+ }
26
44
  /** Edge polylines returned by `meshEdges`. */
27
45
  export interface BrepkitEdgeLines {
28
46
  /** Flattened vertex positions `[x, y, z, ...]`. */
@@ -207,6 +225,13 @@ export interface BrepkitKernel {
207
225
  /** @unwired */
208
226
  tessellateSolid(solid: number, deflection: number, angularTolerance?: number | null): BrepkitMesh;
209
227
  tessellateSolidGrouped(solid: number, deflection: number, angularTolerance?: number | null): string;
228
+ /**
229
+ * Binary counterpart of `tessellateSolidGrouped` — packed typed arrays, no JSON.
230
+ *
231
+ * Optional (and hand-added) so the adapter's `typeof`-based feature detection
232
+ * typechecks while the pinned brepkit-wasm release may not yet expose it.
233
+ */
234
+ tessellateSolidGroupedBinary?(solid: number, deflection: number, angularTolerance?: number | null): BrepkitGroupedMesh;
210
235
  tessellateSolidUV(solid: number, deflection: number, angularTolerance?: number | null): string;
211
236
  /** @unwired */
212
237
  tessellateEdge(edge: number, numPoints: number): Float64Array;
@@ -215,7 +240,9 @@ export interface BrepkitKernel {
215
240
  meshEdgesAll(solid: number, deflection: number): BrepkitEdgeLines;
216
241
  meshBoolean(positionsA: Float64Array | number[], indicesA: Uint32Array | number[], positionsB: Float64Array | number[], indicesB: Uint32Array | number[], op: string, tolerance: number): BrepkitMesh;
217
242
  exportStep(solid: number): Uint8Array;
243
+ /** @unwired */
218
244
  exportStl(solid: number, deflection: number): Uint8Array;
245
+ /** @unwired */
219
246
  exportStlAscii(solid: number, deflection: number): Uint8Array;
220
247
  exportIges(solid: number): Uint8Array;
221
248
  export3mf(solid: number, deflection: number): Uint8Array;
@@ -286,6 +313,8 @@ export interface BrepkitKernel {
286
313
  /** @unwired */
287
314
  getNurbsSurfaceData(face: number): string;
288
315
  getNurbsSurfaceDataParity(face: number): string;
316
+ /** @unwired */
317
+ getSolidShells(solid: number): Uint32Array;
289
318
  makeCircleEdge(cx: number, cy: number, cz: number, nx: number, ny: number, nz: number, radius: number): number;
290
319
  /** @unwired */
291
320
  makeCircleEdgeWithRef(cx: number, cy: number, cz: number, nx: number, ny: number, nz: number, radius: number, rx: number, ry: number, rz: number): number;
@@ -298,15 +327,15 @@ export interface BrepkitKernel {
298
327
  /** @unwired */
299
328
  toBrepJson(solid: number): string;
300
329
  transformFace(face: number, matrix: Float64Array | number[]): void;
301
- /** @future Not in brepkit-wasm 2.101.2. Referenced with feature detection in adapter. */
330
+ /** @future Not in brepkit-wasm 2.104.1. Referenced with feature detection in adapter. */
302
331
  chamferAsymmetric?(solid: number, edgeHandles: Uint32Array | number[], d1: number, d2: number): number;
303
- /** @future Not in brepkit-wasm 2.101.2. Referenced with feature detection in adapter. */
332
+ /** @future Not in brepkit-wasm 2.104.1. Referenced with feature detection in adapter. */
304
333
  compoundFuse?(solidIds: Uint32Array | number[]): number;
305
- /** @future Not in brepkit-wasm 2.101.2. Referenced with feature detection in adapter. */
334
+ /** @future Not in brepkit-wasm 2.104.1. Referenced with feature detection in adapter. */
306
335
  copyEdge?(edge: number): number;
307
- /** @future Not in brepkit-wasm 2.101.2. Referenced with feature detection in adapter. */
336
+ /** @future Not in brepkit-wasm 2.104.1. Referenced with feature detection in adapter. */
308
337
  transformEdge?(edge: number, matrix: Float64Array | number[]): void;
309
- /** @future Not in brepkit-wasm 2.101.2. Referenced with feature detection in adapter. */
338
+ /** @future Not in brepkit-wasm 2.104.1. Referenced with feature detection in adapter. */
310
339
  validateSolidDetails?(solid: number): string;
311
340
  /** Release the entire arena. */
312
341
  free(): void;
@@ -39,7 +39,14 @@ export declare function rotateCurve2d(curve: Curve2dHandle, angle: number, cx: n
39
39
  export declare function scaleCurve2d(curve: Curve2dHandle, factor: number, cx: number, cy: number): Curve2dHandle;
40
40
  export declare function mirrorCurve2dAtPoint(curve: Curve2dHandle, cx: number, cy: number): Curve2dHandle;
41
41
  export declare function mirrorCurve2dAcrossAxis(curve: Curve2dHandle, originX: number, originY: number, dirX: number, dirY: number): Curve2dHandle;
42
- export declare function affinityTransform2d(curve: Curve2dHandle): Curve2dHandle;
42
+ /**
43
+ * Directional affinity matching OCCT `gp_GTrsf2d::SetAffinity`: scales the
44
+ * component perpendicular to the axis `(dx, dy)` through `(ox, oy)` by `ratio`,
45
+ * leaving the parallel component fixed. Applied by sampling and refitting as a
46
+ * Bezier, since occt-wasm has no native Geom2d transform.
47
+ */
48
+ export declare function affinityCurve2d(curve: Curve2dHandle, ox: number, oy: number, dx: number, dy: number, ratio: number): Curve2dHandle;
49
+ export declare function affinityTransform2d(curve: Curve2dHandle, ox: number, oy: number, dx: number, dy: number, ratio: number): Curve2dHandle;
43
50
  export declare function createIdentityGTrsf2d(): KernelType;
44
51
  export declare function createAffinityGTrsf2d(originX: number, originY: number, dirX: number, dirY: number, ratio: number): KernelType;
45
52
  export declare function createTranslationGTrsf2d(dx: number, dy: number): KernelType;
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_occtWasmAdapter = require("../../occtWasmAdapter-5hzzhkME.cjs");
2
+ const require_occtWasmAdapter = require("../../occtWasmAdapter-Bfz5Zfmk.cjs");
3
3
  exports.OcctWasmAdapter = require_occtWasmAdapter.OcctWasmAdapter;
@@ -388,7 +388,7 @@ export declare class OcctWasmAdapter implements KernelAdapter {
388
388
  scaleCurve2d(curve: Curve2dHandle, factor: number, cx: number, cy: number): Curve2dHandle;
389
389
  mirrorCurve2dAtPoint(curve: Curve2dHandle, cx: number, cy: number): Curve2dHandle;
390
390
  mirrorCurve2dAcrossAxis(curve: Curve2dHandle, originX: number, originY: number, dirX: number, dirY: number): Curve2dHandle;
391
- affinityTransform2d(curve: Curve2dHandle, _axisOriginX: number, _axisOriginY: number, _axisDirX: number, _axisDirY: number, _ratio: number): Curve2dHandle;
391
+ affinityTransform2d(curve: Curve2dHandle, axisOriginX: number, axisOriginY: number, axisDirX: number, axisDirY: number, ratio: number): Curve2dHandle;
392
392
  createIdentityGTrsf2d(): KernelType;
393
393
  createAffinityGTrsf2d(originX: number, originY: number, dirX: number, dirY: number, ratio: number): KernelType;
394
394
  createTranslationGTrsf2d(dx: number, dy: number): KernelType;
@@ -1,2 +1,2 @@
1
- import { t as OcctWasmAdapter } from "../../occtWasmAdapter-BMV179Ji.js";
1
+ import { t as OcctWasmAdapter } from "../../occtWasmAdapter-BK6h0nKd.js";
2
2
  export { OcctWasmAdapter };
@@ -1,4 +1,4 @@
1
- const require_shapeTypes = require("./shapeTypes-D1eUDuzl.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DpDcMU0a.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
3
  const require_types = require("./types-KjA8tY4Y.cjs");
4
4
  const require_vecOps = require("./vecOps-CCnJt-yH.cjs");
@@ -1,4 +1,4 @@
1
- import { Z as getKernel, c as createSolid, h as isShape3D, t as castShape, y as isWire } from "./shapeTypes-D4Evnmz_.js";
1
+ import { Z as getKernel, c as createSolid, h as isShape3D, t as castShape, y as isWire } from "./shapeTypes-Caa9T1VR.js";
2
2
  import { A as ok, b as err, d as validationError, i as kernelError, l as typeCastError, t as BrepErrorCode, w as isErr } from "./errors-DNWJsfVU.js";
3
3
  import { r as toVec3 } from "./types-D24Y27N0.js";
4
4
  import { c as vecLength, d as vecNormalize, t as vecAdd } from "./vecOps-SKPRvPH-.js";
@@ -1,7 +1,7 @@
1
- import { Z as getKernel } from "./shapeTypes-D4Evnmz_.js";
1
+ import { Z as getKernel } from "./shapeTypes-Caa9T1VR.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-5EeBz6_7.js";
4
- import { m as uvBounds } from "./faceFns-BO8IXhhf.js";
3
+ import { w as kernelCallRaw } from "./topologyQueryFns-CR7zQvDK.js";
4
+ import { m as uvBounds } from "./faceFns-hGTQhRXB.js";
5
5
  //#region src/measurement/measureCache.ts
6
6
  var cache = /* @__PURE__ */ new WeakMap();
7
7
  function getCachedMeasurement(shape, key) {
@@ -1,7 +1,7 @@
1
- const require_shapeTypes = require("./shapeTypes-D1eUDuzl.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DpDcMU0a.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-Nnu56Ke2.cjs");
4
- const require_faceFns = require("./faceFns-6AarivqH.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-imRz9gK2.cjs");
4
+ const require_faceFns = require("./faceFns-B3bYfnGX.cjs");
5
5
  //#region src/measurement/measureCache.ts
6
6
  var cache = /* @__PURE__ */ new WeakMap();
7
7
  function getCachedMeasurement(shape, key) {
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_measureFns = require("./measureFns-BNHvjShh.cjs");
2
+ const require_measureFns = require("./measureFns-DwHd423H.cjs");
3
3
  exports.createDistanceQuery = require_measureFns.createDistanceQuery;
4
4
  exports.measureArea = require_measureFns.measureArea;
5
5
  exports.measureDistance = require_measureFns.measureDistance;
@@ -1,2 +1,2 @@
1
- import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps, l as measureSurfaceProps, n as measureArea, o as measureDistanceProps, s as measureLength, t as createDistanceQuery, u as measureVolume } from "./measureFns-7Nz5JklM.js";
1
+ import { a as measureDistance, c as measureLinearProps, d as measureVolumeProps, l as measureSurfaceProps, n as measureArea, o as measureDistanceProps, s as measureLength, t as createDistanceQuery, u as measureVolume } from "./measureFns-Bka10mrS.js";
2
2
  export { createDistanceQuery, measureArea, measureDistance, measureDistanceProps, measureLength, measureLinearProps, measureSurfaceProps, measureVolume, measureVolumeProps };
@@ -1,7 +1,7 @@
1
- const require_shapeTypes = require("./shapeTypes-D1eUDuzl.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DpDcMU0a.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-Nnu56Ke2.cjs");
4
- const require_shapeFns = require("./shapeFns-sF0x5Zhj.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-imRz9gK2.cjs");
4
+ const require_shapeFns = require("./shapeFns-BPvq4QYa.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,7 +1,7 @@
1
- import { Z as getKernel, gt as qualityDeflection } from "./shapeTypes-D4Evnmz_.js";
1
+ import { Z as getKernel, gt as qualityDeflection } from "./shapeTypes-Caa9T1VR.js";
2
2
  import { A as ok, b as err, r as ioError } from "./errors-DNWJsfVU.js";
3
- import { d as getSolids, n as getBounds } from "./topologyQueryFns-5EeBz6_7.js";
4
- import { O as getFaceOrigins } from "./shapeFns-B6UAiYAx.js";
3
+ import { d as getSolids, n as getBounds } from "./topologyQueryFns-CR7zQvDK.js";
4
+ import { O as getFaceOrigins } from "./shapeFns-kVgikxkG.js";
5
5
  //#region src/topology/meshCache.ts
6
6
  /**
7
7
  * Build a parameter key for the inner cache map (excludes shape identity).
@@ -3636,8 +3636,32 @@ function mirrorCurve2dAtPoint(curve, cx, cy) {
3636
3636
  function mirrorCurve2dAcrossAxis(curve, originX, originY, dirX, dirY) {
3637
3637
  return c2dWrap(mirrorAcrossAxis(c2d(curve), originX, originY, dirX, dirY));
3638
3638
  }
3639
- function affinityTransform2d(curve) {
3640
- return curve;
3639
+ /**
3640
+ * Directional affinity matching OCCT `gp_GTrsf2d::SetAffinity`: scales the
3641
+ * component perpendicular to the axis `(dx, dy)` through `(ox, oy)` by `ratio`,
3642
+ * leaving the parallel component fixed. Applied by sampling and refitting as a
3643
+ * Bezier, since occt-wasm has no native Geom2d transform.
3644
+ */
3645
+ function affinityCurve2d(curve, ox, oy, dx, dy, ratio) {
3646
+ const len = Math.sqrt(dx * dx + dy * dy);
3647
+ if (len < 1e-15) return curve;
3648
+ const px = -dy / len, py = dx / len;
3649
+ const k = ratio - 1;
3650
+ const a = 1 + k * px * px, b = k * px * py, d = k * py * px, e = 1 + k * py * py;
3651
+ const tx = ox - a * ox - b * oy;
3652
+ const ty = oy - d * ox - e * oy;
3653
+ const c = c2d(curve);
3654
+ const bounds = curveBounds(c);
3655
+ const N = 20;
3656
+ const pts = [];
3657
+ for (let i = 0; i <= N; i++) {
3658
+ const [qx, qy] = evaluateCurve2d$1(c, bounds.first + (bounds.last - bounds.first) * i / N);
3659
+ pts.push([a * qx + b * qy + tx, d * qx + e * qy + ty]);
3660
+ }
3661
+ return c2dWrap(makeBezier2d$1(pts));
3662
+ }
3663
+ function affinityTransform2d(curve, ox, oy, dx, dy, ratio) {
3664
+ return affinityCurve2d(curve, ox, oy, dx, dy, ratio);
3641
3665
  }
3642
3666
  function createIdentityGTrsf2d() {
3643
3667
  return {
@@ -3718,7 +3742,7 @@ function transformCurve2dGeneral(curve, gtrsf) {
3718
3742
  if (t["type"] === "rotate2d") return rotateCurve2d(curve, Number(t["angle"]) || 0, Number(t["cx"]) || 0, Number(t["cy"]) || 0);
3719
3743
  if (t["type"] === "scale2d") return scaleCurve2d(curve, Number(t["sx"]) || 1, Number(t["cx"]) || 0, Number(t["cy"]) || 0);
3720
3744
  if (t["type"] === "mirror2d") return mirrorCurve2dAtPoint(curve, Number(t["ox"]) || 0, Number(t["oy"]) || 0);
3721
- if (t["type"] === "affinity2d") return scaleCurve2d(curve, Number(t["ratio"]) || 1, Number(t["axOriginX"]) || 0, Number(t["axOriginY"]) || 0);
3745
+ if (t["type"] === "affinity2d") return affinityCurve2d(curve, Number(t["axOriginX"]) || 0, Number(t["axOriginY"]) || 0, Number(t["axDirX"]) || 0, Number(t["axDirY"]) || 0, Number(t["ratio"]) || 1);
3722
3746
  if (Number(t["dx"]) || Number(t["dy"])) return translateCurve2d(curve, Number(t["dx"]) || 0, Number(t["dy"]) || 0);
3723
3747
  return curve;
3724
3748
  }
@@ -5063,8 +5087,8 @@ var OcctWasmAdapter = class OcctWasmAdapter {
5063
5087
  mirrorCurve2dAcrossAxis(curve, originX, originY, dirX, dirY) {
5064
5088
  return mirrorCurve2dAcrossAxis(curve, originX, originY, dirX, dirY);
5065
5089
  }
5066
- affinityTransform2d(curve, _axisOriginX, _axisOriginY, _axisDirX, _axisDirY, _ratio) {
5067
- return affinityTransform2d(curve);
5090
+ affinityTransform2d(curve, axisOriginX, axisOriginY, axisDirX, axisDirY, ratio) {
5091
+ return affinityTransform2d(curve, axisOriginX, axisOriginY, axisDirX, axisDirY, ratio);
5068
5092
  }
5069
5093
  createIdentityGTrsf2d() {
5070
5094
  return createIdentityGTrsf2d();
@@ -3636,8 +3636,32 @@ function mirrorCurve2dAtPoint(curve, cx, cy) {
3636
3636
  function mirrorCurve2dAcrossAxis(curve, originX, originY, dirX, dirY) {
3637
3637
  return c2dWrap(mirrorAcrossAxis(c2d(curve), originX, originY, dirX, dirY));
3638
3638
  }
3639
- function affinityTransform2d(curve) {
3640
- return curve;
3639
+ /**
3640
+ * Directional affinity matching OCCT `gp_GTrsf2d::SetAffinity`: scales the
3641
+ * component perpendicular to the axis `(dx, dy)` through `(ox, oy)` by `ratio`,
3642
+ * leaving the parallel component fixed. Applied by sampling and refitting as a
3643
+ * Bezier, since occt-wasm has no native Geom2d transform.
3644
+ */
3645
+ function affinityCurve2d(curve, ox, oy, dx, dy, ratio) {
3646
+ const len = Math.sqrt(dx * dx + dy * dy);
3647
+ if (len < 1e-15) return curve;
3648
+ const px = -dy / len, py = dx / len;
3649
+ const k = ratio - 1;
3650
+ const a = 1 + k * px * px, b = k * px * py, d = k * py * px, e = 1 + k * py * py;
3651
+ const tx = ox - a * ox - b * oy;
3652
+ const ty = oy - d * ox - e * oy;
3653
+ const c = c2d(curve);
3654
+ const bounds = curveBounds(c);
3655
+ const N = 20;
3656
+ const pts = [];
3657
+ for (let i = 0; i <= N; i++) {
3658
+ const [qx, qy] = evaluateCurve2d$1(c, bounds.first + (bounds.last - bounds.first) * i / N);
3659
+ pts.push([a * qx + b * qy + tx, d * qx + e * qy + ty]);
3660
+ }
3661
+ return c2dWrap(makeBezier2d$1(pts));
3662
+ }
3663
+ function affinityTransform2d(curve, ox, oy, dx, dy, ratio) {
3664
+ return affinityCurve2d(curve, ox, oy, dx, dy, ratio);
3641
3665
  }
3642
3666
  function createIdentityGTrsf2d() {
3643
3667
  return {
@@ -3718,7 +3742,7 @@ function transformCurve2dGeneral(curve, gtrsf) {
3718
3742
  if (t["type"] === "rotate2d") return rotateCurve2d(curve, Number(t["angle"]) || 0, Number(t["cx"]) || 0, Number(t["cy"]) || 0);
3719
3743
  if (t["type"] === "scale2d") return scaleCurve2d(curve, Number(t["sx"]) || 1, Number(t["cx"]) || 0, Number(t["cy"]) || 0);
3720
3744
  if (t["type"] === "mirror2d") return mirrorCurve2dAtPoint(curve, Number(t["ox"]) || 0, Number(t["oy"]) || 0);
3721
- if (t["type"] === "affinity2d") return scaleCurve2d(curve, Number(t["ratio"]) || 1, Number(t["axOriginX"]) || 0, Number(t["axOriginY"]) || 0);
3745
+ if (t["type"] === "affinity2d") return affinityCurve2d(curve, Number(t["axOriginX"]) || 0, Number(t["axOriginY"]) || 0, Number(t["axDirX"]) || 0, Number(t["axDirY"]) || 0, Number(t["ratio"]) || 1);
3722
3746
  if (Number(t["dx"]) || Number(t["dy"])) return translateCurve2d(curve, Number(t["dx"]) || 0, Number(t["dy"]) || 0);
3723
3747
  return curve;
3724
3748
  }
@@ -5063,8 +5087,8 @@ var OcctWasmAdapter = class OcctWasmAdapter {
5063
5087
  mirrorCurve2dAcrossAxis(curve, originX, originY, dirX, dirY) {
5064
5088
  return mirrorCurve2dAcrossAxis(curve, originX, originY, dirX, dirY);
5065
5089
  }
5066
- affinityTransform2d(curve, _axisOriginX, _axisOriginY, _axisDirX, _axisDirY, _ratio) {
5067
- return affinityTransform2d(curve);
5090
+ affinityTransform2d(curve, axisOriginX, axisOriginY, axisDirX, axisDirY, ratio) {
5091
+ return affinityTransform2d(curve, axisOriginX, axisOriginY, axisDirX, axisDirY, ratio);
5068
5092
  }
5069
5093
  createIdentityGTrsf2d() {
5070
5094
  return createIdentityGTrsf2d();
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_threadFns = require("./threadFns-DvSdQiRw.cjs");
3
- const require_loftFns = require("./loftFns-DxhcdpAu.cjs");
2
+ const require_threadFns = require("./threadFns-Cw1TzGd2.cjs");
3
+ const require_loftFns = require("./loftFns-B8UzGtwS.cjs");
4
4
  exports.addChild = require_threadFns.addChild;
5
5
  exports.addJoint = require_threadFns.addJoint;
6
6
  exports.addStep = require_threadFns.addStep;
@@ -1,3 +1,3 @@
1
- import { A as setJointValue, B as findNode, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, G as gridPattern, H as updateNode, I as addChild, J as createAssembly, K as linearPattern, L as collectShapes, M as sphericalJoint, O as prismaticJoint, R as countNodes, S as addJoint, T as jointTransform, U as walkAssembly, V as removeChild, W as circularPattern, _ 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 exportAssemblySTEP, 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 createAssemblyNode } from "./threadFns-CvLvKdwB.js";
2
- import { d as twistExtrude, l as supportExtrude, o as complexExtrude, u as sweep } from "./loftFns-BVbzy6gm.js";
1
+ import { A as setJointValue, B as findNode, C as cylindricalJoint, D as planarJoint, E as mechanismDOF, G as gridPattern, H as updateNode, I as addChild, J as createAssembly, K as linearPattern, L as collectShapes, M as sphericalJoint, O as prismaticJoint, R as countNodes, S as addJoint, T as jointTransform, U as walkAssembly, V as removeChild, W as circularPattern, _ 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 exportAssemblySTEP, 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 createAssemblyNode } from "./threadFns-74sXf2tN.js";
2
+ import { d as twistExtrude, l as supportExtrude, o as complexExtrude, u as sweep } from "./loftFns-DusJd7Qq.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
- import { Z as getKernel, c as createSolid, x as isClosedWire } from "./shapeTypes-D4Evnmz_.js";
1
+ import { Z as getKernel, c as createSolid, x as isClosedWire } from "./shapeTypes-Caa9T1VR.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-B6UAiYAx.js";
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-CLMyFimy.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-QUpJdbiK.js";
4
+ import { h as translate } from "./shapeFns-kVgikxkG.js";
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-BDEc8WSE.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-BHRL7010.js";
7
7
  //#region src/topology/primitiveFns.ts
8
8
  /**
9
9
  * Create a box with the given dimensions.
@@ -1,9 +1,9 @@
1
- const require_shapeTypes = require("./shapeTypes-D1eUDuzl.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DpDcMU0a.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-sF0x5Zhj.cjs");
5
- const require_surfaceBuilders = require("./surfaceBuilders-R4DKNFkI.cjs");
6
- const require_solidBuilders = require("./solidBuilders-lDXPwoCz.cjs");
4
+ const require_shapeFns = require("./shapeFns-BPvq4QYa.cjs");
5
+ const require_surfaceBuilders = require("./surfaceBuilders-5hLC_QeE.cjs");
6
+ const require_solidBuilders = require("./solidBuilders-Cve7yf13.cjs");
7
7
  //#region src/topology/primitiveFns.ts
8
8
  /**
9
9
  * Create a box with the given dimensions.
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_cameraFns = require("./cameraFns-Drgka78Q.cjs");
2
+ const require_cameraFns = require("./cameraFns-p4G3cFuC.cjs");
3
3
  exports.PROJECTION_PLANES = require_cameraFns.PROJECTION_PLANES;
4
4
  exports.cameraFromPlane = require_cameraFns.cameraFromPlane;
5
5
  exports.cameraLookAt = require_cameraFns.cameraLookAt;
@@ -1,2 +1,2 @@
1
- import { a as makeProjectedEdges, i as projectEdges, n as cameraLookAt, o as PROJECTION_PLANES, r as createCamera, s as isProjectionPlane, t as cameraFromPlane } from "./cameraFns-B3Wb4Br9.js";
1
+ import { a as makeProjectedEdges, i as projectEdges, n as cameraLookAt, o as PROJECTION_PLANES, r as createCamera, s as isProjectionPlane, t as cameraFromPlane } from "./cameraFns-B2WR42Tm.js";
2
2
  export { PROJECTION_PLANES, cameraFromPlane, cameraLookAt, createCamera, isProjectionPlane, makeProjectedEdges, projectEdges };