okgeometry-api 1.1.18 → 1.1.19

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.
@@ -159,6 +159,8 @@ export function make_nurbs_curves_compatible(curves_data: Float64Array): Float64
159
159
  */
160
160
  export function mesh_apply_matrix(vertex_count: number, buffer: Float64Array, matrix: Float64Array): Float64Array;
161
161
 
162
+ export function mesh_boolean_finalize_stage_summary_debug(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string): string;
163
+
162
164
  /**
163
165
  * Perform boolean intersection on two meshes
164
166
  */
@@ -252,6 +254,8 @@ export function mesh_boolean_operation_debug(vertex_count_a: number, buffer_a: F
252
254
  */
253
255
  export function mesh_boolean_operation_profiled(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string): Float64Array;
254
256
 
257
+ export function mesh_boolean_primary_output_summary_debug(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string): string;
258
+
255
259
  /**
256
260
  * Perform boolean subtraction on two meshes (A - B)
257
261
  */
@@ -495,6 +499,16 @@ export function mesh_scale(vertex_count: number, buffer: Float64Array, sx: numbe
495
499
  */
496
500
  export function mesh_topology_metrics(vertex_count: number, buffer: Float64Array): Float64Array;
497
501
 
502
+ /**
503
+ * Return raw index-topology metrics for a triangulated mesh buffer:
504
+ * `[boundary_edges, non_manifold_edges]`.
505
+ *
506
+ * Unlike `mesh_topology_metrics`, this preserves duplicate same-position seam
507
+ * vertices. That makes it a closer fit for trusted MeshGL-style boolean meshes,
508
+ * where manifoldness comes from explicit topology rather than position welding.
509
+ */
510
+ export function mesh_topology_metrics_raw(vertex_count: number, buffer: Float64Array): Float64Array;
511
+
498
512
  /**
499
513
  * Translate a mesh by an offset vector and return new buffers
500
514
  */
@@ -656,11 +670,13 @@ export interface InitOutput {
656
670
  readonly loft_polylines: (a: number, b: number, c: number, d: number) => [number, number];
657
671
  readonly make_nurbs_curves_compatible: (a: number, b: number) => [number, number];
658
672
  readonly mesh_apply_matrix: (a: number, b: number, c: number, d: number, e: number) => [number, number];
673
+ readonly mesh_boolean_finalize_stage_summary_debug: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
659
674
  readonly mesh_boolean_intersection: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
660
675
  readonly mesh_boolean_last_debug_marker: () => number;
661
676
  readonly mesh_boolean_operation: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
662
677
  readonly mesh_boolean_operation_debug: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
663
678
  readonly mesh_boolean_operation_profiled: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
679
+ readonly mesh_boolean_primary_output_summary_debug: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
664
680
  readonly mesh_boolean_subtraction: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
665
681
  readonly mesh_boolean_union: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
666
682
  readonly mesh_boolean_whole_partial_candidate: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
@@ -703,6 +719,7 @@ export interface InitOutput {
703
719
  readonly mesh_rotate: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
704
720
  readonly mesh_scale: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
705
721
  readonly mesh_topology_metrics: (a: number, b: number, c: number) => [number, number];
722
+ readonly mesh_topology_metrics_raw: (a: number, b: number, c: number) => [number, number];
706
723
  readonly mesh_translate: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
707
724
  readonly nurbs_curve_curve_intersect: (a: number, b: number, c: number, d: number) => [number, number];
708
725
  readonly nurbs_curve_plane_intersect: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
@@ -451,6 +451,33 @@ export function mesh_apply_matrix(vertex_count, buffer, matrix) {
451
451
  return v3;
452
452
  }
453
453
 
454
+ /**
455
+ * @param {number} vertex_count_a
456
+ * @param {Float64Array} buffer_a
457
+ * @param {number} vertex_count_b
458
+ * @param {Float64Array} buffer_b
459
+ * @param {string} operation
460
+ * @returns {string}
461
+ */
462
+ export function mesh_boolean_finalize_stage_summary_debug(vertex_count_a, buffer_a, vertex_count_b, buffer_b, operation) {
463
+ let deferred4_0;
464
+ let deferred4_1;
465
+ try {
466
+ const ptr0 = passArrayF64ToWasm0(buffer_a, wasm.__wbindgen_malloc);
467
+ const len0 = WASM_VECTOR_LEN;
468
+ const ptr1 = passArrayF64ToWasm0(buffer_b, wasm.__wbindgen_malloc);
469
+ const len1 = WASM_VECTOR_LEN;
470
+ const ptr2 = passStringToWasm0(operation, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
471
+ const len2 = WASM_VECTOR_LEN;
472
+ const ret = wasm.mesh_boolean_finalize_stage_summary_debug(vertex_count_a, ptr0, len0, vertex_count_b, ptr1, len1, ptr2, len2);
473
+ deferred4_0 = ret[0];
474
+ deferred4_1 = ret[1];
475
+ return getStringFromWasm0(ret[0], ret[1]);
476
+ } finally {
477
+ wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
478
+ }
479
+ }
480
+
454
481
  /**
455
482
  * Perform boolean intersection on two meshes
456
483
  * @param {number} vertex_count_a
@@ -623,6 +650,33 @@ export function mesh_boolean_operation_profiled(vertex_count_a, buffer_a, vertex
623
650
  return v4;
624
651
  }
625
652
 
653
+ /**
654
+ * @param {number} vertex_count_a
655
+ * @param {Float64Array} buffer_a
656
+ * @param {number} vertex_count_b
657
+ * @param {Float64Array} buffer_b
658
+ * @param {string} operation
659
+ * @returns {string}
660
+ */
661
+ export function mesh_boolean_primary_output_summary_debug(vertex_count_a, buffer_a, vertex_count_b, buffer_b, operation) {
662
+ let deferred4_0;
663
+ let deferred4_1;
664
+ try {
665
+ const ptr0 = passArrayF64ToWasm0(buffer_a, wasm.__wbindgen_malloc);
666
+ const len0 = WASM_VECTOR_LEN;
667
+ const ptr1 = passArrayF64ToWasm0(buffer_b, wasm.__wbindgen_malloc);
668
+ const len1 = WASM_VECTOR_LEN;
669
+ const ptr2 = passStringToWasm0(operation, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
670
+ const len2 = WASM_VECTOR_LEN;
671
+ const ret = wasm.mesh_boolean_primary_output_summary_debug(vertex_count_a, ptr0, len0, vertex_count_b, ptr1, len1, ptr2, len2);
672
+ deferred4_0 = ret[0];
673
+ deferred4_1 = ret[1];
674
+ return getStringFromWasm0(ret[0], ret[1]);
675
+ } finally {
676
+ wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
677
+ }
678
+ }
679
+
626
680
  /**
627
681
  * Perform boolean subtraction on two meshes (A - B)
628
682
  * @param {number} vertex_count_a
@@ -1401,6 +1455,26 @@ export function mesh_topology_metrics(vertex_count, buffer) {
1401
1455
  return v2;
1402
1456
  }
1403
1457
 
1458
+ /**
1459
+ * Return raw index-topology metrics for a triangulated mesh buffer:
1460
+ * `[boundary_edges, non_manifold_edges]`.
1461
+ *
1462
+ * Unlike `mesh_topology_metrics`, this preserves duplicate same-position seam
1463
+ * vertices. That makes it a closer fit for trusted MeshGL-style boolean meshes,
1464
+ * where manifoldness comes from explicit topology rather than position welding.
1465
+ * @param {number} vertex_count
1466
+ * @param {Float64Array} buffer
1467
+ * @returns {Float64Array}
1468
+ */
1469
+ export function mesh_topology_metrics_raw(vertex_count, buffer) {
1470
+ const ptr0 = passArrayF64ToWasm0(buffer, wasm.__wbindgen_malloc);
1471
+ const len0 = WASM_VECTOR_LEN;
1472
+ const ret = wasm.mesh_topology_metrics_raw(vertex_count, ptr0, len0);
1473
+ var v2 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
1474
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
1475
+ return v2;
1476
+ }
1477
+
1404
1478
  /**
1405
1479
  * Translate a mesh by an offset vector and return new buffers
1406
1480
  * @param {number} vertex_count
@@ -1777,7 +1851,7 @@ export function version() {
1777
1851
  function __wbg_get_imports() {
1778
1852
  const import0 = {
1779
1853
  __proto__: null,
1780
- __wbg___okgeometry_boolean_should_cancel_c9088108881414a9: function() {
1854
+ __wbg___okgeometry_boolean_should_cancel_e9cae7a8bf9ae3e0: function() {
1781
1855
  const ret = globalThis.__okgeometry_boolean_should_cancel();
1782
1856
  return ret;
1783
1857
  },