cad-mcp-server 0.1.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.
- package/LICENSE +21 -0
- package/README.md +111 -0
- package/THIRD_PARTY_NOTICES.md +20 -0
- package/dist/cad/compare.d.ts +31 -0
- package/dist/cad/compare.d.ts.map +1 -0
- package/dist/cad/compare.js +51 -0
- package/dist/cad/compare.js.map +1 -0
- package/dist/cad/model-store.d.ts +52 -0
- package/dist/cad/model-store.d.ts.map +1 -0
- package/dist/cad/model-store.js +227 -0
- package/dist/cad/model-store.js.map +1 -0
- package/dist/cad/query/edges.d.ts +6 -0
- package/dist/cad/query/edges.d.ts.map +1 -0
- package/dist/cad/query/edges.js +257 -0
- package/dist/cad/query/edges.js.map +1 -0
- package/dist/cad/query/entities.d.ts +4 -0
- package/dist/cad/query/entities.d.ts.map +1 -0
- package/dist/cad/query/entities.js +185 -0
- package/dist/cad/query/entities.js.map +1 -0
- package/dist/cad/query/faces.d.ts +6 -0
- package/dist/cad/query/faces.d.ts.map +1 -0
- package/dist/cad/query/faces.js +305 -0
- package/dist/cad/query/faces.js.map +1 -0
- package/dist/cad/query/pmi.d.ts +3 -0
- package/dist/cad/query/pmi.d.ts.map +1 -0
- package/dist/cad/query/pmi.js +141 -0
- package/dist/cad/query/pmi.js.map +1 -0
- package/dist/cad/query/shared.d.ts +74 -0
- package/dist/cad/query/shared.d.ts.map +1 -0
- package/dist/cad/query/shared.js +181 -0
- package/dist/cad/query/shared.js.map +1 -0
- package/dist/cad/schema-version.d.ts +2 -0
- package/dist/cad/schema-version.d.ts.map +1 -0
- package/dist/cad/schema-version.js +2 -0
- package/dist/cad/schema-version.js.map +1 -0
- package/dist/compare.d.ts +31 -0
- package/dist/compare.d.ts.map +1 -0
- package/dist/compare.js +51 -0
- package/dist/compare.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +113 -0
- package/dist/index.js.map +1 -0
- package/dist/kernel/aag-utils.d.ts +7 -0
- package/dist/kernel/aag-utils.d.ts.map +1 -0
- package/dist/kernel/aag-utils.js +54 -0
- package/dist/kernel/aag-utils.js.map +1 -0
- package/dist/kernel/import.d.ts +4 -0
- package/dist/kernel/import.d.ts.map +1 -0
- package/dist/kernel/import.js +25 -0
- package/dist/kernel/import.js.map +1 -0
- package/dist/kernel/kernel.d.ts +3 -0
- package/dist/kernel/kernel.d.ts.map +1 -0
- package/dist/kernel/kernel.js +7 -0
- package/dist/kernel/kernel.js.map +1 -0
- package/dist/kernel/measure.d.ts +6 -0
- package/dist/kernel/measure.d.ts.map +1 -0
- package/dist/kernel/measure.js +23 -0
- package/dist/kernel/measure.js.map +1 -0
- package/dist/kernel/query-entities.d.ts +75 -0
- package/dist/kernel/query-entities.d.ts.map +1 -0
- package/dist/kernel/query-entities.js +190 -0
- package/dist/kernel/query-entities.js.map +1 -0
- package/dist/kernel/topology.d.ts +4 -0
- package/dist/kernel/topology.d.ts.map +1 -0
- package/dist/kernel/topology.js +48 -0
- package/dist/kernel/topology.js.map +1 -0
- package/dist/model-store.d.ts +52 -0
- package/dist/model-store.d.ts.map +1 -0
- package/dist/model-store.js +227 -0
- package/dist/model-store.js.map +1 -0
- package/dist/pmi/metadata.d.ts +15 -0
- package/dist/pmi/metadata.d.ts.map +1 -0
- package/dist/pmi/metadata.js +93 -0
- package/dist/pmi/metadata.js.map +1 -0
- package/dist/pmi/parser.d.ts +46 -0
- package/dist/pmi/parser.d.ts.map +1 -0
- package/dist/pmi/parser.js +400 -0
- package/dist/pmi/parser.js.map +1 -0
- package/dist/pmi/semantic-provider.d.ts +7 -0
- package/dist/pmi/semantic-provider.d.ts.map +1 -0
- package/dist/pmi/semantic-provider.js +96 -0
- package/dist/pmi/semantic-provider.js.map +1 -0
- package/dist/providers/brep.d.ts +39 -0
- package/dist/providers/brep.d.ts.map +1 -0
- package/dist/providers/brep.js +2 -0
- package/dist/providers/brep.js.map +1 -0
- package/dist/providers/lightweight-step/metadata.d.ts +15 -0
- package/dist/providers/lightweight-step/metadata.d.ts.map +1 -0
- package/dist/providers/lightweight-step/metadata.js +93 -0
- package/dist/providers/lightweight-step/metadata.js.map +1 -0
- package/dist/providers/lightweight-step/pmi-parser.d.ts +46 -0
- package/dist/providers/lightweight-step/pmi-parser.d.ts.map +1 -0
- package/dist/providers/lightweight-step/pmi-parser.js +400 -0
- package/dist/providers/lightweight-step/pmi-parser.js.map +1 -0
- package/dist/providers/lightweight-step/semantic-provider.d.ts +7 -0
- package/dist/providers/lightweight-step/semantic-provider.d.ts.map +1 -0
- package/dist/providers/lightweight-step/semantic-provider.js +96 -0
- package/dist/providers/lightweight-step/semantic-provider.js.map +1 -0
- package/dist/providers/occt-wasm/aag-utils.d.ts +7 -0
- package/dist/providers/occt-wasm/aag-utils.d.ts.map +1 -0
- package/dist/providers/occt-wasm/aag-utils.js +54 -0
- package/dist/providers/occt-wasm/aag-utils.js.map +1 -0
- package/dist/providers/occt-wasm/import.d.ts +4 -0
- package/dist/providers/occt-wasm/import.d.ts.map +1 -0
- package/dist/providers/occt-wasm/import.js +25 -0
- package/dist/providers/occt-wasm/import.js.map +1 -0
- package/dist/providers/occt-wasm/kernel.d.ts +3 -0
- package/dist/providers/occt-wasm/kernel.d.ts.map +1 -0
- package/dist/providers/occt-wasm/kernel.js +7 -0
- package/dist/providers/occt-wasm/kernel.js.map +1 -0
- package/dist/providers/occt-wasm/measure.d.ts +6 -0
- package/dist/providers/occt-wasm/measure.d.ts.map +1 -0
- package/dist/providers/occt-wasm/measure.js +23 -0
- package/dist/providers/occt-wasm/measure.js.map +1 -0
- package/dist/providers/occt-wasm/query-entities.d.ts +71 -0
- package/dist/providers/occt-wasm/query-entities.d.ts.map +1 -0
- package/dist/providers/occt-wasm/query-entities.js +177 -0
- package/dist/providers/occt-wasm/query-entities.js.map +1 -0
- package/dist/providers/occt-wasm/topology.d.ts +4 -0
- package/dist/providers/occt-wasm/topology.d.ts.map +1 -0
- package/dist/providers/occt-wasm/topology.js +48 -0
- package/dist/providers/occt-wasm/topology.js.map +1 -0
- package/dist/providers/schema.d.ts +50 -0
- package/dist/providers/schema.d.ts.map +1 -0
- package/dist/providers/schema.js +2 -0
- package/dist/providers/schema.js.map +1 -0
- package/dist/providers/semantic.d.ts +34 -0
- package/dist/providers/semantic.d.ts.map +1 -0
- package/dist/providers/semantic.js +2 -0
- package/dist/providers/semantic.js.map +1 -0
- package/dist/query/edges.d.ts +6 -0
- package/dist/query/edges.d.ts.map +1 -0
- package/dist/query/edges.js +257 -0
- package/dist/query/edges.js.map +1 -0
- package/dist/query/entities.d.ts +4 -0
- package/dist/query/entities.d.ts.map +1 -0
- package/dist/query/entities.js +203 -0
- package/dist/query/entities.js.map +1 -0
- package/dist/query/faces.d.ts +6 -0
- package/dist/query/faces.d.ts.map +1 -0
- package/dist/query/faces.js +309 -0
- package/dist/query/faces.js.map +1 -0
- package/dist/query/pmi.d.ts +3 -0
- package/dist/query/pmi.d.ts.map +1 -0
- package/dist/query/pmi.js +141 -0
- package/dist/query/pmi.js.map +1 -0
- package/dist/query/shared.d.ts +74 -0
- package/dist/query/shared.d.ts.map +1 -0
- package/dist/query/shared.js +181 -0
- package/dist/query/shared.js.map +1 -0
- package/dist/schema-version.d.ts +2 -0
- package/dist/schema-version.d.ts.map +1 -0
- package/dist/schema-version.js +2 -0
- package/dist/schema-version.js.map +1 -0
- package/dist/tools/shared.d.ts +11 -0
- package/dist/tools/shared.d.ts.map +1 -0
- package/dist/tools/shared.js +19 -0
- package/dist/tools/shared.js.map +1 -0
- package/dist/tools/step-tools.d.ts +758 -0
- package/dist/tools/step-tools.d.ts.map +1 -0
- package/dist/tools/step-tools.js +836 -0
- package/dist/tools/step-tools.js.map +1 -0
- package/dist/types/brep.d.ts +39 -0
- package/dist/types/brep.d.ts.map +1 -0
- package/dist/types/brep.js +2 -0
- package/dist/types/brep.js.map +1 -0
- package/dist/types/schema.d.ts +50 -0
- package/dist/types/schema.d.ts.map +1 -0
- package/dist/types/schema.js +2 -0
- package/dist/types/schema.js.map +1 -0
- package/dist/types/semantic.d.ts +34 -0
- package/dist/types/semantic.d.ts.map +1 -0
- package/dist/types/semantic.js +2 -0
- package/dist/types/semantic.js.map +1 -0
- package/dist/utils/errors.d.ts +7 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +7 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/ids.d.ts +2 -0
- package/dist/utils/ids.d.ts.map +1 -0
- package/dist/utils/ids.js +4 -0
- package/dist/utils/ids.js.map +1 -0
- package/dist/utils/numbers.d.ts +11 -0
- package/dist/utils/numbers.d.ts.map +1 -0
- package/dist/utils/numbers.js +15 -0
- package/dist/utils/numbers.js.map +1 -0
- package/dist/utils/vectors.d.ts +4 -0
- package/dist/utils/vectors.d.ts.map +1 -0
- package/dist/utils/vectors.js +14 -0
- package/dist/utils/vectors.js.map +1 -0
- package/docs/EXAMPLE_PROMPTS.md +61 -0
- package/node_modules/occt-wasm/dist/index.d.ts +303 -0
- package/node_modules/occt-wasm/dist/index.d.ts.map +1 -0
- package/node_modules/occt-wasm/dist/index.js +1125 -0
- package/node_modules/occt-wasm/dist/index.js.map +1 -0
- package/node_modules/occt-wasm/dist/occt-wasm.js +2 -0
- package/node_modules/occt-wasm/dist/occt-wasm.wasm +0 -0
- package/node_modules/occt-wasm/dist/raw-types.d.ts +229 -0
- package/node_modules/occt-wasm/dist/raw-types.d.ts.map +1 -0
- package/node_modules/occt-wasm/dist/raw-types.js +8 -0
- package/node_modules/occt-wasm/dist/raw-types.js.map +1 -0
- package/node_modules/occt-wasm/dist/types.d.ts +223 -0
- package/node_modules/occt-wasm/dist/types.d.ts.map +1 -0
- package/node_modules/occt-wasm/dist/types.js +129 -0
- package/node_modules/occt-wasm/dist/types.js.map +1 -0
- package/node_modules/occt-wasm/package.json +44 -0
- package/package.json +102 -0
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* occt-wasm — OCCT compiled to WASM with clean TypeScript bindings.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import { OcctKernel } from 'occt-wasm';
|
|
7
|
+
*
|
|
8
|
+
* const kernel = await OcctKernel.init();
|
|
9
|
+
* const box = kernel.makeBox(10, 20, 30);
|
|
10
|
+
* const mesh = kernel.tessellate(box);
|
|
11
|
+
* console.log(`${mesh.triangleCount} triangles`);
|
|
12
|
+
* kernel.release(box);
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export { OcctError, OcctErrorCode, type AlignAnchor, type BoundingBox, type CurveKind, type CurvatureData, type EdgeData, type InitOptions, type Mesh, type MeshBatchData, type NurbsCurveData, type ShapeQueryResult, type PointClassification, type ShapeHandle, type ShapeOrientation, type ShapeType, type SurfaceKind, type TessellateOptions, type UVBounds, type Vec3, } from "./types.js";
|
|
16
|
+
import type { AlignAnchor, BoundingBox, CurveKind, CurvatureData, EdgeData, InitOptions, Mesh, MeshBatchData, NurbsCurveData, PointClassification, ShapeHandle, ShapeQueryResult, ShapeOrientation, ShapeType, SurfaceKind, TessellateOptions, UVBounds, Vec3 } from "./types.js";
|
|
17
|
+
import type { OcctWasmModule, OcctRawKernel } from "./raw-types.js";
|
|
18
|
+
export type { OcctWasmModule, OcctRawKernel } from "./raw-types.js";
|
|
19
|
+
/**
|
|
20
|
+
* OCCT kernel compiled to WASM. Arena-based shape management
|
|
21
|
+
* with branded handle types for type safety.
|
|
22
|
+
*
|
|
23
|
+
* Create via `OcctKernel.init()`. Dispose via `kernel[Symbol.dispose]()` or
|
|
24
|
+
* the `using` keyword. A FinalizationRegistry safety net catches leaked
|
|
25
|
+
* instances, but deterministic disposal is strongly preferred.
|
|
26
|
+
*/
|
|
27
|
+
export declare class OcctKernel {
|
|
28
|
+
#private;
|
|
29
|
+
private constructor();
|
|
30
|
+
/**
|
|
31
|
+
* Initialize the WASM module and create a kernel instance.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* // Auto-detect (works in browser, Node.js, and Workers):
|
|
36
|
+
* const kernel = await OcctKernel.init();
|
|
37
|
+
*
|
|
38
|
+
* // Explicit WASM location:
|
|
39
|
+
* const kernel = await OcctKernel.init({ wasm: '/path/to/occt-wasm.wasm' });
|
|
40
|
+
*
|
|
41
|
+
* // From pre-fetched binary:
|
|
42
|
+
* const binary = await fetch('/occt-wasm.wasm').then(r => r.arrayBuffer());
|
|
43
|
+
* const kernel = await OcctKernel.init({ wasm: binary });
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
static init(options?: InitOptions): Promise<OcctKernel>;
|
|
47
|
+
makeVertex(x: number, y: number, z: number): ShapeHandle;
|
|
48
|
+
makeEdge(v1: ShapeHandle, v2: ShapeHandle): ShapeHandle;
|
|
49
|
+
makeLineEdge(start: Vec3, end: Vec3): ShapeHandle;
|
|
50
|
+
makeCircleEdge(center: Vec3, normal: Vec3, radius: number): ShapeHandle;
|
|
51
|
+
makeCircleArc(center: Vec3, normal: Vec3, radius: number, startAngle: number, endAngle: number): ShapeHandle;
|
|
52
|
+
makeArcEdge(start: Vec3, mid: Vec3, end: Vec3): ShapeHandle;
|
|
53
|
+
makeEllipseEdge(center: Vec3, normal: Vec3, majorRadius: number, minorRadius: number): ShapeHandle;
|
|
54
|
+
makeEllipseArc(center: Vec3, normal: Vec3, majorRadius: number, minorRadius: number, startAngle: number, endAngle: number): ShapeHandle;
|
|
55
|
+
makeBezierEdge(controlPoints: Vec3[]): ShapeHandle;
|
|
56
|
+
makeBSplineEdge(poles: number[], weights: number[], knots: number[], multiplicities: number[], degree: number, periodic?: boolean): ShapeHandle;
|
|
57
|
+
makeTangentArc(start: Vec3, tangent: Vec3, end: Vec3): ShapeHandle;
|
|
58
|
+
makeHelixWire(origin: Vec3, axis: Vec3, pitch: number, height: number, radius: number): ShapeHandle;
|
|
59
|
+
makeWire(edges: ShapeHandle[]): ShapeHandle;
|
|
60
|
+
makeFace(wire: ShapeHandle): ShapeHandle;
|
|
61
|
+
addHolesInFace(face: ShapeHandle, holeWires: ShapeHandle[]): ShapeHandle;
|
|
62
|
+
removeHolesFromFace(face: ShapeHandle, holeIndices: number[]): ShapeHandle;
|
|
63
|
+
makeSolid(shell: ShapeHandle): ShapeHandle;
|
|
64
|
+
sew(shapes: ShapeHandle[], tolerance?: number): ShapeHandle;
|
|
65
|
+
sewAndSolidify(faces: ShapeHandle[], tolerance?: number): ShapeHandle;
|
|
66
|
+
buildSolidFromFaces(faces: ShapeHandle[], tolerance?: number): ShapeHandle;
|
|
67
|
+
makeCompound(shapes: ShapeHandle[]): ShapeHandle;
|
|
68
|
+
buildTriFace(a: Vec3, b: Vec3, c: Vec3): ShapeHandle;
|
|
69
|
+
makeFaceOnSurface(face: ShapeHandle, wire: ShapeHandle): ShapeHandle;
|
|
70
|
+
makeNullShape(): ShapeHandle;
|
|
71
|
+
translate(shape: ShapeHandle, dx: number, dy: number, dz: number): ShapeHandle;
|
|
72
|
+
/**
|
|
73
|
+
* Translate along X so the chosen bounding-box anchor lands at `target`.
|
|
74
|
+
* Returns a new shape; the input is left untouched.
|
|
75
|
+
*/
|
|
76
|
+
alignX(shape: ShapeHandle, target?: number, anchor?: AlignAnchor): ShapeHandle;
|
|
77
|
+
/** Translate along Y so the chosen bounding-box anchor lands at `target`. */
|
|
78
|
+
alignY(shape: ShapeHandle, target?: number, anchor?: AlignAnchor): ShapeHandle;
|
|
79
|
+
/** Translate along Z so the chosen bounding-box anchor lands at `target`. */
|
|
80
|
+
alignZ(shape: ShapeHandle, target?: number, anchor?: AlignAnchor): ShapeHandle;
|
|
81
|
+
rotate(shape: ShapeHandle, axis: {
|
|
82
|
+
point: Vec3;
|
|
83
|
+
direction: Vec3;
|
|
84
|
+
}, angleRad: number): ShapeHandle;
|
|
85
|
+
scale(shape: ShapeHandle, center: Vec3, factor: number): ShapeHandle;
|
|
86
|
+
mirror(shape: ShapeHandle, point: Vec3, normal: Vec3): ShapeHandle;
|
|
87
|
+
copy(shape: ShapeHandle): ShapeHandle;
|
|
88
|
+
/** Apply a 3x4 row-major affine transformation matrix (12 doubles: [r00,r01,r02,tx, r10,r11,r12,ty, r20,r21,r22,tz]). */
|
|
89
|
+
transform(shape: ShapeHandle, matrix: number[]): ShapeHandle;
|
|
90
|
+
/** Apply a general (possibly non-affine) 3x4 row-major transformation matrix (12 doubles). */
|
|
91
|
+
generalTransform(shape: ShapeHandle, matrix: number[]): ShapeHandle;
|
|
92
|
+
linearPattern(shape: ShapeHandle, direction: Vec3, spacing: number, count: number): ShapeHandle;
|
|
93
|
+
circularPattern(shape: ShapeHandle, center: Vec3, axis: Vec3, angle: number, count: number): ShapeHandle;
|
|
94
|
+
/** Compose two 3x4 row-major transformation matrices. Returns a 12-element array. */
|
|
95
|
+
composeTransform(m1: number[], m2: number[]): number[];
|
|
96
|
+
/** Translate multiple shapes by their respective offsets in a single WASM call. */
|
|
97
|
+
translateBatch(shapes: ShapeHandle[], offsets: number[]): ShapeHandle[];
|
|
98
|
+
/** Query multiple shapes in a single WASM call: bbox, volume, area, center of mass, type, validity. */
|
|
99
|
+
queryBatch(shapes: ShapeHandle[]): ShapeQueryResult[];
|
|
100
|
+
/** Apply 3x4 affine transforms to multiple shapes in a single WASM call. */
|
|
101
|
+
transformBatch(shapes: ShapeHandle[], matrices: number[]): ShapeHandle[];
|
|
102
|
+
/** Rotate multiple shapes in a single WASM call. */
|
|
103
|
+
rotateBatch(shapes: ShapeHandle[], params: number[]): ShapeHandle[];
|
|
104
|
+
/** Scale multiple shapes in a single WASM call. */
|
|
105
|
+
scaleBatch(shapes: ShapeHandle[], params: number[]): ShapeHandle[];
|
|
106
|
+
/** Mirror multiple shapes in a single WASM call. */
|
|
107
|
+
mirrorBatch(shapes: ShapeHandle[], params: number[]): ShapeHandle[];
|
|
108
|
+
getShapeType(shape: ShapeHandle): ShapeType;
|
|
109
|
+
/** True if the shape is a compound. */
|
|
110
|
+
isCompound(shape: ShapeHandle): boolean;
|
|
111
|
+
/** True if the shape is a comp-solid. */
|
|
112
|
+
isCompSolid(shape: ShapeHandle): boolean;
|
|
113
|
+
/** True if the shape is a solid. */
|
|
114
|
+
isSolid(shape: ShapeHandle): boolean;
|
|
115
|
+
/** True if the shape is a shell. */
|
|
116
|
+
isShell(shape: ShapeHandle): boolean;
|
|
117
|
+
/** True if the shape is a face. */
|
|
118
|
+
isFace(shape: ShapeHandle): boolean;
|
|
119
|
+
/** True if the shape is a wire. */
|
|
120
|
+
isWire(shape: ShapeHandle): boolean;
|
|
121
|
+
/** True if the shape is an edge. */
|
|
122
|
+
isEdge(shape: ShapeHandle): boolean;
|
|
123
|
+
/** True if the shape is a vertex. */
|
|
124
|
+
isVertex(shape: ShapeHandle): boolean;
|
|
125
|
+
getSubShapes(shape: ShapeHandle, type: "vertex" | "edge" | "wire" | "face" | "shell" | "solid"): ShapeHandle[];
|
|
126
|
+
downcast(shape: ShapeHandle, targetType: "vertex" | "edge" | "wire" | "face" | "shell" | "solid"): ShapeHandle;
|
|
127
|
+
distanceBetween(a: ShapeHandle, b: ShapeHandle): number;
|
|
128
|
+
isSame(a: ShapeHandle, b: ShapeHandle): boolean;
|
|
129
|
+
isEqual(a: ShapeHandle, b: ShapeHandle): boolean;
|
|
130
|
+
isNull(shape: ShapeHandle): boolean;
|
|
131
|
+
hashCode(shape: ShapeHandle, upperBound: number): number;
|
|
132
|
+
shapeOrientation(shape: ShapeHandle): ShapeOrientation;
|
|
133
|
+
sharedEdges(faceA: ShapeHandle, faceB: ShapeHandle): ShapeHandle[];
|
|
134
|
+
adjacentFaces(shape: ShapeHandle, face: ShapeHandle): ShapeHandle[];
|
|
135
|
+
iterShapes(shape: ShapeHandle): ShapeHandle[];
|
|
136
|
+
/** Returns a flat array mapping edge hashes to face hashes. */
|
|
137
|
+
edgeToFaceMap(shape: ShapeHandle, hashUpperBound: number): number[];
|
|
138
|
+
/** Tessellate a shape into a triangle mesh. Returns copied data (safe to keep). */
|
|
139
|
+
tessellate(shape: ShapeHandle, options?: TessellateOptions): Mesh;
|
|
140
|
+
/** Sample edges as polylines for wireframe rendering. */
|
|
141
|
+
wireframe(shape: ShapeHandle, deflection?: number): EdgeData;
|
|
142
|
+
hasTriangulation(shape: ShapeHandle): boolean;
|
|
143
|
+
/** Tessellate with face group data (per-face triangle ranges + hashes). */
|
|
144
|
+
meshShape(shape: ShapeHandle, options?: TessellateOptions): Mesh;
|
|
145
|
+
/** Tessellate multiple shapes in a single WASM call. */
|
|
146
|
+
meshBatch(shapes: ShapeHandle[], options?: TessellateOptions): MeshBatchData;
|
|
147
|
+
importStep(data: string | ArrayBuffer): ShapeHandle;
|
|
148
|
+
exportStep(shape: ShapeHandle): string;
|
|
149
|
+
importStl(data: string | ArrayBuffer): ShapeHandle;
|
|
150
|
+
exportStl(shape: ShapeHandle, linearDeflection?: number, ascii?: boolean): string;
|
|
151
|
+
toBREP(shape: ShapeHandle): string;
|
|
152
|
+
fromBREP(data: string): ShapeHandle;
|
|
153
|
+
/** Serialize a shape to binary BREP (smaller/faster than the text format). */
|
|
154
|
+
toBREPBinary(shape: ShapeHandle): Uint8Array;
|
|
155
|
+
/** Load a shape from binary BREP produced by {@link toBREPBinary}. */
|
|
156
|
+
fromBREPBinary(data: Uint8Array): ShapeHandle;
|
|
157
|
+
cacheStep(stepData: string | ArrayBuffer): string;
|
|
158
|
+
loadCached(brep: string): ShapeHandle;
|
|
159
|
+
/**
|
|
160
|
+
* Compute the axis-aligned bounding box of a shape.
|
|
161
|
+
*
|
|
162
|
+
* Uses `BRepBndLib::AddOptimal` for surface-precise bounds independent of
|
|
163
|
+
* tessellation state. The simpler `BRepBndLib::Add` falls back to BSpline
|
|
164
|
+
* pole hulls when triangulation is absent, which overshoots curved
|
|
165
|
+
* geometry by ~0.27·r for arcs of radius r — that was the source of the
|
|
166
|
+
* uniform 1.2 mm bounds shift versus brepjs in occt-wasm 2.0.
|
|
167
|
+
*
|
|
168
|
+
* @param useTriangulation - If `true`, use existing triangulation as the
|
|
169
|
+
* starting bound and refine via surface analysis (faster). If `false`,
|
|
170
|
+
* do the surface analysis from scratch (slower, but doesn't depend on
|
|
171
|
+
* prior tessellation). Both modes produce tight bounds; brepjs's
|
|
172
|
+
* `BRepBndLib.Add(shape, box, true)` corresponds to `true` here.
|
|
173
|
+
*/
|
|
174
|
+
getBoundingBox(shape: ShapeHandle, useTriangulation: boolean): BoundingBox;
|
|
175
|
+
getVolume(shape: ShapeHandle): number;
|
|
176
|
+
getSurfaceArea(shape: ShapeHandle): number;
|
|
177
|
+
getLength(shape: ShapeHandle): number;
|
|
178
|
+
getCenterOfMass(shape: ShapeHandle): Vec3;
|
|
179
|
+
/**
|
|
180
|
+
* Matrix of inertia about the center of mass, as a row-major 3×3 array
|
|
181
|
+
* (length 9). Symmetric: `[1]==[3]`, `[2]==[6]`, `[5]==[7]`.
|
|
182
|
+
*/
|
|
183
|
+
getInertia(shape: ShapeHandle): number[];
|
|
184
|
+
/** True if `point` lies inside (or on the boundary of) a solid. */
|
|
185
|
+
containsPoint(shape: ShapeHandle, point: Vec3, tolerance?: number): boolean;
|
|
186
|
+
/**
|
|
187
|
+
* Surface (area-weighted) center of mass for a face. Equivalent to
|
|
188
|
+
* `BRepGProp::SurfaceProperties(face, props).CentreOfMass()`.
|
|
189
|
+
*
|
|
190
|
+
* Use this for face fingerprinting and finder predicates rather than a
|
|
191
|
+
* tessellation-based centroid — for non-planar faces (cylinders, holed
|
|
192
|
+
* planes) the two diverge.
|
|
193
|
+
*/
|
|
194
|
+
getSurfaceCenterOfMass(face: ShapeHandle): Vec3;
|
|
195
|
+
getLinearCenterOfMass(shape: ShapeHandle): Vec3;
|
|
196
|
+
surfaceCurvature(face: ShapeHandle, u: number, v: number): CurvatureData;
|
|
197
|
+
vertexPosition(vertex: ShapeHandle): Vec3;
|
|
198
|
+
surfaceType(face: ShapeHandle): SurfaceKind;
|
|
199
|
+
surfaceNormal(face: ShapeHandle, u: number, v: number): Vec3;
|
|
200
|
+
pointOnSurface(face: ShapeHandle, u: number, v: number): Vec3;
|
|
201
|
+
outerWire(face: ShapeHandle): ShapeHandle;
|
|
202
|
+
uvBounds(face: ShapeHandle): UVBounds;
|
|
203
|
+
/** Project a 3D point onto a face, returning [u, v]. */
|
|
204
|
+
uvFromPoint(face: ShapeHandle, point: Vec3): {
|
|
205
|
+
u: number;
|
|
206
|
+
v: number;
|
|
207
|
+
};
|
|
208
|
+
/**
|
|
209
|
+
* Extract cylinder data from a cylindrical face.
|
|
210
|
+
*
|
|
211
|
+
* Returns `null` when the face's underlying surface is not a cylinder,
|
|
212
|
+
* otherwise radius/directness plus cylinder axis data where `isDirect` mirrors
|
|
213
|
+
* `gp_Cylinder::Direct()` (i.e. whether U and V form a right-handed pair).
|
|
214
|
+
*/
|
|
215
|
+
getFaceCylinderData(face: ShapeHandle): {
|
|
216
|
+
radius: number;
|
|
217
|
+
isDirect: boolean;
|
|
218
|
+
location: Vec3;
|
|
219
|
+
direction: Vec3;
|
|
220
|
+
} | null;
|
|
221
|
+
getFaceCylinderAxis(face: ShapeHandle): {
|
|
222
|
+
location: Vec3;
|
|
223
|
+
direction: Vec3;
|
|
224
|
+
} | null;
|
|
225
|
+
/** Project a 3D point onto a face, returning the closest point as Vec3. */
|
|
226
|
+
projectPointOnFace(face: ShapeHandle, point: Vec3): Vec3;
|
|
227
|
+
/** Classify a UV point relative to a face boundary. */
|
|
228
|
+
classifyPointOnFace(face: ShapeHandle, u: number, v: number): PointClassification;
|
|
229
|
+
/** Create a BSpline surface from a grid of control points. */
|
|
230
|
+
bsplineSurface(controlPoints: Vec3[], rows: number, cols: number): ShapeHandle;
|
|
231
|
+
curveType(edge: ShapeHandle): CurveKind;
|
|
232
|
+
curvePointAtParam(edge: ShapeHandle, param: number): Vec3;
|
|
233
|
+
curveTangent(edge: ShapeHandle, param: number): Vec3;
|
|
234
|
+
/** Returns [firstParam, lastParam]. */
|
|
235
|
+
curveParameters(edge: ShapeHandle): {
|
|
236
|
+
first: number;
|
|
237
|
+
last: number;
|
|
238
|
+
};
|
|
239
|
+
curveIsClosed(edge: ShapeHandle): boolean;
|
|
240
|
+
curveIsPeriodic(edge: ShapeHandle): boolean;
|
|
241
|
+
curveLength(edge: ShapeHandle): number;
|
|
242
|
+
interpolatePoints(points: Vec3[], periodic?: boolean): ShapeHandle;
|
|
243
|
+
/**
|
|
244
|
+
* Interpolate a cubic B-spline through the points with clamped start/end
|
|
245
|
+
* tangent directions.
|
|
246
|
+
*/
|
|
247
|
+
interpolatePointsWithTangents(points: Vec3[], startTangent: Vec3, endTangent: Vec3): ShapeHandle;
|
|
248
|
+
/** Closest point on an edge to `point`, with the curve tangent and parameter there. */
|
|
249
|
+
projectPointOnEdge(edge: ShapeHandle, point: Vec3): {
|
|
250
|
+
point: Vec3;
|
|
251
|
+
tangent: Vec3;
|
|
252
|
+
parameter: number;
|
|
253
|
+
};
|
|
254
|
+
approximatePoints(points: Vec3[], tolerance?: number): ShapeHandle;
|
|
255
|
+
getNurbsCurveData(edge: ShapeHandle): NurbsCurveData;
|
|
256
|
+
curveDegreeElevate(edge: ShapeHandle, elevateBy: number): ShapeHandle;
|
|
257
|
+
curveKnotInsert(edge: ShapeHandle, knot: number, times: number): ShapeHandle;
|
|
258
|
+
curveKnotRemove(edge: ShapeHandle, knot: number, tolerance: number): ShapeHandle;
|
|
259
|
+
curveSplit(edge: ShapeHandle, param: number): [ShapeHandle, ShapeHandle];
|
|
260
|
+
liftCurve2dToPlane(points2d: Array<{
|
|
261
|
+
x: number;
|
|
262
|
+
y: number;
|
|
263
|
+
}>, planeOrigin: Vec3, planeZ: Vec3, planeX: Vec3): ShapeHandle;
|
|
264
|
+
fixShape(shape: ShapeHandle): ShapeHandle;
|
|
265
|
+
unifySameDomain(shape: ShapeHandle): ShapeHandle;
|
|
266
|
+
isValid(shape: ShapeHandle): boolean;
|
|
267
|
+
healSolid(shape: ShapeHandle, tolerance?: number): ShapeHandle;
|
|
268
|
+
healFace(shape: ShapeHandle, tolerance?: number): ShapeHandle;
|
|
269
|
+
healWire(shape: ShapeHandle, tolerance?: number): ShapeHandle;
|
|
270
|
+
fixFaceOrientations(shape: ShapeHandle): ShapeHandle;
|
|
271
|
+
removeDegenerateEdges(shape: ShapeHandle): ShapeHandle;
|
|
272
|
+
buildCurves3d(wire: ShapeHandle): void;
|
|
273
|
+
fixWireOnFace(wire: ShapeHandle, face: ShapeHandle, tolerance?: number): ShapeHandle;
|
|
274
|
+
release(shape: ShapeHandle): void;
|
|
275
|
+
releaseAll(): void;
|
|
276
|
+
get shapeCount(): number;
|
|
277
|
+
/** Return a human-readable summary of a shape for debugging. */
|
|
278
|
+
describe(shape: ShapeHandle): string;
|
|
279
|
+
[Symbol.dispose](): void;
|
|
280
|
+
/**
|
|
281
|
+
* Return the underlying Emscripten module. Intended for integrators who
|
|
282
|
+
* need to hand the raw module to a third-party adapter (e.g.
|
|
283
|
+
* `brepjs.OcctWasmAdapter`) without bypassing {@link OcctKernel.init}.
|
|
284
|
+
*
|
|
285
|
+
* The module is owned by this `OcctKernel` instance — disposing the
|
|
286
|
+
* kernel does not invalidate the module reference, but the raw kernel
|
|
287
|
+
* obtained via {@link getRawKernel} *will* be deleted.
|
|
288
|
+
*/
|
|
289
|
+
getRawModule(): OcctWasmModule;
|
|
290
|
+
/**
|
|
291
|
+
* Return the underlying raw Embind kernel. Intended for integrators who
|
|
292
|
+
* need to hand the raw kernel to a third-party adapter (e.g.
|
|
293
|
+
* `brepjs.OcctWasmAdapter`).
|
|
294
|
+
*
|
|
295
|
+
* Lifecycle: the raw kernel is owned by this `OcctKernel`. Calling
|
|
296
|
+
* `kernel[Symbol.dispose]()` (or letting the FinalizationRegistry collect
|
|
297
|
+
* the wrapper) will `releaseAll()` and `delete()` the raw kernel — so the
|
|
298
|
+
* adapter must not outlive the `OcctKernel` it was constructed from.
|
|
299
|
+
* Do not call `delete()` or `releaseAll()` on the raw kernel directly.
|
|
300
|
+
*/
|
|
301
|
+
getRawKernel(): OcctRawKernel;
|
|
302
|
+
}
|
|
303
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|