brepjs 14.2.1 → 14.3.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 (71) hide show
  1. package/dist/2d.cjs +5 -5
  2. package/dist/2d.js +5 -5
  3. package/dist/{blueprint-Dsp-f4De.js → blueprint-DTHOZ1Ew.js} +5 -5
  4. package/dist/{blueprint-C8nlHdUE.cjs → blueprint-Df0Zb6IC.cjs} +5 -5
  5. package/dist/{blueprintFns-D1QUp5y4.js → blueprintFns-BKjJ28-g.js} +2 -2
  6. package/dist/{blueprintFns-CvtakKGf.cjs → blueprintFns-Diy9Mop1.cjs} +2 -2
  7. package/dist/{boolean2D-DE2axG6W.cjs → boolean2D-BGwSvEej.cjs} +7 -7
  8. package/dist/{boolean2D-D1MYwspP.js → boolean2D-n-BJXt-u.js} +7 -7
  9. package/dist/{booleanFns-Dmvv9VVT.cjs → booleanFns-B8Yacp-N.cjs} +3 -3
  10. package/dist/{booleanFns-DViuH9nW.js → booleanFns-BEKgZHyU.js} +3 -3
  11. package/dist/brepjs.cjs +19 -19
  12. package/dist/brepjs.js +19 -19
  13. package/dist/core.cjs +1 -1
  14. package/dist/core.js +1 -1
  15. package/dist/{cornerFinder-Du1Q1hgu.cjs → cornerFinder-DBFEcjDD.cjs} +1 -1
  16. package/dist/{cornerFinder-CyvfiiYv.js → cornerFinder-DTPwzwAS.js} +1 -1
  17. package/dist/{curveFns-D9GbWpcl.js → curveFns-B2B3zTkJ.js} +1 -1
  18. package/dist/{curveFns--4Nh1ZtB.cjs → curveFns-C8r_BEf5.cjs} +1 -1
  19. package/dist/{drawFns-BDqEWrCy.js → drawFns-C9t9CAn1.js} +11 -11
  20. package/dist/{drawFns-DTqCnYeo.cjs → drawFns-DaMEU4kJ.cjs} +11 -11
  21. package/dist/{extrudeFns-DxS_UOMr.js → extrudeFns-DyixnEEO.js} +1 -1
  22. package/dist/{extrudeFns-CIUq5ZQW.cjs → extrudeFns-qtEu7sFp.cjs} +1 -1
  23. package/dist/{faceFns-lcEYbLOs.js → faceFns-Ce_NKDWZ.js} +1 -1
  24. package/dist/{faceFns-D7i9yEts.cjs → faceFns-CmpZk88a.cjs} +1 -1
  25. package/dist/{helpers-BwzOwHWl.js → helpers-B9yYKLDU.js} +5 -5
  26. package/dist/{helpers-BK3DVd3M.cjs → helpers-BRaMH3_u.cjs} +5 -5
  27. package/dist/{historyFns-BO9c4AgQ.cjs → historyFns-BOCaPWNo.cjs} +4 -4
  28. package/dist/{historyFns-C_EoZWD5.js → historyFns-C3E_O3lW.js} +4 -4
  29. package/dist/{importFns-NY1stg0C.js → importFns-CtLdDpME.js} +2 -2
  30. package/dist/{importFns-Ca7DsY-k.cjs → importFns-DsXONi6U.cjs} +2 -2
  31. package/dist/io.cjs +2 -2
  32. package/dist/io.js +2 -2
  33. package/dist/kernel/brepkit/brepkitAdapter.d.ts +1 -0
  34. package/dist/kernel/brepkit/brepkitAdapter.d.ts.map +1 -1
  35. package/dist/kernel/brepkit/brepkitWasmTypes.d.ts +141 -330
  36. package/dist/kernel/brepkit/brepkitWasmTypes.d.ts.map +1 -1
  37. package/dist/kernel/brepkit/constructionOps.d.ts.map +1 -1
  38. package/dist/kernel/brepkit/meshOps.d.ts.map +1 -1
  39. package/dist/kernel/brepkit/sketchOps.d.ts +2 -0
  40. package/dist/kernel/brepkit/sketchOps.d.ts.map +1 -1
  41. package/dist/kernel/types.d.ts +4 -2
  42. package/dist/kernel/types.d.ts.map +1 -1
  43. package/dist/{measureFns-Dsan3QcB.js → measureFns-7OZzno62.js} +2 -2
  44. package/dist/{measureFns-rVSankqO.cjs → measureFns-D8ZEBxgD.cjs} +2 -2
  45. package/dist/measurement.cjs +1 -1
  46. package/dist/measurement.js +1 -1
  47. package/dist/{meshFns-Z5n8gFAS.cjs → meshFns-CK_z96zs.cjs} +2 -2
  48. package/dist/{meshFns-CKs4H-CH.js → meshFns-CaCIWy2X.js} +2 -2
  49. package/dist/operations.cjs +2 -2
  50. package/dist/operations.js +2 -2
  51. package/dist/{primitiveFns-DmIP-qnU.js → primitiveFns-139mDh7k.js} +5 -5
  52. package/dist/{primitiveFns-w2otksRk.cjs → primitiveFns-ffN4QL7p.cjs} +5 -5
  53. package/dist/query.cjs +2 -2
  54. package/dist/query.js +2 -2
  55. package/dist/{shapeFns-E3qTx3nN.js → shapeFns-DKkJInK9.js} +2 -2
  56. package/dist/{shapeFns-DZ2c5Nqo.cjs → shapeFns-Ddiq_tzP.cjs} +2 -2
  57. package/dist/shapeRef.cjs +1 -1
  58. package/dist/shapeRef.js +1 -1
  59. package/dist/{shapeRefFns-Dl7v17MC.cjs → shapeRefFns-B-UsmO76.cjs} +3 -3
  60. package/dist/{shapeRefFns-CEYgkZ1v.js → shapeRefFns-FrRRTchk.js} +3 -3
  61. package/dist/{shapeTypes-B5Vx1Wsw.cjs → shapeTypes-CTA42JhU.cjs} +10 -3
  62. package/dist/{shapeTypes-DUJg_N3P.js → shapeTypes-DwS1P7iJ.js} +10 -3
  63. package/dist/sketching.cjs +2 -2
  64. package/dist/sketching.js +2 -2
  65. package/dist/{solidBuilders-Bvq6br4f.cjs → solidBuilders-B953vOHQ.cjs} +2 -2
  66. package/dist/{solidBuilders-0gTTuSxw.js → solidBuilders-DM238Iay.js} +2 -2
  67. package/dist/{surfaceBuilders-CYWopaht.cjs → surfaceBuilders-BEbNDiOm.cjs} +2 -2
  68. package/dist/{surfaceBuilders-DMI0n7Bf.js → surfaceBuilders-BobhE0OJ.js} +2 -2
  69. package/dist/topology.cjs +6 -6
  70. package/dist/topology.js +6 -6
  71. package/package.json +3 -2
@@ -1,15 +1,10 @@
1
1
  /**
2
2
  * Type-safe interface for the brepkit WASM kernel (`BrepKernel`).
3
3
  *
4
- * This mirrors the Rust `BrepKernel` struct's `#[wasm_bindgen]` exports.
5
- * Synced against `brepkit-wasm@2.5.0` (`brepkit_wasm.d.ts`).
4
+ * AUTO-GENERATED by `npm run sync:brepkit-types`.
5
+ * Synced against `brepkit-wasm@2.33.0`.
6
6
  *
7
- * Methods not yet exposed by the WASM build are marked **optional** (`?`)
8
- * with `@future` JSDoc tags. Callers must guard with
9
- * `typeof this.bk.method === 'function'` before use.
10
- *
11
- * Input array params use union types (`Float64Array | number[]`) — the WASM
12
- * prefers typed arrays but wasm-bindgen coerces plain arrays.
7
+ * Methods not yet referenced in the adapter layer are tagged `@unwired`.
13
8
  *
14
9
  * @module
15
10
  */
@@ -45,437 +40,253 @@ export interface BrepkitEdgeLines {
45
40
  * Matrices are 16-element row-major `number[]`.
46
41
  */
47
42
  export interface BrepkitKernel {
48
- /** Create a box solid centered at origin. Returns solid handle. */
49
43
  makeBox(dx: number, dy: number, dz: number): number;
50
- /** Create a cylinder solid, axis along +Z. Returns solid handle. */
51
44
  makeCylinder(radius: number, height: number): number;
52
- /** Create a sphere solid centered at origin. Returns solid handle. */
53
45
  makeSphere(radius: number, segments: number): number;
54
- /** Create a cone/frustum solid, axis along +Z. Returns solid handle. */
55
46
  makeCone(bottomRadius: number, topRadius: number, height: number): number;
56
- /** Create a torus solid in XY plane. Returns solid handle. */
57
47
  makeTorus(majorRadius: number, minorRadius: number, segments: number): number;
58
- /** Create a rectangular face centered at origin in XY. Returns face handle. */
48
+ /** @unwired */
49
+ makeEllipsoid(rx: number, ry: number, rz: number): number;
59
50
  makeRectangle(width: number, height: number): number;
60
- /** Create a polygonal face from flat coords `[x,y,z,...]`. Returns face handle. */
51
+ /** @unwired */
61
52
  makePolygon(coords: Float64Array | number[]): number;
62
- /** Create a circular polygon face in XY. Returns face handle. */
53
+ /** @unwired */
63
54
  makeCircle(radius: number, segments: number): number;
64
- /** Create a vertex at (x,y,z). Returns vertex handle. */
55
+ /** @unwired */
56
+ makeCircleFace(radius: number, segments: number): number;
65
57
  makeVertex(x: number, y: number, z: number): number;
66
- /** Create a line edge between two points. Returns edge handle. */
67
58
  makeLineEdge(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number): number;
68
- /** Create a circular arc edge. The arc goes from start to end CCW when viewed along the axis. Returns edge handle. */
69
59
  makeCircleArc3d(startX: number, startY: number, startZ: number, endX: number, endY: number, endZ: number, centerX: number, centerY: number, centerZ: number, axisX: number, axisY: number, axisZ: number): number;
70
- /**
71
- * Create a circular arc edge defined by start point, tangent direction at start, and end point.
72
- * Falls back to a straight line edge if the tangent is parallel to the start→end chord.
73
- * Returns edge handle.
74
- */
75
- makeTangentArc3d?(startX: number, startY: number, startZ: number, tangentX: number, tangentY: number, tangentZ: number, endX: number, endY: number, endZ: number): number;
76
- /** Create a NURBS curve edge. Returns edge handle. */
60
+ makeTangentArc3d(startX: number, startY: number, startZ: number, tangentX: number, tangentY: number, tangentZ: number, endX: number, endY: number, endZ: number): number;
77
61
  makeNurbsEdge(startX: number, startY: number, startZ: number, endX: number, endY: number, endZ: number, degree: number, knots: Float64Array | number[], controlPoints: Float64Array | number[], weights: Float64Array | number[]): number;
78
- /** Create a wire from ordered edge handles. Returns wire handle. */
79
62
  makeWire(edgeHandles: Uint32Array | number[], closed: boolean): number;
80
- /** Create a planar face from a wire. Returns face handle. */
81
- makeFaceFromWire(wire: number): number;
82
- /** Create a solid from a shell. Returns solid handle. */
83
- solidFromShell(shell: number): number;
84
- /** Create a compound from solid handles. Returns compound handle. */
85
- makeCompound(solidHandles: Uint32Array | number[]): number;
86
- /** Create a closed polygon wire from flat coords. Returns wire handle. */
87
63
  makePolygonWire(coords: Float64Array | number[]): number;
88
- /** Create a regular polygon wire in XY. Returns wire handle. */
64
+ /** @unwired */
89
65
  makeRegularPolygonWire(radius: number, nSides: number): number;
90
- /** Create a circle face using NURBS arcs. Returns face handle. */
91
- makeCircleFace(radius: number, segments: number): number;
92
- /** Add holes (inner wires) to a face. Returns new face handle. */
93
- addHolesToFace(face: number, wireIds: Uint32Array | number[]): number;
94
- /** Fuse (union) two solids. Returns new solid handle. */
66
+ makeFaceFromWire(wire: number): number;
67
+ makeCompound(solidHandles: Uint32Array | number[]): number;
68
+ /** @unwired */
69
+ makeSolid(faceHandles: Uint32Array | number[]): number;
70
+ solidFromShell(shell: number): number;
71
+ addHolesToFace(face: number, holeWireHandles: Uint32Array | number[]): number;
72
+ removeHolesFromFace(face: number): number;
73
+ reverseShape(id: number): number;
95
74
  fuse(a: number, b: number): number;
96
- /** Cut (subtract) solid b from a. Returns new solid handle. */
97
75
  cut(a: number, b: number): number;
98
- /** Intersect two solids. Returns new solid handle. */
99
76
  intersect(a: number, b: number): number;
100
- /** Cut target solid with multiple tool solids in a single WASM call. Returns new solid handle. */
101
- compoundCut(target: number, tool_ids: Uint32Array): number;
102
- /** @future Not in brepkit-wasm 2.5.0. Fuse multiple solids in a single WASM call. Returns new solid handle. */
103
- compoundFuse?(solid_ids: Uint32Array): number;
104
- /** Fuse with evolution tracking. Returns JSON string. */
77
+ compoundCut(target: number, toolIds: Uint32Array | number[]): number;
78
+ convexHull(coords: Float64Array | number[]): number;
79
+ section(solid: number, px: number, py: number, pz: number, nx: number, ny: number, nz: number): Uint32Array;
80
+ split(solid: number, px: number, py: number, pz: number, nx: number, ny: number, nz: number): Uint32Array;
105
81
  fuseWithEvolution(a: number, b: number): string;
106
- /** Cut with evolution tracking. Returns JSON string. */
107
82
  cutWithEvolution(a: number, b: number): string;
108
- /** Intersect with evolution tracking. Returns JSON string. */
109
83
  intersectWithEvolution(a: number, b: number): string;
110
- /** Extrude a face along direction. Returns solid handle. */
111
84
  extrude(face: number, dirX: number, dirY: number, dirZ: number, distance: number): number;
112
- /**
113
- * Revolve a face around an axis. Angle in degrees.
114
- * Returns solid handle.
115
- */
116
85
  revolve(face: number, ox: number, oy: number, oz: number, dx: number, dy: number, dz: number, angleDegrees: number): number;
117
- /** Sweep a face along a NURBS path. Returns solid handle. */
118
86
  sweep(face: number, pathDegree: number, pathKnots: Float64Array | number[], pathControlPoints: Float64Array | number[], pathWeights: Float64Array | number[]): number;
119
- /** Loft through an array of face profiles. Returns solid handle. */
120
- loft(faceIds: Uint32Array | number[]): number;
121
- /** Loft with smooth NURBS surface fitting. Returns solid handle. */
122
- loftSmooth(faceIds: Uint32Array | number[]): number;
123
- /** Loft with configurable options (JSON string). Returns solid handle. */
124
- loftWithOptions(faces: Uint32Array | number[], options: string): number;
125
- /** Thicken a face into a solid by offsetting along its normal. */
126
- thicken(face: number, thickness: number): number;
127
- /** Create an ellipsoid primitive. Returns solid handle. */
128
- makeEllipsoid(rx: number, ry: number, rz: number): number;
129
- /** Build a solid from an array of face handles. Returns solid handle. */
130
- makeSolid(faceHandles: Uint32Array): number;
131
- /** Weld shells and faces into a solid. Returns solid handle. */
132
- weldShellsAndFaces(faceHandles: Uint32Array | number[], tolerance: number): number;
133
- /** Sweep with smooth NURBS surface fitting along a path. Returns solid handle. */
134
87
  sweepSmooth(face: number, pathDegree: number, pathKnots: Float64Array | number[], pathControlPoints: Float64Array | number[], pathWeights: Float64Array | number[]): number;
135
- /** Pipe sweep along a NURBS path. Returns solid handle. */
88
+ sweepAlongEdges(face: number, edgeHandles: Uint32Array | number[]): number;
89
+ sweepWithOptions(profile: number, pathEdge: number, contactMode: string, scaleValues: Float64Array | number[], segments: number, cornerMode: string): number;
136
90
  pipe(face: number, pathDegree: number, pathKnots: Float64Array | number[], pathControlPoints: Float64Array | number[], pathWeights: Float64Array | number[]): number;
137
- /** Sweep a face along edge handles. Returns solid handle. */
138
- sweepAlongEdges(profile: number, edgeIds: Uint32Array | number[]): number;
139
- /** Helical sweep of a profile. Returns solid handle. */
91
+ loft(faces: Uint32Array | number[]): number;
92
+ loftSmooth(faces: Uint32Array | number[]): number;
93
+ loftWithOptions(faces: Uint32Array | number[], options: string): number;
140
94
  helicalSweep(profile: number, axisOriginX: number, axisOriginY: number, axisOriginZ: number, axisDirX: number, axisDirY: number, axisDirZ: number, radius: number, pitch: number, turns: number): number;
141
- /** Sweep with advanced options (contact mode, scale law). Returns solid handle. */
142
- sweepWithOptions(profile: number, pathEdge: number, contactMode: string, scaleValues: Float64Array | number[], segments: number, cornerMode: string): number;
143
- /** Fillet edges of a solid with constant radius. Returns solid handle. */
144
- fillet(solid: number, edgeIds: Uint32Array | number[], radius: number): number;
145
- /** Fillet edges with variable radius (JSON spec). Returns solid handle. */
95
+ fillet(solid: number, edgeHandles: Uint32Array | number[], radius: number): number;
96
+ /** @unwired */
97
+ filletV2(solid: number, edgeHandles: Uint32Array | number[], radius: number): number;
146
98
  filletVariable(solid: number, json: string): number;
147
- /** Chamfer edges of a solid. Returns solid handle. */
148
- chamfer(solid: number, edgeIds: Uint32Array | number[], distance: number): number;
149
- /** @future Not in brepkit-wasm 2.5.0. Asymmetric chamfer: d1 on first adjacent face, d2 on second. */
150
- chamferAsymmetric?(solid: number, edgeIds: Uint32Array | number[], d1: number, d2: number): number;
151
- /** Shell a solid by removing faces. Returns solid handle. */
152
- shell(solid: number, thickness: number, faceIds: Uint32Array | number[]): number;
153
- /** Offset a solid by distance. Returns solid handle. */
99
+ chamfer(solid: number, edgeHandles: Uint32Array | number[], distance: number): number;
100
+ /** @unwired */
101
+ chamferV2(solid: number, edgeHandles: Uint32Array | number[], d1: number, d2: number): number;
102
+ /** @unwired */
103
+ chamferDistanceAngle(solid: number, edgeHandles: Uint32Array | number[], distance: number, angle: number): number;
104
+ shell(solid: number, thickness: number, openFaces: Uint32Array | number[]): number;
154
105
  offsetSolid(solid: number, distance: number): number;
155
- /** Offset a face. Returns solid handle. */
156
- offsetFace(face: number, distance: number, tolerance: number): number;
157
- /** Offset a wire on a planar face. Returns wire handle. */
106
+ offsetSolidV2(solid: number, distance: number): number;
107
+ /** @unwired */
108
+ offsetFace(face: number, distance: number, samples: number): number;
109
+ /** @unwired */
158
110
  offsetWire(face: number, distance: number): number;
159
- /** Offset a wire on a planar face with join type control. Returns wire handle. Added in 2.5.0. */
160
- offsetWireWithJoinType?(face: number, distance: number, join_type: string): number;
161
- /** Draft (taper) faces of a solid. Returns solid handle. */
111
+ /** @unwired */
112
+ offsetWireWithJoinType(face: number, distance: number, joinType: string): number;
113
+ thicken(face: number, thickness: number): number;
162
114
  draft(solid: number, faceHandles: Uint32Array | number[], pullX: number, pullY: number, pullZ: number, neutralX: number, neutralY: number, neutralZ: number, angleDegrees: number): number;
163
- /** Section a solid with a plane. Returns face handle array. */
164
- section(solid: number, px: number, py: number, pz: number, nx: number, ny: number, nz: number): Uint32Array;
165
- /** Split a solid along a plane. Returns `[positive, negative]` solid handles. */
166
- split(solid: number, px: number, py: number, pz: number, nx: number, ny: number, nz: number): Uint32Array;
167
- /** Transform a solid in-place with 4×4 row-major matrix. */
115
+ defeature(solid: number, faceHandles: Uint32Array | number[]): number;
116
+ detectSmallFeatures(solid: number, areaThreshold: number, deflection: number): Uint32Array;
117
+ recognizeFeatures(solid: number, deflection: number): string;
118
+ /** @unwired */
119
+ unifyFaces(solid: number): number;
168
120
  transformSolid(solid: number, matrix: Float64Array | number[]): void;
169
- /** Deep copy a solid. Returns new solid handle. */
121
+ transformWire(wire: number, matrix: Float64Array | number[]): void;
170
122
  copySolid(solid: number): number;
171
- /** Copy and transform in one pass. Returns new solid handle. */
123
+ copyWire(wire: number): number;
124
+ /** @unwired */
172
125
  copyAndTransformSolid(solid: number, matrix: Float64Array | number[]): number;
173
- /** Mirror a solid across a plane. Returns new solid handle. */
174
126
  mirror(solid: number, px: number, py: number, pz: number, nx: number, ny: number, nz: number): number;
175
- /** Linear pattern (array). Returns compound handle. */
127
+ /** @unwired */
176
128
  linearPattern(solid: number, dx: number, dy: number, dz: number, spacing: number, count: number): number;
177
- /** Circular pattern around axis. Returns compound handle. */
129
+ /** @unwired */
178
130
  circularPattern(solid: number, ax: number, ay: number, az: number, count: number): number;
179
- /** 2D grid pattern. Returns compound handle. */
180
- gridPattern(solid: number, dirXx: number, dirXy: number, dirXz: number, dirYx: number, dirYy: number, dirYz: number, spacingX: number, spacingY: number, countX: number, countY: number): number;
181
- /** Sew faces into a solid. Returns solid handle. */
131
+ gridPattern(solid: number, dirXX: number, dirXY: number, dirXZ: number, dirYX: number, dirYY: number, dirYZ: number, spacingX: number, spacingY: number, countX: number, countY: number): number;
132
+ composeTransforms(matrixA: Float64Array | number[], matrixB: Float64Array | number[]): Float64Array;
182
133
  sewFaces(faceHandles: Uint32Array | number[], tolerance: number): number;
183
- /** Fill a 4-sided boundary with Coons patch. Returns face handle. */
134
+ weldShellsAndFaces(faceHandles: Uint32Array | number[], tolerance: number): number;
184
135
  fillCoonsPatch(boundaryCoords: Float64Array | number[], curveLengths: Uint32Array | number[]): number;
185
- /** Untrim a NURBS face. Returns new face handle. */
186
136
  untrimFace(face: number, samplesPerCurve: number, interiorSamples: number): number;
187
- /** Get face handles of a solid. */
188
137
  getSolidFaces(solid: number): Uint32Array;
189
- /** Get edge handles of a solid. */
190
138
  getSolidEdges(solid: number): Uint32Array;
191
- /** Get vertex handles of a solid. */
192
139
  getSolidVertices(solid: number): Uint32Array;
193
- /** Get edge handles of a face. */
194
140
  getFaceEdges(face: number): Uint32Array;
195
- /** Get vertex handles of a face. */
196
141
  getFaceVertices(face: number): Uint32Array;
197
- /** Get the outer wire of a face. */
142
+ getFaceNormal(face: number): Float64Array;
198
143
  getFaceOuterWire(face: number): number;
199
- /** Get all wires (outer + inner) of a face. */
200
144
  getFaceWires(face: number): Uint32Array;
201
- /**
202
- * Get vertex positions of an edge.
203
- * Returns `[startX, startY, startZ, endX, endY, endZ]`.
204
- */
145
+ /** @unwired */
146
+ faceWires(face: number): Uint32Array;
147
+ getWireEdges(wire: number): Uint32Array;
205
148
  getEdgeVertices(edge: number): Float64Array;
206
- /** Get vertex position `[x, y, z]`. */
149
+ /** @unwired */
150
+ getEdgeVertexHandles(edge: number): Uint32Array;
207
151
  getVertexPosition(vertex: number): Float64Array;
208
- /** Get face normal `[nx, ny, nz]` (planar faces only). */
209
- getFaceNormal(face: number): Float64Array;
210
- /** Get entity counts `[faces, edges, vertices]` of a solid. */
152
+ /** @unwired */
211
153
  getEntityCounts(solid: number): Uint32Array;
212
- /** Get edge-to-face adjacency map as JSON string. */
213
- edgeToFaceMap(solid: number): string;
214
- /** Get shared edges between two faces. */
215
- sharedEdges(faceA: number, faceB: number): Uint32Array;
216
- /** Get faces adjacent to a face within a solid. */
154
+ getShellFaces(shell: number): Uint32Array;
155
+ getShapeOrientation(_id: number): string;
217
156
  adjacentFaces(solid: number, face: number): Uint32Array;
218
- /** Check if an edge is forward in its parent wire. */
157
+ sharedEdges(faceA: number, faceB: number): Uint32Array;
158
+ edgeToFaceMap(solid: number): string;
159
+ /** @unwired */
219
160
  isEdgeForwardInWire(edge: number, wire: number): boolean;
220
- /** Check if a wire is closed. */
161
+ /** @unwired */
221
162
  isWireClosed(wire: number): boolean;
222
- /** Compute total arc-length of a wire. */
223
- wireLength(wire: number): number;
224
- /** Deep copy a wire. Returns new wire handle. */
225
- copyWire(wire: number): number;
226
- /** Transform a wire in place with a 4x4 matrix. */
227
- transformWire(wire: number, matrix: Float64Array | number[]): void;
228
- /** Measure curvature at parameter t on an edge. Returns [kappa, tx, ty, tz, nx, ny, nz, bx, by, bz]. */
229
- measureCurvatureAtEdge(edge: number, t: number): Float64Array;
230
- /** Measure principal curvatures at (u,v) on a face. Returns [k1, k2, d1x, d1y, d1z, d2x, d2y, d2z]. */
231
- measureCurvatureAtSurface(face: number, u: number, v: number): Float64Array;
232
- /** Get the surface type of a face (e.g. "plane", "cylinder", "nurbs"). */
163
+ getCompoundSolids(compound: number): Uint32Array;
233
164
  getSurfaceType(face: number): string;
234
- /** Get the curve type of an edge (e.g. "line", "nurbs"). */
165
+ getSurfaceDomain(face: number): Float64Array;
166
+ getAnalyticSurfaceParams(face: number): string;
235
167
  getEdgeCurveType(edge: number): string;
236
- /** Get edge curve parameter range `[tMin, tMax]`. */
237
168
  getEdgeCurveParameters(edge: number): Float64Array;
238
- /** Evaluate edge curve at parameter. Returns `[x, y, z]`. */
239
- evaluateEdgeCurve(edge: number, param: number): Float64Array;
240
- /** Evaluate edge curve + tangent at parameter. Returns `[px,py,pz, tx,ty,tz]`. */
241
- evaluateEdgeCurveD1(edge: number, param: number): Float64Array;
242
- /** Evaluate surface at (u,v). Returns `[x, y, z]`. */
169
+ getEdgeNurbsData(edge: number): string | null;
170
+ evaluateEdgeCurve(edge: number, t: number): Float64Array;
171
+ evaluateEdgeCurveD1(edge: number, t: number): Float64Array;
243
172
  evaluateSurface(face: number, u: number, v: number): Float64Array;
244
- /** Evaluate surface normal at (u,v). Returns `[nx, ny, nz]`. */
245
173
  evaluateSurfaceNormal(face: number, u: number, v: number): Float64Array;
246
- /** Get UV domain `[uMin, uMax, vMin, vMax]`. */
247
- getSurfaceDomain(face: number): Float64Array;
248
- /** Project a 3D point onto a face surface. Returns `[x, y, z]`. */
249
- projectPointOnSurface(face: number, x: number, y: number, z: number): Float64Array;
250
- /** Get analytic surface parameters as JSON. */
251
- getAnalyticSurfaceParams(face: number): string;
252
- /** Get NURBS curve data for an edge as JSON. */
253
- getEdgeNurbsData(edge: number): string;
254
- /** Bounding box `[minX, minY, minZ, maxX, maxY, maxZ]`. */
174
+ projectPointOnSurface(face: number, px: number, py: number, pz: number): Float64Array;
175
+ /** @unwired */
176
+ liftCurve2dToPlane(curveType: number, curveParams: Float64Array | number[], originX: number, originY: number, originZ: number, xAxisX: number, xAxisY: number, xAxisZ: number, normalX: number, normalY: number, normalZ: number, tStart: number, tEnd: number): number;
255
177
  boundingBox(solid: number): Float64Array;
256
- /** Volume of a solid (tessellation-based). */
257
178
  volume(solid: number, deflection: number): number;
258
- /** Total surface area of a solid. */
259
179
  surfaceArea(solid: number, deflection: number): number;
260
- /** Area of a single face. */
261
180
  faceArea(face: number, deflection: number): number;
262
- /** Center of mass `[x, y, z]`. */
263
- centerOfMass(solid: number, deflection: number): Float64Array;
264
- /** Edge length. */
265
- edgeLength(edge: number): number;
266
- /** Face perimeter. */
267
181
  facePerimeter(face: number): number;
268
- /** Classify a point relative to a solid. Returns "inside"|"outside"|"boundary". */
269
- classifyPoint(solid: number, x: number, y: number, z: number, tolerance: number): string;
270
- /** Classify using generalized winding numbers. */
271
- classifyPointWinding(solid: number, x: number, y: number, z: number, tolerance: number): string;
272
- /** Classify using robust dual-method. */
273
- classifyPointRobust(solid: number, x: number, y: number, z: number, tolerance: number): string;
274
- /**
275
- * Distance from a point to a solid.
276
- * Returns `[distance, closestX, closestY, closestZ]`.
277
- */
182
+ edgeLength(edge: number): number;
183
+ wireLength(wire: number): number;
184
+ centerOfMass(solid: number, deflection: number): Float64Array;
185
+ /** @unwired */
186
+ measureCurvatureAtEdge(edge: number, t: number): Float64Array;
187
+ measureCurvatureAtSurface(face: number, u: number, v: number): Float64Array;
278
188
  pointToSolidDistance(px: number, py: number, pz: number, solid: number): Float64Array;
279
- /**
280
- * Minimum distance from a point to a face.
281
- * Returns `[distance, closestX, closestY, closestZ]`.
282
- */
283
189
  pointToFaceDistance(px: number, py: number, pz: number, face: number): Float64Array;
284
- /**
285
- * Minimum distance from a point to an edge.
286
- * Returns `[distance, closestX, closestY, closestZ]`.
287
- */
288
190
  pointToEdgeDistance(px: number, py: number, pz: number, edge: number): Float64Array;
289
- /**
290
- * Minimum distance between two solids.
291
- * Returns Float64Array with 7 elements: [distance, p1x, p1y, p1z, p2x, p2y, p2z].
292
- * Changed from `number` in 2.5.0.
293
- */
294
191
  solidToSolidDistance(a: number, b: number): Float64Array;
295
- /** Validate solid topology (strict). Returns error count. */
192
+ /** @unwired */
193
+ classifyPoint(solid: number, x: number, y: number, z: number, tolerance: number): string;
194
+ classifyPointWinding(solid: number, x: number, y: number, z: number, tolerance: number): string;
195
+ classifyPointRobust(solid: number, x: number, y: number, z: number, tolerance: number): string;
296
196
  validateSolid(solid: number): number;
297
- /** Validate solid topology (relaxed, tolerant of NURBS approximation artifacts). Returns error count. */
298
197
  validateSolidRelaxed(solid: number): number;
299
- /** Validate solid topology with configurable tolerance scale. Returns error count. Added in 2.5.0. */
300
- validateSolidWithOptions?(solid: number, tolerance_scale: number): number;
301
- /** Heal a solid (fix orientations, merge vertices, etc.). */
198
+ /** @unwired */
199
+ validateSolidWithOptions(solid: number, toleranceScale: number): number;
302
200
  healSolid(solid: number): number;
303
- /** Merge coincident vertices. Returns merge count. */
201
+ repairSolid(solid: number): number;
202
+ fixFaceOrientations(solid: number): number;
304
203
  mergeCoincidentVertices(solid: number, tolerance: number): number;
305
- /** Remove zero-length edges. Returns removal count. */
306
204
  removeDegenerateEdges(solid: number, tolerance: number): number;
307
- /** Fix face orientations for consistent normals. Returns fix count. */
308
- fixFaceOrientations(solid: number): number;
309
- /** Repair a solid (comprehensive healing). Returns error count after repair. */
310
- repairSolid(solid: number): number;
311
- /** @future Not in brepkit-wasm 2.5.0. Return detailed validation report as JSON string. */
312
- validateSolidDetails?(solid: number): string;
313
- /** Unify adjacent faces on the same surface. Returns removed face count. Optional — added in 1.0.8. */
314
- unifyFaces?(solid: number): number;
315
- /** Tessellate a face into a triangle mesh. */
316
205
  tessellateFace(face: number, deflection: number): BrepkitMesh;
317
- /** Tessellate all faces of a solid into a merged mesh. */
206
+ /** @unwired */
318
207
  tessellateSolid(solid: number, deflection: number): BrepkitMesh;
319
- /** Tessellate an edge into polyline points. Returns flat `[x,y,z,...]`. */
208
+ tessellateSolidGrouped(solid: number, deflection: number): string;
209
+ tessellateSolidUV(solid: number, deflection: number): string;
210
+ /** @unwired */
320
211
  tessellateEdge(edge: number, numPoints: number): Float64Array;
321
- /** Sample edges of a solid into polylines (smooth edges filtered out). */
322
212
  meshEdges(solid: number, deflection: number): BrepkitEdgeLines;
323
- /** Sample all edges of a solid into polylines (no smooth-edge filtering). Optional — added in 1.0.8. */
324
- meshEdgesAll?(solid: number, deflection: number): BrepkitEdgeLines;
325
- /** Convex hull from flat coords. Returns solid handle. */
326
- convexHull(coords: Float64Array | number[]): number;
327
- /** Export to STEP format. Returns bytes. */
213
+ meshEdgesAll(solid: number, deflection: number): BrepkitEdgeLines;
214
+ meshBoolean(positionsA: Float64Array | number[], indicesA: Uint32Array | number[], positionsB: Float64Array | number[], indicesB: Uint32Array | number[], op: string, tolerance: number): BrepkitMesh;
328
215
  exportStep(solid: number): Uint8Array;
329
- /** Export to binary STL. Returns bytes. */
330
216
  exportStl(solid: number, deflection: number): Uint8Array;
331
- /** Export to ASCII STL. Returns bytes. */
332
217
  exportStlAscii(solid: number, deflection: number): Uint8Array;
333
- /** Export to IGES format. Returns bytes. */
334
218
  exportIges(solid: number): Uint8Array;
335
- /** Export to 3MF format. Returns bytes. */
336
219
  export3mf(solid: number, deflection: number): Uint8Array;
337
- /** Export to OBJ format. Returns bytes. */
338
220
  exportObj(solid: number, deflection: number): Uint8Array;
339
- /** Export to GLB format. Returns bytes. */
340
221
  exportGlb(solid: number, deflection: number): Uint8Array;
341
- /** Export to PLY format (binary). Returns bytes. */
342
222
  exportPly(solid: number, deflection: number): Uint8Array;
343
- /** Import from STEP. Returns solid handle array. */
344
223
  importStep(data: Uint8Array): Uint32Array;
345
- /** Import from STL. Returns solid handle. */
346
224
  importStl(data: Uint8Array): number;
347
- /** Import from IGES. Returns solid handle array. */
348
225
  importIges(data: Uint8Array): Uint32Array;
349
- /** Import from 3MF. Returns solid handle array. */
350
226
  import3mf(data: Uint8Array): Uint32Array;
351
- /** Import from flat vertex/index arrays. Returns solid handle. */
352
- importIndexedMesh(positions: Float64Array, indices: Uint32Array): number;
353
- /** Import from OBJ. Returns solid handle. */
354
227
  importObj(data: Uint8Array): number;
355
- /** Import from GLB. Returns solid handle. */
356
228
  importGlb(data: Uint8Array): number;
357
- /** Approximate a curve through points (least-squares). Returns edge handle. */
229
+ importIndexedMesh(positions: Float64Array | number[], indices: Uint32Array | number[]): number;
230
+ interpolatePoints(coords: Float64Array | number[], degree: number): number;
231
+ /** @unwired */
358
232
  approximateCurve(coords: Float64Array | number[], degree: number, numControlPoints: number): number;
359
- /** Approximate via LSPIA. Returns edge handle. */
360
233
  approximateCurveLspia(coords: Float64Array | number[], degree: number, numControlPoints: number, tolerance: number, maxIterations: number): number;
361
- /** Interpolate points into a smooth NURBS edge. Returns edge handle. */
362
- interpolatePoints(coords: Float64Array | number[], degree: number): number;
363
- /** Insert a knot into an edge's NURBS curve. Returns new edge handle. */
364
234
  curveKnotInsert(edge: number, knot: number, times: number): number;
365
- /** Remove a knot from a NURBS curve. Returns new edge handle. */
366
235
  curveKnotRemove(edge: number, knot: number, tolerance: number): number;
367
- /** Split a NURBS curve at parameter. Returns `[edge1, edge2]`. */
368
236
  curveSplit(edge: number, u: number): Uint32Array;
369
- /** Elevate degree of a NURBS curve. Returns new edge handle. */
370
237
  curveDegreeElevate(edge: number, elevateBy: number): number;
371
- /** Interpolate a grid of points into a NURBS surface. Returns face handle. */
372
238
  interpolateSurface(coords: Float64Array | number[], rows: number, cols: number, degreeU: number, degreeV: number): number;
373
- /** Approximate a point grid via LSPIA. Returns face handle. */
374
239
  approximateSurfaceLspia(coords: Float64Array | number[], rows: number, cols: number, degreeU: number, degreeV: number, numCpsU: number, numCpsV: number, tolerance: number, maxIterations: number): number;
375
- /** Detect small features (faces below area threshold). Returns face handles. */
376
- detectSmallFeatures(solid: number, areaThreshold: number, deflection: number): Uint32Array;
377
- /** Recognize geometric features. Returns JSON string. */
378
- recognizeFeatures(solid: number, deflection: number): string;
379
- /** Remove faces from a solid (defeaturing). Returns new solid handle. */
380
- defeature(solid: number, faceHandles: Uint32Array | number[]): number;
381
- /** Boolean on raw triangle data. Returns BrepkitMesh. */
382
- meshBoolean(positionsA: Float64Array | number[], indicesA: Uint32Array | number[], positionsB: Float64Array | number[], indicesB: Uint32Array | number[], op: string, tolerance: number): BrepkitMesh;
383
- /** @future Not in brepkit-wasm 2.5.0. Deep copy an edge. Returns new edge handle. */
384
- copyEdge?(edge: number): number;
385
- /** @future Not in brepkit-wasm 2.5.0. Deep copy a face. Returns new face handle. */
386
- copyFace?(face: number): number;
387
- /** @future Not in brepkit-wasm 2.5.0. Transform an edge in-place. */
388
- transformEdge?(edge: number, matrix: Float64Array | number[]): void;
389
- /** @future Not in brepkit-wasm 2.5.0. Transform a face in-place. */
390
- transformFace?(face: number, matrix: Float64Array | number[]): void;
391
- /** Create a new sketch. Returns sketch index. */
392
240
  sketchNew(): number;
393
- /** Add a point to a sketch. Returns point index. */
394
241
  sketchAddPoint(sketch: number, x: number, y: number, fixed: boolean): number;
395
- /** Add a constraint to a sketch (JSON string). */
242
+ sketchAddArc(sketch: number, centerIdx: number, startIdx: number, endIdx: number): number;
396
243
  sketchAddConstraint(sketch: number, json: string): void;
397
- /** Solve sketch constraints. Returns JSON result. */
398
244
  sketchSolve(sketch: number, maxIterations: number, tolerance: number): string;
399
- /** Create a new assembly. Returns assembly index. */
245
+ sketchDof(sketch: number): string;
246
+ offsetPolygon2d(coords: Float64Array | number[], distance: number, tolerance: number): Float64Array;
247
+ /** @unwired */
248
+ chamfer2d(coords: Float64Array | number[], distance: number): Float64Array;
249
+ /** @unwired */
250
+ fillet2d(coords: Float64Array | number[], radius: number): Float64Array;
251
+ /** @unwired */
252
+ polygonsIntersect2d(coordsA: Float64Array | number[], coordsB: Float64Array | number[]): boolean;
253
+ /** @unwired */
254
+ intersectPolygons2d(coordsA: Float64Array | number[], coordsB: Float64Array | number[]): Float64Array;
255
+ /** @unwired */
256
+ commonSegment2d(coordsA: Float64Array | number[], coordsB: Float64Array | number[]): Float64Array;
257
+ /** @unwired */
258
+ pointInPolygon2d(polygonCoords: Float64Array | number[], px: number, py: number): boolean;
259
+ executeBatch(json: string): string;
260
+ checkpoint(): number;
261
+ checkpointCount(): number;
262
+ restore(checkpointId: number): void;
263
+ discardCheckpoint(checkpointId: number): void;
264
+ /** @unwired */
400
265
  assemblyNew(name: string): number;
401
- /** Add a root component. Returns component ID. */
266
+ /** @unwired */
402
267
  assemblyAddRoot(assembly: number, name: string, solid: number, matrix: Float64Array | number[]): number;
403
- /** Add a child component. Returns component ID. */
268
+ /** @unwired */
404
269
  assemblyAddChild(assembly: number, parent: number, name: string, solid: number, matrix: Float64Array | number[]): number;
405
- /** Flatten assembly to JSON `[{solid, matrix}, ...]`. */
270
+ /** @unwired */
406
271
  assemblyFlatten(assembly: number): string;
407
- /** Bill of materials as JSON. */
272
+ /** @unwired */
408
273
  assemblyBom(assembly: number): string;
409
- /** Offset a 2D polygon. Coords are flat `[x,y, ...]`. Returns flat coords. */
410
- offsetPolygon2d(coords: Float64Array | number[], distance: number, tolerance: number): Float64Array;
411
- /** Chamfer corners of a 2D polygon. Coords flat `[x,y,...]`. Returns flat coords. */
412
- chamfer2d(coords: number[], distance: number): Float64Array;
413
- /** Fillet corners of a 2D polygon. Coords flat `[x,y,...]`. Returns flat coords. */
414
- fillet2d(coords: number[], radius: number): Float64Array;
415
- /** Check if a point is inside a 2D polygon. Coords flat `[x,y,...]`. */
416
- pointInPolygon2d?(polygonCoords: Float64Array | number[], px: number, py: number): boolean;
417
- /** Check if two 2D polygons intersect. Coords flat `[x,y,...]`. */
418
- polygonsIntersect2d(coordsA: number[], coordsB: number[]): boolean;
419
- /** Compute intersection polygon of two 2D polygons. Returns flat coords. */
420
- intersectPolygons2d(coordsA: number[], coordsB: number[]): Float64Array;
421
- /** Find common boundary segments of two 2D polygons. Returns flat coords. */
422
- commonSegment2d(coordsA: number[], coordsB: number[]): Float64Array;
423
- /** Execute a batch of operations from JSON. Returns JSON result. */
424
- executeBatch(json: string): string;
425
- /** Get solids within a compound. */
426
- getCompoundSolids(compound: number): Uint32Array;
427
- /** Get faces of a shell. */
428
- getShellFaces(shell: number): Uint32Array;
429
- /** Get edges of a wire. */
430
- getWireEdges(wire: number): Uint32Array;
431
- /** Get all wires of a face (alternative binding). */
432
- faceWires(face: number): Uint32Array;
433
- /** Get shape orientation flag. */
434
- getShapeOrientation(id: number): string;
435
- /** Reverse shape orientation. */
436
- reverseShape(id: number): number;
437
- /** Get edge start/end vertex arena handles. */
438
- getEdgeVertexHandles(edge: number): Uint32Array;
439
- /** Remove holes (inner wires) from a face. Returns new face handle. */
440
- removeHolesFromFace(face: number): number;
441
- /** Create an arena checkpoint. Returns checkpoint index. */
442
- checkpoint(): number;
443
- /** Get the current number of checkpoints. */
444
- checkpointCount(): number;
445
- /** Restore arena to a checkpoint, freeing all handles created after it. */
446
- restore(checkpoint: number): void;
447
- /** Discard a checkpoint without restoring. */
448
- discardCheckpoint(checkpoint: number): void;
449
- /** Multiply two 4×4 row-major transform matrices. Returns 16-element result. */
450
- composeTransforms(a: number[], b: number[]): Float64Array;
451
- /**
452
- * Tessellate a solid with per-face grouping info.
453
- * Returns JSON string with `{ positions, normals, indices, faceOffsets }`.
454
- */
455
- tessellateSolidGrouped(solid: number, deflection: number): string;
456
- /**
457
- * Tessellate a solid with UV coordinates.
458
- * Returns JSON string with `{ positions, normals, indices, uvs }`.
459
- */
460
- tessellateSolidUV(solid: number, deflection: number): string;
461
- /** Serialize a solid to brepkit's native BREP JSON format. */
462
274
  toBREP(solid: number): string;
463
- /** Reconstruct a solid from a toBREP JSON string. Added in 2.2.0. */
464
275
  fromBREP(json: string): number;
465
- /** Get degrees of freedom remaining in a sketch. */
466
- sketchDof(sketch: number): string;
467
- /** @future Not in brepkit-wasm 2.5.0. Classify a point on a face (trim-aware). */
468
- classifyPointOnFace?(face: number, u: number, v: number, tolerance: number): number;
469
- /** @future Not in brepkit-wasm 2.5.0. Distance between two arbitrary shapes. */
470
- shapeToShapeDistance?(id1: number, id2: number): number[];
471
- /** @future Not in brepkit-wasm 2.5.0. 2D curve intersection. */
472
- intersectCurves2d?(...args: number[]): number[];
473
- /** @future Not in brepkit-wasm 2.5.0. Project point onto 2D curve. */
474
- projectPointOnCurve2d?(...args: number[]): number[];
475
- /** @future Not in brepkit-wasm 2.5.0. Reverse a 2D curve. */
476
- reverseCurve2d?(...args: number[]): number[];
477
- /** Lift a serialised 2D curve onto a 3D plane. Returns edge handle. Added in 2.1.0. */
478
- liftCurve2dToPlane?(curveType: number, curveParams: Float64Array, originX: number, originY: number, originZ: number, xAxisX: number, xAxisY: number, xAxisZ: number, normalX: number, normalY: number, normalZ: number, tStart: number, tEnd: number): number;
276
+ /** @future Not in brepkit-wasm 2.33.0. Referenced with feature detection in adapter. */
277
+ chamferAsymmetric?(solid: number, edgeHandles: Uint32Array | number[], d1: number, d2: number): number;
278
+ /** @future Not in brepkit-wasm 2.33.0. Referenced with feature detection in adapter. */
279
+ compoundFuse?(solidIds: Uint32Array | number[]): number;
280
+ /** @future Not in brepkit-wasm 2.33.0. Referenced with feature detection in adapter. */
281
+ copyEdge?(edge: number): number;
282
+ /** @future Not in brepkit-wasm 2.33.0. Referenced with feature detection in adapter. */
283
+ copyFace?(face: number): number;
284
+ /** @future Not in brepkit-wasm 2.33.0. Referenced with feature detection in adapter. */
285
+ transformEdge?(edge: number, matrix: Float64Array | number[]): void;
286
+ /** @future Not in brepkit-wasm 2.33.0. Referenced with feature detection in adapter. */
287
+ transformFace?(face: number, matrix: Float64Array | number[]): void;
288
+ /** @future Not in brepkit-wasm 2.33.0. Referenced with feature detection in adapter. */
289
+ validateSolidDetails?(solid: number): string;
479
290
  /** Release the entire arena. */
480
291
  free(): void;
481
292
  }