okgeometry-api 0.2.12 → 0.2.14

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 (73) hide show
  1. package/dist/Arc.d.ts +52 -2
  2. package/dist/Arc.d.ts.map +1 -1
  3. package/dist/Arc.js +50 -1
  4. package/dist/Arc.js.map +1 -1
  5. package/dist/BufferCodec.d.ts +118 -0
  6. package/dist/BufferCodec.d.ts.map +1 -0
  7. package/dist/BufferCodec.js +171 -0
  8. package/dist/BufferCodec.js.map +1 -0
  9. package/dist/Circle.d.ts +66 -12
  10. package/dist/Circle.d.ts.map +1 -1
  11. package/dist/Circle.js +64 -8
  12. package/dist/Circle.js.map +1 -1
  13. package/dist/Line.d.ts +53 -1
  14. package/dist/Line.d.ts.map +1 -1
  15. package/dist/Line.js +51 -0
  16. package/dist/Line.js.map +1 -1
  17. package/dist/Mesh.d.ts +167 -20
  18. package/dist/Mesh.d.ts.map +1 -1
  19. package/dist/Mesh.js +187 -70
  20. package/dist/Mesh.js.map +1 -1
  21. package/dist/NurbsCurve.d.ts +78 -8
  22. package/dist/NurbsCurve.d.ts.map +1 -1
  23. package/dist/NurbsCurve.js +76 -7
  24. package/dist/NurbsCurve.js.map +1 -1
  25. package/dist/NurbsSurface.d.ts +64 -14
  26. package/dist/NurbsSurface.d.ts.map +1 -1
  27. package/dist/NurbsSurface.js +65 -25
  28. package/dist/NurbsSurface.js.map +1 -1
  29. package/dist/Point.d.ts +65 -12
  30. package/dist/Point.d.ts.map +1 -1
  31. package/dist/Point.js +61 -2
  32. package/dist/Point.js.map +1 -1
  33. package/dist/PolyCurve.d.ts +4 -6
  34. package/dist/PolyCurve.d.ts.map +1 -1
  35. package/dist/PolyCurve.js +31 -16
  36. package/dist/PolyCurve.js.map +1 -1
  37. package/dist/Polygon.d.ts +35 -3
  38. package/dist/Polygon.d.ts.map +1 -1
  39. package/dist/Polygon.js +33 -2
  40. package/dist/Polygon.js.map +1 -1
  41. package/dist/Polyline.d.ts +67 -2
  42. package/dist/Polyline.d.ts.map +1 -1
  43. package/dist/Polyline.js +86 -13
  44. package/dist/Polyline.js.map +1 -1
  45. package/dist/Ray.d.ts +45 -0
  46. package/dist/Ray.d.ts.map +1 -0
  47. package/dist/Ray.js +68 -0
  48. package/dist/Ray.js.map +1 -0
  49. package/dist/Vec3.d.ts +76 -0
  50. package/dist/Vec3.d.ts.map +1 -1
  51. package/dist/Vec3.js +76 -0
  52. package/dist/Vec3.js.map +1 -1
  53. package/dist/engine.d.ts.map +1 -1
  54. package/dist/engine.js +3 -2
  55. package/dist/engine.js.map +1 -1
  56. package/dist/index.d.ts +6 -4
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +8 -2
  59. package/dist/index.js.map +1 -1
  60. package/dist/types.d.ts +67 -0
  61. package/dist/types.d.ts.map +1 -0
  62. package/dist/types.js +7 -0
  63. package/dist/types.js.map +1 -0
  64. package/dist/wasm-base64.d.ts +1 -1
  65. package/dist/wasm-base64.d.ts.map +1 -1
  66. package/dist/wasm-base64.js +1 -1
  67. package/dist/wasm-base64.js.map +1 -1
  68. package/package.json +1 -1
  69. package/wasm/okgeometrycore.d.ts +27 -0
  70. package/wasm/okgeometrycore.js +1 -1
  71. package/wasm/okgeometrycore_bg.js +81 -0
  72. package/wasm/okgeometrycore_bg.wasm +0 -0
  73. package/wasm/okgeometrycore_bg.wasm.d.ts +4 -0
@@ -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,kggoBAAkggoB,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,s7goBAAs7goB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "okgeometry-api",
3
- "version": "0.2.12",
3
+ "version": "0.2.14",
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",
@@ -337,6 +337,33 @@ export function polyline_length(coords: Float64Array): number;
337
337
  */
338
338
  export function polyline_point_at(coords: Float64Array, t: number): Float64Array;
339
339
 
340
+ /**
341
+ * Find the closest point on a ray to a given point.
342
+ * Returns [x, y, z] of the closest point on the ray.
343
+ */
344
+ export function ray_closest_point(ox: number, oy: number, oz: number, dx: number, dy: number, dz: number, px: number, py: number, pz: number): Float64Array;
345
+
346
+ /**
347
+ * Find the parameter t for the closest point on a ray to a given point.
348
+ * The closest point is at: origin + t * direction
349
+ * Note: t can be negative if the closest point is "behind" the ray origin.
350
+ */
351
+ export function ray_closest_point_parameter(ox: number, oy: number, oz: number, dx: number, dy: number, dz: number, px: number, py: number, pz: number): number;
352
+
353
+ /**
354
+ * Compute the distance from a ray to a point.
355
+ * Ray is defined by origin (ox, oy, oz) and direction (dx, dy, dz).
356
+ * Direction should be normalized for accurate distance.
357
+ * Returns the perpendicular distance from the ray to the point.
358
+ */
359
+ export function ray_distance_to_point(ox: number, oy: number, oz: number, dx: number, dy: number, dz: number, px: number, py: number, pz: number): number;
360
+
361
+ /**
362
+ * Get a point along the ray at parameter t.
363
+ * Returns [x, y, z] = origin + t * direction
364
+ */
365
+ export function ray_point_at(ox: number, oy: number, oz: number, dx: number, dy: number, dz: number, t: number): Float64Array;
366
+
340
367
  /**
341
368
  * Sample a NURBS curve.
342
369
  * Input: degree, then flat control points [x,y,z,...], then flat weights, then flat knots
@@ -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, 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_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
9
9
  } from "./okgeometrycore_bg.js";
@@ -943,6 +943,87 @@ export function polyline_point_at(coords, t) {
943
943
  return v2;
944
944
  }
945
945
 
946
+ /**
947
+ * Find the closest point on a ray to a given point.
948
+ * Returns [x, y, z] of the closest point on the ray.
949
+ * @param {number} ox
950
+ * @param {number} oy
951
+ * @param {number} oz
952
+ * @param {number} dx
953
+ * @param {number} dy
954
+ * @param {number} dz
955
+ * @param {number} px
956
+ * @param {number} py
957
+ * @param {number} pz
958
+ * @returns {Float64Array}
959
+ */
960
+ export function ray_closest_point(ox, oy, oz, dx, dy, dz, px, py, pz) {
961
+ const ret = wasm.ray_closest_point(ox, oy, oz, dx, dy, dz, px, py, pz);
962
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
963
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
964
+ return v1;
965
+ }
966
+
967
+ /**
968
+ * Find the parameter t for the closest point on a ray to a given point.
969
+ * The closest point is at: origin + t * direction
970
+ * Note: t can be negative if the closest point is "behind" the ray origin.
971
+ * @param {number} ox
972
+ * @param {number} oy
973
+ * @param {number} oz
974
+ * @param {number} dx
975
+ * @param {number} dy
976
+ * @param {number} dz
977
+ * @param {number} px
978
+ * @param {number} py
979
+ * @param {number} pz
980
+ * @returns {number}
981
+ */
982
+ export function ray_closest_point_parameter(ox, oy, oz, dx, dy, dz, px, py, pz) {
983
+ const ret = wasm.ray_closest_point_parameter(ox, oy, oz, dx, dy, dz, px, py, pz);
984
+ return ret;
985
+ }
986
+
987
+ /**
988
+ * Compute the distance from a ray to a point.
989
+ * Ray is defined by origin (ox, oy, oz) and direction (dx, dy, dz).
990
+ * Direction should be normalized for accurate distance.
991
+ * Returns the perpendicular distance from the ray to the point.
992
+ * @param {number} ox
993
+ * @param {number} oy
994
+ * @param {number} oz
995
+ * @param {number} dx
996
+ * @param {number} dy
997
+ * @param {number} dz
998
+ * @param {number} px
999
+ * @param {number} py
1000
+ * @param {number} pz
1001
+ * @returns {number}
1002
+ */
1003
+ export function ray_distance_to_point(ox, oy, oz, dx, dy, dz, px, py, pz) {
1004
+ const ret = wasm.ray_distance_to_point(ox, oy, oz, dx, dy, dz, px, py, pz);
1005
+ return ret;
1006
+ }
1007
+
1008
+ /**
1009
+ * Get a point along the ray at parameter t.
1010
+ * Returns [x, y, z] = origin + t * direction
1011
+ * @param {number} ox
1012
+ * @param {number} oy
1013
+ * @param {number} oz
1014
+ * @param {number} dx
1015
+ * @param {number} dy
1016
+ * @param {number} dz
1017
+ * @param {number} t
1018
+ * @returns {Float64Array}
1019
+ */
1020
+ export function ray_point_at(ox, oy, oz, dx, dy, dz, t) {
1021
+ const ret = wasm.ray_point_at(ox, oy, oz, dx, dy, dz, t);
1022
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
1023
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
1024
+ return v1;
1025
+ }
1026
+
946
1027
  /**
947
1028
  * Sample a NURBS curve.
948
1029
  * Input: degree, then flat control points [x,y,z,...], then flat weights, then flat knots
Binary file
@@ -52,12 +52,16 @@ export const offset_polyline_curve: (a: number, b: number, c: number, d: number,
52
52
  export const polycurve_to_nurbs: (a: number, b: number) => [number, number];
53
53
  export const polyline_length: (a: number, b: number) => number;
54
54
  export const polyline_point_at: (a: number, b: number, c: number) => [number, number];
55
+ export const ray_closest_point: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number];
56
+ export const ray_closest_point_parameter: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
57
+ export const ray_point_at: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
55
58
  export const sample_nurbs_curve: (a: number, b: number, c: number) => [number, number];
56
59
  export const sweep_curves: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
57
60
  export const sweep_polylines: (a: number, b: number, c: number, d: number, e: number) => [number, number];
58
61
  export const tessellate_nurbs_surface: (a: number, b: number) => [number, number];
59
62
  export const test_wasm: () => [number, number];
60
63
  export const version: () => [number, number];
64
+ export const ray_distance_to_point: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
61
65
  export const __wbindgen_externrefs: WebAssembly.Table;
62
66
  export const __wbindgen_free: (a: number, b: number, c: number) => void;
63
67
  export const __wbindgen_malloc: (a: number, b: number) => number;