brepkit-wasm 0.9.0 → 0.10.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/brepkit_wasm.d.ts CHANGED
@@ -1307,6 +1307,12 @@ export class BrepKernel {
1307
1307
  * Add a point to a sketch. Returns the point index.
1308
1308
  */
1309
1309
  sketchAddPoint(sketch: number, x: number, y: number, fixed: boolean): number;
1310
+ /**
1311
+ * Compute degrees of freedom for a sketch.
1312
+ *
1313
+ * Returns a JSON string: `{"dof": n, "rank": n, "numParams": n, "numEquations": n}`.
1314
+ */
1315
+ sketchDof(sketch: number): string;
1310
1316
  /**
1311
1317
  * Create a new empty sketch. Returns a sketch index.
1312
1318
  */
@@ -1512,6 +1518,22 @@ export class BrepKernel {
1512
1518
  * Returns an error if the solid handle is invalid.
1513
1519
  */
1514
1520
  validateSolid(solid: number): number;
1521
+ /**
1522
+ * Validate a solid with relaxed checks suitable for assembled geometry.
1523
+ *
1524
+ * Operations like boolean, fillet, and shell produce geometrically
1525
+ * correct shapes that may not have fully manifold topology (faces
1526
+ * from different operations may not share edges). This validation
1527
+ * skips Euler characteristic, boundary edge, non-manifold edge, and
1528
+ * shell connectivity checks.
1529
+ *
1530
+ * Returns 0 if the solid passes all structural checks.
1531
+ *
1532
+ * # Errors
1533
+ *
1534
+ * Returns an error if the solid handle is invalid.
1535
+ */
1536
+ validateSolidRelaxed(solid: number): number;
1515
1537
  /**
1516
1538
  * Compute the volume of a solid.
1517
1539
  *
@@ -3101,6 +3101,31 @@ export class BrepKernel {
3101
3101
  }
3102
3102
  return ret[0] >>> 0;
3103
3103
  }
3104
+ /**
3105
+ * Compute degrees of freedom for a sketch.
3106
+ *
3107
+ * Returns a JSON string: `{"dof": n, "rank": n, "numParams": n, "numEquations": n}`.
3108
+ * @param {number} sketch
3109
+ * @returns {string}
3110
+ */
3111
+ sketchDof(sketch) {
3112
+ let deferred2_0;
3113
+ let deferred2_1;
3114
+ try {
3115
+ const ret = wasm.brepkernel_sketchDof(this.__wbg_ptr, sketch);
3116
+ var ptr1 = ret[0];
3117
+ var len1 = ret[1];
3118
+ if (ret[3]) {
3119
+ ptr1 = 0; len1 = 0;
3120
+ throw takeFromExternrefTable0(ret[2]);
3121
+ }
3122
+ deferred2_0 = ptr1;
3123
+ deferred2_1 = len1;
3124
+ return getStringFromWasm0(ptr1, len1);
3125
+ } finally {
3126
+ wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
3127
+ }
3128
+ }
3104
3129
  /**
3105
3130
  * Create a new empty sketch. Returns a sketch index.
3106
3131
  * @returns {number}
@@ -3536,6 +3561,30 @@ export class BrepKernel {
3536
3561
  }
3537
3562
  return ret[0] >>> 0;
3538
3563
  }
3564
+ /**
3565
+ * Validate a solid with relaxed checks suitable for assembled geometry.
3566
+ *
3567
+ * Operations like boolean, fillet, and shell produce geometrically
3568
+ * correct shapes that may not have fully manifold topology (faces
3569
+ * from different operations may not share edges). This validation
3570
+ * skips Euler characteristic, boundary edge, non-manifold edge, and
3571
+ * shell connectivity checks.
3572
+ *
3573
+ * Returns 0 if the solid passes all structural checks.
3574
+ *
3575
+ * # Errors
3576
+ *
3577
+ * Returns an error if the solid handle is invalid.
3578
+ * @param {number} solid
3579
+ * @returns {number}
3580
+ */
3581
+ validateSolidRelaxed(solid) {
3582
+ const ret = wasm.brepkernel_validateSolidRelaxed(this.__wbg_ptr, solid);
3583
+ if (ret[2]) {
3584
+ throw takeFromExternrefTable0(ret[1]);
3585
+ }
3586
+ return ret[0] >>> 0;
3587
+ }
3539
3588
  /**
3540
3589
  * Compute the volume of a solid.
3541
3590
  *
Binary file
@@ -3103,6 +3103,31 @@ class BrepKernel {
3103
3103
  }
3104
3104
  return ret[0] >>> 0;
3105
3105
  }
3106
+ /**
3107
+ * Compute degrees of freedom for a sketch.
3108
+ *
3109
+ * Returns a JSON string: `{"dof": n, "rank": n, "numParams": n, "numEquations": n}`.
3110
+ * @param {number} sketch
3111
+ * @returns {string}
3112
+ */
3113
+ sketchDof(sketch) {
3114
+ let deferred2_0;
3115
+ let deferred2_1;
3116
+ try {
3117
+ const ret = wasm.brepkernel_sketchDof(this.__wbg_ptr, sketch);
3118
+ var ptr1 = ret[0];
3119
+ var len1 = ret[1];
3120
+ if (ret[3]) {
3121
+ ptr1 = 0; len1 = 0;
3122
+ throw takeFromExternrefTable0(ret[2]);
3123
+ }
3124
+ deferred2_0 = ptr1;
3125
+ deferred2_1 = len1;
3126
+ return getStringFromWasm0(ptr1, len1);
3127
+ } finally {
3128
+ wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
3129
+ }
3130
+ }
3106
3131
  /**
3107
3132
  * Create a new empty sketch. Returns a sketch index.
3108
3133
  * @returns {number}
@@ -3538,6 +3563,30 @@ class BrepKernel {
3538
3563
  }
3539
3564
  return ret[0] >>> 0;
3540
3565
  }
3566
+ /**
3567
+ * Validate a solid with relaxed checks suitable for assembled geometry.
3568
+ *
3569
+ * Operations like boolean, fillet, and shell produce geometrically
3570
+ * correct shapes that may not have fully manifold topology (faces
3571
+ * from different operations may not share edges). This validation
3572
+ * skips Euler characteristic, boundary edge, non-manifold edge, and
3573
+ * shell connectivity checks.
3574
+ *
3575
+ * Returns 0 if the solid passes all structural checks.
3576
+ *
3577
+ * # Errors
3578
+ *
3579
+ * Returns an error if the solid handle is invalid.
3580
+ * @param {number} solid
3581
+ * @returns {number}
3582
+ */
3583
+ validateSolidRelaxed(solid) {
3584
+ const ret = wasm.brepkernel_validateSolidRelaxed(this.__wbg_ptr, solid);
3585
+ if (ret[2]) {
3586
+ throw takeFromExternrefTable0(ret[1]);
3587
+ }
3588
+ return ret[0] >>> 0;
3589
+ }
3541
3590
  /**
3542
3591
  * Compute the volume of a solid.
3543
3592
  *
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "brepkit-wasm",
3
3
  "type": "module",
4
4
  "description": "WebAssembly bindings for brepkit — browser-native B-Rep solid modeling",
5
- "version": "0.9.0",
5
+ "version": "0.10.1",
6
6
  "license": "AGPL-3.0-only",
7
7
  "repository": {
8
8
  "type": "git",