okgeometry-api 1.25.0 → 1.26.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/Brep.d.ts +27 -0
- package/dist/Brep.d.ts.map +1 -1
- package/dist/Brep.js +29 -0
- package/dist/Brep.js.map +1 -1
- package/dist/NurbsCurve.d.ts +19 -0
- package/dist/NurbsCurve.d.ts.map +1 -1
- package/dist/NurbsCurve.js +26 -0
- package/dist/NurbsCurve.js.map +1 -1
- package/dist/NurbsSurface.d.ts +25 -0
- package/dist/NurbsSurface.d.ts.map +1 -1
- package/dist/NurbsSurface.js +27 -0
- package/dist/NurbsSurface.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/dist/wasm-bindings.d.ts +45 -0
- package/dist/wasm-bindings.d.ts.map +1 -1
- package/dist/wasm-bindings.js +73 -0
- package/dist/wasm-bindings.js.map +1 -1
- package/package.json +3 -2
- package/src/Brep.ts +56 -0
- package/src/NurbsCurve.ts +32 -0
- package/src/NurbsSurface.ts +41 -0
- package/src/wasm-base64.ts +1 -1
- package/src/wasm-bindings.d.ts +34 -0
- package/src/wasm-bindings.js +75 -0
package/src/wasm-bindings.d.ts
CHANGED
|
@@ -230,6 +230,16 @@ export function brep_mesh_intersection_curves_op(brep_json: string, vertex_count
|
|
|
230
230
|
*/
|
|
231
231
|
export function brep_primitive(kind: string, params: Float64Array): string;
|
|
232
232
|
|
|
233
|
+
/**
|
|
234
|
+
* Rebuild every NURBS face surface of a BREP with the given degrees and
|
|
235
|
+
* control counts, preserving each face's parameter domain so trims and
|
|
236
|
+
* edges stay coherent. Each face replacement is gated by `tolerance`
|
|
237
|
+
* (non-positive = accept all fits); planar faces pass through untouched.
|
|
238
|
+
* Returns JSON `{"maxDeviation": .., "rebuiltFaces": .., "skippedFaces": ..,
|
|
239
|
+
* "planarFaces": .., "brep": {...}}` or `{"error": "..."}`.
|
|
240
|
+
*/
|
|
241
|
+
export function brep_rebuild_surfaces(json: string, degree_u: number, degree_v: number, count_u: number, count_v: number, tolerance: number): string;
|
|
242
|
+
|
|
233
243
|
/**
|
|
234
244
|
* Revolve a profile curve into a BREP. Returns JSON.
|
|
235
245
|
*/
|
|
@@ -1174,6 +1184,17 @@ export function nurbs_curve_offset(data: Float64Array, distance: number, nx: num
|
|
|
1174
1184
|
*/
|
|
1175
1185
|
export function nurbs_curve_plane_intersect(data: Float64Array, nx: number, ny: number, nz: number, d: number): Float64Array;
|
|
1176
1186
|
|
|
1187
|
+
/**
|
|
1188
|
+
* Rebuild a NURBS curve with the given degree and control point count via
|
|
1189
|
+
* global least-squares fitting (Rhino-style Rebuild). Geometrically closed
|
|
1190
|
+
* inputs produce a periodic (seamlessly closed) result; output is always
|
|
1191
|
+
* non-rational. Input uses the standard curve buffer format
|
|
1192
|
+
* [degree, n, cps(xyz)..., weights..., knots...]; output prepends the fit
|
|
1193
|
+
* report: [maxDeviation, avgDeviation, degree, n, cps..., weights...,
|
|
1194
|
+
* knots...]. Returns an empty buffer on failure (see `geometry_last_error`).
|
|
1195
|
+
*/
|
|
1196
|
+
export function nurbs_curve_rebuild(data: Float64Array, degree: number, count: number): Float64Array;
|
|
1197
|
+
|
|
1177
1198
|
/**
|
|
1178
1199
|
* Split a NURBS curve at multiple normalized parameters t ∈ [0, 1].
|
|
1179
1200
|
*
|
|
@@ -1292,6 +1313,16 @@ export function nurbs_surface_plane_intersect(surface_data: Float64Array, nx: nu
|
|
|
1292
1313
|
*/
|
|
1293
1314
|
export function nurbs_surface_primitive(kind: string, params: Float64Array): Float64Array;
|
|
1294
1315
|
|
|
1316
|
+
/**
|
|
1317
|
+
* Rebuild a NURBS surface with the given degrees and control counts via the
|
|
1318
|
+
* two-stage least-squares scheme. Closed directions stay closed (periodic
|
|
1319
|
+
* basis); poles stay exactly degenerate; output is non-rational. Input uses
|
|
1320
|
+
* the standard surface buffer format; output prepends the fit report:
|
|
1321
|
+
* [maxDeviation, avgDeviation, ...surface buffer]. Returns an empty buffer
|
|
1322
|
+
* on failure (see `geometry_last_error`).
|
|
1323
|
+
*/
|
|
1324
|
+
export function nurbs_surface_rebuild(data: Float64Array, degree_u: number, degree_v: number, count_u: number, count_v: number): Float64Array;
|
|
1325
|
+
|
|
1295
1326
|
/**
|
|
1296
1327
|
* Exact surface of revolution from a profile curve (A8.1).
|
|
1297
1328
|
*/
|
|
@@ -1603,6 +1634,7 @@ export interface InitOutput {
|
|
|
1603
1634
|
readonly brep_loft_curves: (a: number, b: number) => [number, number];
|
|
1604
1635
|
readonly brep_mesh_intersection_curves_op: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
1605
1636
|
readonly brep_primitive: (a: number, b: number, c: number, d: number) => [number, number];
|
|
1637
|
+
readonly brep_rebuild_surfaces: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
1606
1638
|
readonly brep_revolve_curve: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number];
|
|
1607
1639
|
readonly brep_sheet_from_surface: (a: number, b: number) => [number, number];
|
|
1608
1640
|
readonly brep_split_sheet_by_sheet_op: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
@@ -1741,6 +1773,7 @@ export interface InitOutput {
|
|
|
1741
1773
|
readonly nurbs_curve_curve_intersect_params: (a: number, b: number, c: number, d: number) => [number, number];
|
|
1742
1774
|
readonly nurbs_curve_offset: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
1743
1775
|
readonly nurbs_curve_plane_intersect: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
1776
|
+
readonly nurbs_curve_rebuild: (a: number, b: number, c: number, d: number) => [number, number];
|
|
1744
1777
|
readonly nurbs_curve_split_at_params: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
1745
1778
|
readonly nurbs_curve_surface_intersect_exact: (a: number, b: number, c: number, d: number) => [number, number];
|
|
1746
1779
|
readonly nurbs_surface_closest_point: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
@@ -1756,6 +1789,7 @@ export interface InitOutput {
|
|
|
1756
1789
|
readonly nurbs_surface_offset: (a: number, b: number, c: number, d: number) => [number, number];
|
|
1757
1790
|
readonly nurbs_surface_plane_intersect: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
1758
1791
|
readonly nurbs_surface_primitive: (a: number, b: number, c: number, d: number) => [number, number];
|
|
1792
|
+
readonly nurbs_surface_rebuild: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
1759
1793
|
readonly nurbs_surface_revolve: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number];
|
|
1760
1794
|
readonly nurbs_surface_ruled: (a: number, b: number, c: number, d: number) => [number, number];
|
|
1761
1795
|
readonly nurbs_surface_split: (a: number, b: number, c: number, d: number) => [number, number];
|
package/src/wasm-bindings.js
CHANGED
|
@@ -569,6 +569,36 @@ export function brep_primitive(kind, params) {
|
|
|
569
569
|
}
|
|
570
570
|
}
|
|
571
571
|
|
|
572
|
+
/**
|
|
573
|
+
* Rebuild every NURBS face surface of a BREP with the given degrees and
|
|
574
|
+
* control counts, preserving each face's parameter domain so trims and
|
|
575
|
+
* edges stay coherent. Each face replacement is gated by `tolerance`
|
|
576
|
+
* (non-positive = accept all fits); planar faces pass through untouched.
|
|
577
|
+
* Returns JSON `{"maxDeviation": .., "rebuiltFaces": .., "skippedFaces": ..,
|
|
578
|
+
* "planarFaces": .., "brep": {...}}` or `{"error": "..."}`.
|
|
579
|
+
* @param {string} json
|
|
580
|
+
* @param {number} degree_u
|
|
581
|
+
* @param {number} degree_v
|
|
582
|
+
* @param {number} count_u
|
|
583
|
+
* @param {number} count_v
|
|
584
|
+
* @param {number} tolerance
|
|
585
|
+
* @returns {string}
|
|
586
|
+
*/
|
|
587
|
+
export function brep_rebuild_surfaces(json, degree_u, degree_v, count_u, count_v, tolerance) {
|
|
588
|
+
let deferred2_0;
|
|
589
|
+
let deferred2_1;
|
|
590
|
+
try {
|
|
591
|
+
const ptr0 = passStringToWasm0(json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
592
|
+
const len0 = WASM_VECTOR_LEN;
|
|
593
|
+
const ret = wasm.brep_rebuild_surfaces(ptr0, len0, degree_u, degree_v, count_u, count_v, tolerance);
|
|
594
|
+
deferred2_0 = ret[0];
|
|
595
|
+
deferred2_1 = ret[1];
|
|
596
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
597
|
+
} finally {
|
|
598
|
+
wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
|
|
572
602
|
/**
|
|
573
603
|
* Revolve a profile curve into a BREP. Returns JSON.
|
|
574
604
|
* @param {Float64Array} curve_data
|
|
@@ -3517,6 +3547,28 @@ export function nurbs_curve_plane_intersect(data, nx, ny, nz, d) {
|
|
|
3517
3547
|
return v2;
|
|
3518
3548
|
}
|
|
3519
3549
|
|
|
3550
|
+
/**
|
|
3551
|
+
* Rebuild a NURBS curve with the given degree and control point count via
|
|
3552
|
+
* global least-squares fitting (Rhino-style Rebuild). Geometrically closed
|
|
3553
|
+
* inputs produce a periodic (seamlessly closed) result; output is always
|
|
3554
|
+
* non-rational. Input uses the standard curve buffer format
|
|
3555
|
+
* [degree, n, cps(xyz)..., weights..., knots...]; output prepends the fit
|
|
3556
|
+
* report: [maxDeviation, avgDeviation, degree, n, cps..., weights...,
|
|
3557
|
+
* knots...]. Returns an empty buffer on failure (see `geometry_last_error`).
|
|
3558
|
+
* @param {Float64Array} data
|
|
3559
|
+
* @param {number} degree
|
|
3560
|
+
* @param {number} count
|
|
3561
|
+
* @returns {Float64Array}
|
|
3562
|
+
*/
|
|
3563
|
+
export function nurbs_curve_rebuild(data, degree, count) {
|
|
3564
|
+
const ptr0 = passArrayF64ToWasm0(data, wasm.__wbindgen_malloc);
|
|
3565
|
+
const len0 = WASM_VECTOR_LEN;
|
|
3566
|
+
const ret = wasm.nurbs_curve_rebuild(ptr0, len0, degree, count);
|
|
3567
|
+
var v2 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
|
|
3568
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
|
|
3569
|
+
return v2;
|
|
3570
|
+
}
|
|
3571
|
+
|
|
3520
3572
|
/**
|
|
3521
3573
|
* Split a NURBS curve at multiple normalized parameters t ∈ [0, 1].
|
|
3522
3574
|
*
|
|
@@ -3812,6 +3864,29 @@ export function nurbs_surface_primitive(kind, params) {
|
|
|
3812
3864
|
return v3;
|
|
3813
3865
|
}
|
|
3814
3866
|
|
|
3867
|
+
/**
|
|
3868
|
+
* Rebuild a NURBS surface with the given degrees and control counts via the
|
|
3869
|
+
* two-stage least-squares scheme. Closed directions stay closed (periodic
|
|
3870
|
+
* basis); poles stay exactly degenerate; output is non-rational. Input uses
|
|
3871
|
+
* the standard surface buffer format; output prepends the fit report:
|
|
3872
|
+
* [maxDeviation, avgDeviation, ...surface buffer]. Returns an empty buffer
|
|
3873
|
+
* on failure (see `geometry_last_error`).
|
|
3874
|
+
* @param {Float64Array} data
|
|
3875
|
+
* @param {number} degree_u
|
|
3876
|
+
* @param {number} degree_v
|
|
3877
|
+
* @param {number} count_u
|
|
3878
|
+
* @param {number} count_v
|
|
3879
|
+
* @returns {Float64Array}
|
|
3880
|
+
*/
|
|
3881
|
+
export function nurbs_surface_rebuild(data, degree_u, degree_v, count_u, count_v) {
|
|
3882
|
+
const ptr0 = passArrayF64ToWasm0(data, wasm.__wbindgen_malloc);
|
|
3883
|
+
const len0 = WASM_VECTOR_LEN;
|
|
3884
|
+
const ret = wasm.nurbs_surface_rebuild(ptr0, len0, degree_u, degree_v, count_u, count_v);
|
|
3885
|
+
var v2 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
|
|
3886
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
|
|
3887
|
+
return v2;
|
|
3888
|
+
}
|
|
3889
|
+
|
|
3815
3890
|
/**
|
|
3816
3891
|
* Exact surface of revolution from a profile curve (A8.1).
|
|
3817
3892
|
* @param {Float64Array} curve_data
|