okgeometry-api 1.1.19 → 1.1.21

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,15 +159,53 @@ 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
-
164
162
  /**
165
163
  * Perform boolean intersection on two meshes
166
164
  */
167
165
  export function mesh_boolean_intersection(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array): Float64Array;
168
166
 
167
+ /**
168
+ * Debug helper: run the live kernel-mesh boolean entrypoint and surface the
169
+ * exact error instead of collapsing it into an empty output buffer.
170
+ */
171
+ export function mesh_boolean_kernel_mesh_debug(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string): string;
172
+
169
173
  export function mesh_boolean_last_debug_marker(): number;
170
174
 
175
+ export function mesh_boolean_manifold_port_cleanup_triangle_dump(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string, cleanup_stage: string): string;
176
+
177
+ export function mesh_boolean_manifold_port_face2tri_face_debug(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string, face_index: number): string;
178
+
179
+ export function mesh_boolean_manifold_port_face2tri_face_transform_debug(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string, face_index: number, rotate_offset: number, reverse: boolean): string;
180
+
181
+ export function mesh_boolean_manifold_port_final_triangle_dump(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string): string;
182
+
183
+ export function mesh_boolean_manifold_port_flag_edge_attempts_debug(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string): string;
184
+
185
+ export function mesh_boolean_manifold_port_intersections_debug(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string): string;
186
+
187
+ export function mesh_boolean_manifold_port_new_edge_bucket_debug(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string, face_p: number, face_q: number): string;
188
+
189
+ export function mesh_boolean_manifold_port_overlap_boxes_cleanup_triangle_dump(cleanup_stage: string): string;
190
+
191
+ export function mesh_boolean_manifold_port_overlap_boxes_face2tri_face_debug(face_index: number): string;
192
+
193
+ export function mesh_boolean_manifold_port_raw_face_debug(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string, face_index: number): string;
194
+
195
+ export function mesh_boolean_manifold_port_short_edge_attempts_debug(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string): string;
196
+
197
+ export function mesh_boolean_manifold_port_single_swap_triangle_dump(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string, edge: number): string;
198
+
199
+ /**
200
+ * Debug helper: run the isolated direct-port pipeline and surface stage counts
201
+ * so we can see where geometry diverges without involving legacy routing.
202
+ */
203
+ export function mesh_boolean_manifold_port_stage_debug(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string): string;
204
+
205
+ export function mesh_boolean_manifold_port_swappable_edges_debug(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string): string;
206
+
207
+ export function mesh_boolean_manifold_port_triangulated_triangle_dump(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string): string;
208
+
171
209
  export function mesh_boolean_operation(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string): Float64Array;
172
210
 
173
211
  /**
@@ -176,6 +214,13 @@ export function mesh_boolean_operation(vertex_count_a: number, buffer_a: Float64
176
214
  */
177
215
  export function mesh_boolean_operation_debug(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string): string;
178
216
 
217
+ export function mesh_boolean_port_triangle_dump(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string): string;
218
+
219
+ /**
220
+ * Perform boolean subtraction on two meshes (A - B)
221
+ */
222
+ export function mesh_boolean_subtraction(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array): Float64Array;
223
+
179
224
  /**
180
225
  * Perform boolean operation and return stage-level profiling data followed by
181
226
  * the result mesh buffer.
@@ -185,93 +230,10 @@ export function mesh_boolean_operation_debug(vertex_count_a: number, buffer_a: F
185
230
  * split_touched_faces_a, split_source_faces_a, split_touched_faces_b, split_source_faces_b,
186
231
  * classify_ms, classify_seed_ms, classify_strict_ms, classify_open_component_ms,
187
232
  * extract_ms, extract_primary_ms, extract_fallback_ms,
188
- * cleanup_ms, finalize_ms, finalize_cap_ms, finalize_recap_ms, finalize_stitch_ms,
189
- * pair_accepted, pair_rejected, pair_degenerate,
190
- * core_passes, core_total_ms, conservative_runs, conservative_ms, nudge_runs, nudge_ms,
191
- * recompose_runs, recompose_ms, repair_runs, repair_ms,
192
- * repair_loops, repair_loops_capped, repair_loop_vertices, repair_loop_max_vertices,
193
- * arrangement_adj_attempts, arrangement_adj_fast_hits, arrangement_adj_disabled_split_limit,
194
- * arrangement_adj_fallback_no_half_edges, arrangement_adj_fallback_collect_failed,
195
- * arrangement_adj_fallback_non_manifold, arrangement_adj_fallback_loop_mismatch,
196
- * arrangement_adj_fallback_twin_mismatch, arrangement_adj_fallback_invalid_face_index,
197
- * arrangement_adj_non_manifold_edges_total, arrangement_adj_non_manifold_limit_total,
198
- * arrangement_adj_non_manifold_tolerated_attempts,
199
- * arrangement_adj_fallback_non_manifold_excess_total,
200
- * subtraction_ultra_cases, subtraction_ultra_component_fallback_runs,
201
- * subtraction_ultra_open_bounds_total, subtraction_ultra_open_bounds_max,
202
- * subtraction_ultra_best_boundary_total, subtraction_ultra_best_non_manifold_total,
203
- * subtraction_ultra_scoped_faces_total, subtraction_ultra_scoped_faces_max,
204
- * subtraction_ultra_scoped_strict_evals_total, subtraction_ultra_scoped_strict_evals_max,
205
- * finalize_stitch_rebuild_ms, finalize_stitch_recap_ms,
206
- * finalize_stitch_attempts, finalize_stitch_kept,
207
- * finalize_stitch_rebuild_collect_ms, finalize_stitch_rebuild_weld_ms,
208
- * finalize_stitch_rebuild_commit_ms, finalize_stitch_rebuild_faces_in,
209
- * finalize_stitch_rebuild_faces_out,
210
- * whole_partial_attempts, whole_partial_accepts,
211
- * whole_partial_total_ms, whole_partial_split_ms,
212
- * whole_partial_boundary_build_ms,
213
- * whole_partial_split_triangle_fast_faces,
214
- * whole_partial_split_cdt_faces,
215
- * whole_partial_split_cdt_points_total,
216
- * whole_partial_split_cdt_constraints_total,
217
- * whole_partial_split_cdt_segment_constraints_total,
218
- * whole_partial_split_cdt_triangles_total,
219
- * whole_partial_triangle_cdt_single_segment_faces,
220
- * whole_partial_triangle_cdt_two_segment_faces,
221
- * whole_partial_triangle_cdt_three_plus_segment_faces,
222
- * whole_partial_triangle_cdt_all_boundary_segment_faces,
223
- * whole_partial_triangle_cdt_mixed_boundary_segment_faces,
224
- * whole_partial_triangle_cdt_any_interior_segment_faces,
225
- * whole_partial_classify_source_ms, whole_partial_classify_touched_ms,
226
- * whole_partial_extract_ms, whole_partial_extract_untouched_ms,
227
- * whole_partial_extract_interface_ms, whole_partial_extract_touched_ms,
228
- * whole_partial_finalize_ms,
229
- * whole_partial_interface_faces_total,
230
- * whole_partial_interface_faces_emitted,
231
- * whole_partial_interface_boundary_edge_hits,
232
- * whole_partial_interface_raw_edge_fallbacks,
233
- * whole_partial_touched_faces_total,
234
- * whole_partial_touched_faces_emitted,
235
- * whole_partial_touched_patch_attempts,
236
- * whole_partial_touched_patch_direct_regions,
237
- * whole_partial_touched_patch_triangulated_faces,
238
- * whole_partial_touched_fallback_faces,
239
- * whole_partial_touched_lineage_vertices,
240
- * whole_partial_touched_welded_vertices,
241
- * whole_partial_raw_boundary_untouched_edges,
242
- * whole_partial_raw_boundary_interface_edges,
243
- * whole_partial_raw_boundary_touched_edges,
244
- * whole_partial_raw_boundary_mixed_edges,
245
- * whole_partial_raw_non_manifold_untouched_edges,
246
- * whole_partial_raw_non_manifold_interface_edges,
247
- * whole_partial_raw_non_manifold_touched_edges,
248
- * whole_partial_raw_non_manifold_mixed_edges,
249
- * whole_partial_boundary_edges_total,
250
- * whole_partial_non_manifold_edges_total,
251
- * whole_partial_face_ratio_vs_a_total,
252
- * whole_partial_loop_plausible_total,
253
- * mesh_buffer...]
254
- */
255
- export function mesh_boolean_operation_profiled(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string): Float64Array;
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
-
259
- /**
260
- * Perform boolean subtraction on two meshes (A - B)
261
- */
262
- export function mesh_boolean_subtraction(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array): Float64Array;
263
-
264
- /**
265
233
  * Perform boolean union on two meshes
266
234
  */
267
235
  export function mesh_boolean_union(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array): Float64Array;
268
236
 
269
- export function mesh_boolean_whole_partial_candidate(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string): Float64Array;
270
-
271
- export function mesh_boolean_whole_partial_candidate_debug(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string): Float64Array;
272
-
273
- export function mesh_boolean_whole_partial_candidate_debug_full(vertex_count_a: number, buffer_a: Float64Array, vertex_count_b: number, buffer_b: Float64Array, operation: string): Float64Array;
274
-
275
237
  /**
276
238
  * Extract boundary (perimeter) edges from a mesh as polylines.
277
239
  * Returns polyline buffer: [num_polylines, n1, x,y,z,..., n2, x,y,z,...]
@@ -430,6 +392,17 @@ export function mesh_import_obj(obj_data: string): Float64Array;
430
392
  */
431
393
  export function mesh_is_closed_volume(vertex_count: number, buffer: Float64Array): boolean;
432
394
 
395
+ /**
396
+ * Debug helper: run only the isolated direct-port `MeshGL -> Impl -> MeshGL`
397
+ * normalization owner and return a JSON dump. This is for source-stage
398
+ * comparison against official manifold-3d import/export, not legacy routing.
399
+ */
400
+ export function mesh_manifold_port_import_roundtrip_debug(vertex_count: number, buffer: Float64Array, trusted_input: boolean): string;
401
+
402
+ export function mesh_manifold_port_import_stage_hashes_debug(vertex_count: number, buffer: Float64Array, trusted_input: boolean): string;
403
+
404
+ export function mesh_manifold_port_triangulate_projected_polygon_debug(data: Float64Array, epsilon: number, allow_convex: boolean): string;
405
+
433
406
  /**
434
407
  * Merge multiple mesh buffers while preserving per-mesh vertex order and index remapping.
435
408
  * Input format: [mesh_count, len1, mesh1..., len2, mesh2..., ...]
@@ -670,17 +643,29 @@ export interface InitOutput {
670
643
  readonly loft_polylines: (a: number, b: number, c: number, d: number) => [number, number];
671
644
  readonly make_nurbs_curves_compatible: (a: number, b: number) => [number, number];
672
645
  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];
674
646
  readonly mesh_boolean_intersection: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
647
+ readonly mesh_boolean_kernel_mesh_debug: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
675
648
  readonly mesh_boolean_last_debug_marker: () => number;
649
+ readonly mesh_boolean_manifold_port_cleanup_triangle_dump: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number];
650
+ readonly mesh_boolean_manifold_port_face2tri_face_debug: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number];
651
+ readonly mesh_boolean_manifold_port_face2tri_face_transform_debug: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => [number, number];
652
+ readonly mesh_boolean_manifold_port_final_triangle_dump: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
653
+ readonly mesh_boolean_manifold_port_flag_edge_attempts_debug: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
654
+ readonly mesh_boolean_manifold_port_intersections_debug: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
655
+ readonly mesh_boolean_manifold_port_new_edge_bucket_debug: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number];
656
+ readonly mesh_boolean_manifold_port_overlap_boxes_cleanup_triangle_dump: (a: number, b: number) => [number, number];
657
+ readonly mesh_boolean_manifold_port_overlap_boxes_face2tri_face_debug: (a: number) => [number, number];
658
+ readonly mesh_boolean_manifold_port_raw_face_debug: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number];
659
+ readonly mesh_boolean_manifold_port_short_edge_attempts_debug: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
660
+ readonly mesh_boolean_manifold_port_single_swap_triangle_dump: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number];
661
+ readonly mesh_boolean_manifold_port_stage_debug: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
662
+ readonly mesh_boolean_manifold_port_swappable_edges_debug: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
663
+ readonly mesh_boolean_manifold_port_triangulated_triangle_dump: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
676
664
  readonly mesh_boolean_operation: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
677
665
  readonly mesh_boolean_operation_debug: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
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];
666
+ readonly mesh_boolean_port_triangle_dump: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
680
667
  readonly mesh_boolean_subtraction: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
681
668
  readonly mesh_boolean_union: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
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];
683
- readonly mesh_boolean_whole_partial_candidate_debug: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
684
669
  readonly mesh_boundary_polylines: (a: number, b: number, c: number) => [number, number];
685
670
  readonly mesh_build_coplanar_connected_face_groups: (a: number, b: number, c: number) => [number, number];
686
671
  readonly mesh_chamfer_all_edges: (a: number, b: number, c: number, d: number, e: number) => [number, number];
@@ -708,6 +693,9 @@ export interface InitOutput {
708
693
  readonly mesh_get_stats: (a: number, b: number, c: number) => [number, number];
709
694
  readonly mesh_import_obj: (a: number, b: number) => [number, number];
710
695
  readonly mesh_is_closed_volume: (a: number, b: number, c: number) => number;
696
+ readonly mesh_manifold_port_import_roundtrip_debug: (a: number, b: number, c: number, d: number) => [number, number];
697
+ readonly mesh_manifold_port_import_stage_hashes_debug: (a: number, b: number, c: number, d: number) => [number, number];
698
+ readonly mesh_manifold_port_triangulate_projected_polygon_debug: (a: number, b: number, c: number, d: number) => [number, number];
711
699
  readonly mesh_merge: (a: number, b: number) => [number, number];
712
700
  readonly mesh_mesh_intersect: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
713
701
  readonly mesh_patch_from_points: (a: number, b: number) => [number, number];
@@ -740,7 +728,6 @@ export interface InitOutput {
740
728
  readonly test_wasm: () => [number, number];
741
729
  readonly version: () => [number, number];
742
730
  readonly ray_distance_to_point: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
743
- readonly mesh_boolean_whole_partial_candidate_debug_full: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
744
731
  readonly __wbindgen_externrefs: WebAssembly.Table;
745
732
  readonly __wbindgen_free: (a: number, b: number, c: number) => void;
746
733
  readonly __wbindgen_malloc: (a: number, b: number) => number;