okgeometry-api 0.2.15 → 0.2.16

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.
@@ -1 +1 @@
1
- {"version":3,"file":"wasm-base64.js","sourceRoot":"","sources":["../src/wasm-base64.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,MAAM,CAAC,MAAM,QAAQ,GAAG,8suoBAA8suoB,CAAC"}
1
+ {"version":3,"file":"wasm-base64.js","sourceRoot":"","sources":["../src/wasm-base64.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,MAAM,CAAC,MAAM,QAAQ,GAAG,s7xoBAAs7xoB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "okgeometry-api",
3
- "version": "0.2.15",
3
+ "version": "0.2.16",
4
4
  "description": "Geometry engine API for AEC applications — NURBS, meshes, booleans, intersections. Powered by Rust/WASM.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -260,6 +260,14 @@ export function mesh_import_obj(obj_data: string): Float64Array;
260
260
  */
261
261
  export function mesh_mesh_intersect(va_count: number, buffer_a: Float64Array, vb_count: number, buffer_b: Float64Array): Float64Array;
262
262
 
263
+ /**
264
+ * Create a planar patch mesh from boundary points using CDT.
265
+ * Correctly handles concave polygons (unlike fan triangulation).
266
+ * Input: flat coordinate array [x1,y1,z1, x2,y2,z2, ...]
267
+ * Output: mesh buffer [vertexCount, x1,y1,z1,..., i0,i1,i2, ...]
268
+ */
269
+ export function mesh_patch_from_points(coords: Float64Array): Float64Array;
270
+
263
271
  /**
264
272
  * Intersect a mesh with a plane, returning polyline points.
265
273
  * Input: vertex_count, mesh_buffer..., nx, ny, nz, d
@@ -5,5 +5,5 @@ import { __wbg_set_wasm } from "./okgeometrycore_bg.js";
5
5
  __wbg_set_wasm(wasm);
6
6
  wasm.__wbindgen_start();
7
7
  export {
8
- arc_length, arc_point_at, chamfer_polycurve, circle_length, circle_point_at, create_arc, create_circle, create_line, create_polyline, curve_to_points, evaluate_nurbs_curve_at, extrude_circle, extrude_line, extrude_polyline, fillet_polycurve, line_length, line_point_at, line_tangent, loft_circles, loft_nurbs_surface, loft_polylines, make_nurbs_curves_compatible, mesh_apply_matrix, mesh_boolean_intersection, mesh_boolean_operation, mesh_boolean_subtraction, mesh_boolean_union, mesh_boundary_polylines, mesh_chamfer_all_edges, mesh_create_box, mesh_create_cone, mesh_create_cylinder, mesh_create_prism, mesh_create_sphere, mesh_evaluate, mesh_export_obj, mesh_get_stats, mesh_import_obj, mesh_mesh_intersect, mesh_plane_intersect, mesh_rotate, mesh_scale, mesh_translate, nurbs_curve_curve_intersect, nurbs_curve_plane_intersect, nurbs_surface_evaluate, nurbs_surface_plane_intersect, nurbs_surface_surface_intersect, offset_polyline_curve, polycurve_to_nurbs, polyline_length, polyline_point_at, ray_closest_point, ray_closest_point_parameter, ray_distance_to_point, ray_point_at, sample_nurbs_curve, sweep_curves, sweep_polylines, tessellate_nurbs_surface, test_wasm, version
8
+ arc_length, arc_point_at, chamfer_polycurve, circle_length, circle_point_at, create_arc, create_circle, create_line, create_polyline, curve_to_points, evaluate_nurbs_curve_at, extrude_circle, extrude_line, extrude_polyline, fillet_polycurve, line_length, line_point_at, line_tangent, loft_circles, loft_nurbs_surface, loft_polylines, make_nurbs_curves_compatible, mesh_apply_matrix, mesh_boolean_intersection, mesh_boolean_operation, mesh_boolean_subtraction, mesh_boolean_union, mesh_boundary_polylines, mesh_chamfer_all_edges, mesh_create_box, mesh_create_cone, mesh_create_cylinder, mesh_create_prism, mesh_create_sphere, mesh_evaluate, mesh_export_obj, mesh_get_stats, mesh_import_obj, mesh_mesh_intersect, mesh_patch_from_points, mesh_plane_intersect, mesh_rotate, mesh_scale, mesh_translate, nurbs_curve_curve_intersect, nurbs_curve_plane_intersect, nurbs_surface_evaluate, nurbs_surface_plane_intersect, nurbs_surface_surface_intersect, offset_polyline_curve, polycurve_to_nurbs, polyline_length, polyline_point_at, ray_closest_point, ray_closest_point_parameter, ray_distance_to_point, ray_point_at, sample_nurbs_curve, sweep_curves, sweep_polylines, tessellate_nurbs_surface, test_wasm, version
9
9
  } from "./okgeometrycore_bg.js";
@@ -722,6 +722,23 @@ export function mesh_mesh_intersect(va_count, buffer_a, vb_count, buffer_b) {
722
722
  return v3;
723
723
  }
724
724
 
725
+ /**
726
+ * Create a planar patch mesh from boundary points using CDT.
727
+ * Correctly handles concave polygons (unlike fan triangulation).
728
+ * Input: flat coordinate array [x1,y1,z1, x2,y2,z2, ...]
729
+ * Output: mesh buffer [vertexCount, x1,y1,z1,..., i0,i1,i2, ...]
730
+ * @param {Float64Array} coords
731
+ * @returns {Float64Array}
732
+ */
733
+ export function mesh_patch_from_points(coords) {
734
+ const ptr0 = passArrayF64ToWasm0(coords, wasm.__wbindgen_malloc);
735
+ const len0 = WASM_VECTOR_LEN;
736
+ const ret = wasm.mesh_patch_from_points(ptr0, len0);
737
+ var v2 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
738
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
739
+ return v2;
740
+ }
741
+
725
742
  /**
726
743
  * Intersect a mesh with a plane, returning polyline points.
727
744
  * Input: vertex_count, mesh_buffer..., nx, ny, nz, d
Binary file
@@ -40,6 +40,7 @@ export const mesh_export_obj: (a: number, b: number, c: number) => [number, numb
40
40
  export const mesh_get_stats: (a: number, b: number, c: number) => [number, number];
41
41
  export const mesh_import_obj: (a: number, b: number) => [number, number];
42
42
  export const mesh_mesh_intersect: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
43
+ export const mesh_patch_from_points: (a: number, b: number) => [number, number];
43
44
  export const mesh_plane_intersect: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
44
45
  export const mesh_rotate: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
45
46
  export const mesh_scale: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];