okgeometry-api 1.17.1 → 1.18.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.
@@ -1308,6 +1308,89 @@ export function ray_point_at(ox: number, oy: number, oz: number, dx: number, dy:
1308
1308
  */
1309
1309
  export function sample_nurbs_curve(data: Float64Array, samples: number): Float64Array;
1310
1310
 
1311
+ /**
1312
+ * Begin a stroke. `brush` and `falloff` are stable enum codes
1313
+ * (see okgeometry-api SculptBrush / SculptFalloff). Flags: bit 0 = invert,
1314
+ * bit 1 = front faces only. `symmetry`: bit 0 = X, bit 1 = Y, bit 2 = Z.
1315
+ */
1316
+ export function sculpt_session_begin_stroke(id: number, brush: number, radius: number, strength: number, falloff: number, flags: number, plane_offset: number, symmetry: number): number;
1317
+
1318
+ /**
1319
+ * Create a sculpt session from a standard mesh buffer
1320
+ * `[vertexCount, x,y,z..., i0,i1,i2...]`. Returns the session id, or 0 on
1321
+ * invalid input.
1322
+ */
1323
+ export function sculpt_session_create(vertex_count: number, buffer: Float64Array): number;
1324
+
1325
+ /**
1326
+ * Apply one dab. Returns the render patch `[index, x,y,z, nx,ny,nz]` per
1327
+ * changed vertex (f32), empty when nothing changed.
1328
+ */
1329
+ export function sculpt_session_dab(id: number, cx: number, cy: number, cz: number, vx: number, vy: number, vz: number, dragx: number, dragy: number, dragz: number, pressure: number): Float32Array;
1330
+
1331
+ /**
1332
+ * Finish the active stroke (pushes one undo entry).
1333
+ */
1334
+ export function sculpt_session_end_stroke(id: number): void;
1335
+
1336
+ /**
1337
+ * Session stats: `[vertexCount, triangleCount, averageEdgeLength, undoDepth,
1338
+ * redoDepth]`; empty if the session does not exist.
1339
+ */
1340
+ export function sculpt_session_info(id: number): Float64Array;
1341
+
1342
+ /**
1343
+ * Fill the sculpt mask with one value (0 clears). Undoable; returns the
1344
+ * render patch (stride 8) of changed vertices.
1345
+ */
1346
+ export function sculpt_session_mask_fill(id: number, value: number): Float32Array;
1347
+
1348
+ /**
1349
+ * Invert the sculpt mask. Undoable; returns the render patch (stride 8).
1350
+ */
1351
+ export function sculpt_session_mask_invert(id: number): Float32Array;
1352
+
1353
+ /**
1354
+ * Current mesh as a standard f64 buffer (for committing back to a document).
1355
+ */
1356
+ export function sculpt_session_mesh_buffer(id: number): Float64Array;
1357
+
1358
+ /**
1359
+ * Raycast the CURRENT (deforming) surface. Returns
1360
+ * `[px,py,pz, nx,ny,nz, distance, triangleIndex]` or empty on miss.
1361
+ */
1362
+ export function sculpt_session_raycast(id: number, ox: number, oy: number, oz: number, dx: number, dy: number, dz: number): Float64Array;
1363
+
1364
+ /**
1365
+ * Redo the last undone stroke. Same contract as `sculpt_session_undo`.
1366
+ */
1367
+ export function sculpt_session_redo(id: number): Float32Array;
1368
+
1369
+ /**
1370
+ * Release a sculpt session and free its memory.
1371
+ */
1372
+ export function sculpt_session_release(id: number): void;
1373
+
1374
+ /**
1375
+ * Full render snapshot as f32:
1376
+ * `[vertexCount, triangleCount, positions..., normals..., mask..., indices...]`.
1377
+ */
1378
+ export function sculpt_session_render_data(id: number): Float32Array;
1379
+
1380
+ /**
1381
+ * Uniform 1:4 shape-preserving subdivision (adds sculptable detail).
1382
+ * Clears session undo history. Returns 1 on success, 0 when refused
1383
+ * (session missing or the result would exceed the safety cap). Callers must
1384
+ * refetch `sculpt_session_render_data` afterwards.
1385
+ */
1386
+ export function sculpt_session_subdivide(id: number): number;
1387
+
1388
+ /**
1389
+ * Undo the last stroke. Returns the render patch restoring the previous
1390
+ * positions; empty when there is nothing to undo.
1391
+ */
1392
+ export function sculpt_session_undo(id: number): Float32Array;
1393
+
1311
1394
  /**
1312
1395
  * Sweep a profile curve along a path curve using exact curve evaluation.
1313
1396
  * profile_data/path_data: encoded curve (see decode_curve)
@@ -1536,6 +1619,20 @@ export interface InitOutput {
1536
1619
  readonly ray_closest_point_parameter: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => number;
1537
1620
  readonly ray_point_at: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
1538
1621
  readonly sample_nurbs_curve: (a: number, b: number, c: number) => [number, number];
1622
+ readonly sculpt_session_begin_stroke: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
1623
+ readonly sculpt_session_create: (a: number, b: number, c: number) => number;
1624
+ readonly sculpt_session_dab: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => [number, number];
1625
+ readonly sculpt_session_end_stroke: (a: number) => void;
1626
+ readonly sculpt_session_info: (a: number) => [number, number];
1627
+ readonly sculpt_session_mask_fill: (a: number, b: number) => [number, number];
1628
+ readonly sculpt_session_mask_invert: (a: number) => [number, number];
1629
+ readonly sculpt_session_mesh_buffer: (a: number) => [number, number];
1630
+ readonly sculpt_session_raycast: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
1631
+ readonly sculpt_session_redo: (a: number) => [number, number];
1632
+ readonly sculpt_session_release: (a: number) => void;
1633
+ readonly sculpt_session_render_data: (a: number) => [number, number];
1634
+ readonly sculpt_session_subdivide: (a: number) => number;
1635
+ readonly sculpt_session_undo: (a: number) => [number, number];
1539
1636
  readonly sweep_curves: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
1540
1637
  readonly sweep_polylines: (a: number, b: number, c: number, d: number, e: number) => [number, number];
1541
1638
  readonly tessellate_nurbs_surface: (a: number, b: number) => [number, number];
@@ -3886,6 +3886,200 @@ export function sample_nurbs_curve(data, samples) {
3886
3886
  return v2;
3887
3887
  }
3888
3888
 
3889
+ /**
3890
+ * Begin a stroke. `brush` and `falloff` are stable enum codes
3891
+ * (see okgeometry-api SculptBrush / SculptFalloff). Flags: bit 0 = invert,
3892
+ * bit 1 = front faces only. `symmetry`: bit 0 = X, bit 1 = Y, bit 2 = Z.
3893
+ * @param {number} id
3894
+ * @param {number} brush
3895
+ * @param {number} radius
3896
+ * @param {number} strength
3897
+ * @param {number} falloff
3898
+ * @param {number} flags
3899
+ * @param {number} plane_offset
3900
+ * @param {number} symmetry
3901
+ * @returns {number}
3902
+ */
3903
+ export function sculpt_session_begin_stroke(id, brush, radius, strength, falloff, flags, plane_offset, symmetry) {
3904
+ const ret = wasm.sculpt_session_begin_stroke(id, brush, radius, strength, falloff, flags, plane_offset, symmetry);
3905
+ return ret >>> 0;
3906
+ }
3907
+
3908
+ /**
3909
+ * Create a sculpt session from a standard mesh buffer
3910
+ * `[vertexCount, x,y,z..., i0,i1,i2...]`. Returns the session id, or 0 on
3911
+ * invalid input.
3912
+ * @param {number} vertex_count
3913
+ * @param {Float64Array} buffer
3914
+ * @returns {number}
3915
+ */
3916
+ export function sculpt_session_create(vertex_count, buffer) {
3917
+ const ptr0 = passArrayF64ToWasm0(buffer, wasm.__wbindgen_malloc);
3918
+ const len0 = WASM_VECTOR_LEN;
3919
+ const ret = wasm.sculpt_session_create(vertex_count, ptr0, len0);
3920
+ return ret >>> 0;
3921
+ }
3922
+
3923
+ /**
3924
+ * Apply one dab. Returns the render patch `[index, x,y,z, nx,ny,nz]` per
3925
+ * changed vertex (f32), empty when nothing changed.
3926
+ * @param {number} id
3927
+ * @param {number} cx
3928
+ * @param {number} cy
3929
+ * @param {number} cz
3930
+ * @param {number} vx
3931
+ * @param {number} vy
3932
+ * @param {number} vz
3933
+ * @param {number} dragx
3934
+ * @param {number} dragy
3935
+ * @param {number} dragz
3936
+ * @param {number} pressure
3937
+ * @returns {Float32Array}
3938
+ */
3939
+ export function sculpt_session_dab(id, cx, cy, cz, vx, vy, vz, dragx, dragy, dragz, pressure) {
3940
+ const ret = wasm.sculpt_session_dab(id, cx, cy, cz, vx, vy, vz, dragx, dragy, dragz, pressure);
3941
+ var v1 = getArrayF32FromWasm0(ret[0], ret[1]).slice();
3942
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
3943
+ return v1;
3944
+ }
3945
+
3946
+ /**
3947
+ * Finish the active stroke (pushes one undo entry).
3948
+ * @param {number} id
3949
+ */
3950
+ export function sculpt_session_end_stroke(id) {
3951
+ wasm.sculpt_session_end_stroke(id);
3952
+ }
3953
+
3954
+ /**
3955
+ * Session stats: `[vertexCount, triangleCount, averageEdgeLength, undoDepth,
3956
+ * redoDepth]`; empty if the session does not exist.
3957
+ * @param {number} id
3958
+ * @returns {Float64Array}
3959
+ */
3960
+ export function sculpt_session_info(id) {
3961
+ const ret = wasm.sculpt_session_info(id);
3962
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
3963
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
3964
+ return v1;
3965
+ }
3966
+
3967
+ /**
3968
+ * Fill the sculpt mask with one value (0 clears). Undoable; returns the
3969
+ * render patch (stride 8) of changed vertices.
3970
+ * @param {number} id
3971
+ * @param {number} value
3972
+ * @returns {Float32Array}
3973
+ */
3974
+ export function sculpt_session_mask_fill(id, value) {
3975
+ const ret = wasm.sculpt_session_mask_fill(id, value);
3976
+ var v1 = getArrayF32FromWasm0(ret[0], ret[1]).slice();
3977
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
3978
+ return v1;
3979
+ }
3980
+
3981
+ /**
3982
+ * Invert the sculpt mask. Undoable; returns the render patch (stride 8).
3983
+ * @param {number} id
3984
+ * @returns {Float32Array}
3985
+ */
3986
+ export function sculpt_session_mask_invert(id) {
3987
+ const ret = wasm.sculpt_session_mask_invert(id);
3988
+ var v1 = getArrayF32FromWasm0(ret[0], ret[1]).slice();
3989
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
3990
+ return v1;
3991
+ }
3992
+
3993
+ /**
3994
+ * Current mesh as a standard f64 buffer (for committing back to a document).
3995
+ * @param {number} id
3996
+ * @returns {Float64Array}
3997
+ */
3998
+ export function sculpt_session_mesh_buffer(id) {
3999
+ const ret = wasm.sculpt_session_mesh_buffer(id);
4000
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
4001
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
4002
+ return v1;
4003
+ }
4004
+
4005
+ /**
4006
+ * Raycast the CURRENT (deforming) surface. Returns
4007
+ * `[px,py,pz, nx,ny,nz, distance, triangleIndex]` or empty on miss.
4008
+ * @param {number} id
4009
+ * @param {number} ox
4010
+ * @param {number} oy
4011
+ * @param {number} oz
4012
+ * @param {number} dx
4013
+ * @param {number} dy
4014
+ * @param {number} dz
4015
+ * @returns {Float64Array}
4016
+ */
4017
+ export function sculpt_session_raycast(id, ox, oy, oz, dx, dy, dz) {
4018
+ const ret = wasm.sculpt_session_raycast(id, ox, oy, oz, dx, dy, dz);
4019
+ var v1 = getArrayF64FromWasm0(ret[0], ret[1]).slice();
4020
+ wasm.__wbindgen_free(ret[0], ret[1] * 8, 8);
4021
+ return v1;
4022
+ }
4023
+
4024
+ /**
4025
+ * Redo the last undone stroke. Same contract as `sculpt_session_undo`.
4026
+ * @param {number} id
4027
+ * @returns {Float32Array}
4028
+ */
4029
+ export function sculpt_session_redo(id) {
4030
+ const ret = wasm.sculpt_session_redo(id);
4031
+ var v1 = getArrayF32FromWasm0(ret[0], ret[1]).slice();
4032
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
4033
+ return v1;
4034
+ }
4035
+
4036
+ /**
4037
+ * Release a sculpt session and free its memory.
4038
+ * @param {number} id
4039
+ */
4040
+ export function sculpt_session_release(id) {
4041
+ wasm.sculpt_session_release(id);
4042
+ }
4043
+
4044
+ /**
4045
+ * Full render snapshot as f32:
4046
+ * `[vertexCount, triangleCount, positions..., normals..., mask..., indices...]`.
4047
+ * @param {number} id
4048
+ * @returns {Float32Array}
4049
+ */
4050
+ export function sculpt_session_render_data(id) {
4051
+ const ret = wasm.sculpt_session_render_data(id);
4052
+ var v1 = getArrayF32FromWasm0(ret[0], ret[1]).slice();
4053
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
4054
+ return v1;
4055
+ }
4056
+
4057
+ /**
4058
+ * Uniform 1:4 shape-preserving subdivision (adds sculptable detail).
4059
+ * Clears session undo history. Returns 1 on success, 0 when refused
4060
+ * (session missing or the result would exceed the safety cap). Callers must
4061
+ * refetch `sculpt_session_render_data` afterwards.
4062
+ * @param {number} id
4063
+ * @returns {number}
4064
+ */
4065
+ export function sculpt_session_subdivide(id) {
4066
+ const ret = wasm.sculpt_session_subdivide(id);
4067
+ return ret >>> 0;
4068
+ }
4069
+
4070
+ /**
4071
+ * Undo the last stroke. Returns the render patch restoring the previous
4072
+ * positions; empty when there is nothing to undo.
4073
+ * @param {number} id
4074
+ * @returns {Float32Array}
4075
+ */
4076
+ export function sculpt_session_undo(id) {
4077
+ const ret = wasm.sculpt_session_undo(id);
4078
+ var v1 = getArrayF32FromWasm0(ret[0], ret[1]).slice();
4079
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
4080
+ return v1;
4081
+ }
4082
+
3889
4083
  /**
3890
4084
  * Sweep a profile curve along a path curve using exact curve evaluation.
3891
4085
  * profile_data/path_data: encoded curve (see decode_curve)