brepjs 14.1.3 → 14.2.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 (91) hide show
  1. package/dist/2d.cjs +5 -5
  2. package/dist/2d.js +5 -5
  3. package/dist/{blueprint-C6B--LQ6.cjs → blueprint-C8nlHdUE.cjs} +5 -5
  4. package/dist/{blueprint-CzFYcmzV.js → blueprint-Dsp-f4De.js} +5 -5
  5. package/dist/{blueprintFns-B2AvzIXt.cjs → blueprintFns-CvtakKGf.cjs} +2 -2
  6. package/dist/{blueprintFns-wka8INr_.js → blueprintFns-D1QUp5y4.js} +2 -2
  7. package/dist/{boolean2D-CfCt_m29.js → boolean2D-D1MYwspP.js} +49 -8
  8. package/dist/{boolean2D-6bQx64bR.cjs → boolean2D-DE2axG6W.cjs} +54 -7
  9. package/dist/{booleanFns-B6zxpf96.js → booleanFns-DViuH9nW.js} +32 -16
  10. package/dist/{booleanFns-C2pjUC6-.cjs → booleanFns-Dmvv9VVT.cjs} +32 -16
  11. package/dist/brepjs.cjs +23 -19
  12. package/dist/brepjs.js +20 -20
  13. package/dist/core.cjs +1 -1
  14. package/dist/core.js +1 -1
  15. package/dist/{cornerFinder-DBXma4vL.js → cornerFinder-CyvfiiYv.js} +1 -1
  16. package/dist/{cornerFinder-DrHIlWCS.cjs → cornerFinder-Du1Q1hgu.cjs} +1 -1
  17. package/dist/{curveFns-C_vQNb7-.cjs → curveFns--4Nh1ZtB.cjs} +1 -1
  18. package/dist/{curveFns-DmID8AQO.js → curveFns-D9GbWpcl.js} +1 -1
  19. package/dist/{drawFns-rLQIZezc.js → drawFns-BDqEWrCy.js} +11 -11
  20. package/dist/{drawFns-DRG-UpkW.cjs → drawFns-DTqCnYeo.cjs} +11 -11
  21. package/dist/{extrudeFns-BP7fNL5O.cjs → extrudeFns-CIUq5ZQW.cjs} +44 -1
  22. package/dist/{extrudeFns-1qcdK9dq.js → extrudeFns-DxS_UOMr.js} +39 -2
  23. package/dist/{faceFns-BwzwlBjE.cjs → faceFns-D7i9yEts.cjs} +1 -1
  24. package/dist/{faceFns-BHT5DAOL.js → faceFns-lcEYbLOs.js} +1 -1
  25. package/dist/{helpers-C4Ajoc6x.cjs → helpers-BK3DVd3M.cjs} +5 -5
  26. package/dist/{helpers-B94CkHQe.js → helpers-BwzOwHWl.js} +5 -5
  27. package/dist/{historyFns-CrsjeD69.cjs → historyFns-BO9c4AgQ.cjs} +4 -4
  28. package/dist/{historyFns-BsSuAQ0m.js → historyFns-C_EoZWD5.js} +4 -4
  29. package/dist/{importFns-DPwXjtkm.cjs → importFns-Ca7DsY-k.cjs} +2 -2
  30. package/dist/{importFns-DQsQOpRY.js → importFns-NY1stg0C.js} +2 -2
  31. package/dist/index.d.ts +4 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/io.cjs +2 -2
  34. package/dist/io.js +2 -2
  35. package/dist/kernel/index.d.ts +2 -0
  36. package/dist/kernel/index.d.ts.map +1 -1
  37. package/dist/kernel/interfaces/modifierOps.d.ts +16 -0
  38. package/dist/kernel/interfaces/modifierOps.d.ts.map +1 -1
  39. package/dist/kernel/interfaces/sweepOps.d.ts +15 -0
  40. package/dist/kernel/interfaces/sweepOps.d.ts.map +1 -1
  41. package/dist/kernel/occt/booleanBatchOps.d.ts +13 -0
  42. package/dist/kernel/occt/booleanBatchOps.d.ts.map +1 -0
  43. package/dist/kernel/occt/booleanOps.d.ts.map +1 -1
  44. package/dist/kernel/occt/defaultAdapter.d.ts +6 -0
  45. package/dist/kernel/occt/defaultAdapter.d.ts.map +1 -1
  46. package/dist/kernel/occt/meshOps.d.ts.map +1 -1
  47. package/dist/kernel/occt/modifierOps.d.ts +19 -0
  48. package/dist/kernel/occt/modifierOps.d.ts.map +1 -1
  49. package/dist/kernel/occt/sweepOps.d.ts +17 -0
  50. package/dist/kernel/occt/sweepOps.d.ts.map +1 -1
  51. package/dist/kernel/occt/transformOps.d.ts.map +1 -1
  52. package/dist/kernel/perfStats.d.ts +27 -0
  53. package/dist/kernel/perfStats.d.ts.map +1 -0
  54. package/dist/kernel/types.d.ts +6 -0
  55. package/dist/kernel/types.d.ts.map +1 -1
  56. package/dist/{measureFns-iarjC69-.js → measureFns-Dsan3QcB.js} +2 -2
  57. package/dist/{measureFns-j1ze9DDM.cjs → measureFns-rVSankqO.cjs} +2 -2
  58. package/dist/measurement.cjs +1 -1
  59. package/dist/measurement.js +1 -1
  60. package/dist/{meshFns-DRl9xnbO.js → meshFns-CKs4H-CH.js} +2 -2
  61. package/dist/{meshFns-CONktkIA.cjs → meshFns-Z5n8gFAS.cjs} +2 -2
  62. package/dist/operations/extrudeFns.d.ts +16 -0
  63. package/dist/operations/extrudeFns.d.ts.map +1 -1
  64. package/dist/operations/loftFns.d.ts +22 -0
  65. package/dist/operations/loftFns.d.ts.map +1 -1
  66. package/dist/operations.cjs +2 -2
  67. package/dist/operations.js +2 -2
  68. package/dist/{primitiveFns-CMIscOrN.js → primitiveFns-DmIP-qnU.js} +17 -7
  69. package/dist/{primitiveFns-CGg6EBKg.cjs → primitiveFns-w2otksRk.cjs} +17 -7
  70. package/dist/query.cjs +2 -2
  71. package/dist/query.js +2 -2
  72. package/dist/{shapeFns-DY7pjzrz.cjs → shapeFns-DZ2c5Nqo.cjs} +2 -2
  73. package/dist/{shapeFns-Brq2J-mW.js → shapeFns-E3qTx3nN.js} +2 -2
  74. package/dist/shapeRef.cjs +1 -1
  75. package/dist/shapeRef.js +1 -1
  76. package/dist/{shapeRefFns-BqOlRA7C.js → shapeRefFns-CEYgkZ1v.js} +3 -3
  77. package/dist/{shapeRefFns-BOljxSxd.cjs → shapeRefFns-Dl7v17MC.cjs} +3 -3
  78. package/dist/{shapeTypes-B3kwoJWf.cjs → shapeTypes-B5Vx1Wsw.cjs} +538 -171
  79. package/dist/{shapeTypes-CoNj-AHu.js → shapeTypes-DUJg_N3P.js} +527 -172
  80. package/dist/sketching.cjs +2 -2
  81. package/dist/sketching.js +2 -2
  82. package/dist/{solidBuilders-BzIatk9a.js → solidBuilders-0gTTuSxw.js} +2 -2
  83. package/dist/{solidBuilders-V8qvmW7h.cjs → solidBuilders-Bvq6br4f.cjs} +2 -2
  84. package/dist/{surfaceBuilders-CoiofY0Y.cjs → surfaceBuilders-CYWopaht.cjs} +2 -2
  85. package/dist/{surfaceBuilders-Cfo4nH6A.js → surfaceBuilders-DMI0n7Bf.js} +2 -2
  86. package/dist/topology/booleanFns.d.ts.map +1 -1
  87. package/dist/topology/modifierFns.d.ts +6 -2
  88. package/dist/topology/modifierFns.d.ts.map +1 -1
  89. package/dist/topology.cjs +6 -6
  90. package/dist/topology.js +6 -6
  91. package/package.json +2 -2
@@ -1,10 +1,10 @@
1
- import { Y as getKernel, _ as isSolid, c as createSolid, h as isShape3D, p as isFace, r as castShapeWithKnownType, t as castShape, x as isClosedWire, y as isWire } from "./shapeTypes-CoNj-AHu.js";
1
+ import { Y as getKernel, _ as isSolid, c as createSolid, h as isShape3D, p as isFace, r as castShapeWithKnownType, t as castShape, x as isClosedWire, y as isWire } from "./shapeTypes-DUJg_N3P.js";
2
2
  import { A as ok, T as isOk, b as err, d as validationError, i as kernelError, l as typeCastError, t as BrepErrorCode, v as andThen, w as isErr } from "./errors-C-cgQA3w.js";
3
- import { _ as downcast } from "./faceFns-BHT5DAOL.js";
3
+ import { _ as downcast } from "./faceFns-lcEYbLOs.js";
4
4
  import { n as HASH_CODE_MAX, t as DEG2RAD } from "./constants-B9u763C3.js";
5
- import { I as getWires, M as getEdges, N as getFaces, P as getOrCreateCache, _ as propagateAllMetadata, g as collectInputFaceHashes, h as translate } from "./shapeFns-Brq2J-mW.js";
6
- import { a as makeNonPlanarFace, c as makeBSplineApproximation, d as makeEllipse, f as makeEllipseArc, g as makeThreePointArc, h as makeTangentArc, i as makeNewFaceWithinFace, l as makeBezierCurve, m as makeLine, o as makePolygon, p as makeHelix, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeCircle } from "./surfaceBuilders-Cfo4nH6A.js";
7
- 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-BzIatk9a.js";
5
+ import { I as getWires, M as getEdges, N as getFaces, P as getOrCreateCache, _ as propagateAllMetadata, g as collectInputFaceHashes, h as translate } from "./shapeFns-E3qTx3nN.js";
6
+ import { a as makeNonPlanarFace, c as makeBSplineApproximation, d as makeEllipse, f as makeEllipseArc, g as makeThreePointArc, h as makeTangentArc, i as makeNewFaceWithinFace, l as makeBezierCurve, m as makeLine, o as makePolygon, p as makeHelix, r as makeFace, s as assembleWire, t as addHolesInFace, u as makeCircle } from "./surfaceBuilders-DMI0n7Bf.js";
7
+ 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-0gTTuSxw.js";
8
8
  //#region src/topology/threeHelpers.ts
9
9
  /**
10
10
  * Convert a ShapeMesh into BufferGeometry-compatible typed arrays.
@@ -711,7 +711,7 @@ function thicken(shape, thickness) {
711
711
  * @param edges - Edges to fillet. Pass `undefined` to fillet all edges.
712
712
  * @param radius - Constant radius, variable radius `[r1, r2]`, or per-edge callback.
713
713
  */
714
- function fillet(shape, edges, radius) {
714
+ function fillet(shape, edges, radius, { trackEvolution = true } = {}) {
715
715
  const check = validateNotNull(shape, "fillet: shape");
716
716
  if (isErr(check)) return check;
717
717
  const paramErr = validatePositiveParam(radius, {
@@ -736,6 +736,11 @@ function fillet(shape, edges, radius) {
736
736
  filteredEdges = [...selectedEdges];
737
737
  kernelRadius = radius;
738
738
  }
739
+ if (!trackEvolution) {
740
+ const cast = castShape(getKernel().fillet(shape.wrapped, filteredEdges.map((e) => e.wrapped), kernelRadius));
741
+ if (!isShape3D(cast)) return err(kernelError(BrepErrorCode.FILLET_NOT_3D, "Fillet result is not a 3D shape"));
742
+ return ok(cast);
743
+ }
739
744
  const inputFaceHashes = collectInputFaceHashes([shape]);
740
745
  const { shape: resultShape, evolution } = getKernel().filletWithHistory(shape.wrapped, filteredEdges.map((e) => e.wrapped), kernelRadius, inputFaceHashes, HASH_CODE_MAX);
741
746
  return finalizeShape3D(evolution, resultShape, [shape], BrepErrorCode.FILLET_NOT_3D, "Fillet result is not a 3D shape");
@@ -798,12 +803,17 @@ function chamfer(shape, edges, distance) {
798
803
  * @param thickness - Wall thickness.
799
804
  * @param tolerance - Shell operation tolerance (default 1e-3).
800
805
  */
801
- function shell(shape, faces, thickness, tolerance = .001) {
806
+ function shell(shape, faces, thickness, tolerance = .001, { trackEvolution = true } = {}) {
802
807
  const check = validateNotNull(shape, "shell: shape");
803
808
  if (isErr(check)) return check;
804
809
  if (thickness <= 0) return err(validationError("INVALID_THICKNESS", "Shell thickness must be positive"));
805
810
  if (faces.length === 0) return err(validationError("NO_FACES", "At least one face must be specified for shell"));
806
811
  try {
812
+ if (!trackEvolution) {
813
+ const cast = castShape(getKernel().shell(shape.wrapped, faces.map((f) => f.wrapped), thickness, tolerance));
814
+ if (!isShape3D(cast)) return err(kernelError("SHELL_RESULT_NOT_3D", "Shell result is not a 3D shape"));
815
+ return ok(cast);
816
+ }
807
817
  const inputFaceHashes = collectInputFaceHashes([shape]);
808
818
  const { shape: resultShape, evolution } = getKernel().shellWithHistory(shape.wrapped, faces.map((f) => f.wrapped), thickness, inputFaceHashes, HASH_CODE_MAX, tolerance);
809
819
  const cast = castShape(resultShape);
@@ -1,10 +1,10 @@
1
- const require_shapeTypes = require("./shapeTypes-B3kwoJWf.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-B5Vx1Wsw.cjs");
2
2
  const require_errors = require("./errors-9zQcQK1H.cjs");
3
- const require_faceFns = require("./faceFns-BwzwlBjE.cjs");
3
+ const require_faceFns = require("./faceFns-D7i9yEts.cjs");
4
4
  const require_constants = require("./constants-unWN8k4c.cjs");
5
- const require_shapeFns = require("./shapeFns-DY7pjzrz.cjs");
6
- const require_surfaceBuilders = require("./surfaceBuilders-CoiofY0Y.cjs");
7
- const require_solidBuilders = require("./solidBuilders-V8qvmW7h.cjs");
5
+ const require_shapeFns = require("./shapeFns-DZ2c5Nqo.cjs");
6
+ const require_surfaceBuilders = require("./surfaceBuilders-CYWopaht.cjs");
7
+ const require_solidBuilders = require("./solidBuilders-Bvq6br4f.cjs");
8
8
  //#region src/topology/threeHelpers.ts
9
9
  /**
10
10
  * Convert a ShapeMesh into BufferGeometry-compatible typed arrays.
@@ -711,7 +711,7 @@ function thicken(shape, thickness) {
711
711
  * @param edges - Edges to fillet. Pass `undefined` to fillet all edges.
712
712
  * @param radius - Constant radius, variable radius `[r1, r2]`, or per-edge callback.
713
713
  */
714
- function fillet(shape, edges, radius) {
714
+ function fillet(shape, edges, radius, { trackEvolution = true } = {}) {
715
715
  const check = validateNotNull(shape, "fillet: shape");
716
716
  if (require_errors.isErr(check)) return check;
717
717
  const paramErr = validatePositiveParam(radius, {
@@ -736,6 +736,11 @@ function fillet(shape, edges, radius) {
736
736
  filteredEdges = [...selectedEdges];
737
737
  kernelRadius = radius;
738
738
  }
739
+ if (!trackEvolution) {
740
+ const cast = require_shapeTypes.castShape(require_shapeTypes.getKernel().fillet(shape.wrapped, filteredEdges.map((e) => e.wrapped), kernelRadius));
741
+ if (!require_shapeTypes.isShape3D(cast)) return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.FILLET_NOT_3D, "Fillet result is not a 3D shape"));
742
+ return require_errors.ok(cast);
743
+ }
739
744
  const inputFaceHashes = require_shapeFns.collectInputFaceHashes([shape]);
740
745
  const { shape: resultShape, evolution } = require_shapeTypes.getKernel().filletWithHistory(shape.wrapped, filteredEdges.map((e) => e.wrapped), kernelRadius, inputFaceHashes, require_constants.HASH_CODE_MAX);
741
746
  return finalizeShape3D(evolution, resultShape, [shape], require_errors.BrepErrorCode.FILLET_NOT_3D, "Fillet result is not a 3D shape");
@@ -798,12 +803,17 @@ function chamfer(shape, edges, distance) {
798
803
  * @param thickness - Wall thickness.
799
804
  * @param tolerance - Shell operation tolerance (default 1e-3).
800
805
  */
801
- function shell(shape, faces, thickness, tolerance = .001) {
806
+ function shell(shape, faces, thickness, tolerance = .001, { trackEvolution = true } = {}) {
802
807
  const check = validateNotNull(shape, "shell: shape");
803
808
  if (require_errors.isErr(check)) return check;
804
809
  if (thickness <= 0) return require_errors.err(require_errors.validationError("INVALID_THICKNESS", "Shell thickness must be positive"));
805
810
  if (faces.length === 0) return require_errors.err(require_errors.validationError("NO_FACES", "At least one face must be specified for shell"));
806
811
  try {
812
+ if (!trackEvolution) {
813
+ const cast = require_shapeTypes.castShape(require_shapeTypes.getKernel().shell(shape.wrapped, faces.map((f) => f.wrapped), thickness, tolerance));
814
+ if (!require_shapeTypes.isShape3D(cast)) return require_errors.err(require_errors.kernelError("SHELL_RESULT_NOT_3D", "Shell result is not a 3D shape"));
815
+ return require_errors.ok(cast);
816
+ }
807
817
  const inputFaceHashes = require_shapeFns.collectInputFaceHashes([shape]);
808
818
  const { shape: resultShape, evolution } = require_shapeTypes.getKernel().shellWithHistory(shape.wrapped, faces.map((f) => f.wrapped), thickness, inputFaceHashes, require_constants.HASH_CODE_MAX, tolerance);
809
819
  const cast = require_shapeTypes.castShape(resultShape);
package/dist/query.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_helpers = require("./helpers-C4Ajoc6x.cjs");
3
- const require_cornerFinder = require("./cornerFinder-DrHIlWCS.cjs");
2
+ const require_helpers = require("./helpers-BK3DVd3M.cjs");
3
+ const require_cornerFinder = require("./cornerFinder-Du1Q1hgu.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-B94CkHQe.js";
2
- import { t as cornerFinder } from "./cornerFinder-DBXma4vL.js";
1
+ import { n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-BwzOwHWl.js";
2
+ import { t as cornerFinder } from "./cornerFinder-CyvfiiYv.js";
3
3
  export { cornerFinder, edgeFinder, faceFinder, getSingleFace };
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-B3kwoJWf.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-B5Vx1Wsw.cjs");
2
2
  const require_errors = require("./errors-9zQcQK1H.cjs");
3
- const require_faceFns = require("./faceFns-BwzwlBjE.cjs");
3
+ const require_faceFns = require("./faceFns-D7i9yEts.cjs");
4
4
  const require_constants = require("./constants-unWN8k4c.cjs");
5
5
  //#region src/topology/topologyQueryFns.ts
6
6
  /**
@@ -1,6 +1,6 @@
1
- import { Y as getKernel, r as castShapeWithKnownType, t as castShape } from "./shapeTypes-CoNj-AHu.js";
1
+ import { Y as getKernel, r as castShapeWithKnownType, t as castShape } from "./shapeTypes-DUJg_N3P.js";
2
2
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-C-cgQA3w.js";
3
- import { C as kernelCallRaw, S as kernelCall } from "./faceFns-BHT5DAOL.js";
3
+ import { C as kernelCallRaw, S as kernelCall } from "./faceFns-lcEYbLOs.js";
4
4
  import { n as HASH_CODE_MAX, t as DEG2RAD } from "./constants-B9u763C3.js";
5
5
  //#region src/topology/topologyQueryFns.ts
6
6
  /**
package/dist/shapeRef.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_shapeRefFns = require("./shapeRefFns-BOljxSxd.cjs");
2
+ const require_shapeRefFns = require("./shapeRefFns-Dl7v17MC.cjs");
3
3
  exports.assignRoles = require_shapeRefFns.assignRoles;
4
4
  exports.captureHint = require_shapeRefFns.captureHint;
5
5
  exports.createRef = require_shapeRefFns.createRef;
package/dist/shapeRef.js CHANGED
@@ -1,2 +1,2 @@
1
- import { a as updateRoles, i as resolveRef, n as captureHint, o as defaultScorer, r as createRef, t as assignRoles } from "./shapeRefFns-BqOlRA7C.js";
1
+ import { a as updateRoles, i as resolveRef, n as captureHint, o as defaultScorer, r as createRef, t as assignRoles } from "./shapeRefFns-CEYgkZ1v.js";
2
2
  export { assignRoles, captureHint, createRef, defaultScorer, resolveRef, updateRoles };
@@ -1,6 +1,6 @@
1
- import { c as normalAt, n as faceCenter, r as faceGeomType } from "./faceFns-BHT5DAOL.js";
2
- import { N as getFaces, n as getHashCode } from "./shapeFns-Brq2J-mW.js";
3
- import { n as measureArea } from "./measureFns-iarjC69-.js";
1
+ import { c as normalAt, n as faceCenter, r as faceGeomType } from "./faceFns-lcEYbLOs.js";
2
+ import { N as getFaces, n as getHashCode } from "./shapeFns-E3qTx3nN.js";
3
+ import { n as measureArea } from "./measureFns-Dsan3QcB.js";
4
4
  //#region src/topology/shapeRef/scoring.ts
5
5
  /**
6
6
  * Default face scorer combining surface type, normal alignment, centroid proximity,
@@ -1,6 +1,6 @@
1
- const require_faceFns = require("./faceFns-BwzwlBjE.cjs");
2
- const require_shapeFns = require("./shapeFns-DY7pjzrz.cjs");
3
- const require_measureFns = require("./measureFns-j1ze9DDM.cjs");
1
+ const require_faceFns = require("./faceFns-D7i9yEts.cjs");
2
+ const require_shapeFns = require("./shapeFns-DZ2c5Nqo.cjs");
3
+ const require_measureFns = require("./measureFns-rVSankqO.cjs");
4
4
  //#region src/topology/shapeRef/scoring.ts
5
5
  /**
6
6
  * Default face scorer combining surface type, normal alignment, centroid proximity,