okgeometry-api 1.26.1 → 1.28.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.
Files changed (107) hide show
  1. package/dist/Arc.js +1 -1
  2. package/dist/Arc.js.map +1 -1
  3. package/dist/Brep.d.ts +18 -0
  4. package/dist/Brep.d.ts.map +1 -1
  5. package/dist/Brep.js +32 -1
  6. package/dist/Brep.js.map +1 -1
  7. package/dist/Circle.js +1 -1
  8. package/dist/Circle.js.map +1 -1
  9. package/dist/Line.js +1 -1
  10. package/dist/Line.js.map +1 -1
  11. package/dist/Mesh.d.ts +71 -0
  12. package/dist/Mesh.d.ts.map +1 -1
  13. package/dist/Mesh.js +264 -21
  14. package/dist/Mesh.js.map +1 -1
  15. package/dist/MeshSurface.js +1 -1
  16. package/dist/MeshSurface.js.map +1 -1
  17. package/dist/NurbsCurve.d.ts +6 -0
  18. package/dist/NurbsCurve.d.ts.map +1 -1
  19. package/dist/NurbsCurve.js +10 -1
  20. package/dist/NurbsCurve.js.map +1 -1
  21. package/dist/NurbsSurface.js +1 -1
  22. package/dist/NurbsSurface.js.map +1 -1
  23. package/dist/PolyCurve.d.ts +15 -0
  24. package/dist/PolyCurve.d.ts.map +1 -1
  25. package/dist/PolyCurve.js +31 -1
  26. package/dist/PolyCurve.js.map +1 -1
  27. package/dist/Polyline.d.ts +6 -0
  28. package/dist/Polyline.d.ts.map +1 -1
  29. package/dist/Polyline.js +12 -1
  30. package/dist/Polyline.js.map +1 -1
  31. package/dist/Ray.js +1 -1
  32. package/dist/Ray.js.map +1 -1
  33. package/dist/SculptSession.js +1 -1
  34. package/dist/SculptSession.js.map +1 -1
  35. package/dist/engine-threaded.d.ts +2 -0
  36. package/dist/engine-threaded.d.ts.map +1 -0
  37. package/dist/engine-threaded.js +33 -0
  38. package/dist/engine-threaded.js.map +1 -0
  39. package/dist/engine.d.ts +21 -0
  40. package/dist/engine.d.ts.map +1 -1
  41. package/dist/engine.js +42 -0
  42. package/dist/engine.js.map +1 -1
  43. package/dist/index.d.ts +2 -2
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +1 -1
  46. package/dist/index.js.map +1 -1
  47. package/dist/mesh-boolean.pool.d.ts +23 -1
  48. package/dist/mesh-boolean.pool.d.ts.map +1 -1
  49. package/dist/mesh-boolean.pool.js +97 -12
  50. package/dist/mesh-boolean.pool.js.map +1 -1
  51. package/dist/mesh-boolean.protocol.d.ts +21 -1
  52. package/dist/mesh-boolean.protocol.d.ts.map +1 -1
  53. package/dist/mesh-boolean.protocol.js.map +1 -1
  54. package/dist/mesh-boolean.worker.d.ts.map +1 -1
  55. package/dist/mesh-boolean.worker.js +94 -1
  56. package/dist/mesh-boolean.worker.js.map +1 -1
  57. package/dist/wasm-active.d.ts +20 -0
  58. package/dist/wasm-active.d.ts.map +1 -0
  59. package/dist/wasm-active.js +26 -0
  60. package/dist/wasm-active.js.map +1 -0
  61. package/dist/wasm-base64-threaded.d.ts +2 -0
  62. package/dist/wasm-base64-threaded.d.ts.map +1 -0
  63. package/dist/wasm-base64-threaded.js +3 -0
  64. package/dist/wasm-base64-threaded.js.map +1 -0
  65. package/dist/wasm-base64.d.ts +1 -1
  66. package/dist/wasm-base64.d.ts.map +1 -1
  67. package/dist/wasm-base64.js +1 -1
  68. package/dist/wasm-base64.js.map +1 -1
  69. package/dist/wasm-bindings-threaded.d.ts +2716 -0
  70. package/dist/wasm-bindings-threaded.d.ts.map +1 -0
  71. package/dist/wasm-bindings-threaded.js +5088 -0
  72. package/dist/wasm-bindings-threaded.js.map +1 -0
  73. package/dist/wasm-bindings.d.ts +182 -0
  74. package/dist/wasm-bindings.d.ts.map +1 -1
  75. package/dist/wasm-bindings.js +288 -0
  76. package/dist/wasm-bindings.js.map +1 -1
  77. package/dist/workerHelpers-threaded.d.ts +2 -0
  78. package/dist/workerHelpers-threaded.d.ts.map +1 -0
  79. package/dist/workerHelpers-threaded.js +100 -0
  80. package/dist/workerHelpers-threaded.js.map +1 -0
  81. package/package.json +10 -3
  82. package/src/Arc.ts +117 -117
  83. package/src/Brep.ts +45 -1
  84. package/src/Circle.ts +166 -166
  85. package/src/Line.ts +171 -171
  86. package/src/Mesh.ts +361 -45
  87. package/src/MeshSurface.ts +1 -1
  88. package/src/NurbsCurve.ts +671 -655
  89. package/src/NurbsSurface.ts +721 -721
  90. package/src/PolyCurve.ts +249 -203
  91. package/src/Polyline.ts +333 -316
  92. package/src/Ray.ts +90 -90
  93. package/src/SculptSession.ts +377 -377
  94. package/src/engine-threaded.ts +39 -0
  95. package/src/engine.ts +46 -0
  96. package/src/index.ts +3 -1
  97. package/src/mesh-boolean.pool.ts +208 -86
  98. package/src/mesh-boolean.protocol.ts +44 -1
  99. package/src/mesh-boolean.worker.ts +170 -56
  100. package/src/wasm-active.ts +31 -0
  101. package/src/wasm-base64-threaded.ts +2 -0
  102. package/src/wasm-base64.ts +1 -1
  103. package/src/wasm-bindings-threaded.d.ts +2027 -0
  104. package/src/wasm-bindings-threaded.js +5317 -0
  105. package/src/wasm-bindings.d.ts +142 -0
  106. package/src/wasm-bindings.js +307 -0
  107. package/src/workerHelpers-threaded.js +107 -0
@@ -658,6 +658,11 @@ export function mesh_boolean_union_all(packed: Float64Array, flags: string): Flo
658
658
  */
659
659
  export function mesh_boundary_edge_segments(vertex_count: number, buffer: Float64Array): Float64Array;
660
660
 
661
+ /**
662
+ * Handle variant of `mesh_boundary_edge_segments`.
663
+ */
664
+ export function mesh_boundary_edge_segments_h(id: number): Float64Array;
665
+
661
666
  /**
662
667
  * Extract boundary (perimeter) edges from a mesh as polylines.
663
668
  * Returns polyline buffer: [num_polylines, n1, x,y,z,..., n2, x,y,z,...]
@@ -684,6 +689,11 @@ export function mesh_build_coplanar_connected_face_groups(vertex_count: number,
684
689
  */
685
690
  export function mesh_build_render_buffers(vertex_count: number, buffer: Float64Array, crease_angle_deg: number): Float32Array;
686
691
 
692
+ /**
693
+ * Handle variant of `mesh_build_render_buffers`.
694
+ */
695
+ export function mesh_build_render_buffers_h(id: number, crease_angle_deg: number): Float32Array;
696
+
687
697
  /**
688
698
  * Chamfer all edges of a primitive mesh (flat bevel)
689
699
  *
@@ -816,18 +826,33 @@ export function mesh_extrude_planar_curve(coords: Float64Array, nx: number, ny:
816
826
  */
817
827
  export function mesh_feature_edge_chains(vertex_count: number, buffer: Float64Array): Float64Array;
818
828
 
829
+ /**
830
+ * Handle variant of `mesh_feature_edge_chains`.
831
+ */
832
+ export function mesh_feature_edge_chains_h(id: number): Float64Array;
833
+
819
834
  /**
820
835
  * Find the best matching coplanar connected face group by normal and optional near-point.
821
836
  * Output format: [centroidX, centroidY, centroidZ, normalX, normalY, normalZ] or [].
822
837
  */
823
838
  export function mesh_find_face_group_by_normal(vertex_count: number, buffer: Float64Array, nx: number, ny: number, nz: number, near_x: number, near_y: number, near_z: number, use_near_point: boolean): Float64Array;
824
839
 
840
+ /**
841
+ * Handle variant of `mesh_find_face_group_by_normal`.
842
+ */
843
+ export function mesh_find_face_group_by_normal_h(id: number, nx: number, ny: number, nz: number, near_x: number, near_y: number, near_z: number, use_near_point: boolean): Float64Array;
844
+
825
845
  /**
826
846
  * Find the coplanar connected face group containing triangle_index.
827
847
  * Output format: [centroidX, centroidY, centroidZ, normalX, normalY, normalZ] or [].
828
848
  */
829
849
  export function mesh_find_face_group_by_triangle_index(vertex_count: number, buffer: Float64Array, triangle_index: number): Float64Array;
830
850
 
851
+ /**
852
+ * Handle variant of `mesh_find_face_group_by_triangle_index`.
853
+ */
854
+ export function mesh_find_face_group_by_triangle_index_h(id: number, triangle_index: number): Float64Array;
855
+
831
856
  /**
832
857
  * Axis-aligned bounding box as [minX, minY, minZ, maxX, maxY, maxZ].
833
858
  */
@@ -839,11 +864,21 @@ export function mesh_get_bounds(vertex_count: number, buffer: Float64Array): Flo
839
864
  */
840
865
  export function mesh_get_coplanar_face_group_centroid(vertex_count: number, buffer: Float64Array, face_index: number): Float64Array;
841
866
 
867
+ /**
868
+ * Handle variant of `mesh_get_coplanar_face_group_centroid`.
869
+ */
870
+ export function mesh_get_coplanar_face_group_centroid_h(id: number, face_index: number): Float64Array;
871
+
842
872
  /**
843
873
  * Edge-connected coplanar triangle indices as [count, i0, i1, ...].
844
874
  */
845
875
  export function mesh_get_coplanar_face_indices(vertex_count: number, buffer: Float64Array, face_index: number): Float64Array;
846
876
 
877
+ /**
878
+ * Handle variant of `mesh_get_coplanar_face_indices`.
879
+ */
880
+ export function mesh_get_coplanar_face_indices_h(id: number, face_index: number): Float64Array;
881
+
847
882
  /**
848
883
  * Coplanar connected face region projected to a plane basis.
849
884
  * Output format:
@@ -856,6 +891,11 @@ export function mesh_get_coplanar_face_region(vertex_count: number, buffer: Floa
856
891
  */
857
892
  export function mesh_get_edge_vertex_pairs(vertex_count: number, buffer: Float64Array): Float64Array;
858
893
 
894
+ /**
895
+ * Handle variant of `mesh_get_edge_vertex_pairs`.
896
+ */
897
+ export function mesh_get_edge_vertex_pairs_h(id: number): Float64Array;
898
+
859
899
  /**
860
900
  * Face area.
861
901
  */
@@ -874,6 +914,11 @@ export function mesh_get_face_area(vertex_count: number, buffer: Float64Array, f
874
914
  */
875
915
  export function mesh_get_face_boundary_loops(vertex_count: number, buffer: Float64Array, face_index: number): Float64Array;
876
916
 
917
+ /**
918
+ * Handle variant of `mesh_get_face_boundary_loops`.
919
+ */
920
+ export function mesh_get_face_boundary_loops_h(id: number, face_index: number): Float64Array;
921
+
877
922
  /**
878
923
  * Face centroid as [x, y, z].
879
924
  */
@@ -893,6 +938,11 @@ export function mesh_get_face_normal(vertex_count: number, buffer: Float64Array,
893
938
  */
894
939
  export function mesh_get_smooth_face_group(vertex_count: number, buffer: Float64Array, face_index: number, max_angle_deg: number): Float64Array;
895
940
 
941
+ /**
942
+ * Handle variant of `mesh_get_smooth_face_group`.
943
+ */
944
+ export function mesh_get_smooth_face_group_h(id: number, face_index: number, max_angle_deg: number): Float64Array;
945
+
896
946
  /**
897
947
  * Get mesh statistics
898
948
  * Returns [vertex_count, face_count, edge_count]
@@ -1017,6 +1067,16 @@ export function mesh_raycast(vertex_count: number, buffer: Float64Array, ox: num
1017
1067
  */
1018
1068
  export function mesh_raycast_all(vertex_count: number, buffer: Float64Array, ox: number, oy: number, oz: number, dx: number, dy: number, dz: number, max_distance: number): Float64Array;
1019
1069
 
1070
+ /**
1071
+ * Handle variant of `mesh_raycast_all` — reuses the stored mesh's cached BVH.
1072
+ */
1073
+ export function mesh_raycast_all_h(id: number, ox: number, oy: number, oz: number, dx: number, dy: number, dz: number, max_distance: number): Float64Array;
1074
+
1075
+ /**
1076
+ * Handle variant of `mesh_raycast` — reuses the stored mesh's cached BVH.
1077
+ */
1078
+ export function mesh_raycast_h(id: number, ox: number, oy: number, oz: number, dx: number, dy: number, dz: number, max_distance: number): Float64Array;
1079
+
1020
1080
  /**
1021
1081
  * Raycast against many meshes packed as:
1022
1082
  * [meshCount, meshLen0, meshRaw0..., meshLen1, meshRaw1..., ...]
@@ -1043,6 +1103,11 @@ export function mesh_repair(vertex_count: number, buffer: Float64Array, flags: n
1043
1103
  */
1044
1104
  export function mesh_repair_diagnostics(vertex_count: number, buffer: Float64Array): Float64Array;
1045
1105
 
1106
+ /**
1107
+ * Handle variant of `mesh_repair_diagnostics`.
1108
+ */
1109
+ export function mesh_repair_diagnostics_h(id: number): Float64Array;
1110
+
1046
1111
  /**
1047
1112
  * Rotate a mesh around an arbitrary axis and return new buffers
1048
1113
  * Axis is defined by (ax, ay, az), angle in radians
@@ -1099,6 +1164,28 @@ export function mesh_split_by_surface_to_brep(vertex_count: number, buffer: Floa
1099
1164
  */
1100
1165
  export function mesh_split_polyline(vertex_count: number, buffer: Float64Array, points: Float64Array, closed: boolean): Float64Array;
1101
1166
 
1167
+ /**
1168
+ * Store a mesh buffer `[vertexCount, x,y,z..., i0,i1,i2...]` WASM-side.
1169
+ * Returns a non-zero id, or 0 on invalid input.
1170
+ */
1171
+ export function mesh_store(vertex_count: number, buffer: Float64Array): number;
1172
+
1173
+ /**
1174
+ * Approximate bytes held by stored mesh raw buffers (diagnostics/tests).
1175
+ * Excludes lazy raycast caches.
1176
+ */
1177
+ export function mesh_store_bytes(): number;
1178
+
1179
+ /**
1180
+ * Number of stored meshes (diagnostics/tests).
1181
+ */
1182
+ export function mesh_store_count(): number;
1183
+
1184
+ /**
1185
+ * Release a stored mesh and free its memory (idempotent).
1186
+ */
1187
+ export function mesh_store_free(id: number): void;
1188
+
1102
1189
  /**
1103
1190
  * Trim an OPEN host surface by all closed cutter meshes in one WASM call.
1104
1191
  *
@@ -1118,6 +1205,20 @@ export function mesh_surface_split(vertex_count_a: number, buffer_a: Float64Arra
1118
1205
 
1119
1206
  export function mesh_surface_split_plane(vertex_count: number, buffer: Float64Array, nx: number, ny: number, nz: number, d: number, operation: string): Float64Array;
1120
1207
 
1208
+ /**
1209
+ * Thicken (solidify) a triangle mesh into a solid: open sheets gain boundary
1210
+ * walls, closed meshes become hollow shells. `bottom_offset`/`top_offset`
1211
+ * are signed displacements along the (angle-weighted) vertex normal;
1212
+ * centered = (-d/2, +d/2), up = (0, d), down = (-d, 0). `flags` bit 1 =
1213
+ * disable even thickness (miter compensation); bit 2 = skip the input
1214
+ * proximity weld (trusted indexed connectivity, e.g. kernel-produced
1215
+ * meshes). `miter_limit <= 0` uses the default (4.0). Returns the standard
1216
+ * mesh buffer
1217
+ * [vertexCount, positions..., indices...]; empty on failure (see
1218
+ * `geometry_last_error`).
1219
+ */
1220
+ export function mesh_thicken(vertex_count: number, buffer: Float64Array, bottom_offset: number, top_offset: number, flags: number, miter_limit: number): Float64Array;
1221
+
1121
1222
  /**
1122
1223
  * Return welded-edge topology metrics for a triangulated mesh buffer:
1123
1224
  * `[boundary_edges, non_manifold_edges]`.
@@ -1377,6 +1478,16 @@ export function nurbs_surface_tessellate_adaptive(data: Float64Array, tolerance:
1377
1478
  */
1378
1479
  export function nurbs_surface_tessellate_render(data: Float64Array, tolerance: number, max_segments_per_span: number, crease_angle_deg: number): Float32Array;
1379
1480
 
1481
+ /**
1482
+ * Thicken a NURBS surface into an exact watertight BREP solid: the shells are
1483
+ * exact parameterization-preserving offsets and the walls are exact ruled
1484
+ * surfaces between corresponding boundary curves. Handles closed directions
1485
+ * (seam edges) and degenerate boundaries (poles). `tolerance <= 0` uses the
1486
+ * offset default (1e-4). Returns the BREP JSON, or `{"error": ...}` on
1487
+ * failure.
1488
+ */
1489
+ export function nurbs_surface_thicken_brep(data: Float64Array, bottom_offset: number, top_offset: number, tolerance: number): string;
1490
+
1380
1491
  /**
1381
1492
  * Offset a polycurve made of line and arc segments.
1382
1493
  * Input format: [segment_count, type, ...data, ...]
@@ -1599,6 +1710,17 @@ export function test_wasm(): string;
1599
1710
  */
1600
1711
  export function thicken_polycurve(segment_data: Float64Array, distance: number, both_sides: boolean, nx: number, ny: number, nz: number, join_style_code: number): Float64Array;
1601
1712
 
1713
+ /**
1714
+ * Thicken a polycurve into region boundary loops, supporting CLOSED inputs
1715
+ * (annulus semantics): open inputs return one closed ribbon loop; closed
1716
+ * inputs return the surviving offset loops on both sides (or source + one
1717
+ * side when `both_sides` is false). Segment data format matches
1718
+ * `thicken_polycurve`; output is a packed polycurve set
1719
+ * [curve_count, curve_len, curve_data..., ...]. Empty on failure (see
1720
+ * `geometry_last_error`).
1721
+ */
1722
+ export function thicken_polycurve_loops(segment_data: Float64Array, distance: number, both_sides: boolean, nx: number, ny: number, nz: number, join_style_code: number): Float64Array;
1723
+
1602
1724
  /**
1603
1725
  * Get version info
1604
1726
  */
@@ -1701,9 +1823,11 @@ export interface InitOutput {
1701
1823
  readonly mesh_boolean_union: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
1702
1824
  readonly mesh_boolean_union_all: (a: number, b: number, c: number, d: number) => [number, number];
1703
1825
  readonly mesh_boundary_edge_segments: (a: number, b: number, c: number) => [number, number];
1826
+ readonly mesh_boundary_edge_segments_h: (a: number) => [number, number];
1704
1827
  readonly mesh_boundary_polylines: (a: number, b: number, c: number) => [number, number];
1705
1828
  readonly mesh_build_coplanar_connected_face_groups: (a: number, b: number, c: number) => [number, number];
1706
1829
  readonly mesh_build_render_buffers: (a: number, b: number, c: number, d: number) => [number, number];
1830
+ readonly mesh_build_render_buffers_h: (a: number, b: number) => [number, number];
1707
1831
  readonly mesh_chamfer_all_edges: (a: number, b: number, c: number, d: number, e: number) => [number, number];
1708
1832
  readonly mesh_chamfer_edges: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
1709
1833
  readonly mesh_clip_polyline: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
@@ -1722,18 +1846,26 @@ export interface InitOutput {
1722
1846
  readonly mesh_extrude_face: (a: number, b: number, c: number, d: number, e: number) => [number, number];
1723
1847
  readonly mesh_extrude_planar_curve: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
1724
1848
  readonly mesh_feature_edge_chains: (a: number, b: number, c: number) => [number, number];
1849
+ readonly mesh_feature_edge_chains_h: (a: number) => [number, number];
1725
1850
  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];
1851
+ readonly mesh_find_face_group_by_normal_h: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
1726
1852
  readonly mesh_find_face_group_by_triangle_index: (a: number, b: number, c: number, d: number) => [number, number];
1853
+ readonly mesh_find_face_group_by_triangle_index_h: (a: number, b: number) => [number, number];
1727
1854
  readonly mesh_get_bounds: (a: number, b: number, c: number) => [number, number];
1728
1855
  readonly mesh_get_coplanar_face_group_centroid: (a: number, b: number, c: number, d: number) => [number, number];
1856
+ readonly mesh_get_coplanar_face_group_centroid_h: (a: number, b: number) => [number, number];
1729
1857
  readonly mesh_get_coplanar_face_indices: (a: number, b: number, c: number, d: number) => [number, number];
1858
+ readonly mesh_get_coplanar_face_indices_h: (a: number, b: number) => [number, number];
1730
1859
  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];
1731
1860
  readonly mesh_get_edge_vertex_pairs: (a: number, b: number, c: number) => [number, number];
1861
+ readonly mesh_get_edge_vertex_pairs_h: (a: number) => [number, number];
1732
1862
  readonly mesh_get_face_area: (a: number, b: number, c: number, d: number) => number;
1733
1863
  readonly mesh_get_face_boundary_loops: (a: number, b: number, c: number, d: number) => [number, number];
1864
+ readonly mesh_get_face_boundary_loops_h: (a: number, b: number) => [number, number];
1734
1865
  readonly mesh_get_face_centroid: (a: number, b: number, c: number, d: number) => [number, number];
1735
1866
  readonly mesh_get_face_normal: (a: number, b: number, c: number, d: number) => [number, number];
1736
1867
  readonly mesh_get_smooth_face_group: (a: number, b: number, c: number, d: number, e: number) => [number, number];
1868
+ readonly mesh_get_smooth_face_group_h: (a: number, b: number, c: number) => [number, number];
1737
1869
  readonly mesh_get_stats: (a: number, b: number, c: number) => [number, number];
1738
1870
  readonly mesh_import_obj: (a: number, b: number) => [number, number];
1739
1871
  readonly mesh_import_stl: (a: number, b: number, c: number) => [number, number];
@@ -1752,9 +1884,12 @@ export interface InitOutput {
1752
1884
  readonly mesh_prepare_hosted_boolean_cutter: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number];
1753
1885
  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];
1754
1886
  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];
1887
+ readonly mesh_raycast_all_h: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
1888
+ readonly mesh_raycast_h: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
1755
1889
  readonly mesh_raycast_many: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number];
1756
1890
  readonly mesh_repair: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
1757
1891
  readonly mesh_repair_diagnostics: (a: number, b: number, c: number) => [number, number];
1892
+ readonly mesh_repair_diagnostics_h: (a: number) => [number, number];
1758
1893
  readonly mesh_rotate: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
1759
1894
  readonly mesh_scale: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
1760
1895
  readonly mesh_sheet_union: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
@@ -1762,9 +1897,13 @@ export interface InitOutput {
1762
1897
  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];
1763
1898
  readonly mesh_split_by_surface_to_brep: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
1764
1899
  readonly mesh_split_polyline: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
1900
+ readonly mesh_store: (a: number, b: number, c: number) => number;
1901
+ readonly mesh_store_bytes: () => number;
1902
+ readonly mesh_store_free: (a: number) => void;
1765
1903
  readonly mesh_surface_difference_all: (a: number, b: number, c: number, d: number) => [number, number];
1766
1904
  readonly mesh_surface_split: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
1767
1905
  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];
1906
+ readonly mesh_thicken: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
1768
1907
  readonly mesh_topology_metrics: (a: number, b: number, c: number) => [number, number];
1769
1908
  readonly mesh_topology_metrics_raw: (a: number, b: number, c: number) => [number, number];
1770
1909
  readonly mesh_translate: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
@@ -1797,6 +1936,7 @@ export interface InitOutput {
1797
1936
  readonly nurbs_surface_surface_intersect_curves: (a: number, b: number, c: number, d: number, e: number) => [number, number];
1798
1937
  readonly nurbs_surface_tessellate_adaptive: (a: number, b: number, c: number, d: number) => [number, number];
1799
1938
  readonly nurbs_surface_tessellate_render: (a: number, b: number, c: number, d: number, e: number) => [number, number];
1939
+ readonly nurbs_surface_thicken_brep: (a: number, b: number, c: number, d: number, e: number) => [number, number];
1800
1940
  readonly offset_polycurve: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
1801
1941
  readonly offset_polycurve_all: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
1802
1942
  readonly offset_polyline_curve: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
@@ -1829,7 +1969,9 @@ export interface InitOutput {
1829
1969
  readonly tessellate_nurbs_surface: (a: number, b: number) => [number, number];
1830
1970
  readonly test_wasm: () => [number, number];
1831
1971
  readonly thicken_polycurve: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
1972
+ readonly thicken_polycurve_loops: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
1832
1973
  readonly version: () => [number, number];
1974
+ readonly mesh_store_count: () => number;
1833
1975
  readonly ray_distance_to_point: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
1834
1976
  readonly __wbindgen_externrefs: WebAssembly.Table;
1835
1977
  readonly __wbindgen_free: (a: number, b: number, c: number) => void;