okgeometry-api 1.4.0 → 1.6.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/dist/Mesh.d.ts +32 -0
- package/dist/Mesh.d.ts.map +1 -1
- package/dist/Mesh.js +117 -0
- package/dist/Mesh.js.map +1 -1
- package/dist/wasm-base64.d.ts +1 -1
- package/dist/wasm-base64.d.ts.map +1 -1
- package/dist/wasm-base64.js +1 -1
- package/dist/wasm-base64.js.map +1 -1
- package/dist/wasm-bindings.d.ts +40 -0
- package/dist/wasm-bindings.d.ts.map +1 -1
- package/dist/wasm-bindings.js +67 -0
- package/dist/wasm-bindings.js.map +1 -1
- package/package.json +48 -47
- package/src/Mesh.ts +132 -0
- package/src/wasm-base64.ts +1 -1
- package/src/wasm-bindings.d.ts +37 -0
- package/src/wasm-bindings.js +70 -0
package/src/wasm-bindings.d.ts
CHANGED
|
@@ -191,6 +191,16 @@ export function make_nurbs_curves_compatible(curves_data: Float64Array): Float64
|
|
|
191
191
|
*/
|
|
192
192
|
export function mesh_apply_matrix(vertex_count: number, buffer: Float64Array, matrix: Float64Array): Float64Array;
|
|
193
193
|
|
|
194
|
+
/**
|
|
195
|
+
* Subtract all cutter meshes from the host in one WASM call.
|
|
196
|
+
*
|
|
197
|
+
* `packed` layout matches `mesh_boolean_union_all`; the FIRST mesh is the
|
|
198
|
+
* host and every following mesh is a cutter.
|
|
199
|
+
* `flags`: `""` or `"trustedInput"`.
|
|
200
|
+
* Returns a standard result mesh buffer, or an empty vector on failure.
|
|
201
|
+
*/
|
|
202
|
+
export function mesh_boolean_difference_all(packed: Float64Array, flags: string): Float64Array;
|
|
203
|
+
|
|
194
204
|
/**
|
|
195
205
|
* Perform boolean intersection on two meshes
|
|
196
206
|
*/
|
|
@@ -268,6 +278,15 @@ export function mesh_boolean_subtraction(vertex_count_a: number, buffer_a: Float
|
|
|
268
278
|
*/
|
|
269
279
|
export function mesh_boolean_union(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array): Float64Array;
|
|
270
280
|
|
|
281
|
+
/**
|
|
282
|
+
* Union all meshes in the packed buffer into a single mesh in one WASM call.
|
|
283
|
+
*
|
|
284
|
+
* `packed` layout: `[meshCount, (bufferLen, [vertexCount, positions..., indices...])...]`.
|
|
285
|
+
* `flags`: `""` or `"trustedInput"`.
|
|
286
|
+
* Returns a standard result mesh buffer, or an empty vector on failure.
|
|
287
|
+
*/
|
|
288
|
+
export function mesh_boolean_union_all(packed: Float64Array, flags: string): Float64Array;
|
|
289
|
+
|
|
271
290
|
/**
|
|
272
291
|
* Extract boundary (perimeter) edges from a mesh as polylines.
|
|
273
292
|
* Returns polyline buffer: [num_polylines, n1, x,y,z,..., n2, x,y,z,...]
|
|
@@ -530,6 +549,21 @@ export function mesh_scale(vertex_count: number, buffer: Float64Array, sx: numbe
|
|
|
530
549
|
|
|
531
550
|
export function mesh_solid_split_plane(vertex_count: number, buffer: Float64Array, nx: number, ny: number, nz: number, d: number, operation: string): Float64Array;
|
|
532
551
|
|
|
552
|
+
/**
|
|
553
|
+
* Trim an OPEN host surface by all closed cutter meshes in one WASM call.
|
|
554
|
+
*
|
|
555
|
+
* `packed` layout matches `mesh_boolean_difference_all`: the FIRST mesh is
|
|
556
|
+
* the open host and every following mesh is a closed cutter volume.
|
|
557
|
+
* `flags`: `""` or `"trustedInput"`.
|
|
558
|
+
*
|
|
559
|
+
* Unlike folding pairwise surface-split subtracts over the cutter list,
|
|
560
|
+
* every host triangle is cut by ALL relevant cutters at once (one CDT per
|
|
561
|
+
* triangle) and classified inside-any-cutter — one pass over the host
|
|
562
|
+
* instead of N passes over an ever-growing, ever-degrading host.
|
|
563
|
+
* Returns the outside (kept) mesh buffer, or an empty vector on failure.
|
|
564
|
+
*/
|
|
565
|
+
export function mesh_surface_difference_all(packed: Float64Array, flags: string): Float64Array;
|
|
566
|
+
|
|
533
567
|
export function mesh_surface_split(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string): Float64Array;
|
|
534
568
|
|
|
535
569
|
export function mesh_surface_split_plane(vertex_count: number, buffer: Float64Array, nx: number, ny: number, nz: number, d: number, operation: string): Float64Array;
|
|
@@ -742,6 +776,7 @@ export interface InitOutput {
|
|
|
742
776
|
readonly loft_profiles: (a: number, b: number, c: number, d: number) => [number, number];
|
|
743
777
|
readonly make_nurbs_curves_compatible: (a: number, b: number) => [number, number];
|
|
744
778
|
readonly mesh_apply_matrix: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
779
|
+
readonly mesh_boolean_difference_all: (a: number, b: number, c: number, d: number) => [number, number];
|
|
745
780
|
readonly mesh_boolean_intersection: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
746
781
|
readonly mesh_boolean_kernel_mesh_debug: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
747
782
|
readonly mesh_boolean_last_debug_marker: () => number;
|
|
@@ -766,6 +801,7 @@ export interface InitOutput {
|
|
|
766
801
|
readonly mesh_boolean_split: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
767
802
|
readonly mesh_boolean_subtraction: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
768
803
|
readonly mesh_boolean_union: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
804
|
+
readonly mesh_boolean_union_all: (a: number, b: number, c: number, d: number) => [number, number];
|
|
769
805
|
readonly mesh_boundary_polylines: (a: number, b: number, c: number) => [number, number];
|
|
770
806
|
readonly mesh_build_coplanar_connected_face_groups: (a: number, b: number, c: number) => [number, number];
|
|
771
807
|
readonly mesh_build_render_buffers: (a: number, b: number, c: number, d: number) => [number, number];
|
|
@@ -810,6 +846,7 @@ export interface InitOutput {
|
|
|
810
846
|
readonly mesh_rotate: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
811
847
|
readonly mesh_scale: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
812
848
|
readonly mesh_solid_split_plane: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number];
|
|
849
|
+
readonly mesh_surface_difference_all: (a: number, b: number, c: number, d: number) => [number, number];
|
|
813
850
|
readonly mesh_surface_split: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
814
851
|
readonly mesh_surface_split_plane: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number];
|
|
815
852
|
readonly mesh_topology_metrics: (a: number, b: number, c: number) => [number, number];
|
package/src/wasm-bindings.js
CHANGED
|
@@ -505,6 +505,28 @@ export function mesh_apply_matrix(vertex_count, buffer, matrix) {
|
|
|
505
505
|
return v3;
|
|
506
506
|
}
|
|
507
507
|
|
|
508
|
+
/**
|
|
509
|
+
* Subtract all cutter meshes from the host in one WASM call.
|
|
510
|
+
*
|
|
511
|
+
* `packed` layout matches `mesh_boolean_union_all`; the FIRST mesh is the
|
|
512
|
+
* host and every following mesh is a cutter.
|
|
513
|
+
* `flags`: `""` or `"trustedInput"`.
|
|
514
|
+
* Returns a standard result mesh buffer, or an empty vector on failure.
|
|
515
|
+
* @param {Float64Array} packed
|
|
516
|
+
* @param {string} flags
|
|
517
|
+
* @returns {Float64Array}
|
|
518
|
+
*/
|
|
519
|
+
export function mesh_boolean_difference_all(packed, flags) {
|
|
520
|
+
const ptr0 = passArrayF64ToWasm0(packed, wasm.__wbindgen_malloc);
|
|
521
|
+
const len0 = WASM_VECTOR_LEN;
|
|
522
|
+
const ptr1 = passStringToWasm0(flags, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
523
|
+
const len1 = WASM_VECTOR_LEN;
|
|
524
|
+
const ret = wasm.mesh_boolean_difference_all(ptr0, len0, ptr1, len1);
|
|
525
|
+
var v3 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
|
|
526
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
|
|
527
|
+
return v3;
|
|
528
|
+
}
|
|
529
|
+
|
|
508
530
|
/**
|
|
509
531
|
* Perform boolean intersection on two meshes
|
|
510
532
|
* @param {number} vertex_count_a
|
|
@@ -1105,6 +1127,27 @@ export function mesh_boolean_union(vertex_count_a, buffer_a, vertex_count_b, buf
|
|
|
1105
1127
|
return v3;
|
|
1106
1128
|
}
|
|
1107
1129
|
|
|
1130
|
+
/**
|
|
1131
|
+
* Union all meshes in the packed buffer into a single mesh in one WASM call.
|
|
1132
|
+
*
|
|
1133
|
+
* `packed` layout: `[meshCount, (bufferLen, [vertexCount, positions..., indices...])...]`.
|
|
1134
|
+
* `flags`: `""` or `"trustedInput"`.
|
|
1135
|
+
* Returns a standard result mesh buffer, or an empty vector on failure.
|
|
1136
|
+
* @param {Float64Array} packed
|
|
1137
|
+
* @param {string} flags
|
|
1138
|
+
* @returns {Float64Array}
|
|
1139
|
+
*/
|
|
1140
|
+
export function mesh_boolean_union_all(packed, flags) {
|
|
1141
|
+
const ptr0 = passArrayF64ToWasm0(packed, wasm.__wbindgen_malloc);
|
|
1142
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1143
|
+
const ptr1 = passStringToWasm0(flags, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1144
|
+
const len1 = WASM_VECTOR_LEN;
|
|
1145
|
+
const ret = wasm.mesh_boolean_union_all(ptr0, len0, ptr1, len1);
|
|
1146
|
+
var v3 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
|
|
1147
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
|
|
1148
|
+
return v3;
|
|
1149
|
+
}
|
|
1150
|
+
|
|
1108
1151
|
/**
|
|
1109
1152
|
* Extract boundary (perimeter) edges from a mesh as polylines.
|
|
1110
1153
|
* Returns polyline buffer: [num_polylines, n1, x,y,z,..., n2, x,y,z,...]
|
|
@@ -1917,6 +1960,33 @@ export function mesh_solid_split_plane(vertex_count, buffer, nx, ny, nz, d, oper
|
|
|
1917
1960
|
return v3;
|
|
1918
1961
|
}
|
|
1919
1962
|
|
|
1963
|
+
/**
|
|
1964
|
+
* Trim an OPEN host surface by all closed cutter meshes in one WASM call.
|
|
1965
|
+
*
|
|
1966
|
+
* `packed` layout matches `mesh_boolean_difference_all`: the FIRST mesh is
|
|
1967
|
+
* the open host and every following mesh is a closed cutter volume.
|
|
1968
|
+
* `flags`: `""` or `"trustedInput"`.
|
|
1969
|
+
*
|
|
1970
|
+
* Unlike folding pairwise surface-split subtracts over the cutter list,
|
|
1971
|
+
* every host triangle is cut by ALL relevant cutters at once (one CDT per
|
|
1972
|
+
* triangle) and classified inside-any-cutter — one pass over the host
|
|
1973
|
+
* instead of N passes over an ever-growing, ever-degrading host.
|
|
1974
|
+
* Returns the outside (kept) mesh buffer, or an empty vector on failure.
|
|
1975
|
+
* @param {Float64Array} packed
|
|
1976
|
+
* @param {string} flags
|
|
1977
|
+
* @returns {Float64Array}
|
|
1978
|
+
*/
|
|
1979
|
+
export function mesh_surface_difference_all(packed, flags) {
|
|
1980
|
+
const ptr0 = passArrayF64ToWasm0(packed, wasm.__wbindgen_malloc);
|
|
1981
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1982
|
+
const ptr1 = passStringToWasm0(flags, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1983
|
+
const len1 = WASM_VECTOR_LEN;
|
|
1984
|
+
const ret = wasm.mesh_surface_difference_all(ptr0, len0, ptr1, len1);
|
|
1985
|
+
var v3 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
|
|
1986
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
|
|
1987
|
+
return v3;
|
|
1988
|
+
}
|
|
1989
|
+
|
|
1920
1990
|
/**
|
|
1921
1991
|
* @param {number} vertex_count_a
|
|
1922
1992
|
* @param {Float64Array} buffer_a
|