okgeometry-api 1.2.0 → 1.2.1
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/Line.d.ts +10 -1
- package/dist/Line.d.ts.map +1 -1
- package/dist/Line.js +11 -0
- package/dist/Line.js.map +1 -1
- package/dist/Mesh.d.ts +82 -9
- package/dist/Mesh.d.ts.map +1 -1
- package/dist/Mesh.js +329 -26
- package/dist/Mesh.js.map +1 -1
- package/dist/MeshSurface.d.ts +32 -0
- package/dist/MeshSurface.d.ts.map +1 -0
- package/dist/MeshSurface.js +51 -0
- package/dist/MeshSurface.js.map +1 -0
- package/dist/NurbsCurve.d.ts +24 -2
- package/dist/NurbsCurve.d.ts.map +1 -1
- package/dist/NurbsCurve.js +34 -2
- package/dist/NurbsCurve.js.map +1 -1
- package/dist/NurbsSurface.d.ts +9 -1
- package/dist/NurbsSurface.d.ts.map +1 -1
- package/dist/NurbsSurface.js +12 -3
- package/dist/NurbsSurface.js.map +1 -1
- package/dist/PolyCurve.d.ts +21 -3
- package/dist/PolyCurve.d.ts.map +1 -1
- package/dist/PolyCurve.js +82 -38
- package/dist/PolyCurve.js.map +1 -1
- package/dist/Polygon.d.ts +13 -2
- package/dist/Polygon.d.ts.map +1 -1
- package/dist/Polygon.js +21 -3
- package/dist/Polygon.js.map +1 -1
- package/dist/Polyline.d.ts +19 -2
- package/dist/Polyline.d.ts.map +1 -1
- package/dist/Polyline.js +38 -6
- package/dist/Polyline.js.map +1 -1
- package/dist/Surface.d.ts +17 -0
- package/dist/Surface.d.ts.map +1 -0
- package/dist/Surface.js +2 -0
- package/dist/Surface.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +13 -0
- package/dist/types.d.ts.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/dist/wasm-bindings.d.ts +65 -2
- package/dist/wasm-bindings.d.ts.map +1 -1
- package/dist/wasm-bindings.js +100 -2
- package/dist/wasm-bindings.js.map +1 -1
- package/package.json +1 -1
- package/src/Line.ts +38 -20
- package/src/Mesh.ts +538 -184
- package/src/MeshSurface.ts +72 -0
- package/src/NurbsCurve.ts +80 -26
- package/src/NurbsSurface.ts +28 -13
- package/src/PolyCurve.ts +157 -85
- package/src/Polygon.ts +34 -4
- package/src/Polyline.ts +74 -24
- package/src/Surface.ts +18 -0
- package/src/index.ts +5 -0
- package/src/types.ts +15 -0
- package/src/wasm-base64.ts +1 -1
- package/src/wasm-bindings.d.ts +43 -2
- package/src/wasm-bindings.js +105 -2
package/src/wasm-bindings.d.ts
CHANGED
|
@@ -424,6 +424,13 @@ export function mesh_mesh_intersect(va_count: number, buffer_a: Float64Array, vb
|
|
|
424
424
|
*/
|
|
425
425
|
export function mesh_patch_from_points(coords: Float64Array): Float64Array;
|
|
426
426
|
|
|
427
|
+
/**
|
|
428
|
+
* Evaluate a point on a planar mesh-face surface at normalized parameters.
|
|
429
|
+
* Parameters map across the face group's local 2D bounds.
|
|
430
|
+
* Returns [x, y, z] or [NaN, NaN, NaN] when the query falls outside the face region.
|
|
431
|
+
*/
|
|
432
|
+
export function mesh_planar_face_evaluate(vertex_count: number, buffer: Float64Array, face_index: number, u: number, v: number): Float64Array;
|
|
433
|
+
|
|
427
434
|
/**
|
|
428
435
|
* Intersect a mesh with a plane, returning polyline points.
|
|
429
436
|
* Input: vertex_count, mesh_buffer..., nx, ny, nz, d
|
|
@@ -508,12 +515,17 @@ export function nurbs_curve_curve_intersect(data_a: Float64Array, data_b: Float6
|
|
|
508
515
|
export function nurbs_curve_plane_intersect(data: Float64Array, nx: number, ny: number, nz: number, d: number): Float64Array;
|
|
509
516
|
|
|
510
517
|
/**
|
|
511
|
-
* Evaluate a NURBS surface at (u, v)
|
|
512
|
-
* Input format: same as tessellate but last 2 values are u, v instead of u_segs, v_segs
|
|
518
|
+
* Evaluate a NURBS surface at normalized parameters (u, v) in [0,1].
|
|
513
519
|
* Returns [x, y, z]
|
|
514
520
|
*/
|
|
515
521
|
export function nurbs_surface_evaluate(data: Float64Array, u: number, v: number): Float64Array;
|
|
516
522
|
|
|
523
|
+
/**
|
|
524
|
+
* Evaluate a NURBS surface unit normal at normalized parameters (u, v) in [0,1].
|
|
525
|
+
* Returns [x, y, z]
|
|
526
|
+
*/
|
|
527
|
+
export function nurbs_surface_normal(data: Float64Array, u: number, v: number): Float64Array;
|
|
528
|
+
|
|
517
529
|
/**
|
|
518
530
|
* Intersect a NURBS surface with a plane.
|
|
519
531
|
* Input: same surface format as tessellate_nurbs_surface, then plane (nx,ny,nz,d) appended.
|
|
@@ -527,6 +539,21 @@ export function nurbs_surface_plane_intersect(surface_data: Float64Array, nx: nu
|
|
|
527
539
|
*/
|
|
528
540
|
export function nurbs_surface_surface_intersect(data_a: Float64Array, data_b: Float64Array, tess: number): Float64Array;
|
|
529
541
|
|
|
542
|
+
/**
|
|
543
|
+
* Offset a polycurve made of line and arc segments.
|
|
544
|
+
* Input format: [segment_count, type, ...data, ...]
|
|
545
|
+
* type 0 = Line: [sx,sy,sz, ex,ey,ez]
|
|
546
|
+
* type 1 = Arc: [cx,cy,cz, nx,ny,nz, radius, start_angle, end_angle]
|
|
547
|
+
* Output uses the same encoded segment format.
|
|
548
|
+
*/
|
|
549
|
+
export function offset_polycurve(segment_data: Float64Array, distance: number, nx: number, ny: number, nz: number, join_style_code: number): Float64Array;
|
|
550
|
+
|
|
551
|
+
/**
|
|
552
|
+
* Offset a polycurve and return every exact result curve.
|
|
553
|
+
* Output format: [curve_count, curve_len, curve_data..., curve_len, curve_data..., ...]
|
|
554
|
+
*/
|
|
555
|
+
export function offset_polycurve_all(segment_data: Float64Array, distance: number, nx: number, ny: number, nz: number, join_style_code: number): Float64Array;
|
|
556
|
+
|
|
530
557
|
/**
|
|
531
558
|
* Offset a polyline by a distance in a given plane.
|
|
532
559
|
* If nx=ny=nz=0, the plane normal is auto-detected.
|
|
@@ -617,6 +644,15 @@ export function tessellate_nurbs_surface(data: Float64Array): Float64Array;
|
|
|
617
644
|
*/
|
|
618
645
|
export function test_wasm(): string;
|
|
619
646
|
|
|
647
|
+
/**
|
|
648
|
+
* Thicken an open polycurve into a single closed loop.
|
|
649
|
+
* Input format: [segment_count, type, ...data, ...]
|
|
650
|
+
* type 0 = Line: [sx,sy,sz, ex,ey,ez]
|
|
651
|
+
* type 1 = Arc: [cx,cy,cz, nx,ny,nz, radius, start_angle, end_angle]
|
|
652
|
+
* Output uses the same encoded segment format.
|
|
653
|
+
*/
|
|
654
|
+
export function thicken_polycurve(segment_data: Float64Array, distance: number, both_sides: boolean, nx: number, ny: number, nz: number, join_style_code: number): Float64Array;
|
|
655
|
+
|
|
620
656
|
/**
|
|
621
657
|
* Get version info
|
|
622
658
|
*/
|
|
@@ -707,6 +743,7 @@ export interface InitOutput {
|
|
|
707
743
|
readonly mesh_merge: (a: number, b: number) => [number, number];
|
|
708
744
|
readonly mesh_mesh_intersect: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
709
745
|
readonly mesh_patch_from_points: (a: number, b: number) => [number, number];
|
|
746
|
+
readonly mesh_planar_face_evaluate: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
710
747
|
readonly mesh_plane_intersect: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
711
748
|
readonly mesh_prepare_boolean_cutter_curve: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
712
749
|
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];
|
|
@@ -723,8 +760,11 @@ export interface InitOutput {
|
|
|
723
760
|
readonly nurbs_curve_curve_intersect: (a: number, b: number, c: number, d: number) => [number, number];
|
|
724
761
|
readonly nurbs_curve_plane_intersect: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
725
762
|
readonly nurbs_surface_evaluate: (a: number, b: number, c: number, d: number) => [number, number];
|
|
763
|
+
readonly nurbs_surface_normal: (a: number, b: number, c: number, d: number) => [number, number];
|
|
726
764
|
readonly nurbs_surface_plane_intersect: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
727
765
|
readonly nurbs_surface_surface_intersect: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
766
|
+
readonly offset_polycurve: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
767
|
+
readonly offset_polycurve_all: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
728
768
|
readonly offset_polyline_curve: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
729
769
|
readonly polycurve_to_nurbs: (a: number, b: number) => [number, number];
|
|
730
770
|
readonly polyline_length: (a: number, b: number) => number;
|
|
@@ -737,6 +777,7 @@ export interface InitOutput {
|
|
|
737
777
|
readonly sweep_polylines: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
738
778
|
readonly tessellate_nurbs_surface: (a: number, b: number) => [number, number];
|
|
739
779
|
readonly test_wasm: () => [number, number];
|
|
780
|
+
readonly thicken_polycurve: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
740
781
|
readonly version: () => [number, number];
|
|
741
782
|
readonly ray_distance_to_point: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
|
|
742
783
|
readonly __wbindgen_externrefs: WebAssembly.Table;
|
package/src/wasm-bindings.js
CHANGED
|
@@ -1629,6 +1629,26 @@ export function mesh_patch_from_points(coords) {
|
|
|
1629
1629
|
return v2;
|
|
1630
1630
|
}
|
|
1631
1631
|
|
|
1632
|
+
/**
|
|
1633
|
+
* Evaluate a point on a planar mesh-face surface at normalized parameters.
|
|
1634
|
+
* Parameters map across the face group's local 2D bounds.
|
|
1635
|
+
* Returns [x, y, z] or [NaN, NaN, NaN] when the query falls outside the face region.
|
|
1636
|
+
* @param {number} vertex_count
|
|
1637
|
+
* @param {Float64Array} buffer
|
|
1638
|
+
* @param {number} face_index
|
|
1639
|
+
* @param {number} u
|
|
1640
|
+
* @param {number} v
|
|
1641
|
+
* @returns {Float64Array}
|
|
1642
|
+
*/
|
|
1643
|
+
export function mesh_planar_face_evaluate(vertex_count, buffer, face_index, u, v) {
|
|
1644
|
+
const ptr0 = passArrayF64ToWasm0(buffer, wasm.__wbindgen_malloc);
|
|
1645
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1646
|
+
const ret = wasm.mesh_planar_face_evaluate(vertex_count, ptr0, len0, face_index, u, v);
|
|
1647
|
+
var v2 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
|
|
1648
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
|
|
1649
|
+
return v2;
|
|
1650
|
+
}
|
|
1651
|
+
|
|
1632
1652
|
/**
|
|
1633
1653
|
* Intersect a mesh with a plane, returning polyline points.
|
|
1634
1654
|
* Input: vertex_count, mesh_buffer..., nx, ny, nz, d
|
|
@@ -1933,8 +1953,7 @@ export function nurbs_curve_plane_intersect(data, nx, ny, nz, d) {
|
|
|
1933
1953
|
}
|
|
1934
1954
|
|
|
1935
1955
|
/**
|
|
1936
|
-
* Evaluate a NURBS surface at (u, v)
|
|
1937
|
-
* Input format: same as tessellate but last 2 values are u, v instead of u_segs, v_segs
|
|
1956
|
+
* Evaluate a NURBS surface at normalized parameters (u, v) in [0,1].
|
|
1938
1957
|
* Returns [x, y, z]
|
|
1939
1958
|
* @param {Float64Array} data
|
|
1940
1959
|
* @param {number} u
|
|
@@ -1950,6 +1969,23 @@ export function nurbs_surface_evaluate(data, u, v) {
|
|
|
1950
1969
|
return v2;
|
|
1951
1970
|
}
|
|
1952
1971
|
|
|
1972
|
+
/**
|
|
1973
|
+
* Evaluate a NURBS surface unit normal at normalized parameters (u, v) in [0,1].
|
|
1974
|
+
* Returns [x, y, z]
|
|
1975
|
+
* @param {Float64Array} data
|
|
1976
|
+
* @param {number} u
|
|
1977
|
+
* @param {number} v
|
|
1978
|
+
* @returns {Float64Array}
|
|
1979
|
+
*/
|
|
1980
|
+
export function nurbs_surface_normal(data, u, v) {
|
|
1981
|
+
const ptr0 = passArrayF64ToWasm0(data, wasm.__wbindgen_malloc);
|
|
1982
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1983
|
+
const ret = wasm.nurbs_surface_normal(ptr0, len0, u, v);
|
|
1984
|
+
var v2 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
|
|
1985
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
|
|
1986
|
+
return v2;
|
|
1987
|
+
}
|
|
1988
|
+
|
|
1953
1989
|
/**
|
|
1954
1990
|
* Intersect a NURBS surface with a plane.
|
|
1955
1991
|
* Input: same surface format as tessellate_nurbs_surface, then plane (nx,ny,nz,d) appended.
|
|
@@ -1990,6 +2026,49 @@ export function nurbs_surface_surface_intersect(data_a, data_b, tess) {
|
|
|
1990
2026
|
return v3;
|
|
1991
2027
|
}
|
|
1992
2028
|
|
|
2029
|
+
/**
|
|
2030
|
+
* Offset a polycurve made of line and arc segments.
|
|
2031
|
+
* Input format: [segment_count, type, ...data, ...]
|
|
2032
|
+
* type 0 = Line: [sx,sy,sz, ex,ey,ez]
|
|
2033
|
+
* type 1 = Arc: [cx,cy,cz, nx,ny,nz, radius, start_angle, end_angle]
|
|
2034
|
+
* Output uses the same encoded segment format.
|
|
2035
|
+
* @param {Float64Array} segment_data
|
|
2036
|
+
* @param {number} distance
|
|
2037
|
+
* @param {number} nx
|
|
2038
|
+
* @param {number} ny
|
|
2039
|
+
* @param {number} nz
|
|
2040
|
+
* @param {number} join_style_code
|
|
2041
|
+
* @returns {Float64Array}
|
|
2042
|
+
*/
|
|
2043
|
+
export function offset_polycurve(segment_data, distance, nx, ny, nz, join_style_code) {
|
|
2044
|
+
const ptr0 = passArrayF64ToWasm0(segment_data, wasm.__wbindgen_malloc);
|
|
2045
|
+
const len0 = WASM_VECTOR_LEN;
|
|
2046
|
+
const ret = wasm.offset_polycurve(ptr0, len0, distance, nx, ny, nz, join_style_code);
|
|
2047
|
+
var v2 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
|
|
2048
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
|
|
2049
|
+
return v2;
|
|
2050
|
+
}
|
|
2051
|
+
|
|
2052
|
+
/**
|
|
2053
|
+
* Offset a polycurve and return every exact result curve.
|
|
2054
|
+
* Output format: [curve_count, curve_len, curve_data..., curve_len, curve_data..., ...]
|
|
2055
|
+
* @param {Float64Array} segment_data
|
|
2056
|
+
* @param {number} distance
|
|
2057
|
+
* @param {number} nx
|
|
2058
|
+
* @param {number} ny
|
|
2059
|
+
* @param {number} nz
|
|
2060
|
+
* @param {number} join_style_code
|
|
2061
|
+
* @returns {Float64Array}
|
|
2062
|
+
*/
|
|
2063
|
+
export function offset_polycurve_all(segment_data, distance, nx, ny, nz, join_style_code) {
|
|
2064
|
+
const ptr0 = passArrayF64ToWasm0(segment_data, wasm.__wbindgen_malloc);
|
|
2065
|
+
const len0 = WASM_VECTOR_LEN;
|
|
2066
|
+
const ret = wasm.offset_polycurve_all(ptr0, len0, distance, nx, ny, nz, join_style_code);
|
|
2067
|
+
var v2 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
|
|
2068
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
|
|
2069
|
+
return v2;
|
|
2070
|
+
}
|
|
2071
|
+
|
|
1993
2072
|
/**
|
|
1994
2073
|
* Offset a polyline by a distance in a given plane.
|
|
1995
2074
|
* If nx=ny=nz=0, the plane normal is auto-detected.
|
|
@@ -2232,6 +2311,30 @@ export function test_wasm() {
|
|
|
2232
2311
|
}
|
|
2233
2312
|
}
|
|
2234
2313
|
|
|
2314
|
+
/**
|
|
2315
|
+
* Thicken an open polycurve into a single closed loop.
|
|
2316
|
+
* Input format: [segment_count, type, ...data, ...]
|
|
2317
|
+
* type 0 = Line: [sx,sy,sz, ex,ey,ez]
|
|
2318
|
+
* type 1 = Arc: [cx,cy,cz, nx,ny,nz, radius, start_angle, end_angle]
|
|
2319
|
+
* Output uses the same encoded segment format.
|
|
2320
|
+
* @param {Float64Array} segment_data
|
|
2321
|
+
* @param {number} distance
|
|
2322
|
+
* @param {boolean} both_sides
|
|
2323
|
+
* @param {number} nx
|
|
2324
|
+
* @param {number} ny
|
|
2325
|
+
* @param {number} nz
|
|
2326
|
+
* @param {number} join_style_code
|
|
2327
|
+
* @returns {Float64Array}
|
|
2328
|
+
*/
|
|
2329
|
+
export function thicken_polycurve(segment_data, distance, both_sides, nx, ny, nz, join_style_code) {
|
|
2330
|
+
const ptr0 = passArrayF64ToWasm0(segment_data, wasm.__wbindgen_malloc);
|
|
2331
|
+
const len0 = WASM_VECTOR_LEN;
|
|
2332
|
+
const ret = wasm.thicken_polycurve(ptr0, len0, distance, both_sides, nx, ny, nz, join_style_code);
|
|
2333
|
+
var v2 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
|
|
2334
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
|
|
2335
|
+
return v2;
|
|
2336
|
+
}
|
|
2337
|
+
|
|
2235
2338
|
/**
|
|
2236
2339
|
* Get version info
|
|
2237
2340
|
* @returns {string}
|