okgeometry-api 1.2.0 → 1.4.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 (65) hide show
  1. package/dist/Line.d.ts +10 -1
  2. package/dist/Line.d.ts.map +1 -1
  3. package/dist/Line.js +11 -0
  4. package/dist/Line.js.map +1 -1
  5. package/dist/Mesh.d.ts +123 -9
  6. package/dist/Mesh.d.ts.map +1 -1
  7. package/dist/Mesh.js +401 -26
  8. package/dist/Mesh.js.map +1 -1
  9. package/dist/MeshSurface.d.ts +32 -0
  10. package/dist/MeshSurface.d.ts.map +1 -0
  11. package/dist/MeshSurface.js +51 -0
  12. package/dist/MeshSurface.js.map +1 -0
  13. package/dist/NurbsCurve.d.ts +50 -2
  14. package/dist/NurbsCurve.d.ts.map +1 -1
  15. package/dist/NurbsCurve.js +76 -2
  16. package/dist/NurbsCurve.js.map +1 -1
  17. package/dist/NurbsSurface.d.ts +9 -1
  18. package/dist/NurbsSurface.d.ts.map +1 -1
  19. package/dist/NurbsSurface.js +12 -3
  20. package/dist/NurbsSurface.js.map +1 -1
  21. package/dist/PolyCurve.d.ts +21 -3
  22. package/dist/PolyCurve.d.ts.map +1 -1
  23. package/dist/PolyCurve.js +82 -38
  24. package/dist/PolyCurve.js.map +1 -1
  25. package/dist/Polygon.d.ts +13 -2
  26. package/dist/Polygon.d.ts.map +1 -1
  27. package/dist/Polygon.js +21 -3
  28. package/dist/Polygon.js.map +1 -1
  29. package/dist/Polyline.d.ts +19 -2
  30. package/dist/Polyline.d.ts.map +1 -1
  31. package/dist/Polyline.js +38 -6
  32. package/dist/Polyline.js.map +1 -1
  33. package/dist/Surface.d.ts +17 -0
  34. package/dist/Surface.d.ts.map +1 -0
  35. package/dist/Surface.js +2 -0
  36. package/dist/Surface.js.map +1 -0
  37. package/dist/index.d.ts +4 -2
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +1 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/types.d.ts +13 -0
  42. package/dist/types.d.ts.map +1 -1
  43. package/dist/wasm-base64.d.ts +1 -1
  44. package/dist/wasm-base64.d.ts.map +1 -1
  45. package/dist/wasm-base64.js +1 -1
  46. package/dist/wasm-base64.js.map +1 -1
  47. package/dist/wasm-bindings.d.ts +132 -2
  48. package/dist/wasm-bindings.d.ts.map +1 -1
  49. package/dist/wasm-bindings.js +207 -2
  50. package/dist/wasm-bindings.js.map +1 -1
  51. package/package.json +1 -1
  52. package/src/Line.ts +38 -20
  53. package/src/Mesh.ts +909 -464
  54. package/src/MeshSurface.ts +72 -0
  55. package/src/NurbsCurve.ts +103 -3
  56. package/src/NurbsSurface.ts +28 -13
  57. package/src/PolyCurve.ts +157 -85
  58. package/src/Polygon.ts +34 -4
  59. package/src/Polyline.ts +74 -24
  60. package/src/Surface.ts +18 -0
  61. package/src/index.ts +5 -0
  62. package/src/types.ts +15 -0
  63. package/src/wasm-base64.ts +1 -1
  64. package/src/wasm-bindings.d.ts +101 -2
  65. package/src/wasm-bindings.js +218 -2
@@ -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,85k6CAA85k6C,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,k5ijDAAk5ijD,CAAC"}
@@ -22,6 +22,24 @@ export function arc_length(radius: number, start_angle: number, end_angle: numbe
22
22
  * @returns {Float64Array}
23
23
  */
24
24
  export function arc_point_at(cx: number, cy: number, cz: number, nx: number, ny: number, nz: number, radius: number, start_angle: number, end_angle: number, t: number): Float64Array;
25
+ /**
26
+ * Build a NURBS curve from raw control points with kernel-managed knots and weights.
27
+ *
28
+ * * `degree` - Requested degree (clamped to the valid range for the point count)
29
+ * * `coords` - Flat control points [x,y,z, x,y,z, ...]. For closed curves the
30
+ * first point must NOT be repeated at the end.
31
+ * * `closed` - When true, builds a periodic (C^{degree-1}) closed loop;
32
+ * otherwise a clamped curve interpolating the first/last control points.
33
+ *
34
+ * Returns the encoded curve [degree, num_cp, cp_xyz..., weights..., knots...]
35
+ * (the same format consumed by `sample_nurbs_curve` / `evaluate_nurbs_curve_at`),
36
+ * or an empty buffer on failure.
37
+ * @param {number} degree
38
+ * @param {Float64Array} coords
39
+ * @param {boolean} closed
40
+ * @returns {Float64Array}
41
+ */
42
+ export function build_nurbs_curve(degree: number, coords: Float64Array, closed: boolean): Float64Array;
25
43
  /**
26
44
  * Chamfer corners of a polyline by cutting each corner with a straight segment.
27
45
  * Input: flat coords [x1,y1,z1, ...], distance from corner to cut.
@@ -267,6 +285,26 @@ export function loft_nurbs_surface(data: Float64Array): Float64Array;
267
285
  * @returns {Float64Array}
268
286
  */
269
287
  export function loft_polylines(polyline_data: Float64Array, _segments: number, with_caps: boolean): Float64Array;
288
+ /**
289
+ * Loft between raw profile polylines with kernel-managed compatibility
290
+ * (resampling to a common count, seam alignment, direction matching).
291
+ *
292
+ * # Parameters
293
+ * * `profile_data` - Flat array where each profile is prefixed by its point count:
294
+ * [count1, x1, y1, z1, ..., count2, x1, y1, z1, ...]
295
+ * * `closed` - Whether profiles are closed loops (input must NOT repeat the
296
+ * first point). Closed profiles loft into a tube, open profiles into a sheet.
297
+ * * `with_caps` - Cap the first/last profiles (closed profiles only) to produce
298
+ * a watertight solid ready for booleans.
299
+ *
300
+ * # Returns
301
+ * Mesh buffers for the lofted surface (empty on failure)
302
+ * @param {Float64Array} profile_data
303
+ * @param {boolean} closed
304
+ * @param {boolean} with_caps
305
+ * @returns {Float64Array}
306
+ */
307
+ export function loft_profiles(profile_data: Float64Array, closed: boolean, with_caps: boolean): Float64Array;
270
308
  /**
271
309
  * Make multiple NURBS curves compatible (same knot vectors, same CP count).
272
310
  * Input: [curve_count, curve1_data..., curve2_data..., ...]
@@ -528,6 +566,22 @@ export function mesh_boundary_polylines(vertex_count: number, buffer: Float64Arr
528
566
  * @returns {Float64Array}
529
567
  */
530
568
  export function mesh_build_coplanar_connected_face_groups(vertex_count: number, buffer: Float64Array): Float64Array;
569
+ /**
570
+ * Display-ready render buffers: creased (split) vertex normals plus feature
571
+ * edges, computed in one pass. Replaces THREE's toCreasedNormals +
572
+ * EdgesGeometry in app layers (orders of magnitude faster on large meshes).
573
+ *
574
+ * Output (f32-packed):
575
+ * [vertexCount, positions (vertexCount*3), normals (vertexCount*3),
576
+ * edgeSegmentCount, edgePositions (edgeSegmentCount*6)]
577
+ * Vertices are non-indexed in input triangle order, so raycast face indices
578
+ * against the source mesh stay valid.
579
+ * @param {number} vertex_count
580
+ * @param {Float64Array} buffer
581
+ * @param {number} crease_angle_deg
582
+ * @returns {Float32Array}
583
+ */
584
+ export function mesh_build_render_buffers(vertex_count: number, buffer: Float64Array, crease_angle_deg: number): Float32Array;
531
585
  /**
532
586
  * Chamfer all edges of a primitive mesh (flat bevel)
533
587
  *
@@ -743,6 +797,19 @@ export function mesh_get_face_centroid(vertex_count: number, buffer: Float64Arra
743
797
  * @returns {Float64Array}
744
798
  */
745
799
  export function mesh_get_face_normal(vertex_count: number, buffer: Float64Array, face_index: number): Float64Array;
800
+ /**
801
+ * Edge-connected smooth face group (dihedral angle below `max_angle_deg`).
802
+ * Output format: [count, isPlanar (0|1), tri0, tri1, ...]
803
+ * `isPlanar` is 1 when every triangle normal in the group aligns with the
804
+ * seed triangle's normal (i.e. the group is a flat face), 0 for curved
805
+ * regions such as cylinder walls or lofted patches.
806
+ * @param {number} vertex_count
807
+ * @param {Float64Array} buffer
808
+ * @param {number} face_index
809
+ * @param {number} max_angle_deg
810
+ * @returns {Float64Array}
811
+ */
812
+ export function mesh_get_smooth_face_group(vertex_count: number, buffer: Float64Array, face_index: number, max_angle_deg: number): Float64Array;
746
813
  /**
747
814
  * Get mesh statistics
748
815
  * Returns [vertex_count, face_count, edge_count]
@@ -813,6 +880,18 @@ export function mesh_mesh_intersect(va_count: number, buffer_a: Float64Array, vb
813
880
  * @returns {Float64Array}
814
881
  */
815
882
  export function mesh_patch_from_points(coords: Float64Array): Float64Array;
883
+ /**
884
+ * Evaluate a point on a planar mesh-face surface at normalized parameters.
885
+ * Parameters map across the face group's local 2D bounds.
886
+ * Returns [x, y, z] or [NaN, NaN, NaN] when the query falls outside the face region.
887
+ * @param {number} vertex_count
888
+ * @param {Float64Array} buffer
889
+ * @param {number} face_index
890
+ * @param {number} u
891
+ * @param {number} v
892
+ * @returns {Float64Array}
893
+ */
894
+ export function mesh_planar_face_evaluate(vertex_count: number, buffer: Float64Array, face_index: number, u: number, v: number): Float64Array;
816
895
  /**
817
896
  * Intersect a mesh with a plane, returning polyline points.
818
897
  * Input: vertex_count, mesh_buffer..., nx, ny, nz, d
@@ -987,8 +1066,7 @@ export function nurbs_curve_curve_intersect(data_a: Float64Array, data_b: Float6
987
1066
  */
988
1067
  export function nurbs_curve_plane_intersect(data: Float64Array, nx: number, ny: number, nz: number, d: number): Float64Array;
989
1068
  /**
990
- * Evaluate a NURBS surface at (u, v) parameters.
991
- * Input format: same as tessellate but last 2 values are u, v instead of u_segs, v_segs
1069
+ * Evaluate a NURBS surface at normalized parameters (u, v) in [0,1].
992
1070
  * Returns [x, y, z]
993
1071
  * @param {Float64Array} data
994
1072
  * @param {number} u
@@ -996,6 +1074,15 @@ export function nurbs_curve_plane_intersect(data: Float64Array, nx: number, ny:
996
1074
  * @returns {Float64Array}
997
1075
  */
998
1076
  export function nurbs_surface_evaluate(data: Float64Array, u: number, v: number): Float64Array;
1077
+ /**
1078
+ * Evaluate a NURBS surface unit normal at normalized parameters (u, v) in [0,1].
1079
+ * Returns [x, y, z]
1080
+ * @param {Float64Array} data
1081
+ * @param {number} u
1082
+ * @param {number} v
1083
+ * @returns {Float64Array}
1084
+ */
1085
+ export function nurbs_surface_normal(data: Float64Array, u: number, v: number): Float64Array;
999
1086
  /**
1000
1087
  * Intersect a NURBS surface with a plane.
1001
1088
  * Input: same surface format as tessellate_nurbs_surface, then plane (nx,ny,nz,d) appended.
@@ -1018,6 +1105,33 @@ export function nurbs_surface_plane_intersect(surface_data: Float64Array, nx: nu
1018
1105
  * @returns {Float64Array}
1019
1106
  */
1020
1107
  export function nurbs_surface_surface_intersect(data_a: Float64Array, data_b: Float64Array, tess: number): Float64Array;
1108
+ /**
1109
+ * Offset a polycurve made of line and arc segments.
1110
+ * Input format: [segment_count, type, ...data, ...]
1111
+ * type 0 = Line: [sx,sy,sz, ex,ey,ez]
1112
+ * type 1 = Arc: [cx,cy,cz, nx,ny,nz, radius, start_angle, end_angle]
1113
+ * Output uses the same encoded segment format.
1114
+ * @param {Float64Array} segment_data
1115
+ * @param {number} distance
1116
+ * @param {number} nx
1117
+ * @param {number} ny
1118
+ * @param {number} nz
1119
+ * @param {number} join_style_code
1120
+ * @returns {Float64Array}
1121
+ */
1122
+ export function offset_polycurve(segment_data: Float64Array, distance: number, nx: number, ny: number, nz: number, join_style_code: number): Float64Array;
1123
+ /**
1124
+ * Offset a polycurve and return every exact result curve.
1125
+ * Output format: [curve_count, curve_len, curve_data..., curve_len, curve_data..., ...]
1126
+ * @param {Float64Array} segment_data
1127
+ * @param {number} distance
1128
+ * @param {number} nx
1129
+ * @param {number} ny
1130
+ * @param {number} nz
1131
+ * @param {number} join_style_code
1132
+ * @returns {Float64Array}
1133
+ */
1134
+ export function offset_polycurve_all(segment_data: Float64Array, distance: number, nx: number, ny: number, nz: number, join_style_code: number): Float64Array;
1021
1135
  /**
1022
1136
  * Offset a polyline by a distance in a given plane.
1023
1137
  * If nx=ny=nz=0, the plane normal is auto-detected.
@@ -1162,6 +1276,22 @@ export function tessellate_nurbs_surface(data: Float64Array): Float64Array;
1162
1276
  * @returns {string}
1163
1277
  */
1164
1278
  export function test_wasm(): string;
1279
+ /**
1280
+ * Thicken an open polycurve into a single closed loop.
1281
+ * Input format: [segment_count, type, ...data, ...]
1282
+ * type 0 = Line: [sx,sy,sz, ex,ey,ez]
1283
+ * type 1 = Arc: [cx,cy,cz, nx,ny,nz, radius, start_angle, end_angle]
1284
+ * Output uses the same encoded segment format.
1285
+ * @param {Float64Array} segment_data
1286
+ * @param {number} distance
1287
+ * @param {boolean} both_sides
1288
+ * @param {number} nx
1289
+ * @param {number} ny
1290
+ * @param {number} nz
1291
+ * @param {number} join_style_code
1292
+ * @returns {Float64Array}
1293
+ */
1294
+ export function thicken_polycurve(segment_data: Float64Array, distance: number, both_sides: boolean, nx: number, ny: number, nz: number, join_style_code: number): Float64Array;
1165
1295
  /**
1166
1296
  * Get version info
1167
1297
  * @returns {string}
@@ -1 +1 @@
1
- {"version":3,"file":"wasm-bindings.d.ts","sourceRoot":"","sources":["../src/wasm-bindings.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wasm-bindings.d.ts","sourceRoot":"","sources":["../src/wasm-bindings.js"],"names":[],"mappings":"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"}
@@ -31,6 +31,31 @@ export function arc_point_at(cx, cy, cz, nx, ny, nz, radius, start_angle, end_an
31
31
  wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
32
32
  return v1;
33
33
  }
34
+ /**
35
+ * Build a NURBS curve from raw control points with kernel-managed knots and weights.
36
+ *
37
+ * * `degree` - Requested degree (clamped to the valid range for the point count)
38
+ * * `coords` - Flat control points [x,y,z, x,y,z, ...]. For closed curves the
39
+ * first point must NOT be repeated at the end.
40
+ * * `closed` - When true, builds a periodic (C^{degree-1}) closed loop;
41
+ * otherwise a clamped curve interpolating the first/last control points.
42
+ *
43
+ * Returns the encoded curve [degree, num_cp, cp_xyz..., weights..., knots...]
44
+ * (the same format consumed by `sample_nurbs_curve` / `evaluate_nurbs_curve_at`),
45
+ * or an empty buffer on failure.
46
+ * @param {number} degree
47
+ * @param {Float64Array} coords
48
+ * @param {boolean} closed
49
+ * @returns {Float64Array}
50
+ */
51
+ export function build_nurbs_curve(degree, coords, closed) {
52
+ const ptr0 = passArrayF64ToWasm0(coords, wasm.__wbindgen_malloc);
53
+ const len0 = WASM_VECTOR_LEN;
54
+ const ret = wasm.build_nurbs_curve(degree, ptr0, len0, closed);
55
+ var v2 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
56
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
57
+ return v2;
58
+ }
34
59
  /**
35
60
  * Chamfer corners of a polyline by cutting each corner with a straight segment.
36
61
  * Input: flat coords [x1,y1,z1, ...], distance from corner to cut.
@@ -392,6 +417,33 @@ export function loft_polylines(polyline_data, _segments, with_caps) {
392
417
  wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
393
418
  return v2;
394
419
  }
420
+ /**
421
+ * Loft between raw profile polylines with kernel-managed compatibility
422
+ * (resampling to a common count, seam alignment, direction matching).
423
+ *
424
+ * # Parameters
425
+ * * `profile_data` - Flat array where each profile is prefixed by its point count:
426
+ * [count1, x1, y1, z1, ..., count2, x1, y1, z1, ...]
427
+ * * `closed` - Whether profiles are closed loops (input must NOT repeat the
428
+ * first point). Closed profiles loft into a tube, open profiles into a sheet.
429
+ * * `with_caps` - Cap the first/last profiles (closed profiles only) to produce
430
+ * a watertight solid ready for booleans.
431
+ *
432
+ * # Returns
433
+ * Mesh buffers for the lofted surface (empty on failure)
434
+ * @param {Float64Array} profile_data
435
+ * @param {boolean} closed
436
+ * @param {boolean} with_caps
437
+ * @returns {Float64Array}
438
+ */
439
+ export function loft_profiles(profile_data, closed, with_caps) {
440
+ const ptr0 = passArrayF64ToWasm0(profile_data, wasm.__wbindgen_malloc);
441
+ const len0 = WASM_VECTOR_LEN;
442
+ const ret = wasm.loft_profiles(ptr0, len0, closed, with_caps);
443
+ var v2 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
444
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
445
+ return v2;
446
+ }
395
447
  /**
396
448
  * Make multiple NURBS curves compatible (same knot vectors, same CP count).
397
449
  * Input: [curve_count, curve1_data..., curve2_data..., ...]
@@ -1051,6 +1103,29 @@ export function mesh_build_coplanar_connected_face_groups(vertex_count, buffer)
1051
1103
  wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
1052
1104
  return v2;
1053
1105
  }
1106
+ /**
1107
+ * Display-ready render buffers: creased (split) vertex normals plus feature
1108
+ * edges, computed in one pass. Replaces THREE's toCreasedNormals +
1109
+ * EdgesGeometry in app layers (orders of magnitude faster on large meshes).
1110
+ *
1111
+ * Output (f32-packed):
1112
+ * [vertexCount, positions (vertexCount*3), normals (vertexCount*3),
1113
+ * edgeSegmentCount, edgePositions (edgeSegmentCount*6)]
1114
+ * Vertices are non-indexed in input triangle order, so raycast face indices
1115
+ * against the source mesh stay valid.
1116
+ * @param {number} vertex_count
1117
+ * @param {Float64Array} buffer
1118
+ * @param {number} crease_angle_deg
1119
+ * @returns {Float32Array}
1120
+ */
1121
+ export function mesh_build_render_buffers(vertex_count, buffer, crease_angle_deg) {
1122
+ const ptr0 = passArrayF64ToWasm0(buffer, wasm.__wbindgen_malloc);
1123
+ const len0 = WASM_VECTOR_LEN;
1124
+ const ret = wasm.mesh_build_render_buffers(vertex_count, ptr0, len0, crease_angle_deg);
1125
+ var v2 = getArrayF32FromWasm0(ret[0], ret[1]).slice();
1126
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
1127
+ return v2;
1128
+ }
1054
1129
  /**
1055
1130
  * Chamfer all edges of a primitive mesh (flat bevel)
1056
1131
  *
@@ -1415,6 +1490,26 @@ export function mesh_get_face_normal(vertex_count, buffer, face_index) {
1415
1490
  wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
1416
1491
  return v2;
1417
1492
  }
1493
+ /**
1494
+ * Edge-connected smooth face group (dihedral angle below `max_angle_deg`).
1495
+ * Output format: [count, isPlanar (0|1), tri0, tri1, ...]
1496
+ * `isPlanar` is 1 when every triangle normal in the group aligns with the
1497
+ * seed triangle's normal (i.e. the group is a flat face), 0 for curved
1498
+ * regions such as cylinder walls or lofted patches.
1499
+ * @param {number} vertex_count
1500
+ * @param {Float64Array} buffer
1501
+ * @param {number} face_index
1502
+ * @param {number} max_angle_deg
1503
+ * @returns {Float64Array}
1504
+ */
1505
+ export function mesh_get_smooth_face_group(vertex_count, buffer, face_index, max_angle_deg) {
1506
+ const ptr0 = passArrayF64ToWasm0(buffer, wasm.__wbindgen_malloc);
1507
+ const len0 = WASM_VECTOR_LEN;
1508
+ const ret = wasm.mesh_get_smooth_face_group(vertex_count, ptr0, len0, face_index, max_angle_deg);
1509
+ var v2 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
1510
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
1511
+ return v2;
1512
+ }
1418
1513
  /**
1419
1514
  * Get mesh statistics
1420
1515
  * Returns [vertex_count, face_count, edge_count]
@@ -1569,6 +1664,25 @@ export function mesh_patch_from_points(coords) {
1569
1664
  wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
1570
1665
  return v2;
1571
1666
  }
1667
+ /**
1668
+ * Evaluate a point on a planar mesh-face surface at normalized parameters.
1669
+ * Parameters map across the face group's local 2D bounds.
1670
+ * Returns [x, y, z] or [NaN, NaN, NaN] when the query falls outside the face region.
1671
+ * @param {number} vertex_count
1672
+ * @param {Float64Array} buffer
1673
+ * @param {number} face_index
1674
+ * @param {number} u
1675
+ * @param {number} v
1676
+ * @returns {Float64Array}
1677
+ */
1678
+ export function mesh_planar_face_evaluate(vertex_count, buffer, face_index, u, v) {
1679
+ const ptr0 = passArrayF64ToWasm0(buffer, wasm.__wbindgen_malloc);
1680
+ const len0 = WASM_VECTOR_LEN;
1681
+ const ret = wasm.mesh_planar_face_evaluate(vertex_count, ptr0, len0, face_index, u, v);
1682
+ var v2 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
1683
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
1684
+ return v2;
1685
+ }
1572
1686
  /**
1573
1687
  * Intersect a mesh with a plane, returning polyline points.
1574
1688
  * Input: vertex_count, mesh_buffer..., nx, ny, nz, d
@@ -1858,8 +1972,7 @@ export function nurbs_curve_plane_intersect(data, nx, ny, nz, d) {
1858
1972
  return v2;
1859
1973
  }
1860
1974
  /**
1861
- * Evaluate a NURBS surface at (u, v) parameters.
1862
- * Input format: same as tessellate but last 2 values are u, v instead of u_segs, v_segs
1975
+ * Evaluate a NURBS surface at normalized parameters (u, v) in [0,1].
1863
1976
  * Returns [x, y, z]
1864
1977
  * @param {Float64Array} data
1865
1978
  * @param {number} u
@@ -1874,6 +1987,22 @@ export function nurbs_surface_evaluate(data, u, v) {
1874
1987
  wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
1875
1988
  return v2;
1876
1989
  }
1990
+ /**
1991
+ * Evaluate a NURBS surface unit normal at normalized parameters (u, v) in [0,1].
1992
+ * Returns [x, y, z]
1993
+ * @param {Float64Array} data
1994
+ * @param {number} u
1995
+ * @param {number} v
1996
+ * @returns {Float64Array}
1997
+ */
1998
+ export function nurbs_surface_normal(data, u, v) {
1999
+ const ptr0 = passArrayF64ToWasm0(data, wasm.__wbindgen_malloc);
2000
+ const len0 = WASM_VECTOR_LEN;
2001
+ const ret = wasm.nurbs_surface_normal(ptr0, len0, u, v);
2002
+ var v2 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
2003
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
2004
+ return v2;
2005
+ }
1877
2006
  /**
1878
2007
  * Intersect a NURBS surface with a plane.
1879
2008
  * Input: same surface format as tessellate_nurbs_surface, then plane (nx,ny,nz,d) appended.
@@ -1912,6 +2041,47 @@ export function nurbs_surface_surface_intersect(data_a, data_b, tess) {
1912
2041
  wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
1913
2042
  return v3;
1914
2043
  }
2044
+ /**
2045
+ * Offset a polycurve made of line and arc segments.
2046
+ * Input format: [segment_count, type, ...data, ...]
2047
+ * type 0 = Line: [sx,sy,sz, ex,ey,ez]
2048
+ * type 1 = Arc: [cx,cy,cz, nx,ny,nz, radius, start_angle, end_angle]
2049
+ * Output uses the same encoded segment format.
2050
+ * @param {Float64Array} segment_data
2051
+ * @param {number} distance
2052
+ * @param {number} nx
2053
+ * @param {number} ny
2054
+ * @param {number} nz
2055
+ * @param {number} join_style_code
2056
+ * @returns {Float64Array}
2057
+ */
2058
+ export function offset_polycurve(segment_data, distance, nx, ny, nz, join_style_code) {
2059
+ const ptr0 = passArrayF64ToWasm0(segment_data, wasm.__wbindgen_malloc);
2060
+ const len0 = WASM_VECTOR_LEN;
2061
+ const ret = wasm.offset_polycurve(ptr0, len0, distance, nx, ny, nz, join_style_code);
2062
+ var v2 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
2063
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
2064
+ return v2;
2065
+ }
2066
+ /**
2067
+ * Offset a polycurve and return every exact result curve.
2068
+ * Output format: [curve_count, curve_len, curve_data..., curve_len, curve_data..., ...]
2069
+ * @param {Float64Array} segment_data
2070
+ * @param {number} distance
2071
+ * @param {number} nx
2072
+ * @param {number} ny
2073
+ * @param {number} nz
2074
+ * @param {number} join_style_code
2075
+ * @returns {Float64Array}
2076
+ */
2077
+ export function offset_polycurve_all(segment_data, distance, nx, ny, nz, join_style_code) {
2078
+ const ptr0 = passArrayF64ToWasm0(segment_data, wasm.__wbindgen_malloc);
2079
+ const len0 = WASM_VECTOR_LEN;
2080
+ const ret = wasm.offset_polycurve_all(ptr0, len0, distance, nx, ny, nz, join_style_code);
2081
+ var v2 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
2082
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
2083
+ return v2;
2084
+ }
1915
2085
  /**
1916
2086
  * Offset a polyline by a distance in a given plane.
1917
2087
  * If nx=ny=nz=0, the plane normal is auto-detected.
@@ -2142,6 +2312,29 @@ export function test_wasm() {
2142
2312
  wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
2143
2313
  }
2144
2314
  }
2315
+ /**
2316
+ * Thicken an open polycurve into a single closed loop.
2317
+ * Input format: [segment_count, type, ...data, ...]
2318
+ * type 0 = Line: [sx,sy,sz, ex,ey,ez]
2319
+ * type 1 = Arc: [cx,cy,cz, nx,ny,nz, radius, start_angle, end_angle]
2320
+ * Output uses the same encoded segment format.
2321
+ * @param {Float64Array} segment_data
2322
+ * @param {number} distance
2323
+ * @param {boolean} both_sides
2324
+ * @param {number} nx
2325
+ * @param {number} ny
2326
+ * @param {number} nz
2327
+ * @param {number} join_style_code
2328
+ * @returns {Float64Array}
2329
+ */
2330
+ export function thicken_polycurve(segment_data, distance, both_sides, nx, ny, nz, join_style_code) {
2331
+ const ptr0 = passArrayF64ToWasm0(segment_data, wasm.__wbindgen_malloc);
2332
+ const len0 = WASM_VECTOR_LEN;
2333
+ const ret = wasm.thicken_polycurve(ptr0, len0, distance, both_sides, nx, ny, nz, join_style_code);
2334
+ var v2 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
2335
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
2336
+ return v2;
2337
+ }
2145
2338
  /**
2146
2339
  * Get version info
2147
2340
  * @returns {string}
@@ -2192,10 +2385,21 @@ function __wbg_get_imports() {
2192
2385
  "./okgeometrycore_bg.js": import0,
2193
2386
  };
2194
2387
  }
2388
+ function getArrayF32FromWasm0(ptr, len) {
2389
+ ptr = ptr >>> 0;
2390
+ return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);
2391
+ }
2195
2392
  function getArrayF64FromWasm0(ptr, len) {
2196
2393
  ptr = ptr >>> 0;
2197
2394
  return getFloat64ArrayMemory0().subarray(ptr / 8, ptr / 8 + len);
2198
2395
  }
2396
+ let cachedFloat32ArrayMemory0 = null;
2397
+ function getFloat32ArrayMemory0() {
2398
+ if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {
2399
+ cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);
2400
+ }
2401
+ return cachedFloat32ArrayMemory0;
2402
+ }
2199
2403
  let cachedFloat64ArrayMemory0 = null;
2200
2404
  function getFloat64ArrayMemory0() {
2201
2405
  if (cachedFloat64ArrayMemory0 === null || cachedFloat64ArrayMemory0.byteLength === 0) {
@@ -2280,6 +2484,7 @@ let wasmModule, wasm;
2280
2484
  function __wbg_finalize_init(instance, module) {
2281
2485
  wasm = instance.exports;
2282
2486
  wasmModule = module;
2487
+ cachedFloat32ArrayMemory0 = null;
2283
2488
  cachedFloat64ArrayMemory0 = null;
2284
2489
  cachedUint8ArrayMemory0 = null;
2285
2490
  wasm.__wbindgen_start();