brepjs 18.78.0 → 18.79.0

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 (79) hide show
  1. package/dist/2d.cjs +6 -6
  2. package/dist/2d.js +6 -6
  3. package/dist/{blueprint-BE93BNYE.cjs → blueprint-B59GQsSD.cjs} +5 -5
  4. package/dist/{blueprint-BVe9JU-L.js → blueprint-BQmmwEKa.js} +5 -5
  5. package/dist/{blueprintFns-B_7kKwEZ.cjs → blueprintFns-C1kKA5qn.cjs} +2 -2
  6. package/dist/{blueprintFns-DWinspVK.js → blueprintFns-DSK1nrwo.js} +2 -2
  7. package/dist/{blueprintSketcher-D75tuXkF.cjs → blueprintSketcher-BJPBKhF3.cjs} +3 -3
  8. package/dist/{blueprintSketcher-DL-wgnVs.js → blueprintSketcher-EYqKWQh0.js} +3 -3
  9. package/dist/{boolean2D-C4Txi8U1.cjs → boolean2D-B1Di3Bpn.cjs} +4 -4
  10. package/dist/{boolean2D-OtHT7POp.js → boolean2D-COHH5tLX.js} +4 -4
  11. package/dist/brepjs.cjs +41 -310
  12. package/dist/brepjs.js +25 -298
  13. package/dist/{cameraFns-DCXqzH_m.js → cameraFns-BMrhkkOV.js} +2 -2
  14. package/dist/{cameraFns-DfSRnD1k.cjs → cameraFns-BZ_8L3gd.cjs} +2 -2
  15. package/dist/core.cjs +1 -1
  16. package/dist/core.js +1 -1
  17. package/dist/{cornerFinder-KuLU-4pQ.cjs → cornerFinder-Ey3oibK1.cjs} +1 -1
  18. package/dist/{cornerFinder-DPkLU1Of.js → cornerFinder-Fi7obttG.js} +1 -1
  19. package/dist/{curveFns-C0oCmjV2.cjs → curveFns-Ca59CNS0.cjs} +1 -1
  20. package/dist/{curveFns-B4KEYU1M.js → curveFns-CoD5E2Vl.js} +1 -1
  21. package/dist/{drawFns-DxjMxRpE.cjs → drawFns-DTpCthM5.cjs} +12 -12
  22. package/dist/{drawFns-C6h_w03r.js → drawFns-D_LwehLr.js} +12 -12
  23. package/dist/{faceFns-p0lyVuyw.cjs → faceFns-0sI6cbHe.cjs} +2 -2
  24. package/dist/{faceFns-BJ2hzXJp.js → faceFns-Cuxdy-7R.js} +2 -2
  25. package/dist/{healingFns-B7dElsC4.cjs → healingFns--PtL9j2K.cjs} +5 -5
  26. package/dist/{healingFns-DS_nK9KF.js → healingFns-Bm-NdBj_.js} +5 -5
  27. package/dist/{helpers-DTBDjbdR.cjs → helpers-B8mE35Fm.cjs} +6 -6
  28. package/dist/{helpers-C78MY-s6.js → helpers-CD8EMZ5l.js} +6 -6
  29. package/dist/{importFns-CUAiLgt_.cjs → importFns-BHEgzDLw.cjs} +2 -2
  30. package/dist/{importFns-Rv22QSn6.js → importFns-vnxBqXwv.js} +2 -2
  31. package/dist/index.d.ts +1 -1
  32. package/dist/io.cjs +2 -2
  33. package/dist/io.js +2 -2
  34. package/dist/kernel/occt/geometryQueryOps.d.ts +1 -1
  35. package/dist/{loftFns-DuxEscJB.js → loftFns-CsHOwded.js} +1 -1
  36. package/dist/{loftFns-DycLH1Pq.cjs → loftFns-DiSsI2PM.cjs} +1 -1
  37. package/dist/{measureFns-C8c6xRUE.js → measureFns-CdcufPNp.js} +3 -3
  38. package/dist/{measureFns-DnxobCbD.cjs → measureFns-nF-OXcDV.cjs} +3 -3
  39. package/dist/measurement.cjs +1 -1
  40. package/dist/measurement.js +1 -1
  41. package/dist/{meshFns-CuYzpojl.js → meshFns-BCgtjlbs.js} +3 -3
  42. package/dist/{meshFns-BawS1xNA.cjs → meshFns-CnckZa6H.cjs} +3 -3
  43. package/dist/operations/jointFns.d.ts +88 -14
  44. package/dist/operations.cjs +13 -2
  45. package/dist/operations.d.ts +1 -0
  46. package/dist/operations.js +3 -3
  47. package/dist/{primitiveFns-BxH5omw3.js → primitiveFns-BSKbI4Kl.js} +5 -5
  48. package/dist/{primitiveFns-JRmXxbRr.cjs → primitiveFns-DEBQdEkG.cjs} +5 -5
  49. package/dist/projection.cjs +1 -1
  50. package/dist/projection.js +1 -1
  51. package/dist/query.cjs +2 -2
  52. package/dist/query.js +2 -2
  53. package/dist/{shapeFns-DZ6poxP7.js → shapeFns-BzlBMNRO.js} +2 -2
  54. package/dist/{shapeFns-D5WNrq3s.cjs → shapeFns-CecvqmYJ.cjs} +2 -2
  55. package/dist/shapeRef.cjs +1 -1
  56. package/dist/shapeRef.js +1 -1
  57. package/dist/{shapeRefFns-BOWP8n4j.cjs → shapeRefFns-BDACYYRr.cjs} +4 -4
  58. package/dist/{shapeRefFns-ClsyeZp4.js → shapeRefFns-CpRRMBKz.js} +4 -4
  59. package/dist/{shapeTypes-CxSqNvHA.cjs → shapeTypes-DWxL75W3.cjs} +4 -9
  60. package/dist/{shapeTypes-CyTY0prh.js → shapeTypes-DfQi9Kvk.js} +4 -9
  61. package/dist/sketching.cjs +3 -3
  62. package/dist/sketching.js +3 -3
  63. package/dist/{solidBuilders-BtEFUFQ9.js → solidBuilders-DnIrQYZd.js} +2 -2
  64. package/dist/{solidBuilders-diw2zyyN.cjs → solidBuilders-osLCTRG0.cjs} +2 -2
  65. package/dist/{surfaceBuilders-CPHOXRLE.cjs → surfaceBuilders-B8aVZamB.cjs} +2 -2
  66. package/dist/{surfaceBuilders-Do0rypyD.js → surfaceBuilders-hTXdNCYm.js} +2 -2
  67. package/dist/text.cjs +2 -2
  68. package/dist/text.js +2 -2
  69. package/dist/{textBlueprints-C3IbySW_.js → textBlueprints-BpqDGwdx.js} +7 -7
  70. package/dist/{textBlueprints-SKuamOmI.cjs → textBlueprints-CI3k7Izc.cjs} +7 -7
  71. package/dist/{textMetrics-Bzbkal_A.cjs → textMetrics-C4RrG9jL.cjs} +1 -1
  72. package/dist/{textMetrics--BwiJH2B.js → textMetrics-kFw-DE2w.js} +1 -1
  73. package/dist/{threadFns-aWgxzqmT.cjs → threadFns-B7a1EVpS.cjs} +503 -5
  74. package/dist/{threadFns-D8-zfJ0b.js → threadFns-Cra0yHSF.js} +420 -6
  75. package/dist/topology.cjs +7 -7
  76. package/dist/topology.js +7 -7
  77. package/dist/{topologyQueryFns-BomrmBie.js → topologyQueryFns-CqjEReSt.js} +1 -1
  78. package/dist/{topologyQueryFns-Dzxrwn-E.cjs → topologyQueryFns-DfOxu8tG.cjs} +1 -1
  79. package/package.json +1 -1
@@ -1,12 +1,12 @@
1
- const require_shapeTypes = require("./shapeTypes-CxSqNvHA.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DWxL75W3.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-Dzxrwn-E.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-DfOxu8tG.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-p0lyVuyw.cjs");
7
- const require_shapeFns = require("./shapeFns-D5WNrq3s.cjs");
8
- const require_curveFns = require("./curveFns-C0oCmjV2.cjs");
9
- const require_measureFns = require("./measureFns-DnxobCbD.cjs");
6
+ const require_faceFns = require("./faceFns-0sI6cbHe.cjs");
7
+ const require_shapeFns = require("./shapeFns-CecvqmYJ.cjs");
8
+ const require_curveFns = require("./curveFns-Ca59CNS0.cjs");
9
+ const require_measureFns = require("./measureFns-nF-OXcDV.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-CyTY0prh.js";
1
+ import { Z as getKernel, p as isFace } from "./shapeTypes-DfQi9Kvk.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-BomrmBie.js";
3
+ import { c as getFaces, f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-CqjEReSt.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-BJ2hzXJp.js";
7
- import { a as isSameShape, n as getHashCode } from "./shapeFns-DZ6poxP7.js";
8
- import { f as getCurveType, i as curveIsClosed, o as curveLength } from "./curveFns-B4KEYU1M.js";
9
- import { n as measureArea } from "./measureFns-C8c6xRUE.js";
6
+ import { l as normalAt, s as getSurfaceType } from "./faceFns-Cuxdy-7R.js";
7
+ import { a as isSameShape, n as getHashCode } from "./shapeFns-BzlBMNRO.js";
8
+ import { f as getCurveType, i as curveIsClosed, o as curveLength } from "./curveFns-CoD5E2Vl.js";
9
+ import { n as measureArea } from "./measureFns-CdcufPNp.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-CxSqNvHA.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DWxL75W3.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-BE93BNYE.cjs");
5
+ const require_blueprint = require("./blueprint-B59GQsSD.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-CyTY0prh.js";
1
+ import { Z as getKernel, t as castShape } from "./shapeTypes-DfQi9Kvk.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-BVe9JU-L.js";
5
+ import { f as make2dSegmentCurve, m as make2dThreePointArc, s as make2dBezierCurve, t as Blueprint } from "./blueprint-BQmmwEKa.js";
6
6
  //#region src/io/objExportFns.ts
7
7
  /** Read a vec3 from a typed array at the given vertex index. */
8
8
  function vec3At(arr, i) {
package/dist/index.d.ts CHANGED
@@ -121,7 +121,7 @@ export { exportAssemblySTEP, type ShapeOptions, type SupportedUnit, } from './op
121
121
  export { linearPattern, circularPattern } from './operations/patternFns.js';
122
122
  export { createAssemblyNode, addChild, removeChild, updateNode, findNode, walkAssembly, countNodes, collectShapes, type AssemblyNode, type AssemblyNodeOptions, } from './operations/assemblyFns.js';
123
123
  export { addMate, solveAssembly, type MateConstraint, type MateEntity, type AssemblySolveResult, } from './operations/mateFns.js';
124
- export { revoluteJoint, prismaticJoint, setJointValue, jointTransform, addJoint, forwardKinematics, mechanismDOF, type Joint, type JointAxis, type JointType, type JointPose, type JointOptions, } from './operations/jointFns.js';
124
+ export { revoluteJoint, prismaticJoint, cylindricalJoint, planarJoint, sphericalJoint, setJointValue, setJointValues, jointTransform, addJoint, forwardKinematics, mechanismDOF, type Joint, type JointDOF, type JointAxis, type JointType, type JointPose, type JointOptions, type CylindricalOptions, type PlanarOptions, type SphericalOptions, } from './operations/jointFns.js';
125
125
  export { createHistory, addStep, undoLast, findStep, getShape as getHistoryShape, stepCount, stepsFrom, registerShape, createRegistry, registerOperation, replayHistory, replayFrom, modifyStep, serializeHistory, deserializeHistory, type OperationStep, type ModelHistory, type SerializedHistory, type OperationFn, type OperationRegistry as HistoryOperationRegistry, } from './operations/historyFns.js';
126
126
  export { measureVolume, measureArea, measureLength, measureDistance, measureDistanceProps, createDistanceQuery, measureVolumeProps, measureSurfaceProps, measureLinearProps, type PhysicalProps, type VolumeProps, type SurfaceProps, type LinearProps, type DistanceProps, measureCurvatureAt, measureCurvatureAtMid, type CurvatureResult, } from './measurement/measureFns.js';
127
127
  export { checkInterference, checkAllInterferences, type InterferenceResult, type InterferencePair, } from './measurement/interferenceFns.js';
package/dist/io.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_meshFns = require("./meshFns-BawS1xNA.cjs");
3
- const require_importFns = require("./importFns-CUAiLgt_.cjs");
2
+ const require_meshFns = require("./meshFns-CnckZa6H.cjs");
3
+ const require_importFns = require("./importFns-BHEgzDLw.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-CuYzpojl.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-Rv22QSn6.js";
1
+ import { n as exportSTEP, r as exportSTL, t as exportIGES } from "./meshFns-BCgtjlbs.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-vnxBqXwv.js";
3
3
  export { blueprintToDXF, exportDXF, exportGlb, exportGltf, exportIGES, exportOBJ, exportSTEP, exportSTEPConfigured, exportSTL, exportThreeMF, importIGES, importSTEP, importSTL, importSVG, importSVGPathD };
@@ -65,7 +65,7 @@ export declare function getBezierPenultimatePole(oc: KernelInstance, edge: Kerne
65
65
  */
66
66
  export declare function createCurveAdaptor(oc: KernelInstance, shape: KernelShape): KernelType;
67
67
  /** Extract cylinder data from a surface handle. Returns null if not a cylinder. */
68
- export declare function getSurfaceCylinderData(oc: KernelInstance, surface: KernelType): {
68
+ export declare function getSurfaceCylinderData(_oc: KernelInstance, surface: KernelType): {
69
69
  radius: number;
70
70
  isDirect: boolean;
71
71
  } | null;
@@ -1,4 +1,4 @@
1
- import { Z as getKernel, c as createSolid, h as isShape3D, t as castShape, y as isWire } from "./shapeTypes-CyTY0prh.js";
1
+ import { Z as getKernel, c as createSolid, h as isShape3D, t as castShape, y as isWire } from "./shapeTypes-DfQi9Kvk.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,4 +1,4 @@
1
- const require_shapeTypes = require("./shapeTypes-CxSqNvHA.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DWxL75W3.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,7 +1,7 @@
1
- import { Z as getKernel } from "./shapeTypes-CyTY0prh.js";
1
+ import { Z as getKernel } from "./shapeTypes-DfQi9Kvk.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-BomrmBie.js";
4
- import { m as uvBounds } from "./faceFns-BJ2hzXJp.js";
3
+ import { w as kernelCallRaw } from "./topologyQueryFns-CqjEReSt.js";
4
+ import { m as uvBounds } from "./faceFns-Cuxdy-7R.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-CxSqNvHA.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DWxL75W3.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-Dzxrwn-E.cjs");
4
- const require_faceFns = require("./faceFns-p0lyVuyw.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-DfOxu8tG.cjs");
4
+ const require_faceFns = require("./faceFns-0sI6cbHe.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-DnxobCbD.cjs");
2
+ const require_measureFns = require("./measureFns-nF-OXcDV.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-C8c6xRUE.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-CdcufPNp.js";
2
2
  export { createDistanceQuery, measureArea, measureDistance, measureDistanceProps, measureLength, measureLinearProps, measureSurfaceProps, measureVolume, measureVolumeProps };
@@ -1,7 +1,7 @@
1
- import { Z as getKernel, gt as qualityDeflection } from "./shapeTypes-CyTY0prh.js";
1
+ import { Z as getKernel, gt as qualityDeflection } from "./shapeTypes-DfQi9Kvk.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-BomrmBie.js";
4
- import { O as getFaceOrigins } from "./shapeFns-DZ6poxP7.js";
3
+ import { d as getSolids, n as getBounds } from "./topologyQueryFns-CqjEReSt.js";
4
+ import { O as getFaceOrigins } from "./shapeFns-BzlBMNRO.js";
5
5
  //#region src/topology/meshCache.ts
6
6
  /**
7
7
  * Build a parameter key for the inner cache map (excludes shape identity).
@@ -1,7 +1,7 @@
1
- const require_shapeTypes = require("./shapeTypes-CxSqNvHA.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DWxL75W3.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-Dzxrwn-E.cjs");
4
- const require_shapeFns = require("./shapeFns-D5WNrq3s.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-DfOxu8tG.cjs");
4
+ const require_shapeFns = require("./shapeFns-CecvqmYJ.cjs");
5
5
  //#region src/topology/meshCache.ts
6
6
  /**
7
7
  * Build a parameter key for the inner cache map (excludes shape identity).
@@ -5,18 +5,33 @@ export interface JointAxis {
5
5
  readonly origin: Vec3;
6
6
  readonly direction: Vec3;
7
7
  }
8
- export type JointType = 'revolute' | 'prismatic';
8
+ export type JointType = 'revolute' | 'prismatic' | 'cylindrical' | 'planar' | 'spherical';
9
+ /**
10
+ * A single drivable degree of freedom. A `rotation` DOF turns about the joint's
11
+ * anchor point along `axis` (degrees); a `translation` DOF slides along `axis`
12
+ * (length units). `value` is always clamped to `[min, max]`.
13
+ */
14
+ export interface JointDOF {
15
+ readonly kind: 'rotation' | 'translation';
16
+ readonly axis: Vec3;
17
+ readonly min: number;
18
+ readonly max: number;
19
+ readonly value: number;
20
+ }
9
21
  export interface Joint {
10
22
  readonly type: JointType;
11
23
  /** Reference body (stays put); the child moves relative to it. */
12
24
  readonly parent: string;
13
25
  readonly child: string;
26
+ /** Primary axis; `origin` is the anchor every rotation DOF pivots about. */
14
27
  readonly axis: JointAxis;
15
- /** Range bounds degrees for revolute, length units for prismatic. */
28
+ /** Primary-DOF range bounds (mirror of `dofs[0]`). */
16
29
  readonly min: number;
17
30
  readonly max: number;
18
- /** Current drivable parameter, always clamped to `[min, max]`. */
31
+ /** Primary-DOF value (mirror of `dofs[0]`), always clamped to `[min, max]`. */
19
32
  readonly value: number;
33
+ /** All drivable degrees of freedom, in composition order. */
34
+ readonly dofs: readonly JointDOF[];
20
35
  }
21
36
  /** A rigid transform: translation + quaternion rotation `[w, x, y, z]`. */
22
37
  export interface JointPose {
@@ -31,6 +46,36 @@ export interface JointOptions {
31
46
  /** Initial value, clamped to the range. Default: 0. */
32
47
  value?: number;
33
48
  }
49
+ /** Per-DOF ranges for a cylindrical joint (rotation about + slide along one axis). */
50
+ export interface CylindricalOptions {
51
+ /** Rotation DOF (degrees). Default range -180..180. */
52
+ rotation?: JointOptions;
53
+ /** Translation DOF (length). Default range 0..100. */
54
+ translation?: JointOptions;
55
+ }
56
+ /** Per-DOF ranges for a planar joint (two in-plane translations + a rotation). */
57
+ export interface PlanarOptions {
58
+ /** Translation along the in-plane `uDirection`. Default range -100..100. */
59
+ u?: JointOptions;
60
+ /** Translation along `normal × u`. Default range -100..100. */
61
+ v?: JointOptions;
62
+ /** Rotation about the plane normal (degrees). Default range -180..180. */
63
+ rotation?: JointOptions;
64
+ /**
65
+ * In-plane reference direction for the `u` translation. Projected onto the
66
+ * plane and normalized; defaults to an arbitrary perpendicular of the normal.
67
+ */
68
+ uDirection?: Vec3;
69
+ }
70
+ /** Per-DOF ranges for a spherical joint (three rotations about a pivot). */
71
+ export interface SphericalOptions {
72
+ /** Rotation about local X through the pivot (degrees). Default range -180..180. */
73
+ x?: JointOptions;
74
+ /** Rotation about local Y through the pivot (degrees). Default range -180..180. */
75
+ y?: JointOptions;
76
+ /** Rotation about local Z through the pivot (degrees). Default range -180..180. */
77
+ z?: JointOptions;
78
+ }
34
79
  /** A revolute (hinge) joint — the child rotates about `axis` by `value` degrees. */
35
80
  export declare function revoluteJoint(parent: string, child: string, axis: JointAxis, opts?: JointOptions): Joint;
36
81
  /**
@@ -40,17 +85,45 @@ export declare function revoluteJoint(parent: string, child: string, axis: Joint
40
85
  * the axis line through `origin`.
41
86
  */
42
87
  export declare function prismaticJoint(parent: string, child: string, axis: JointAxis, opts?: JointOptions): Joint;
43
- /** Return a copy of `joint` with its drivable parameter set (clamped to range). */
88
+ /**
89
+ * A cylindrical joint — the child both rotates about and slides along a single
90
+ * `axis` (2 DOF). DOF order: `[rotation, translation]`. The two motions share
91
+ * the axis, so they commute; rotation pivots about `axis.origin`.
92
+ */
93
+ export declare function cylindricalJoint(parent: string, child: string, axis: JointAxis, opts?: CylindricalOptions): Joint;
94
+ /**
95
+ * A planar joint — the child translates within a plane and rotates about its
96
+ * normal (3 DOF). `plane.direction` is the normal; `plane.origin` the rotation
97
+ * anchor. DOF order: `[u-translation, v-translation, rotation]`, where the
98
+ * translations are applied in the plane frame (independent of the rotation).
99
+ */
100
+ export declare function planarJoint(parent: string, child: string, plane: JointAxis, opts?: PlanarOptions): Joint;
101
+ /**
102
+ * A spherical (ball) joint — the child rotates freely about a pivot point
103
+ * (3 DOF). DOF order: `[x, y, z]` rotations about the local axes through
104
+ * `pivot`, composed as `Rx · Ry · Rz`.
105
+ */
106
+ export declare function sphericalJoint(parent: string, child: string, pivot: Vec3, opts?: SphericalOptions): Joint;
107
+ /**
108
+ * Return a copy of `joint` with per-DOF values set (each clamped to its range).
109
+ * Values are positional, matching `joint.dofs`; omitted entries keep their
110
+ * stored value. The primary mirror (`value`) is kept in sync with `dofs[0]`.
111
+ */
112
+ export declare function setJointValues(joint: Joint, values: readonly number[]): Joint;
113
+ /** Return a copy of `joint` with its primary DOF set (clamped to range). */
44
114
  export declare function setJointValue(joint: Joint, value: number): Joint;
45
115
  /**
46
- * The child's local rigid transform (relative to the parent) for a joint value.
47
- * Defaults to the joint's stored value; an explicit value is clamped to range.
116
+ * The child's local rigid transform (relative to the parent) for given DOF
117
+ * values. Defaults to each DOF's stored value. A single `number` overrides only
118
+ * the primary DOF (single-DOF ergonomics); an array overrides positionally,
119
+ * with omitted entries keeping their stored value. Each value is clamped to its
120
+ * DOF range.
48
121
  *
49
- * - **revolute**: rotation of `value` degrees about the axis line. Rotating
50
- * about a line through `origin` is `p R·p + (origin R·origin)`.
51
- * - **prismatic**: translation of `value` units along the axis direction.
122
+ * DOFs are folded in array order via frame composition. For same-anchor
123
+ * rotations (e.g. spherical) this composes to a single rotation about the pivot;
124
+ * for a cylindrical axis the rotation and slide commute.
52
125
  */
53
- export declare function jointTransform(joint: Joint, value?: number): JointPose;
126
+ export declare function jointTransform(joint: Joint, value?: number | readonly number[]): JointPose;
54
127
  /** Attach a joint to an assembly node. Returns a new node (immutable). */
55
128
  export declare function addJoint(assembly: AssemblyNode, joint: Joint): AssemblyNode;
56
129
  /**
@@ -63,10 +136,11 @@ export declare function addJoint(assembly: AssemblyNode, joint: Joint): Assembly
63
136
  * joints use `joint.value`. Resolution is topological (reuses the Phase-0
64
137
  * ordering), so chains of any depth compose. Returns a world pose for every node.
65
138
  */
66
- export declare function forwardKinematics(assembly: AssemblyNode, jointValues?: Readonly<Record<string, number>>): Map<string, JointPose>;
139
+ export declare function forwardKinematics(assembly: AssemblyNode, jointValues?: Readonly<Record<string, number | readonly number[]>>): Map<string, JointPose>;
67
140
  /**
68
- * Open-chain mobility — the number of independent degrees of freedom. Each
69
- * revolute/prismatic joint contributes 1, so for a serial chain this equals the
70
- * joint count. (Closed-loop Grübler/Kutzbach analysis is future work.)
141
+ * Open-chain mobility — the number of independent degrees of freedom, summing
142
+ * each joint's DOF count (revolute/prismatic 1, cylindrical 2, planar/spherical
143
+ * 3). For a serial chain this equals the total DOF. (Closed-loop
144
+ * Grübler/Kutzbach analysis is future work.)
71
145
  */
72
146
  export declare function mechanismDOF(assembly: AssemblyNode): number;
@@ -1,7 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_threadFns = require("./threadFns-aWgxzqmT.cjs");
3
- const require_loftFns = require("./loftFns-DycLH1Pq.cjs");
2
+ const require_threadFns = require("./threadFns-B7a1EVpS.cjs");
3
+ const require_loftFns = require("./loftFns-DiSsI2PM.cjs");
4
4
  exports.addChild = require_threadFns.addChild;
5
+ exports.addJoint = require_threadFns.addJoint;
5
6
  exports.addStep = require_threadFns.addStep;
6
7
  exports.circularPattern = require_threadFns.circularPattern;
7
8
  exports.collectShapes = require_threadFns.collectShapes;
@@ -11,18 +12,28 @@ exports.createAssembly = require_threadFns.createAssembly;
11
12
  exports.createAssemblyNode = require_threadFns.createAssemblyNode;
12
13
  exports.createHistory = require_threadFns.createHistory;
13
14
  exports.createRegistry = require_threadFns.createRegistry;
15
+ exports.cylindricalJoint = require_threadFns.cylindricalJoint;
14
16
  exports.exportAssemblySTEP = require_threadFns.exportAssemblySTEP;
15
17
  exports.findNode = require_threadFns.findNode;
16
18
  exports.findStep = require_threadFns.findStep;
19
+ exports.forwardKinematics = require_threadFns.forwardKinematics;
17
20
  exports.getHistoryShape = require_threadFns.getShape;
18
21
  exports.gridPattern = require_threadFns.gridPattern;
22
+ exports.jointTransform = require_threadFns.jointTransform;
19
23
  exports.linearPattern = require_threadFns.linearPattern;
24
+ exports.mechanismDOF = require_threadFns.mechanismDOF;
20
25
  exports.modifyStep = require_threadFns.modifyStep;
26
+ exports.planarJoint = require_threadFns.planarJoint;
27
+ exports.prismaticJoint = require_threadFns.prismaticJoint;
21
28
  exports.registerOperation = require_threadFns.registerOperation;
22
29
  exports.registerShape = require_threadFns.registerShape;
23
30
  exports.removeChild = require_threadFns.removeChild;
24
31
  exports.replayFrom = require_threadFns.replayFrom;
25
32
  exports.replayHistory = require_threadFns.replayHistory;
33
+ exports.revoluteJoint = require_threadFns.revoluteJoint;
34
+ exports.setJointValue = require_threadFns.setJointValue;
35
+ exports.setJointValues = require_threadFns.setJointValues;
36
+ exports.sphericalJoint = require_threadFns.sphericalJoint;
26
37
  exports.stepCount = require_threadFns.stepCount;
27
38
  exports.stepsFrom = require_threadFns.stepsFrom;
28
39
  exports.supportExtrude = require_loftFns.supportExtrude;
@@ -10,6 +10,7 @@ export { sweep, supportExtrude, complexExtrude, twistExtrude, type SweepOptions,
10
10
  export { thread, type ThreadOptions } from './operations/threadFns.js';
11
11
  export { linearPattern, circularPattern, gridPattern } from './operations/patternFns.js';
12
12
  export { createAssemblyNode, addChild, removeChild, updateNode, findNode, walkAssembly, countNodes, collectShapes, type AssemblyNode, type AssemblyNodeOptions, } from './operations/assemblyFns.js';
13
+ export { revoluteJoint, prismaticJoint, cylindricalJoint, planarJoint, sphericalJoint, setJointValue, setJointValues, jointTransform, addJoint, forwardKinematics, mechanismDOF, type Joint, type JointDOF, type JointAxis, type JointType, type JointPose, type JointOptions, type CylindricalOptions, type PlanarOptions, type SphericalOptions, } from './operations/jointFns.js';
13
14
  export { exportAssemblySTEP, type ShapeOptions, type SupportedUnit, } from './operations/exporterFns.js';
14
15
  export { createHistory, addStep, undoLast, findStep, getShape as getHistoryShape, stepCount, stepsFrom, registerShape, createRegistry, registerOperation, replayHistory, replayFrom, modifyStep, type OperationStep, type ModelHistory, type OperationFn, type OperationRegistry as HistoryOperationRegistry, } from './operations/historyFns.js';
15
16
  export { type AssemblyExporter, createAssembly } from './operations/exporters.js';
@@ -1,3 +1,3 @@
1
- import { C as updateNode, D as linearPattern, E as gridPattern, O as exportAssemblySTEP, S as removeChild, T as circularPattern, _ as addChild, b as createAssemblyNode, c as modifyStep, d as replayFrom, f as replayHistory, g as undoLast, h as stepsFrom, i as createRegistry, k as createAssembly, l as registerOperation, m as stepCount, n as addStep, o as findStep, r as createHistory, s as getShape, t as thread, u as registerShape, v as collectShapes, w as walkAssembly, x as findNode, y as countNodes } from "./threadFns-D8-zfJ0b.js";
2
- import { d as twistExtrude, l as supportExtrude, o as complexExtrude, u as sweep } from "./loftFns-DuxEscJB.js";
3
- export { addChild, addStep, circularPattern, collectShapes, complexExtrude, countNodes, createAssembly, createAssemblyNode, createHistory, createRegistry, exportAssemblySTEP, findNode, findStep, getShape as getHistoryShape, gridPattern, linearPattern, modifyStep, registerOperation, registerShape, removeChild, replayFrom, replayHistory, stepCount, stepsFrom, supportExtrude, sweep, thread, twistExtrude, undoLast, updateNode, walkAssembly };
1
+ import { B as gridPattern, C as prismaticJoint, D as sphericalJoint, E as setJointValues, F as findNode, H as exportAssemblySTEP, I as removeChild, L as updateNode, M as collectShapes, N as countNodes, P as createAssemblyNode, R as walkAssembly, S as planarJoint, T as setJointValue, U as createAssembly, V as linearPattern, _ as addJoint, b as jointTransform, c as modifyStep, d as replayFrom, f as replayHistory, g as undoLast, h as stepsFrom, i as createRegistry, j as addChild, l as registerOperation, m as stepCount, n as addStep, o as findStep, r as createHistory, s as getShape, t as thread, u as registerShape, v as cylindricalJoint, w as revoluteJoint, x as mechanismDOF, y as forwardKinematics, z as circularPattern } from "./threadFns-Cra0yHSF.js";
2
+ import { d as twistExtrude, l as supportExtrude, o as complexExtrude, u as sweep } from "./loftFns-CsHOwded.js";
3
+ export { addChild, addJoint, addStep, circularPattern, collectShapes, complexExtrude, countNodes, createAssembly, createAssemblyNode, createHistory, createRegistry, cylindricalJoint, exportAssemblySTEP, findNode, findStep, forwardKinematics, getShape as getHistoryShape, gridPattern, jointTransform, linearPattern, mechanismDOF, modifyStep, planarJoint, prismaticJoint, registerOperation, registerShape, removeChild, replayFrom, replayHistory, revoluteJoint, setJointValue, setJointValues, sphericalJoint, stepCount, stepsFrom, supportExtrude, sweep, thread, twistExtrude, undoLast, updateNode, walkAssembly };
@@ -1,13 +1,13 @@
1
- import { Z as getKernel, c as createSolid, h as isShape3D, t as castShape, x as isClosedWire } from "./shapeTypes-CyTY0prh.js";
1
+ import { Z as getKernel, c as createSolid, h as isShape3D, t as castShape, x as isClosedWire } from "./shapeTypes-DfQi9Kvk.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, v as andThen, w as isErr } from "./errors-DNWJsfVU.js";
3
- import { f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-BomrmBie.js";
3
+ import { f as getVertices, p as getWires, s as getEdges } from "./topologyQueryFns-CqjEReSt.js";
4
4
  import { n as HASH_CODE_MAX, t as DEG2RAD } 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, h as translate, v as propagateMetadataByHash } from "./shapeFns-DZ6poxP7.js";
7
+ import { _ as propagateAllMetadata, g as collectInputFaceHashes, h as translate, v as propagateMetadataByHash } from "./shapeFns-BzlBMNRO.js";
8
8
  import { n as getAtOrThrow, t as firstOrThrow } from "./arrayAccess-DrUGPADn.js";
9
- 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-Do0rypyD.js";
10
- import { a as makeOffset, c as makeTorus, i as makeEllipsoid, l as makeVertex, n as makeCone, o as makeSolid, r as makeCylinder, s as makeSphere, t as makeCompound, u as weldShellsAndFaces } from "./solidBuilders-BtEFUFQ9.js";
9
+ 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-hTXdNCYm.js";
10
+ import { a as makeOffset, c as makeTorus, i as makeEllipsoid, l as makeVertex, n as makeCone, o as makeSolid, r as makeCylinder, s as makeSphere, t as makeCompound, u as weldShellsAndFaces } from "./solidBuilders-DnIrQYZd.js";
11
11
  //#region src/topology/booleanFns.ts
12
12
  /**
13
13
  * Boolean and compound operations — functional replacements for _3DShape boolean methods.
@@ -1,13 +1,13 @@
1
- const require_shapeTypes = require("./shapeTypes-CxSqNvHA.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DWxL75W3.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-Dzxrwn-E.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-DfOxu8tG.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-D5WNrq3s.cjs");
7
+ const require_shapeFns = require("./shapeFns-CecvqmYJ.cjs");
8
8
  const require_arrayAccess = require("./arrayAccess-e4H9cBfh.cjs");
9
- const require_surfaceBuilders = require("./surfaceBuilders-CPHOXRLE.cjs");
10
- const require_solidBuilders = require("./solidBuilders-diw2zyyN.cjs");
9
+ const require_surfaceBuilders = require("./surfaceBuilders-B8aVZamB.cjs");
10
+ const require_solidBuilders = require("./solidBuilders-osLCTRG0.cjs");
11
11
  //#region src/topology/booleanFns.ts
12
12
  /**
13
13
  * Boolean and compound operations — functional replacements for _3DShape boolean methods.
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_cameraFns = require("./cameraFns-DfSRnD1k.cjs");
2
+ const require_cameraFns = require("./cameraFns-BZ_8L3gd.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-DCXqzH_m.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-BMrhkkOV.js";
2
2
  export { PROJECTION_PLANES, cameraFromPlane, cameraLookAt, createCamera, isProjectionPlane, makeProjectedEdges, projectEdges };
package/dist/query.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_helpers = require("./helpers-DTBDjbdR.cjs");
3
- const require_cornerFinder = require("./cornerFinder-KuLU-4pQ.cjs");
2
+ const require_helpers = require("./helpers-B8mE35Fm.cjs");
3
+ const require_cornerFinder = require("./cornerFinder-Ey3oibK1.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-C78MY-s6.js";
2
- import { t as cornerFinder } from "./cornerFinder-DPkLU1Of.js";
1
+ import { n as edgeFinder, r as faceFinder, t as getSingleFace } from "./helpers-CD8EMZ5l.js";
2
+ import { t as cornerFinder } from "./cornerFinder-Fi7obttG.js";
3
3
  export { cornerFinder, edgeFinder, faceFinder, getSingleFace };
@@ -1,6 +1,6 @@
1
- import { Z as getKernel, t as castShape } from "./shapeTypes-CyTY0prh.js";
1
+ import { Z as getKernel, t as castShape } from "./shapeTypes-DfQi9Kvk.js";
2
2
  import { A as ok, b as err, d as validationError, t as BrepErrorCode } from "./errors-DNWJsfVU.js";
3
- import { C as kernelCall, c as getFaces, l as getOrCreateCache, r as getCacheEntry, w as kernelCallRaw } from "./topologyQueryFns-BomrmBie.js";
3
+ import { C as kernelCall, c as getFaces, l as getOrCreateCache, r as getCacheEntry, w as kernelCallRaw } from "./topologyQueryFns-CqjEReSt.js";
4
4
  import { n as HASH_CODE_MAX, t as DEG2RAD } from "./constants-ITRzCnCp.js";
5
5
  //#region src/topology/metadata/originTrackingFns.ts
6
6
  /**
@@ -1,6 +1,6 @@
1
- const require_shapeTypes = require("./shapeTypes-CxSqNvHA.cjs");
1
+ const require_shapeTypes = require("./shapeTypes-DWxL75W3.cjs");
2
2
  const require_errors = require("./errors-CXJtc4I7.cjs");
3
- const require_topologyQueryFns = require("./topologyQueryFns-Dzxrwn-E.cjs");
3
+ const require_topologyQueryFns = require("./topologyQueryFns-DfOxu8tG.cjs");
4
4
  const require_constants = require("./constants-BOVyEYGH.cjs");
5
5
  //#region src/topology/metadata/originTrackingFns.ts
6
6
  /**
package/dist/shapeRef.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_shapeRefFns = require("./shapeRefFns-BOWP8n4j.cjs");
2
+ const require_shapeRefFns = require("./shapeRefFns-BDACYYRr.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-ClsyeZp4.js";
1
+ import { a as updateRoles, i as resolveRef, n as captureHint, o as defaultScorer, r as createRef, t as assignRoles } from "./shapeRefFns-CpRRMBKz.js";
2
2
  export { assignRoles, captureHint, createRef, defaultScorer, resolveRef, updateRoles };
@@ -1,8 +1,8 @@
1
1
  const require_vec3 = require("./vec3-CFwOI0ZI.cjs");
2
- const require_topologyQueryFns = require("./topologyQueryFns-Dzxrwn-E.cjs");
3
- const require_faceFns = require("./faceFns-p0lyVuyw.cjs");
4
- const require_shapeFns = require("./shapeFns-D5WNrq3s.cjs");
5
- const require_measureFns = require("./measureFns-DnxobCbD.cjs");
2
+ const require_topologyQueryFns = require("./topologyQueryFns-DfOxu8tG.cjs");
3
+ const require_faceFns = require("./faceFns-0sI6cbHe.cjs");
4
+ const require_shapeFns = require("./shapeFns-CecvqmYJ.cjs");
5
+ const require_measureFns = require("./measureFns-nF-OXcDV.cjs");
6
6
  //#region src/topology/shapeRef/scoring.ts
7
7
  /**
8
8
  * Default face scorer combining surface type, normal alignment, centroid proximity,
@@ -1,8 +1,8 @@
1
1
  import { n as wasmIndex } from "./vec3-Dpha8d5k.js";
2
- import { c as getFaces } from "./topologyQueryFns-BomrmBie.js";
3
- import { i as faceGeomType, l as normalAt, r as faceCenter } from "./faceFns-BJ2hzXJp.js";
4
- import { n as getHashCode } from "./shapeFns-DZ6poxP7.js";
5
- import { n as measureArea } from "./measureFns-C8c6xRUE.js";
2
+ import { c as getFaces } from "./topologyQueryFns-CqjEReSt.js";
3
+ import { i as faceGeomType, l as normalAt, r as faceCenter } from "./faceFns-Cuxdy-7R.js";
4
+ import { n as getHashCode } from "./shapeFns-BzlBMNRO.js";
5
+ import { n as measureArea } from "./measureFns-CdcufPNp.js";
6
6
  //#region src/topology/shapeRef/scoring.ts
7
7
  /**
8
8
  * Default face scorer combining surface type, normal alignment, centroid proximity,
@@ -2870,20 +2870,15 @@ function createCurveAdaptor$1(oc, shape) {
2870
2870
  return shape.ShapeType() === oc.TopAbs_ShapeEnum.TopAbs_WIRE ? new oc.BRepAdaptor_CompCurve_2(shape, false) : new oc.BRepAdaptor_Curve_2(shape);
2871
2871
  }
2872
2872
  /** Extract cylinder data from a surface handle. Returns null if not a cylinder. */
2873
- function getSurfaceCylinderData$1(oc, surface) {
2874
- const adaptor = new oc.GeomAdaptor_Surface_2(surface);
2875
- const typeVal = adaptor.GetType();
2876
- if ((typeof typeVal === "number" ? typeVal : Number(typeVal?.value ?? typeVal)) !== 1) {
2877
- adaptor.delete();
2878
- return null;
2879
- }
2880
- const cyl = adaptor.Cylinder();
2873
+ function getSurfaceCylinderData$1(_oc, surface) {
2874
+ const geom = surface.get();
2875
+ if (typeof geom.Cylinder !== "function") return null;
2876
+ const cyl = geom.Cylinder();
2881
2877
  const result = {
2882
2878
  radius: cyl.Radius(),
2883
2879
  isDirect: cyl.Direct()
2884
2880
  };
2885
2881
  cyl.delete();
2886
- adaptor.delete();
2887
2882
  return result;
2888
2883
  }
2889
2884
  /**
@@ -2870,20 +2870,15 @@ function createCurveAdaptor$1(oc, shape) {
2870
2870
  return shape.ShapeType() === oc.TopAbs_ShapeEnum.TopAbs_WIRE ? new oc.BRepAdaptor_CompCurve_2(shape, false) : new oc.BRepAdaptor_Curve_2(shape);
2871
2871
  }
2872
2872
  /** Extract cylinder data from a surface handle. Returns null if not a cylinder. */
2873
- function getSurfaceCylinderData$1(oc, surface) {
2874
- const adaptor = new oc.GeomAdaptor_Surface_2(surface);
2875
- const typeVal = adaptor.GetType();
2876
- if ((typeof typeVal === "number" ? typeVal : Number(typeVal?.value ?? typeVal)) !== 1) {
2877
- adaptor.delete();
2878
- return null;
2879
- }
2880
- const cyl = adaptor.Cylinder();
2873
+ function getSurfaceCylinderData$1(_oc, surface) {
2874
+ const geom = surface.get();
2875
+ if (typeof geom.Cylinder !== "function") return null;
2876
+ const cyl = geom.Cylinder();
2881
2877
  const result = {
2882
2878
  radius: cyl.Radius(),
2883
2879
  isDirect: cyl.Direct()
2884
2880
  };
2885
2881
  cyl.delete();
2886
- adaptor.delete();
2887
2882
  return result;
2888
2883
  }
2889
2884
  /**
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_textBlueprints = require("./textBlueprints-SKuamOmI.cjs");
3
- const require_blueprintSketcher = require("./blueprintSketcher-D75tuXkF.cjs");
4
- const require_drawFns = require("./drawFns-DxjMxRpE.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-CI3k7Izc.cjs");
3
+ const require_blueprintSketcher = require("./blueprintSketcher-BJPBKhF3.cjs");
4
+ const require_drawFns = require("./drawFns-DTpCthM5.cjs");
5
5
  //#region src/sketching.ts
6
6
  /**
7
7
  * brepjs/sketching — Sketcher, Drawing, and sketch-to-shape operations.