okgeometry-api 0.4.4 → 0.4.6
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/dist/Mesh.d.ts +66 -3
- package/dist/Mesh.d.ts.map +1 -1
- package/dist/Mesh.js +338 -6
- package/dist/Mesh.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mesh-boolean.pool.d.ts +37 -0
- package/dist/mesh-boolean.pool.d.ts.map +1 -0
- package/dist/mesh-boolean.pool.js +336 -0
- package/dist/mesh-boolean.pool.js.map +1 -0
- package/dist/mesh-boolean.protocol.d.ts +85 -0
- package/dist/mesh-boolean.protocol.d.ts.map +1 -0
- package/dist/mesh-boolean.protocol.js +9 -0
- package/dist/mesh-boolean.protocol.js.map +1 -0
- package/dist/mesh-boolean.worker.d.ts +2 -0
- package/dist/mesh-boolean.worker.d.ts.map +1 -0
- package/dist/mesh-boolean.worker.js +105 -0
- package/dist/mesh-boolean.worker.js.map +1 -0
- package/package.json +1 -1
- package/wasm/okgeometrycore.d.ts +118 -0
- package/wasm/okgeometrycore.js +1784 -7
- package/wasm/package.json +0 -2
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export type MeshBooleanOperation = "union" | "subtraction" | "intersection";
|
|
2
|
+
export interface MeshBooleanLimits {
|
|
3
|
+
maxInputFacesPerMesh: number;
|
|
4
|
+
maxCombinedInputFaces: number;
|
|
5
|
+
maxFaceProduct: number;
|
|
6
|
+
}
|
|
7
|
+
export interface MeshBooleanOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Override one or more safety limits for this operation.
|
|
10
|
+
*/
|
|
11
|
+
limits?: Partial<MeshBooleanLimits>;
|
|
12
|
+
/**
|
|
13
|
+
* Skip safety limits and force boolean execution.
|
|
14
|
+
*/
|
|
15
|
+
allowUnsafe?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export type MeshBooleanErrorCode = "worker_unavailable" | "worker_crashed" | "worker_protocol" | "worker_aborted" | "worker_timeout" | "kernel_error";
|
|
18
|
+
export interface MeshBooleanErrorPayload {
|
|
19
|
+
code: MeshBooleanErrorCode;
|
|
20
|
+
message: string;
|
|
21
|
+
details?: string;
|
|
22
|
+
}
|
|
23
|
+
export type MeshBooleanJobStage = "queued" | "running" | "completed";
|
|
24
|
+
export interface MeshBooleanProgressEvent {
|
|
25
|
+
stage: MeshBooleanJobStage;
|
|
26
|
+
jobId: number;
|
|
27
|
+
workerId?: number;
|
|
28
|
+
queueSize: number;
|
|
29
|
+
}
|
|
30
|
+
export interface MeshBooleanAsyncOptions extends MeshBooleanOptions {
|
|
31
|
+
/**
|
|
32
|
+
* Abort the worker job when this signal is aborted.
|
|
33
|
+
*/
|
|
34
|
+
signal?: AbortSignal;
|
|
35
|
+
/**
|
|
36
|
+
* Optional timeout in milliseconds.
|
|
37
|
+
*/
|
|
38
|
+
timeoutMs?: number;
|
|
39
|
+
/**
|
|
40
|
+
* Optional custom worker factory (for app-level worker pooling/reuse).
|
|
41
|
+
*/
|
|
42
|
+
workerFactory?: () => Worker;
|
|
43
|
+
/**
|
|
44
|
+
* Override worker pool size for this call.
|
|
45
|
+
*/
|
|
46
|
+
poolSize?: number;
|
|
47
|
+
/**
|
|
48
|
+
* Observe coarse-grained job stage changes.
|
|
49
|
+
*/
|
|
50
|
+
onProgress?: (event: MeshBooleanProgressEvent) => void;
|
|
51
|
+
}
|
|
52
|
+
export interface MeshBooleanWorkerRequest {
|
|
53
|
+
kind: "mesh-boolean-request";
|
|
54
|
+
jobId: number;
|
|
55
|
+
operation: MeshBooleanOperation;
|
|
56
|
+
bufferA: ArrayBuffer;
|
|
57
|
+
bufferB: ArrayBuffer;
|
|
58
|
+
options: MeshBooleanOptions;
|
|
59
|
+
}
|
|
60
|
+
export interface MeshBooleanWorkerCancel {
|
|
61
|
+
kind: "mesh-boolean-cancel";
|
|
62
|
+
jobId: number;
|
|
63
|
+
}
|
|
64
|
+
export type MeshBooleanWorkerInbound = MeshBooleanWorkerRequest | MeshBooleanWorkerCancel;
|
|
65
|
+
export interface MeshBooleanWorkerSuccessResponse {
|
|
66
|
+
kind: "mesh-boolean-result";
|
|
67
|
+
jobId: number;
|
|
68
|
+
ok: true;
|
|
69
|
+
buffer: ArrayBuffer;
|
|
70
|
+
elapsedMs: number;
|
|
71
|
+
}
|
|
72
|
+
export interface MeshBooleanWorkerErrorResponse {
|
|
73
|
+
kind: "mesh-boolean-result";
|
|
74
|
+
jobId: number;
|
|
75
|
+
ok: false;
|
|
76
|
+
error: MeshBooleanErrorPayload;
|
|
77
|
+
elapsedMs: number;
|
|
78
|
+
}
|
|
79
|
+
export type MeshBooleanWorkerResponse = MeshBooleanWorkerSuccessResponse | MeshBooleanWorkerErrorResponse;
|
|
80
|
+
export declare class MeshBooleanExecutionError extends Error {
|
|
81
|
+
readonly code: MeshBooleanErrorCode;
|
|
82
|
+
readonly details?: string;
|
|
83
|
+
constructor(payload: MeshBooleanErrorPayload);
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=mesh-boolean.protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mesh-boolean.protocol.d.ts","sourceRoot":"","sources":["../src/mesh-boolean.protocol.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,aAAa,GAAG,cAAc,CAAC;AAE5E,MAAM,WAAW,iBAAiB;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,oBAAoB,GAC5B,oBAAoB,GACpB,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,CAAC;AAEnB,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;AAErE,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,MAAM,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;CACxD;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,oBAAoB,CAAC;IAChC,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,wBAAwB,GAAG,wBAAwB,GAAG,uBAAuB,CAAC;AAE1F,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,uBAAuB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,yBAAyB,GAAG,gCAAgC,GAAG,8BAA8B,CAAC;AAE1G,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;gBAEd,OAAO,EAAE,uBAAuB;CAM7C"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export class MeshBooleanExecutionError extends Error {
|
|
2
|
+
constructor(payload) {
|
|
3
|
+
super(payload.message);
|
|
4
|
+
this.name = "MeshBooleanExecutionError";
|
|
5
|
+
this.code = payload.code;
|
|
6
|
+
this.details = payload.details;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=mesh-boolean.protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mesh-boolean.protocol.js","sourceRoot":"","sources":["../src/mesh-boolean.protocol.ts"],"names":[],"mappings":"AAmGA,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAIlD,YAAY,OAAgC;QAC1C,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mesh-boolean.worker.d.ts","sourceRoot":"","sources":["../src/mesh-boolean.worker.ts"],"names":[],"mappings":"AAgIA,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { init, isInitialized } from "./engine.js";
|
|
2
|
+
import { Mesh } from "./Mesh.js";
|
|
3
|
+
const workerScope = self;
|
|
4
|
+
const cancelledJobs = new Set();
|
|
5
|
+
let initPromise = null;
|
|
6
|
+
function nowMs() {
|
|
7
|
+
if (typeof performance !== "undefined" && typeof performance.now === "function") {
|
|
8
|
+
return performance.now();
|
|
9
|
+
}
|
|
10
|
+
return Date.now();
|
|
11
|
+
}
|
|
12
|
+
function toErrorMessage(error) {
|
|
13
|
+
if (error instanceof Error)
|
|
14
|
+
return error.message;
|
|
15
|
+
if (typeof error === "string")
|
|
16
|
+
return error;
|
|
17
|
+
return String(error);
|
|
18
|
+
}
|
|
19
|
+
function makeError(code, message, details) {
|
|
20
|
+
return { code, message, details };
|
|
21
|
+
}
|
|
22
|
+
function postError(jobId, startedAt, payload) {
|
|
23
|
+
const response = {
|
|
24
|
+
kind: "mesh-boolean-result",
|
|
25
|
+
jobId,
|
|
26
|
+
ok: false,
|
|
27
|
+
error: payload,
|
|
28
|
+
elapsedMs: Math.max(0, nowMs() - startedAt),
|
|
29
|
+
};
|
|
30
|
+
workerScope.postMessage(response);
|
|
31
|
+
}
|
|
32
|
+
function postSuccess(jobId, startedAt, buffer) {
|
|
33
|
+
const response = {
|
|
34
|
+
kind: "mesh-boolean-result",
|
|
35
|
+
jobId,
|
|
36
|
+
ok: true,
|
|
37
|
+
buffer,
|
|
38
|
+
elapsedMs: Math.max(0, nowMs() - startedAt),
|
|
39
|
+
};
|
|
40
|
+
workerScope.postMessage(response, [buffer]);
|
|
41
|
+
}
|
|
42
|
+
async function ensureWorkerInit() {
|
|
43
|
+
if (isInitialized())
|
|
44
|
+
return;
|
|
45
|
+
if (!initPromise) {
|
|
46
|
+
initPromise = init();
|
|
47
|
+
}
|
|
48
|
+
await initPromise;
|
|
49
|
+
}
|
|
50
|
+
workerScope.addEventListener("message", async (event) => {
|
|
51
|
+
const message = event.data;
|
|
52
|
+
if (!message)
|
|
53
|
+
return;
|
|
54
|
+
if (message.kind === "mesh-boolean-cancel") {
|
|
55
|
+
cancelledJobs.add(message.jobId);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (message.kind !== "mesh-boolean-request")
|
|
59
|
+
return;
|
|
60
|
+
const startedAt = nowMs();
|
|
61
|
+
const jobId = message.jobId;
|
|
62
|
+
if (cancelledJobs.has(jobId)) {
|
|
63
|
+
postError(jobId, startedAt, makeError("worker_aborted", `Boolean ${message.operation} aborted.`));
|
|
64
|
+
cancelledJobs.delete(jobId);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
await ensureWorkerInit();
|
|
69
|
+
if (cancelledJobs.has(jobId)) {
|
|
70
|
+
postError(jobId, startedAt, makeError("worker_aborted", `Boolean ${message.operation} aborted.`));
|
|
71
|
+
cancelledJobs.delete(jobId);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const meshA = Mesh.fromBuffer(new Float64Array(message.bufferA));
|
|
75
|
+
const meshB = Mesh.fromBuffer(new Float64Array(message.bufferB));
|
|
76
|
+
const options = {
|
|
77
|
+
allowUnsafe: message.options.allowUnsafe ?? true,
|
|
78
|
+
limits: message.options.limits,
|
|
79
|
+
};
|
|
80
|
+
let result;
|
|
81
|
+
if (message.operation === "union") {
|
|
82
|
+
result = meshA.union(meshB, options);
|
|
83
|
+
}
|
|
84
|
+
else if (message.operation === "subtraction") {
|
|
85
|
+
result = meshA.subtract(meshB, options);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
result = meshA.intersect(meshB, options);
|
|
89
|
+
}
|
|
90
|
+
if (cancelledJobs.has(jobId)) {
|
|
91
|
+
postError(jobId, startedAt, makeError("worker_aborted", `Boolean ${message.operation} aborted.`));
|
|
92
|
+
cancelledJobs.delete(jobId);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const payload = new Float64Array(result.rawBuffer);
|
|
96
|
+
postSuccess(jobId, startedAt, payload.buffer);
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
postError(jobId, startedAt, makeError("kernel_error", `Boolean ${message.operation} failed.`, toErrorMessage(error)));
|
|
100
|
+
}
|
|
101
|
+
finally {
|
|
102
|
+
cancelledJobs.delete(jobId);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
//# sourceMappingURL=mesh-boolean.worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mesh-boolean.worker.js","sourceRoot":"","sources":["../src/mesh-boolean.worker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/wasm/okgeometrycore.d.ts
CHANGED
|
@@ -542,3 +542,121 @@ export function test_wasm(): string;
|
|
|
542
542
|
* Get version info
|
|
543
543
|
*/
|
|
544
544
|
export function version(): string;
|
|
545
|
+
|
|
546
|
+
export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
|
|
547
|
+
|
|
548
|
+
export interface InitOutput {
|
|
549
|
+
readonly memory: WebAssembly.Memory;
|
|
550
|
+
readonly arc_length: (a: number, b: number, c: number) => number;
|
|
551
|
+
readonly arc_point_at: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number];
|
|
552
|
+
readonly chamfer_polycurve: (a: number, b: number, c: number) => [number, number];
|
|
553
|
+
readonly circle_length: (a: number) => number;
|
|
554
|
+
readonly circle_point_at: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
555
|
+
readonly create_arc: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number];
|
|
556
|
+
readonly create_circle: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
557
|
+
readonly create_line: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
558
|
+
readonly create_polyline: (a: number, b: number, c: number) => [number, number];
|
|
559
|
+
readonly curve_to_points: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
560
|
+
readonly evaluate_nurbs_curve_at: (a: number, b: number, c: number) => [number, number];
|
|
561
|
+
readonly extrude_circle: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => [number, number];
|
|
562
|
+
readonly extrude_line: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number];
|
|
563
|
+
readonly extrude_polyline: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
564
|
+
readonly fillet_polycurve: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
565
|
+
readonly line_length: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
566
|
+
readonly line_offset: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number];
|
|
567
|
+
readonly line_point_at: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
568
|
+
readonly line_tangent: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
569
|
+
readonly loft_circles: (a: number, b: number, c: number, d: number) => [number, number];
|
|
570
|
+
readonly loft_nurbs_surface: (a: number, b: number) => [number, number];
|
|
571
|
+
readonly loft_polylines: (a: number, b: number, c: number, d: number) => [number, number];
|
|
572
|
+
readonly make_nurbs_curves_compatible: (a: number, b: number) => [number, number];
|
|
573
|
+
readonly mesh_apply_matrix: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
574
|
+
readonly mesh_boolean_intersection: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
575
|
+
readonly mesh_boolean_operation: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
576
|
+
readonly mesh_boolean_subtraction: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
577
|
+
readonly mesh_boolean_union: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
578
|
+
readonly mesh_boundary_polylines: (a: number, b: number, c: number) => [number, number];
|
|
579
|
+
readonly mesh_build_coplanar_connected_face_groups: (a: number, b: number, c: number) => [number, number];
|
|
580
|
+
readonly mesh_chamfer_all_edges: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
581
|
+
readonly mesh_compute_planar_curve_normal: (a: number, b: number, c: number) => [number, number];
|
|
582
|
+
readonly mesh_contains_point: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
|
583
|
+
readonly mesh_create_box: (a: number, b: number, c: number) => [number, number];
|
|
584
|
+
readonly mesh_create_cone: (a: number, b: number, c: number) => [number, number];
|
|
585
|
+
readonly mesh_create_cylinder: (a: number, b: number, c: number) => [number, number];
|
|
586
|
+
readonly mesh_create_prism: (a: number, b: number, c: number) => [number, number];
|
|
587
|
+
readonly mesh_create_sphere: (a: number, b: number, c: number) => [number, number];
|
|
588
|
+
readonly mesh_evaluate: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
589
|
+
readonly mesh_export_obj: (a: number, b: number, c: number) => [number, number];
|
|
590
|
+
readonly mesh_extrude_face: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
591
|
+
readonly mesh_extrude_planar_curve: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
592
|
+
readonly mesh_find_face_group_by_normal: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number];
|
|
593
|
+
readonly mesh_find_face_group_by_triangle_index: (a: number, b: number, c: number, d: number) => [number, number];
|
|
594
|
+
readonly mesh_get_bounds: (a: number, b: number, c: number) => [number, number];
|
|
595
|
+
readonly mesh_get_coplanar_face_group_centroid: (a: number, b: number, c: number, d: number) => [number, number];
|
|
596
|
+
readonly mesh_get_coplanar_face_indices: (a: number, b: number, c: number, d: number) => [number, number];
|
|
597
|
+
readonly mesh_get_coplanar_face_region: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => [number, number];
|
|
598
|
+
readonly mesh_get_edge_vertex_pairs: (a: number, b: number, c: number) => [number, number];
|
|
599
|
+
readonly mesh_get_face_area: (a: number, b: number, c: number, d: number) => number;
|
|
600
|
+
readonly mesh_get_face_centroid: (a: number, b: number, c: number, d: number) => [number, number];
|
|
601
|
+
readonly mesh_get_face_normal: (a: number, b: number, c: number, d: number) => [number, number];
|
|
602
|
+
readonly mesh_get_stats: (a: number, b: number, c: number) => [number, number];
|
|
603
|
+
readonly mesh_import_obj: (a: number, b: number) => [number, number];
|
|
604
|
+
readonly mesh_is_closed_volume: (a: number, b: number, c: number) => number;
|
|
605
|
+
readonly mesh_merge: (a: number, b: number) => [number, number];
|
|
606
|
+
readonly mesh_mesh_intersect: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
607
|
+
readonly mesh_patch_from_points: (a: number, b: number) => [number, number];
|
|
608
|
+
readonly mesh_plane_intersect: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
609
|
+
readonly mesh_prepare_boolean_cutter_curve: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
610
|
+
readonly mesh_raycast: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number];
|
|
611
|
+
readonly mesh_raycast_all: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number];
|
|
612
|
+
readonly mesh_raycast_many: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number];
|
|
613
|
+
readonly mesh_rotate: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
614
|
+
readonly mesh_scale: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
615
|
+
readonly mesh_translate: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
616
|
+
readonly nurbs_curve_curve_intersect: (a: number, b: number, c: number, d: number) => [number, number];
|
|
617
|
+
readonly nurbs_curve_plane_intersect: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
618
|
+
readonly nurbs_surface_evaluate: (a: number, b: number, c: number, d: number) => [number, number];
|
|
619
|
+
readonly nurbs_surface_plane_intersect: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
620
|
+
readonly nurbs_surface_surface_intersect: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
621
|
+
readonly offset_polyline_curve: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
622
|
+
readonly polycurve_to_nurbs: (a: number, b: number) => [number, number];
|
|
623
|
+
readonly polyline_length: (a: number, b: number) => number;
|
|
624
|
+
readonly polyline_point_at: (a: number, b: number, c: number) => [number, number];
|
|
625
|
+
readonly ray_closest_point: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number];
|
|
626
|
+
readonly ray_closest_point_parameter: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
|
|
627
|
+
readonly ray_point_at: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
628
|
+
readonly sample_nurbs_curve: (a: number, b: number, c: number) => [number, number];
|
|
629
|
+
readonly sweep_curves: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
630
|
+
readonly sweep_polylines: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
631
|
+
readonly tessellate_nurbs_surface: (a: number, b: number) => [number, number];
|
|
632
|
+
readonly test_wasm: () => [number, number];
|
|
633
|
+
readonly version: () => [number, number];
|
|
634
|
+
readonly ray_distance_to_point: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
|
|
635
|
+
readonly __wbindgen_externrefs: WebAssembly.Table;
|
|
636
|
+
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
|
|
637
|
+
readonly __wbindgen_malloc: (a: number, b: number) => number;
|
|
638
|
+
readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
|
639
|
+
readonly __wbindgen_start: () => void;
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
export type SyncInitInput = BufferSource | WebAssembly.Module;
|
|
643
|
+
|
|
644
|
+
/**
|
|
645
|
+
* Instantiates the given `module`, which can either be bytes or
|
|
646
|
+
* a precompiled `WebAssembly.Module`.
|
|
647
|
+
*
|
|
648
|
+
* @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
|
|
649
|
+
*
|
|
650
|
+
* @returns {InitOutput}
|
|
651
|
+
*/
|
|
652
|
+
export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;
|
|
653
|
+
|
|
654
|
+
/**
|
|
655
|
+
* If `module_or_path` is {RequestInfo} or {URL}, makes a request and
|
|
656
|
+
* for everything else, calls `WebAssembly.instantiate` directly.
|
|
657
|
+
*
|
|
658
|
+
* @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
|
|
659
|
+
*
|
|
660
|
+
* @returns {Promise<InitOutput>}
|
|
661
|
+
*/
|
|
662
|
+
export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;
|