okgeometry-api 0.2.14 → 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.
- package/dist/Mesh.d.ts +14 -3
- package/dist/Mesh.d.ts.map +1 -1
- package/dist/Mesh.js +22 -20
- package/dist/Mesh.js.map +1 -1
- package/dist/PolyCurve.d.ts +2 -0
- package/dist/PolyCurve.d.ts.map +1 -1
- package/dist/PolyCurve.js +4 -0
- package/dist/PolyCurve.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/package.json +1 -1
- package/wasm/okgeometrycore.d.ts +16 -0
- package/wasm/okgeometrycore.js +1 -1
- package/wasm/okgeometrycore_bg.js +37 -0
- package/wasm/okgeometrycore_bg.wasm +0 -0
- package/wasm/okgeometrycore_bg.wasm.d.ts +2 -0
package/dist/wasm-base64.js.map
CHANGED
|
@@ -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,
|
|
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
package/wasm/okgeometrycore.d.ts
CHANGED
|
@@ -228,6 +228,14 @@ export function mesh_create_prism(radius: number, height: number, sides: number)
|
|
|
228
228
|
*/
|
|
229
229
|
export function mesh_create_sphere(radius: number, segments: number, rings: number): Float64Array;
|
|
230
230
|
|
|
231
|
+
/**
|
|
232
|
+
* Evaluate a point on a mesh surface at parametric coordinates (u, v).
|
|
233
|
+
* Maps u ∈ [0,1] and v ∈ [0,1] to the mesh's AABB bounding box,
|
|
234
|
+
* then casts a ray perpendicular to the best-fit projection plane.
|
|
235
|
+
* Returns [x, y, z] of the intersection point, or [NaN, NaN, NaN] if no hit.
|
|
236
|
+
*/
|
|
237
|
+
export function mesh_evaluate(vertex_count: number, buffer: Float64Array, u: number, v: number): Float64Array;
|
|
238
|
+
|
|
231
239
|
/**
|
|
232
240
|
* Export a mesh to OBJ format
|
|
233
241
|
* Takes mesh buffers as input (same format as mesh_to_buffers output)
|
|
@@ -252,6 +260,14 @@ export function mesh_import_obj(obj_data: string): Float64Array;
|
|
|
252
260
|
*/
|
|
253
261
|
export function mesh_mesh_intersect(va_count: number, buffer_a: Float64Array, vb_count: number, buffer_b: Float64Array): Float64Array;
|
|
254
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
|
+
|
|
255
271
|
/**
|
|
256
272
|
* Intersect a mesh with a plane, returning polyline points.
|
|
257
273
|
* Input: vertex_count, mesh_buffer..., nx, ny, nz, d
|
package/wasm/okgeometrycore.js
CHANGED
|
@@ -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_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";
|
|
@@ -629,6 +629,26 @@ export function mesh_create_sphere(radius, segments, rings) {
|
|
|
629
629
|
return v1;
|
|
630
630
|
}
|
|
631
631
|
|
|
632
|
+
/**
|
|
633
|
+
* Evaluate a point on a mesh surface at parametric coordinates (u, v).
|
|
634
|
+
* Maps u ∈ [0,1] and v ∈ [0,1] to the mesh's AABB bounding box,
|
|
635
|
+
* then casts a ray perpendicular to the best-fit projection plane.
|
|
636
|
+
* Returns [x, y, z] of the intersection point, or [NaN, NaN, NaN] if no hit.
|
|
637
|
+
* @param {number} vertex_count
|
|
638
|
+
* @param {Float64Array} buffer
|
|
639
|
+
* @param {number} u
|
|
640
|
+
* @param {number} v
|
|
641
|
+
* @returns {Float64Array}
|
|
642
|
+
*/
|
|
643
|
+
export function mesh_evaluate(vertex_count, buffer, u, v) {
|
|
644
|
+
const ptr0 = passArrayF64ToWasm0(buffer, wasm.__wbindgen_malloc);
|
|
645
|
+
const len0 = WASM_VECTOR_LEN;
|
|
646
|
+
const ret = wasm.mesh_evaluate(vertex_count, ptr0, len0, u, v);
|
|
647
|
+
var v2 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
|
|
648
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
|
|
649
|
+
return v2;
|
|
650
|
+
}
|
|
651
|
+
|
|
632
652
|
/**
|
|
633
653
|
* Export a mesh to OBJ format
|
|
634
654
|
* Takes mesh buffers as input (same format as mesh_to_buffers output)
|
|
@@ -702,6 +722,23 @@ export function mesh_mesh_intersect(va_count, buffer_a, vb_count, buffer_b) {
|
|
|
702
722
|
return v3;
|
|
703
723
|
}
|
|
704
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
|
+
|
|
705
742
|
/**
|
|
706
743
|
* Intersect a mesh with a plane, returning polyline points.
|
|
707
744
|
* Input: vertex_count, mesh_buffer..., nx, ny, nz, d
|
|
Binary file
|
|
@@ -35,10 +35,12 @@ export const mesh_create_cone: (a: number, b: number, c: number) => [number, num
|
|
|
35
35
|
export const mesh_create_cylinder: (a: number, b: number, c: number) => [number, number];
|
|
36
36
|
export const mesh_create_prism: (a: number, b: number, c: number) => [number, number];
|
|
37
37
|
export const mesh_create_sphere: (a: number, b: number, c: number) => [number, number];
|
|
38
|
+
export const mesh_evaluate: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
38
39
|
export const mesh_export_obj: (a: number, b: number, c: number) => [number, number];
|
|
39
40
|
export const mesh_get_stats: (a: number, b: number, c: number) => [number, number];
|
|
40
41
|
export const mesh_import_obj: (a: number, b: number) => [number, number];
|
|
41
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];
|
|
42
44
|
export const mesh_plane_intersect: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
43
45
|
export const mesh_rotate: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
44
46
|
export const mesh_scale: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|