brepjs 9.0.0 → 9.2.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.
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Pure-TypeScript 2D geometry implementation for brepkit's Kernel2DCapability.
3
+ *
4
+ * All 2D curves are represented as plain objects with a `type` discriminant
5
+ * and `evaluate(t)` method. No WASM boundary crossing required.
6
+ *
7
+ * @module
8
+ */
9
+ export interface Line2d {
10
+ readonly __bk2d: 'line';
11
+ readonly ox: number;
12
+ readonly oy: number;
13
+ readonly dx: number;
14
+ readonly dy: number;
15
+ }
16
+ export interface Circle2d {
17
+ readonly __bk2d: 'circle';
18
+ readonly cx: number;
19
+ readonly cy: number;
20
+ readonly radius: number;
21
+ readonly sense: boolean;
22
+ }
23
+ export interface Ellipse2d {
24
+ readonly __bk2d: 'ellipse';
25
+ readonly cx: number;
26
+ readonly cy: number;
27
+ readonly majorRadius: number;
28
+ readonly minorRadius: number;
29
+ readonly xDirAngle: number;
30
+ readonly sense: boolean;
31
+ }
32
+ export interface Bezier2d {
33
+ readonly __bk2d: 'bezier';
34
+ readonly poles: [number, number][];
35
+ }
36
+ export interface BSpline2d {
37
+ readonly __bk2d: 'bspline';
38
+ readonly poles: [number, number][];
39
+ readonly knots: number[];
40
+ readonly multiplicities: number[];
41
+ readonly degree: number;
42
+ readonly isPeriodic: boolean;
43
+ }
44
+ export interface TrimmedCurve2d {
45
+ readonly __bk2d: 'trimmed';
46
+ readonly basis: Curve2dObj;
47
+ readonly tStart: number;
48
+ readonly tEnd: number;
49
+ }
50
+ export type Curve2dObj = Line2d | Circle2d | Ellipse2d | Bezier2d | BSpline2d | TrimmedCurve2d;
51
+ export interface BBox2d {
52
+ readonly __bk2d_bbox: true;
53
+ xMin: number;
54
+ yMin: number;
55
+ xMax: number;
56
+ yMax: number;
57
+ }
58
+ export declare function evaluateCurve2d(c: Curve2dObj, t: number): [number, number];
59
+ export declare function tangentCurve2d(c: Curve2dObj, t: number): [number, number];
60
+ export declare function curveBounds(c: Curve2dObj): {
61
+ first: number;
62
+ last: number;
63
+ };
64
+ export declare function curveTypeName(c: Curve2dObj): string;
65
+ export declare function makeLine2d(x1: number, y1: number, x2: number, y2: number): Line2d;
66
+ export declare function makeCircle2d(cx: number, cy: number, radius: number, sense?: boolean): Circle2d;
67
+ export declare function makeEllipse2d(cx: number, cy: number, majorRadius: number, minorRadius: number, xDirX?: number, xDirY?: number, sense?: boolean): Ellipse2d;
68
+ export declare function makeBezier2d(poles: [number, number][]): Bezier2d;
69
+ export declare function translateCurve2d(c: Curve2dObj, dx: number, dy: number): Curve2dObj;
70
+ export declare function rotateCurve2d(c: Curve2dObj, angle: number, cx: number, cy: number): Curve2dObj;
71
+ export declare function scaleCurve2d(c: Curve2dObj, factor: number, cx: number, cy: number): Curve2dObj;
72
+ export declare function mirrorAtPoint(c: Curve2dObj, cx: number, cy: number): Curve2dObj;
73
+ export declare function mirrorAcrossAxis(c: Curve2dObj, ox: number, oy: number, dx: number, dy: number): Curve2dObj;
74
+ export declare function serializeCurve2d(c: Curve2dObj): string;
75
+ export declare function deserializeCurve2d(data: string): Curve2dObj;
76
+ export declare function createBBox2d(): BBox2d;
77
+ export declare function addCurveToBBox(bbox: BBox2d, c: Curve2dObj, _tol: number): void;
78
+ //# sourceMappingURL=brepkit2d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brepkit2d.d.ts","sourceRoot":"","sources":["../../src/kernel/brepkit2d.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAMH,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,CAAC;AAM/F,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAMD,wBAAgB,eAAe,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAyB1E;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA0CzE;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAc1E;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAenD;AAMD,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAWjF;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,UAAO,GAAG,QAAQ,CAE3F;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,KAAK,SAAI,EACT,KAAK,SAAI,EACT,KAAK,UAAO,GACX,SAAS,CAUX;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,QAAQ,CAEhE;AAMD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CAelF;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CA+B9F;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CAgC9F;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CAE/E;AAED,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,UAAU,EACb,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,UAAU,CAyCZ;AAMD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAEtD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAE3D;AAMD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAc9E"}
@@ -0,0 +1,439 @@
1
+ import { KernelAdapter, KernelMeshResult, KernelEdgeMeshResult, DistanceResult, OperationResult, KernelInstance, KernelShape, KernelType, BooleanOptions, ShapeType, SurfaceType, ShapeOrientation, MeshOptions, StepAssemblyPart } from './types.js';
2
+ import { Curve2dHandle, BBox2dHandle } from './kernel2dTypes.js';
3
+ /**
4
+ * Typed wrapper around a brepkit u32 arena handle.
5
+ *
6
+ * brepjs passes these around as opaque `KernelShape`. The adapter extracts
7
+ * the `.id` and `.type` when calling back into brepkit WASM.
8
+ */
9
+ export interface BrepkitHandle {
10
+ readonly __brepkit: true;
11
+ readonly type: ShapeType;
12
+ /** Raw u32 arena index. */
13
+ readonly id: number;
14
+ }
15
+ /**
16
+ * Implements brepjs's {@link KernelAdapter} using brepkit's WASM `BrepKernel`.
17
+ *
18
+ * ## Supported operations (vertical slice 1)
19
+ *
20
+ * - **Primitives**: makeBox, makeCylinder, makeSphere, makeCone, makeTorus
21
+ * - **Booleans**: fuse, cut, intersect, section, fuseAll, cutAll, split
22
+ * - **Transforms**: translate, rotate, mirror, scale, transform, generalTransform
23
+ * - **Modification**: fillet, chamfer, shell, extrude, revolve, loft, sweep
24
+ * - **Meshing**: mesh (with per-face groups), meshEdges (stub)
25
+ * - **Measurement**: volume, area, boundingBox, centerOfMass, length, distance
26
+ * - **I/O**: exportSTEP, importSTEP, exportSTL, importSTL, exportIGES, importIGES
27
+ * - **Topology**: iterShapes, shapeType, hashCode, isNull, vertexPosition
28
+ *
29
+ * ## Not yet implemented
30
+ *
31
+ * - Shape evolution / history tracking (*WithHistory methods)
32
+ * - Kernel2DCapability (2D curves)
33
+ * - Advanced geometry queries (surfaceCurvature, uvBounds, etc.)
34
+ * - Convex hull, projection, BREP serialization
35
+ * - Composed transforms
36
+ */
37
+ export declare class BrepkitAdapter implements KernelAdapter {
38
+ readonly oc: KernelInstance;
39
+ readonly kernelId = "brepkit";
40
+ /** The underlying brepkit WASM kernel instance (typed). */
41
+ private readonly bk;
42
+ constructor(brepkitKernel: KernelInstance);
43
+ fuse(shape: KernelShape, tool: KernelShape, _options?: BooleanOptions): KernelShape;
44
+ cut(shape: KernelShape, tool: KernelShape, _options?: BooleanOptions): KernelShape;
45
+ intersect(shape: KernelShape, tool: KernelShape, _options?: BooleanOptions): KernelShape;
46
+ section(shape: KernelShape, plane: KernelShape, _approximation?: boolean): KernelShape;
47
+ fuseAll(shapes: KernelShape[], options?: BooleanOptions): KernelShape;
48
+ cutAll(shape: KernelShape, tools: KernelShape[], options?: BooleanOptions): KernelShape;
49
+ split(shape: KernelShape, tools: KernelShape[]): KernelShape;
50
+ hull(shapes: KernelShape[], _tolerance: number): KernelShape;
51
+ hullFromPoints(points: Array<{
52
+ x: number;
53
+ y: number;
54
+ z: number;
55
+ }>, _tolerance: number): KernelShape;
56
+ buildSolidFromFaces(points: Array<{
57
+ x: number;
58
+ y: number;
59
+ z: number;
60
+ }>, faces: Array<readonly [number, number, number]>, tolerance: number): KernelShape;
61
+ makeVertex(x: number, y: number, z: number): KernelShape;
62
+ makeEdge(curve: KernelType, start?: number, end?: number): KernelShape;
63
+ makeWire(edges: KernelShape[]): KernelShape;
64
+ makeFace(wire: KernelShape, _planar?: boolean): KernelShape;
65
+ makeBox(width: number, height: number, depth: number): KernelShape;
66
+ makeCylinder(radius: number, height: number, center?: [number, number, number], direction?: [number, number, number]): KernelShape;
67
+ makeSphere(radius: number, center?: [number, number, number]): KernelShape;
68
+ makeCone(radius1: number, radius2: number, height: number, center?: [number, number, number], direction?: [number, number, number]): KernelShape;
69
+ makeTorus(majorRadius: number, minorRadius: number, center?: [number, number, number], direction?: [number, number, number]): KernelShape;
70
+ makeEllipsoid(aLength: number, bLength: number, cLength: number): KernelShape;
71
+ makeLineEdge(p1: [number, number, number], p2: [number, number, number]): KernelShape;
72
+ makeCircleEdge(center: [number, number, number], normal: [number, number, number], radius: number): KernelShape;
73
+ makeCircleArc(center: [number, number, number], normal: [number, number, number], radius: number, startAngle: number, endAngle: number): KernelShape;
74
+ makeArcEdge(p1: [number, number, number], p2: [number, number, number], p3: [number, number, number]): KernelShape;
75
+ makeEllipseEdge(center: [number, number, number], normal: [number, number, number], majorRadius: number, minorRadius: number, xDir?: [number, number, number]): KernelShape;
76
+ makeEllipseArc(center: [number, number, number], normal: [number, number, number], majorRadius: number, minorRadius: number, startAngle: number, endAngle: number, xDir?: [number, number, number]): KernelShape;
77
+ makeBezierEdge(points: [number, number, number][]): KernelShape;
78
+ makeTangentArc(startPoint: [number, number, number], startTangent: [number, number, number], endPoint: [number, number, number]): KernelShape;
79
+ makeHelixWire(pitch: number, height: number, radius: number, center?: [number, number, number], _direction?: [number, number, number], leftHanded?: boolean): KernelShape;
80
+ makeWireFromMixed(items: KernelShape[]): KernelShape;
81
+ makeCompound(shapes: KernelShape[]): KernelShape;
82
+ makeBoxFromCorners(p1: [number, number, number], p2: [number, number, number]): KernelShape;
83
+ solidFromShell(shell: KernelShape): KernelShape;
84
+ extrude(face: KernelShape, direction: [number, number, number], length: number): KernelShape;
85
+ revolve(shape: KernelShape, axis: KernelType, angle: number): KernelShape;
86
+ revolveVec(shape: KernelShape, center: [number, number, number], direction: [number, number, number], angle: number): KernelShape;
87
+ loft(wires: KernelShape[], _ruled?: boolean, _startShape?: KernelShape, _endShape?: KernelShape): KernelShape;
88
+ sweep(wire: KernelShape, spine: KernelShape, _options?: {
89
+ transitionMode?: number;
90
+ }): KernelShape;
91
+ simplePipe(profile: KernelShape, spine: KernelShape): KernelShape;
92
+ fillet(shape: KernelShape, edges: KernelShape[], radius: number | [number, number] | ((edge: KernelShape) => number | [number, number])): KernelShape;
93
+ chamfer(shape: KernelShape, edges: KernelShape[], distance: number | [number, number] | ((edge: KernelShape) => number | [number, number])): KernelShape;
94
+ chamferDistAngle(shape: KernelShape, edges: KernelShape[], distance: number, angleDeg: number): KernelShape;
95
+ shell(shape: KernelShape, faces: KernelShape[], thickness: number, _tolerance?: number): KernelShape;
96
+ thicken(shape: KernelShape, thickness: number): KernelShape;
97
+ offset(shape: KernelShape, distance: number, _tolerance?: number): KernelShape;
98
+ transform(shape: KernelShape, trsf: KernelType): KernelShape;
99
+ translate(shape: KernelShape, x: number, y: number, z: number): KernelShape;
100
+ rotate(shape: KernelShape, angle: number, axis?: [number, number, number], center?: [number, number, number]): KernelShape;
101
+ mirror(shape: KernelShape, origin: [number, number, number], normal: [number, number, number]): KernelShape;
102
+ scale(shape: KernelShape, center: [number, number, number], factor: number): KernelShape;
103
+ generalTransform(shape: KernelShape, linear: readonly [number, number, number, number, number, number, number, number, number], translation: readonly [number, number, number], _isOrthogonal: boolean): KernelShape;
104
+ generalTransformNonOrthogonal(shape: KernelShape, linear: readonly [number, number, number, number, number, number, number, number, number], translation: readonly [number, number, number]): KernelShape;
105
+ /**
106
+ * Build a ShapeEvolution by comparing input face hashes to output face hashes.
107
+ *
108
+ * For transforms: 1:1 mapping (modified = identity, no generated/deleted).
109
+ * For booleans/modifiers: compare sets to detect changes.
110
+ */
111
+ private buildEvolution;
112
+ translateWithHistory(shape: KernelShape, x: number, y: number, z: number, inputFaceHashes: number[], hashUpperBound: number): OperationResult;
113
+ rotateWithHistory(shape: KernelShape, angle: number, inputFaceHashes: number[], hashUpperBound: number, axis?: [number, number, number], center?: [number, number, number]): OperationResult;
114
+ mirrorWithHistory(shape: KernelShape, origin: [number, number, number], normal: [number, number, number], inputFaceHashes: number[], hashUpperBound: number): OperationResult;
115
+ scaleWithHistory(shape: KernelShape, center: [number, number, number], factor: number, inputFaceHashes: number[], hashUpperBound: number): OperationResult;
116
+ generalTransformWithHistory(shape: KernelShape, linear: readonly [number, number, number, number, number, number, number, number, number], translation: readonly [number, number, number], isOrthogonal: boolean, inputFaceHashes: number[], hashUpperBound: number): OperationResult;
117
+ fuseWithHistory(shape: KernelShape, tool: KernelShape, inputFaceHashes: number[], hashUpperBound: number, options?: BooleanOptions): OperationResult;
118
+ cutWithHistory(shape: KernelShape, tool: KernelShape, inputFaceHashes: number[], hashUpperBound: number, options?: BooleanOptions): OperationResult;
119
+ intersectWithHistory(shape: KernelShape, tool: KernelShape, inputFaceHashes: number[], hashUpperBound: number, options?: BooleanOptions): OperationResult;
120
+ filletWithHistory(shape: KernelShape, edges: KernelShape[], radius: number | [number, number] | ((edge: KernelShape) => number | [number, number]), inputFaceHashes: number[], hashUpperBound: number): OperationResult;
121
+ chamferWithHistory(shape: KernelShape, edges: KernelShape[], distance: number | [number, number] | ((edge: KernelShape) => number | [number, number]), inputFaceHashes: number[], hashUpperBound: number): OperationResult;
122
+ shellWithHistory(shape: KernelShape, faces: KernelShape[], thickness: number, inputFaceHashes: number[], hashUpperBound: number, tolerance?: number): OperationResult;
123
+ thickenWithHistory(shape: KernelShape, thickness: number, inputFaceHashes: number[], hashUpperBound: number): OperationResult;
124
+ offsetWithHistory(shape: KernelShape, distance: number, inputFaceHashes: number[], hashUpperBound: number, tolerance?: number): OperationResult;
125
+ mesh(shape: KernelShape, options: MeshOptions): KernelMeshResult;
126
+ meshEdges(shape: KernelShape, tolerance: number, _angularTolerance: number): KernelEdgeMeshResult;
127
+ exportSTEP(shapes: KernelShape[]): string;
128
+ exportSTL(shape: KernelShape, binary?: boolean): string | ArrayBuffer;
129
+ importSTEP(data: string | ArrayBuffer): KernelShape[];
130
+ importSTL(data: string | ArrayBuffer): KernelShape;
131
+ exportIGES(shapes: KernelShape[]): string;
132
+ importIGES(data: string | ArrayBuffer): KernelShape[];
133
+ exportSTEPAssembly(parts: StepAssemblyPart[], _options?: {
134
+ unit?: string;
135
+ }): string;
136
+ volume(shape: KernelShape): number;
137
+ area(shape: KernelShape): number;
138
+ length(shape: KernelShape): number;
139
+ centerOfMass(shape: KernelShape): [number, number, number];
140
+ linearCenterOfMass(shape: KernelShape): [number, number, number];
141
+ boundingBox(shape: KernelShape): {
142
+ min: [number, number, number];
143
+ max: [number, number, number];
144
+ };
145
+ iterShapes(shape: KernelShape, type: ShapeType): KernelShape[];
146
+ iterShapeList(list: KernelShape, callback: (item: KernelShape) => void): void;
147
+ shapeType(shape: KernelShape): ShapeType;
148
+ isSame(a: KernelShape, b: KernelShape): boolean;
149
+ isEqual(a: KernelShape, b: KernelShape): boolean;
150
+ downcast(shape: KernelShape, _type?: ShapeType): KernelShape;
151
+ hashCode(shape: KernelShape, upperBound: number): number;
152
+ isNull(shape: KernelShape): boolean;
153
+ shapeOrientation(_shape: KernelShape): ShapeOrientation;
154
+ vertexPosition(vertex: KernelShape): [number, number, number];
155
+ surfaceType(face: KernelShape): SurfaceType;
156
+ uvBounds(face: KernelShape): {
157
+ uMin: number;
158
+ uMax: number;
159
+ vMin: number;
160
+ vMax: number;
161
+ };
162
+ outerWire(face: KernelShape): KernelShape;
163
+ surfaceNormal(face: KernelShape, u: number, v: number): [number, number, number];
164
+ pointOnSurface(face: KernelShape, u: number, v: number): [number, number, number];
165
+ uvFromPoint(face: KernelShape, point: [number, number, number]): [number, number] | null;
166
+ projectPointOnFace(face: KernelShape, point: [number, number, number]): [number, number, number];
167
+ curveTangent(shape: KernelShape, param: number): {
168
+ point: [number, number, number];
169
+ tangent: [number, number, number];
170
+ };
171
+ curveParameters(shape: KernelShape): [number, number];
172
+ curvePointAtParam(shape: KernelShape, param: number): [number, number, number];
173
+ curveIsClosed(shape: KernelShape): boolean;
174
+ curveIsPeriodic(_shape: KernelShape): boolean;
175
+ curvePeriod(_shape: KernelShape): number;
176
+ curveType(shape: KernelShape): string;
177
+ simplify(shape: KernelShape): KernelShape;
178
+ isValid(shape: KernelShape): boolean;
179
+ sew(shapes: KernelShape[], tolerance?: number): KernelShape;
180
+ healSolid(shape: KernelShape): KernelShape | null;
181
+ healFace(shape: KernelShape): KernelShape;
182
+ healWire(wire: KernelShape, _face?: KernelShape): KernelShape;
183
+ offsetWire2D(wire: KernelShape, offset: number, _joinType?: number | 'arc' | 'intersection' | 'tangent'): KernelShape;
184
+ distance(shape1: KernelShape, shape2: KernelShape): DistanceResult;
185
+ classifyPointOnFace(face: KernelShape, u: number, v: number, _tolerance?: number): 'in' | 'on' | 'out';
186
+ interpolatePoints(points: [number, number, number][], _options?: {
187
+ periodic?: boolean;
188
+ tolerance?: number;
189
+ }): KernelShape;
190
+ approximatePoints(points: [number, number, number][], options?: {
191
+ tolerance?: number;
192
+ degMin?: number;
193
+ degMax?: number;
194
+ smoothing?: [number, number, number] | null;
195
+ }): KernelShape;
196
+ toBREP(shape: KernelShape): string;
197
+ fromBREP(data: string): KernelShape;
198
+ hasTriangulation(_shape: KernelShape): boolean;
199
+ meshShape(_shape: KernelShape, _tolerance: number, _angularTolerance: number): void;
200
+ composeTransform(ops: Array<{
201
+ type: 'translate';
202
+ x: number;
203
+ y: number;
204
+ z: number;
205
+ } | {
206
+ type: 'rotate';
207
+ angle: number;
208
+ axis?: [number, number, number];
209
+ center?: [number, number, number];
210
+ }>): {
211
+ handle: KernelType;
212
+ dispose: () => void;
213
+ };
214
+ applyComposedTransformWithHistory(shape: KernelShape, transformHandle: KernelType, inputFaceHashes: number[], hashUpperBound: number): OperationResult;
215
+ sweepPipeShell(profile: KernelShape, spine: KernelShape, _options?: Record<string, unknown>): KernelShape | {
216
+ shape: KernelShape;
217
+ firstShape: KernelShape;
218
+ lastShape: KernelShape;
219
+ };
220
+ loftAdvanced(wires: KernelShape[], _options?: {
221
+ solid?: boolean;
222
+ ruled?: boolean;
223
+ startVertex?: KernelShape;
224
+ endVertex?: KernelShape;
225
+ }): KernelShape;
226
+ buildExtrusionLaw(profile: 'linear' | 's-curve', length: number, endFactor: number): KernelType;
227
+ positionOnCurve(shape: KernelShape, spine: KernelShape, param: number): KernelShape;
228
+ linearPattern(shape: KernelShape, direction: [number, number, number], spacing: number, count: number): KernelShape[];
229
+ circularPattern(shape: KernelShape, center: [number, number, number], axis: [number, number, number], angleStep: number, count: number): KernelShape[];
230
+ makeNonPlanarFace(wire: KernelShape): KernelShape;
231
+ addHolesInFace(face: KernelShape, holeWires: KernelShape[]): KernelShape;
232
+ makeFaceOnSurface(_surface: KernelType, wire: KernelShape): KernelShape;
233
+ bsplineSurface(points: [number, number, number][], rows: number, cols: number): KernelShape;
234
+ triangulatedSurface(points: [number, number, number][], rows: number, cols: number): KernelShape;
235
+ buildTriFace(a: [number, number, number], b: [number, number, number], c: [number, number, number]): KernelShape | null;
236
+ sewAndSolidify(faces: KernelShape[], tolerance: number): KernelShape;
237
+ fixShape(shape: KernelShape): KernelShape;
238
+ fixSelfIntersection(wire: KernelShape): KernelShape;
239
+ surfaceCurvature(face: KernelShape, u: number, v: number): {
240
+ gaussian: number;
241
+ mean: number;
242
+ max: number;
243
+ min: number;
244
+ maxDirection: [number, number, number];
245
+ minDirection: [number, number, number];
246
+ };
247
+ surfaceCenterOfMass(face: KernelShape): [number, number, number];
248
+ createDistanceQuery(referenceShape: KernelShape): {
249
+ distanceTo(shape: KernelShape): {
250
+ value: number;
251
+ point1: [number, number, number];
252
+ point2: [number, number, number];
253
+ };
254
+ dispose(): void;
255
+ };
256
+ projectEdges(shape: KernelShape, _cameraOrigin: [number, number, number], _cameraDirection: [number, number, number], _cameraXAxis?: [number, number, number]): {
257
+ visible: {
258
+ outline: KernelShape;
259
+ smooth: KernelShape;
260
+ sharp: KernelShape;
261
+ };
262
+ hidden: {
263
+ outline: KernelShape;
264
+ smooth: KernelShape;
265
+ sharp: KernelShape;
266
+ };
267
+ };
268
+ draftPrism(shape: KernelShape, face: KernelShape, _baseFace: KernelShape, height: number | null, _angleDeg: number, fuse: boolean): KernelShape;
269
+ createXCAFDocument(shapes: Array<{
270
+ shape: KernelShape;
271
+ name: string;
272
+ color?: [number, number, number, number];
273
+ }>): KernelType;
274
+ writeXCAFToSTEP(doc: KernelType, _options?: {
275
+ unit?: string;
276
+ modelUnit?: string;
277
+ }): string;
278
+ exportSTEPConfigured(shapes: Array<{
279
+ shape: KernelShape;
280
+ name?: string;
281
+ color?: [number, number, number, number];
282
+ }>, _options?: {
283
+ unit?: string;
284
+ modelUnit?: string;
285
+ schema?: number;
286
+ }): string;
287
+ wrapString(str: string): KernelType;
288
+ wrapColor(red: number, green: number, blue: number, alpha: number): KernelType;
289
+ configureStepUnits(_unit: string | undefined, _modelUnit: string | undefined): void;
290
+ configureStepWriter(_writer: KernelType): void;
291
+ createCurveAdaptor(shape: KernelShape): KernelType;
292
+ getBezierPenultimatePole(edge: KernelShape): [number, number, number] | null;
293
+ getSurfaceCylinderData(surface: KernelType): {
294
+ radius: number;
295
+ isDirect: boolean;
296
+ } | null;
297
+ reverseSurfaceU(surface: KernelType): KernelType;
298
+ createPoint3d(x: number, y: number, z: number): KernelType;
299
+ createDirection3d(x: number, y: number, z: number): KernelType;
300
+ createVector3d(x: number, y: number, z: number): KernelType;
301
+ createAxis1(cx: number, cy: number, cz: number, dx: number, dy: number, dz: number): KernelType;
302
+ createAxis2(ox: number, oy: number, oz: number, zx: number, zy: number, zz: number, xx?: number, xy?: number, xz?: number): KernelType;
303
+ createAxis3(ox: number, oy: number, oz: number, zx: number, zy: number, zz: number, xx?: number, xy?: number, xz?: number): KernelType;
304
+ reverseShape(shape: KernelShape): KernelShape;
305
+ dispose(_handle: {
306
+ delete(): void;
307
+ }): void;
308
+ private c2d;
309
+ private bb2d;
310
+ createPoint2d(x: number, y: number): KernelType;
311
+ createDirection2d(x: number, y: number): KernelType;
312
+ createVector2d(x: number, y: number): KernelType;
313
+ createAxis2d(px: number, py: number, dx: number, dy: number): KernelType;
314
+ wrapCurve2dHandle(handle: KernelType): Curve2dHandle;
315
+ createCurve2dAdaptor(handle: Curve2dHandle): KernelType;
316
+ makeLine2d(x1: number, y1: number, x2: number, y2: number): Curve2dHandle;
317
+ makeCircle2d(cx: number, cy: number, radius: number, sense?: boolean): Curve2dHandle;
318
+ makeArc2dThreePoints(x1: number, y1: number, xm: number, ym: number, x2: number, y2: number): Curve2dHandle;
319
+ makeArc2dTangent(sx: number, sy: number, tx: number, ty: number, ex: number, ey: number): Curve2dHandle;
320
+ makeEllipse2d(cx: number, cy: number, major: number, minor: number, xDirX?: number, xDirY?: number, sense?: boolean): Curve2dHandle;
321
+ makeEllipseArc2d(cx: number, cy: number, major: number, minor: number, start: number, end: number, xDirX?: number, xDirY?: number, sense?: boolean): Curve2dHandle;
322
+ makeBezier2d(points: [number, number][]): Curve2dHandle;
323
+ makeBSpline2d(points: [number, number][], _options?: Record<string, unknown>): Curve2dHandle;
324
+ evaluateCurve2d(curve: Curve2dHandle, param: number): [number, number];
325
+ evaluateCurve2dD1(curve: Curve2dHandle, param: number): {
326
+ point: [number, number];
327
+ tangent: [number, number];
328
+ };
329
+ getCurve2dBounds(curve: Curve2dHandle): {
330
+ first: number;
331
+ last: number;
332
+ };
333
+ getCurve2dType(curve: Curve2dHandle): string;
334
+ trimCurve2d(curve: Curve2dHandle, start: number, end: number): Curve2dHandle;
335
+ reverseCurve2d(_curve: Curve2dHandle): void;
336
+ copyCurve2d(curve: Curve2dHandle): Curve2dHandle;
337
+ offsetCurve2d(curve: Curve2dHandle, offset: number): Curve2dHandle;
338
+ translateCurve2d(curve: Curve2dHandle, dx: number, dy: number): Curve2dHandle;
339
+ rotateCurve2d(curve: Curve2dHandle, angle: number, cx: number, cy: number): Curve2dHandle;
340
+ scaleCurve2d(curve: Curve2dHandle, factor: number, cx: number, cy: number): Curve2dHandle;
341
+ mirrorCurve2dAtPoint(curve: Curve2dHandle, cx: number, cy: number): Curve2dHandle;
342
+ mirrorCurve2dAcrossAxis(curve: Curve2dHandle, ox: number, oy: number, dx: number, dy: number): Curve2dHandle;
343
+ affinityTransform2d(curve: Curve2dHandle, ox: number, oy: number, dx: number, dy: number, ratio: number): Curve2dHandle;
344
+ createIdentityGTrsf2d(): KernelType;
345
+ createAffinityGTrsf2d(ox: number, oy: number, dx: number, dy: number, ratio: number): KernelType;
346
+ createTranslationGTrsf2d(dx: number, dy: number): KernelType;
347
+ createMirrorGTrsf2d(cx: number, cy: number, mode: 'point' | 'axis', ox?: number, oy?: number, dx?: number, dy?: number): KernelType;
348
+ createRotationGTrsf2d(angle: number, cx: number, cy: number): KernelType;
349
+ createScaleGTrsf2d(factor: number, cx: number, cy: number): KernelType;
350
+ setGTrsf2dTranslationPart(gtrsf: KernelType, dx: number, dy: number): void;
351
+ multiplyGTrsf2d(base: KernelType, other: KernelType): void;
352
+ transformCurve2dGeneral(curve: Curve2dHandle, gtrsf: KernelType): Curve2dHandle;
353
+ intersectCurves2d(_c1: Curve2dHandle, _c2: Curve2dHandle, _tolerance: number): {
354
+ points: [number, number][];
355
+ segments: Curve2dHandle[];
356
+ };
357
+ projectPointOnCurve2d(curve: Curve2dHandle, x: number, y: number): {
358
+ param: number;
359
+ distance: number;
360
+ } | null;
361
+ distanceBetweenCurves2d(c1: Curve2dHandle, c2: Curve2dHandle, p1s: number, p1e: number, p2s: number, p2e: number): number;
362
+ approximateCurve2dAsBSpline(curve: Curve2dHandle, _tol: number, _cont: 'C0' | 'C1' | 'C2' | 'C3', _maxSeg: number): Curve2dHandle;
363
+ decomposeBSpline2dToBeziers(curve: Curve2dHandle): Curve2dHandle[];
364
+ createBoundingBox2d(): BBox2dHandle;
365
+ addCurveToBBox2d(bbox: BBox2dHandle, curve: Curve2dHandle, tol: number): void;
366
+ getBBox2dBounds(bbox: BBox2dHandle): {
367
+ xMin: number;
368
+ yMin: number;
369
+ xMax: number;
370
+ yMax: number;
371
+ };
372
+ mergeBBox2d(target: BBox2dHandle, other: BBox2dHandle): void;
373
+ isBBox2dOut(a: BBox2dHandle, b: BBox2dHandle): boolean;
374
+ isBBox2dOutPoint(bbox: BBox2dHandle, x: number, y: number): boolean;
375
+ getCurve2dCircleData(curve: Curve2dHandle): {
376
+ cx: number;
377
+ cy: number;
378
+ radius: number;
379
+ isDirect: boolean;
380
+ } | null;
381
+ getCurve2dEllipseData(curve: Curve2dHandle): {
382
+ majorRadius: number;
383
+ minorRadius: number;
384
+ xAxisAngle: number;
385
+ isDirect: boolean;
386
+ } | null;
387
+ getCurve2dBezierPoles(curve: Curve2dHandle): [number, number][] | null;
388
+ getCurve2dBezierDegree(curve: Curve2dHandle): number | null;
389
+ getCurve2dBSplineData(curve: Curve2dHandle): {
390
+ poles: [number, number][];
391
+ knots: number[];
392
+ multiplicities: number[];
393
+ degree: number;
394
+ isPeriodic: boolean;
395
+ } | null;
396
+ serializeCurve2d(curve: Curve2dHandle): string;
397
+ deserializeCurve2d(data: string): Curve2dHandle;
398
+ splitCurve2d(curve: Curve2dHandle, params: number[]): Curve2dHandle[];
399
+ liftCurve2dToPlane(curve: Curve2dHandle, origin: [number, number, number], _z: [number, number, number], x: [number, number, number]): KernelShape;
400
+ buildEdgeOnSurface(curve: Curve2dHandle, surface: KernelType): KernelShape;
401
+ extractSurfaceFromFace(face: KernelShape): KernelType;
402
+ extractCurve2dFromEdge(edge: KernelShape, _face: KernelShape): Curve2dHandle;
403
+ buildCurves3d(_wire: KernelShape): void;
404
+ fixWireOnFace(wire: KernelShape, _face: KernelShape, _tolerance: number): KernelShape;
405
+ fillSurface(wires: KernelShape[], _options?: Record<string, unknown>): KernelShape;
406
+ /** Copy a shape, then apply a 4×4 row-major matrix transform. */
407
+ private applyMatrix;
408
+ /** Check if we need to transform from default placement (origin, +Z). */
409
+ private needsTransform;
410
+ /** Transform a shape from default placement (origin, +Z) to the given center and direction. */
411
+ private transformToPlacement;
412
+ /** Tessellate a solid with per-face groups for brepjs mesh format. */
413
+ private meshSolid;
414
+ /** Tessellate a single face and return brepjs mesh format. */
415
+ private meshSingleFace;
416
+ /**
417
+ * Create a NURBS circle/arc edge in 3D.
418
+ *
419
+ * Uses the rational quadratic B-spline circle representation:
420
+ * 9-point circle for full 2π, fewer arcs for partial.
421
+ */
422
+ private makeCircleNurbs;
423
+ /**
424
+ * Extract NURBS curve data from an edge handle.
425
+ * Returns null for line edges (caller can build a linear NURBS).
426
+ * Returns {degree, knots, controlPoints, weights} for NURBS edges.
427
+ */
428
+ private extractNurbsFromEdge;
429
+ /**
430
+ * Create a NURBS ellipse/ellipse-arc edge in 3D.
431
+ */
432
+ private makeEllipseNurbs;
433
+ /**
434
+ * Extract a plane definition (point + normal) from a face handle.
435
+ * Uses tessellation to find a concrete point on the face.
436
+ */
437
+ private extractPlaneFromFace;
438
+ }
439
+ //# sourceMappingURL=brepkitAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brepkitAdapter.d.ts","sourceRoot":"","sources":["../../src/kernel/brepkitAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,383 @@
1
+ /**
2
+ * Type-safe interface for the brepkit WASM kernel (`BrepKernel`).
3
+ *
4
+ * This mirrors the Rust `BrepKernel` struct's `#[wasm_bindgen]` exports.
5
+ * Every `this.bk.*` call in `brepkitAdapter.ts` is typed here so TypeScript
6
+ * catches mismatches at compile time.
7
+ *
8
+ * Methods not yet exposed by the WASM build are marked **optional** (`?`).
9
+ * Callers must guard with `typeof this.bk.method === 'function'` before use.
10
+ *
11
+ * @module
12
+ */
13
+ /** Triangle mesh returned by `tessellateFace` / `tessellateSolid`. */
14
+ export interface BrepkitMesh {
15
+ /** Flattened vertex positions `[x, y, z, ...]`. */
16
+ readonly positions: number[];
17
+ /** Flattened per-vertex normals `[nx, ny, nz, ...]`. */
18
+ readonly normals: number[];
19
+ /** Triangle indices (groups of 3). */
20
+ readonly indices: number[];
21
+ /** Number of vertices. */
22
+ readonly vertexCount: number;
23
+ /** Number of triangles. */
24
+ readonly triangleCount: number;
25
+ /** All mesh data in a single packed buffer for efficient FFI transfer. */
26
+ packedBuffer(): Uint8Array;
27
+ }
28
+ /**
29
+ * Type-safe view of brepkit's WASM `BrepKernel` class.
30
+ *
31
+ * All handle parameters and return values are `number` (u32 arena indices).
32
+ * Coordinate arrays are flat `number[]` (`[x,y,z, ...]`).
33
+ * Matrices are 16-element row-major `number[]`.
34
+ */
35
+ export interface BrepkitKernel {
36
+ /** Create a box solid centered at origin. Returns solid handle. */
37
+ makeBox(dx: number, dy: number, dz: number): number;
38
+ /** Create a cylinder solid, axis along +Z. Returns solid handle. */
39
+ makeCylinder(radius: number, height: number): number;
40
+ /** Create a sphere solid centered at origin. Returns solid handle. */
41
+ makeSphere(radius: number, segments: number): number;
42
+ /** Create a cone/frustum solid, axis along +Z. Returns solid handle. */
43
+ makeCone(bottomRadius: number, topRadius: number, height: number): number;
44
+ /** Create a torus solid in XY plane. Returns solid handle. */
45
+ makeTorus(majorRadius: number, minorRadius: number, segments: number): number;
46
+ /** Create a rectangular face centered at origin in XY. Returns face handle. */
47
+ makeRectangle(width: number, height: number): number;
48
+ /** Create a polygonal face from flat coords `[x,y,z,...]`. Returns face handle. */
49
+ makePolygon(coords: number[]): number;
50
+ /** Create a circular polygon face in XY. Returns face handle. */
51
+ makeCircle(radius: number, segments: number): number;
52
+ /** Create a vertex at (x,y,z). Returns vertex handle. */
53
+ makeVertex(x: number, y: number, z: number): number;
54
+ /** Create a line edge between two points. Returns edge handle. */
55
+ makeLineEdge(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number): number;
56
+ /** Create a NURBS curve edge. Returns edge handle. */
57
+ makeNurbsEdge(startX: number, startY: number, startZ: number, endX: number, endY: number, endZ: number, degree: number, knots: number[], controlPoints: number[], weights: number[]): number;
58
+ /** Create a wire from ordered edge handles. Returns wire handle. */
59
+ makeWire(edgeHandles: number[], closed: boolean): number;
60
+ /** Create a planar face from a wire. Returns face handle. */
61
+ makeFaceFromWire(wire: number): number;
62
+ /** Create a solid from a shell. Returns solid handle. */
63
+ solidFromShell(shell: number): number;
64
+ /** Create a compound from solid handles. Returns compound handle. */
65
+ makeCompound(solidHandles: number[]): number;
66
+ /** Create a closed polygon wire from flat coords. Returns wire handle. */
67
+ makePolygonWire(coords: number[]): number;
68
+ /** Create a regular polygon wire in XY. Returns wire handle. */
69
+ makeRegularPolygonWire(radius: number, nSides: number): number;
70
+ /** Create a circle face using NURBS arcs. Returns face handle. */
71
+ makeCircleFace(radius: number, segments: number): number;
72
+ /** Add holes (inner wires) to a face. Returns new face handle. */
73
+ addHolesToFace(face: number, wireIds: number[]): number;
74
+ /** Fuse (union) two solids. Returns new solid handle. */
75
+ fuse(a: number, b: number): number;
76
+ /** Cut (subtract) solid b from a. Returns new solid handle. */
77
+ cut(a: number, b: number): number;
78
+ /** Intersect two solids. Returns new solid handle. */
79
+ intersect(a: number, b: number): number;
80
+ /** Extrude a face along direction. Returns solid handle. */
81
+ extrude(face: number, dirX: number, dirY: number, dirZ: number, distance: number): number;
82
+ /**
83
+ * Revolve a face around an axis. Angle in degrees.
84
+ * Returns solid handle.
85
+ */
86
+ revolve(face: number, ox: number, oy: number, oz: number, dx: number, dy: number, dz: number, angleDegrees: number): number;
87
+ /** Sweep a face along a NURBS path. Returns solid handle. */
88
+ sweep(face: number, pathDegree: number, pathKnots: number[], pathControlPoints: number[], pathWeights: number[]): number;
89
+ /** Loft through an array of face profiles. Returns solid handle. */
90
+ loft(faceIds: number[]): number;
91
+ /** Pipe sweep along a NURBS path. Returns solid handle. */
92
+ pipe(face: number, pathDegree: number, pathKnots: number[], pathControlPoints: number[], pathWeights: number[]): number;
93
+ /** Sweep a face along edge handles. Returns solid handle. */
94
+ sweepAlongEdges(profile: number, edgeIds: number[]): number;
95
+ /** Helical sweep of a profile. Returns solid handle. */
96
+ helicalSweep(profile: number, axisOriginX: number, axisOriginY: number, axisOriginZ: number, axisDirX: number, axisDirY: number, axisDirZ: number, radius: number, pitch: number, turns: number): number;
97
+ /** Sweep with advanced options (contact mode, scale law). Returns solid handle. */
98
+ sweepWithOptions(profile: number, pathEdge: number, contactMode: string, scaleValues: number[], segments: number): number;
99
+ /** Fillet edges of a solid with constant radius. Returns solid handle. */
100
+ fillet(solid: number, edgeIds: number[], radius: number): number;
101
+ /** Fillet edges with variable radius (JSON spec). Returns solid handle. */
102
+ filletVariable(solid: number, json: string): number;
103
+ /** Chamfer edges of a solid. Returns solid handle. */
104
+ chamfer(solid: number, edgeIds: number[], distance: number): number;
105
+ /** Shell a solid by removing faces. Returns solid handle. */
106
+ shell(solid: number, thickness: number, faceIds: number[]): number;
107
+ /** Offset a solid by distance. Returns solid handle. */
108
+ offsetSolid(solid: number, distance: number): number;
109
+ /** Offset a face. Returns solid handle. */
110
+ offsetFace(face: number, distance: number, tolerance: number): number;
111
+ /** Offset a wire on a planar face. Returns wire handle. */
112
+ offsetWire(face: number, distance: number): number;
113
+ /** Draft (taper) faces of a solid. Returns solid handle. */
114
+ draft(solid: number, faceHandles: number[], pullX: number, pullY: number, pullZ: number, neutralX: number, neutralY: number, neutralZ: number, angleDegrees: number): number;
115
+ /** Section a solid with a plane. Returns face handle array. */
116
+ section(solid: number, px: number, py: number, pz: number, nx: number, ny: number, nz: number): number[];
117
+ /** Split a solid along a plane. Returns `[positive, negative]` solid handles. */
118
+ split(solid: number, px: number, py: number, pz: number, nx: number, ny: number, nz: number): number[];
119
+ /** Transform a solid in-place with 4×4 row-major matrix. */
120
+ transformSolid(solid: number, matrix: number[]): void;
121
+ /** Deep copy a solid. Returns new solid handle. */
122
+ copySolid(solid: number): number;
123
+ /** Copy and transform in one pass. Returns new solid handle. */
124
+ copyAndTransformSolid(solid: number, matrix: number[]): number;
125
+ /** Mirror a solid across a plane. Returns new solid handle. */
126
+ mirror(solid: number, px: number, py: number, pz: number, nx: number, ny: number, nz: number): number;
127
+ /** Linear pattern (array). Returns compound handle. */
128
+ linearPattern(solid: number, dx: number, dy: number, dz: number, spacing: number, count: number): number;
129
+ /** Circular pattern around axis. Returns compound handle. */
130
+ circularPattern(solid: number, ax: number, ay: number, az: number, count: number): number;
131
+ /** Sew faces into a solid. Returns solid handle. */
132
+ sewFaces(faceHandles: number[], tolerance: number): number;
133
+ /** Fill a 4-sided boundary with Coons patch. Returns face handle. */
134
+ fillCoonsPatch(boundaryCoords: number[], curveLengths: number[]): number;
135
+ /** Untrim a NURBS face. Returns new face handle. */
136
+ untrimFace(face: number, samplesPerCurve: number, interiorSamples: number): number;
137
+ /** Get face handles of a solid. */
138
+ getSolidFaces(solid: number): number[];
139
+ /** Get edge handles of a solid. */
140
+ getSolidEdges(solid: number): number[];
141
+ /** Get vertex handles of a solid. */
142
+ getSolidVertices(solid: number): number[];
143
+ /** Get edge handles of a face. */
144
+ getFaceEdges(face: number): number[];
145
+ /** Get vertex handles of a face. */
146
+ getFaceVertices(face: number): number[];
147
+ /** Get the outer wire of a face. */
148
+ getFaceOuterWire(face: number): number;
149
+ /** Get all wires (outer + inner) of a face. */
150
+ faceWires(face: number): number[];
151
+ /**
152
+ * Get vertex positions of an edge.
153
+ * Returns `[startX, startY, startZ, endX, endY, endZ]`.
154
+ */
155
+ getEdgeVertices(edge: number): number[];
156
+ /** Get vertex position `[x, y, z]`. */
157
+ getVertexPosition(vertex: number): number[];
158
+ /** Get face normal `[nx, ny, nz]` (planar faces only). */
159
+ getFaceNormal(face: number): number[];
160
+ /** Get entity counts `[faces, edges, vertices]` of a solid. */
161
+ getEntityCounts(solid: number): number[];
162
+ /** Get edge-to-face adjacency map as JSON string. */
163
+ edgeToFaceMap(solid: number): string;
164
+ /** Get shared edges between two faces. */
165
+ sharedEdges(faceA: number, faceB: number): number[];
166
+ /** Get faces adjacent to a face within a solid. */
167
+ adjacentFaces(solid: number, face: number): number[];
168
+ /** Check if an edge is forward in its parent wire. */
169
+ isEdgeForwardInWire(edge: number, wire: number): boolean;
170
+ /** Get the surface type of a face (e.g. "plane", "cylinder", "nurbs"). */
171
+ getSurfaceType(face: number): string;
172
+ /** Get the curve type of an edge (e.g. "line", "nurbs"). */
173
+ getEdgeCurveType(edge: number): string;
174
+ /** Get edge curve parameter range `[tMin, tMax]`. */
175
+ getEdgeCurveParameters(edge: number): number[];
176
+ /** Evaluate edge curve at parameter. Returns `[x, y, z]`. */
177
+ evaluateEdgeCurve(edge: number, param: number): number[];
178
+ /** Evaluate edge curve + tangent at parameter. Returns `[px,py,pz, tx,ty,tz]`. */
179
+ evaluateEdgeCurveD1(edge: number, param: number): number[];
180
+ /** Evaluate surface at (u,v). Returns `[x, y, z]`. */
181
+ evaluateSurface(face: number, u: number, v: number): number[];
182
+ /** Evaluate surface normal at (u,v). Returns `[nx, ny, nz]`. */
183
+ evaluateSurfaceNormal(face: number, u: number, v: number): number[];
184
+ /** Get UV domain `[uMin, uMax, vMin, vMax]`. */
185
+ getSurfaceDomain(face: number): number[];
186
+ /** Project a 3D point onto a face surface. Returns `[x, y, z]`. */
187
+ projectPointOnSurface(face: number, x: number, y: number, z: number): number[];
188
+ /** Get analytic surface parameters as JSON. */
189
+ getAnalyticSurfaceParams(face: number): string;
190
+ /** Get NURBS curve data for an edge as JSON. */
191
+ getEdgeNurbsData(edge: number): string;
192
+ /** Bounding box `[minX, minY, minZ, maxX, maxY, maxZ]`. */
193
+ boundingBox(solid: number): number[];
194
+ /** Volume of a solid (tessellation-based). */
195
+ volume(solid: number, deflection: number): number;
196
+ /** Total surface area of a solid. */
197
+ surfaceArea(solid: number, deflection: number): number;
198
+ /** Area of a single face. */
199
+ faceArea(face: number, deflection: number): number;
200
+ /** Center of mass `[x, y, z]`. */
201
+ centerOfMass(solid: number, deflection: number): number[];
202
+ /** Edge length. */
203
+ edgeLength(edge: number): number;
204
+ /** Face perimeter. */
205
+ facePerimeter(face: number): number;
206
+ /** Classify a point relative to a solid. Returns "inside"|"outside"|"boundary". */
207
+ classifyPoint(solid: number, x: number, y: number, z: number): string;
208
+ /** Classify using generalized winding numbers. */
209
+ classifyPointWinding(solid: number, x: number, y: number, z: number, tolerance: number): string;
210
+ /** Classify using robust dual-method. */
211
+ classifyPointRobust(solid: number, x: number, y: number, z: number, tolerance: number): string;
212
+ /**
213
+ * Distance from a point to a solid.
214
+ * Returns `[distance, closestX, closestY, closestZ]`.
215
+ */
216
+ pointToSolidDistance(px: number, py: number, pz: number, solid: number): number[];
217
+ /** Minimum distance between two solids. */
218
+ solidToSolidDistance(a: number, b: number): number;
219
+ /** Validate solid topology. Returns error count. */
220
+ validateSolid(solid: number): number;
221
+ /** Heal a solid (fix orientations, merge vertices, etc.). */
222
+ healSolid(solid: number): void;
223
+ /** Merge coincident vertices. Returns merge count. */
224
+ mergeCoincidentVertices(solid: number, tolerance: number): number;
225
+ /** Remove zero-length edges. Returns removal count. */
226
+ removeDegenerateEdges(solid: number, tolerance: number): number;
227
+ /** Fix face orientations for consistent normals. Returns fix count. */
228
+ fixFaceOrientations(solid: number): number;
229
+ /** Tessellate a face into a triangle mesh. */
230
+ tessellateFace(face: number, deflection: number): BrepkitMesh;
231
+ /** Tessellate all faces of a solid into a merged mesh. */
232
+ tessellateSolid(solid: number, deflection: number): BrepkitMesh;
233
+ /** Tessellate an edge into polyline points. Returns flat `[x,y,z,...]`. */
234
+ tessellateEdge(edge: number, numPoints: number): number[];
235
+ /** Convex hull from flat coords. Returns solid handle. */
236
+ convexHull(coords: number[]): number;
237
+ /** Export to STEP format. Returns bytes. */
238
+ exportStep(solid: number): Uint8Array;
239
+ /** Export to binary STL. Returns bytes. */
240
+ exportStl(solid: number, deflection: number): Uint8Array;
241
+ /** Export to IGES format. Returns bytes. */
242
+ exportIges(solid: number): Uint8Array;
243
+ /** Export to 3MF format. Returns bytes. */
244
+ export3mf(solid: number, deflection: number): Uint8Array;
245
+ /** Export to OBJ format. Returns bytes. */
246
+ exportObj(solid: number, deflection: number): Uint8Array;
247
+ /** Export to GLB format. Returns bytes. */
248
+ exportGlb(solid: number, deflection: number): Uint8Array;
249
+ /** Export to PLY format. Returns bytes. */
250
+ exportPly(solid: number, deflection: number, binary: boolean): Uint8Array;
251
+ /** Import from STEP. Returns solid handle array. */
252
+ importStep(data: Uint8Array): number[];
253
+ /** Import from STL. Returns solid handle. */
254
+ importStl(data: Uint8Array): number;
255
+ /** Import from IGES. Returns solid handle array. */
256
+ importIges(data: Uint8Array): number[];
257
+ /** Import from 3MF. Returns solid handle array. */
258
+ import3mf(data: Uint8Array): number[];
259
+ /** Import from OBJ. Returns solid handle. */
260
+ importObj(data: Uint8Array): number;
261
+ /** Import from GLB. Returns solid handle. */
262
+ importGlb(data: Uint8Array): number;
263
+ /** Approximate a curve through points (least-squares). Returns edge handle. */
264
+ approximateCurve(coords: number[], degree: number, numControlPoints: number): number;
265
+ /** Approximate via LSPIA. Returns edge handle. */
266
+ approximateCurveLspia(coords: number[], degree: number, numControlPoints: number, tolerance: number, maxIterations: number): number;
267
+ /** Interpolate points into a smooth NURBS edge. Returns edge handle. */
268
+ interpolatePoints(coords: number[], degree: number): number;
269
+ /** Insert a knot into an edge's NURBS curve. Returns new edge handle. */
270
+ curveKnotInsert(edge: number, knot: number, times: number): number;
271
+ /** Remove a knot from a NURBS curve. Returns new edge handle. */
272
+ curveKnotRemove(edge: number, knot: number, tolerance: number): number;
273
+ /** Split a NURBS curve at parameter. Returns `[edge1, edge2]`. */
274
+ curveSplit(edge: number, u: number): number[];
275
+ /** Elevate degree of a NURBS curve. Returns new edge handle. */
276
+ curveDegreeElevate(edge: number, elevateBy: number): number;
277
+ /** Interpolate a grid of points into a NURBS surface. Returns face handle. */
278
+ interpolateSurface(coords: number[], rows: number, cols: number, degreeU: number, degreeV: number): number;
279
+ /** Approximate a point grid via LSPIA. Returns face handle. */
280
+ approximateSurfaceLspia(coords: number[], rows: number, cols: number, degreeU: number, degreeV: number, numCpsU: number, numCpsV: number, tolerance: number, maxIterations: number): number;
281
+ /** Detect small features (faces below area threshold). Returns face handles. */
282
+ detectSmallFeatures(solid: number, areaThreshold: number, deflection: number): number[];
283
+ /** Recognize geometric features. Returns JSON string. */
284
+ recognizeFeatures(solid: number, deflection: number): string;
285
+ /** Remove faces from a solid (defeaturing). Returns new solid handle. */
286
+ defeature(solid: number, faceHandles: number[]): number;
287
+ /** Boolean on raw triangle data. Returns BrepkitMesh. */
288
+ meshBoolean(positionsA: number[], indicesA: number[], positionsB: number[], indicesB: number[], op: string, tolerance: number): BrepkitMesh;
289
+ /** Deep copy an edge. Returns new edge handle. */
290
+ copyEdge?(edge: number): number;
291
+ /** Deep copy a face. Returns new face handle. */
292
+ copyFace?(face: number): number;
293
+ /** Deep copy a wire. Returns new wire handle. */
294
+ copyWire?(wire: number): number;
295
+ /** Transform an edge in-place. */
296
+ transformEdge?(edge: number, matrix: number[]): void;
297
+ /** Transform a face in-place. */
298
+ transformFace?(face: number, matrix: number[]): void;
299
+ /** Transform a wire in-place. */
300
+ transformWire?(wire: number, matrix: number[]): void;
301
+ /** Create a new sketch. Returns sketch index. */
302
+ sketchNew(): number;
303
+ /** Add a point to a sketch. Returns point index. */
304
+ sketchAddPoint(sketch: number, x: number, y: number, fixed: boolean): number;
305
+ /** Add a constraint to a sketch (JSON string). */
306
+ sketchAddConstraint(sketch: number, json: string): void;
307
+ /** Solve sketch constraints. Returns JSON result. */
308
+ sketchSolve(sketch: number, maxIterations: number, tolerance: number): string;
309
+ /** Create a new assembly. Returns assembly index. */
310
+ assemblyNew(name: string): number;
311
+ /** Add a root component. Returns component ID. */
312
+ assemblyAddRoot(assembly: number, name: string, solid: number, matrix: number[]): number;
313
+ /** Add a child component. Returns component ID. */
314
+ assemblyAddChild(assembly: number, parent: number, name: string, solid: number, matrix: number[]): number;
315
+ /** Flatten assembly to JSON `[{solid, matrix}, ...]`. */
316
+ assemblyFlatten(assembly: number): string;
317
+ /** Bill of materials as JSON. */
318
+ assemblyBom(assembly: number): string;
319
+ /** Offset a 2D polygon. Coords are flat `[x,y, ...]`. Returns flat coords. */
320
+ offsetPolygon2d(coords: number[], distance: number, tolerance: number): number[];
321
+ /** Execute a batch of operations from JSON. Returns JSON result. */
322
+ executeBatch(json: string): string;
323
+ /** Get solids within a compound. (Theme A) */
324
+ getCompoundSolids?(compound: number): number[];
325
+ /** Get faces of a shell. (Theme A) */
326
+ getShellFaces?(shell: number): number[];
327
+ /** Get edges of a wire. (Theme A) */
328
+ getWireEdges?(wire: number): number[];
329
+ /** Classify a point on a face (trim-aware). (Theme G) */
330
+ classifyPointOnFace?(face: number, u: number, v: number, tolerance: number): number;
331
+ /** Get shape orientation flag. (Theme G) */
332
+ getShapeOrientation?(id: number): string;
333
+ /** Reverse shape orientation. (Theme G) */
334
+ reverseShape?(id: number): number;
335
+ /** Distance between two arbitrary shapes. (Theme G) */
336
+ shapeToShapeDistance?(id1: number, id2: number): number[];
337
+ /** 2D curve intersection. (Theme F) */
338
+ intersectCurves2d?(...args: number[]): number[];
339
+ /** Project point onto 2D curve. (Theme F) */
340
+ projectPointOnCurve2d?(...args: number[]): number[];
341
+ /** Reverse a 2D curve. (Theme F) */
342
+ reverseCurve2d?(...args: number[]): number[];
343
+ /** Fuse with evolution tracking. Returns `{ solid, evolution_json }`. */
344
+ fuseWithEvolution?(a: number, b: number): BrepkitEvolutionResult;
345
+ /** Cut with evolution tracking. */
346
+ cutWithEvolution?(a: number, b: number): BrepkitEvolutionResult;
347
+ /** Intersect with evolution tracking. */
348
+ intersectWithEvolution?(a: number, b: number): BrepkitEvolutionResult;
349
+ /** Fillet with evolution tracking. */
350
+ filletWithEvolution?(solid: number, edgeIds: number[], radius: number): BrepkitEvolutionResult;
351
+ /** Chamfer with evolution tracking. */
352
+ chamferWithEvolution?(solid: number, edgeIds: number[], distance: number): BrepkitEvolutionResult;
353
+ /** Shell with evolution tracking. */
354
+ shellWithEvolution?(solid: number, thickness: number, faceIds: number[]): BrepkitEvolutionResult;
355
+ /** Offset with evolution tracking. */
356
+ offsetSolidWithEvolution?(solid: number, distance: number): BrepkitEvolutionResult;
357
+ /** Thicken with evolution tracking. */
358
+ thickenWithEvolution?(face: number, distance: number): BrepkitEvolutionResult;
359
+ /** Draft with evolution tracking. */
360
+ draftWithEvolution?(solid: number, faceHandles: number[], pullX: number, pullY: number, pullZ: number, neutralX: number, neutralY: number, neutralZ: number, angleDegrees: number): BrepkitEvolutionResult;
361
+ /** Translate with evolution tracking. */
362
+ translateWithEvolution?(solid: number, dx: number, dy: number, dz: number): BrepkitEvolutionResult;
363
+ /** Rotate with evolution tracking. */
364
+ rotateWithEvolution?(solid: number, ox: number, oy: number, oz: number, dx: number, dy: number, dz: number, angleDegrees: number): BrepkitEvolutionResult;
365
+ /** Mirror with evolution tracking. */
366
+ mirrorWithEvolution?(solid: number, px: number, py: number, pz: number, nx: number, ny: number, nz: number): BrepkitEvolutionResult;
367
+ /** Scale with evolution tracking. */
368
+ scaleWithEvolution?(solid: number, factor: number): BrepkitEvolutionResult;
369
+ /** General transform with evolution tracking. */
370
+ generalTransformWithEvolution?(solid: number, matrix: number[]): BrepkitEvolutionResult;
371
+ /** Copy with evolution tracking. */
372
+ copyWithEvolution?(solid: number): BrepkitEvolutionResult;
373
+ /** Release the entire arena. */
374
+ free(): void;
375
+ }
376
+ /** Result from `*WithEvolution` WASM methods (Theme C). */
377
+ export interface BrepkitEvolutionResult {
378
+ /** The resulting solid handle. */
379
+ readonly solid: number;
380
+ /** JSON-encoded evolution map. */
381
+ readonly evolution_json: string;
382
+ }
383
+ //# sourceMappingURL=brepkitWasmTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brepkitWasmTypes.d.ts","sourceRoot":"","sources":["../../src/kernel/brepkitWasmTypes.ts"],"names":[],"mappings":"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"}
@@ -33,4 +33,6 @@ export { supportsProjection } from './types.js';
33
33
  export type { ProjectionCapability } from './types.js';
34
34
  export { supportsKernel2D } from './kernel2dTypes.js';
35
35
  export type { Kernel2DCapability, Curve2dHandle, BBox2dHandle } from './kernel2dTypes.js';
36
+ export { BrepkitAdapter } from './brepkitAdapter.js';
37
+ export type { BrepkitHandle } from './brepkitAdapter.js';
36
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kernel/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAW7D;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAGvE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa,CAYpD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,kBAAkB,CAM3E;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,EACrE,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,CAAC,GACV,CAAC,CAQH;AAED,gEAAgE;AAChE,wBAAgB,UAAU,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,CAInD;AAED,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,cAAc,IAAI,mBAAmB,EACrC,cAAc,EACd,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kernel/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAW7D;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAGvE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa,CAYpD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,kBAAkB,CAM3E;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,EACrE,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,CAAC,GACV,CAAC,CAQH;AAED,gEAAgE;AAChE,wBAAgB,UAAU,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,CAInD;AAED,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,cAAc,IAAI,mBAAmB,EACrC,cAAc,EACd,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE1F,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brepjs",
3
- "version": "9.0.0",
3
+ "version": "9.2.0",
4
4
  "description": "Web CAD library with pluggable geometry kernel",
5
5
  "keywords": [
6
6
  "cad",