brepkit-wasm 2.92.0 → 2.94.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.
package/brepkit_wasm.d.ts CHANGED
@@ -787,6 +787,26 @@ export class BrepKernel {
787
787
  * Returns an error if the face handle is invalid.
788
788
  */
789
789
  getFaceWires(face: number): Uint32Array;
790
+ /**
791
+ * Read-only canonical NURBS data for the curve underlying an edge.
792
+ *
793
+ * Analytic curves (line, circle, ellipse) are converted to their exact
794
+ * NURBS form. Returns a JSON string with `degree`, `controlPoints`,
795
+ * `weights`, the flat `knots` vector, compressed `distinctKnots` /
796
+ * `multiplicities`, `rational`, `closed` / `periodic`, and `domain`.
797
+ */
798
+ getNurbsCurveData(edge: number): string;
799
+ /**
800
+ * Read-only canonical NURBS data for the surface underlying a face.
801
+ *
802
+ * Analytic surfaces are converted to NURBS (planes/cylinders exact;
803
+ * cones/spheres/tori via the exact rational forms). Returns a JSON
804
+ * string with `degreeU`/`degreeV`, the row-major `controlPoints` grid,
805
+ * the matching `weights` grid, flat `knotsU`/`knotsV`, compressed
806
+ * distinct-knots/multiplicities per direction, `rational`,
807
+ * `periodicU`/`periodicV`, and `domainU`/`domainV`.
808
+ */
809
+ getNurbsSurfaceData(face: number): string;
790
810
  /**
791
811
  * Get the orientation of a shape.
792
812
  *
@@ -1749,7 +1769,7 @@ export class BrepKernel {
1749
1769
  *
1750
1770
  * Returns an error if the face handle is invalid or tessellation fails.
1751
1771
  */
1752
- tessellateFace(face: number, deflection: number): JsMesh;
1772
+ tessellateFace(face: number, deflection: number, angular_tolerance?: number | null): JsMesh;
1753
1773
  /**
1754
1774
  * Tessellate all faces of a solid into a single merged triangle mesh.
1755
1775
  *
@@ -1759,7 +1779,7 @@ export class BrepKernel {
1759
1779
  *
1760
1780
  * Returns an error if the solid handle is invalid or tessellation fails.
1761
1781
  */
1762
- tessellateSolid(solid: number, deflection: number): JsMesh;
1782
+ tessellateSolid(solid: number, deflection: number, angular_tolerance?: number | null): JsMesh;
1763
1783
  /**
1764
1784
  * Tessellate a solid with per-face triangle grouping.
1765
1785
  *
@@ -1767,7 +1787,7 @@ export class BrepKernel {
1767
1787
  * `faceOffsets` is an array where `faceOffsets[i]` is the start index into
1768
1788
  * `indices` for face `i`, and the last element is `indices.length`.
1769
1789
  */
1770
- tessellateSolidGrouped(solid: number, deflection: number): any;
1790
+ tessellateSolidGrouped(solid: number, deflection: number, angular_tolerance?: number | null): any;
1771
1791
  /**
1772
1792
  * Tessellate a solid and include per-vertex UV coordinates.
1773
1793
  *
@@ -1780,7 +1800,7 @@ export class BrepKernel {
1780
1800
  *
1781
1801
  * Returns an error if the solid handle is invalid or tessellation fails.
1782
1802
  */
1783
- tessellateSolidUV(solid: number, deflection: number): any;
1803
+ tessellateSolidUV(solid: number, deflection: number, angular_tolerance?: number | null): any;
1784
1804
  /**
1785
1805
  * Thicken a face into a solid by offsetting it by the given distance.
1786
1806
  *
@@ -1718,6 +1718,64 @@ export class BrepKernel {
1718
1718
  wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
1719
1719
  return v1;
1720
1720
  }
1721
+ /**
1722
+ * Read-only canonical NURBS data for the curve underlying an edge.
1723
+ *
1724
+ * Analytic curves (line, circle, ellipse) are converted to their exact
1725
+ * NURBS form. Returns a JSON string with `degree`, `controlPoints`,
1726
+ * `weights`, the flat `knots` vector, compressed `distinctKnots` /
1727
+ * `multiplicities`, `rational`, `closed` / `periodic`, and `domain`.
1728
+ * @param {number} edge
1729
+ * @returns {string}
1730
+ */
1731
+ getNurbsCurveData(edge) {
1732
+ let deferred2_0;
1733
+ let deferred2_1;
1734
+ try {
1735
+ const ret = wasm.brepkernel_getNurbsCurveData(this.__wbg_ptr, edge);
1736
+ var ptr1 = ret[0];
1737
+ var len1 = ret[1];
1738
+ if (ret[3]) {
1739
+ ptr1 = 0; len1 = 0;
1740
+ throw takeFromExternrefTable0(ret[2]);
1741
+ }
1742
+ deferred2_0 = ptr1;
1743
+ deferred2_1 = len1;
1744
+ return getStringFromWasm0(ptr1, len1);
1745
+ } finally {
1746
+ wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
1747
+ }
1748
+ }
1749
+ /**
1750
+ * Read-only canonical NURBS data for the surface underlying a face.
1751
+ *
1752
+ * Analytic surfaces are converted to NURBS (planes/cylinders exact;
1753
+ * cones/spheres/tori via the exact rational forms). Returns a JSON
1754
+ * string with `degreeU`/`degreeV`, the row-major `controlPoints` grid,
1755
+ * the matching `weights` grid, flat `knotsU`/`knotsV`, compressed
1756
+ * distinct-knots/multiplicities per direction, `rational`,
1757
+ * `periodicU`/`periodicV`, and `domainU`/`domainV`.
1758
+ * @param {number} face
1759
+ * @returns {string}
1760
+ */
1761
+ getNurbsSurfaceData(face) {
1762
+ let deferred2_0;
1763
+ let deferred2_1;
1764
+ try {
1765
+ const ret = wasm.brepkernel_getNurbsSurfaceData(this.__wbg_ptr, face);
1766
+ var ptr1 = ret[0];
1767
+ var len1 = ret[1];
1768
+ if (ret[3]) {
1769
+ ptr1 = 0; len1 = 0;
1770
+ throw takeFromExternrefTable0(ret[2]);
1771
+ }
1772
+ deferred2_0 = ptr1;
1773
+ deferred2_1 = len1;
1774
+ return getStringFromWasm0(ptr1, len1);
1775
+ } finally {
1776
+ wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
1777
+ }
1778
+ }
1721
1779
  /**
1722
1780
  * Get the orientation of a shape.
1723
1781
  *
@@ -3926,10 +3984,11 @@ export class BrepKernel {
3926
3984
  * Returns an error if the face handle is invalid or tessellation fails.
3927
3985
  * @param {number} face
3928
3986
  * @param {number} deflection
3987
+ * @param {number | null} [angular_tolerance]
3929
3988
  * @returns {JsMesh}
3930
3989
  */
3931
- tessellateFace(face, deflection) {
3932
- const ret = wasm.brepkernel_tessellateFace(this.__wbg_ptr, face, deflection);
3990
+ tessellateFace(face, deflection, angular_tolerance) {
3991
+ const ret = wasm.brepkernel_tessellateFace(this.__wbg_ptr, face, deflection, !isLikeNone(angular_tolerance), isLikeNone(angular_tolerance) ? 0 : angular_tolerance);
3933
3992
  if (ret[2]) {
3934
3993
  throw takeFromExternrefTable0(ret[1]);
3935
3994
  }
@@ -3945,10 +4004,11 @@ export class BrepKernel {
3945
4004
  * Returns an error if the solid handle is invalid or tessellation fails.
3946
4005
  * @param {number} solid
3947
4006
  * @param {number} deflection
4007
+ * @param {number | null} [angular_tolerance]
3948
4008
  * @returns {JsMesh}
3949
4009
  */
3950
- tessellateSolid(solid, deflection) {
3951
- const ret = wasm.brepkernel_tessellateSolid(this.__wbg_ptr, solid, deflection);
4010
+ tessellateSolid(solid, deflection, angular_tolerance) {
4011
+ const ret = wasm.brepkernel_tessellateSolid(this.__wbg_ptr, solid, deflection, !isLikeNone(angular_tolerance), isLikeNone(angular_tolerance) ? 0 : angular_tolerance);
3952
4012
  if (ret[2]) {
3953
4013
  throw takeFromExternrefTable0(ret[1]);
3954
4014
  }
@@ -3962,10 +4022,11 @@ export class BrepKernel {
3962
4022
  * `indices` for face `i`, and the last element is `indices.length`.
3963
4023
  * @param {number} solid
3964
4024
  * @param {number} deflection
4025
+ * @param {number | null} [angular_tolerance]
3965
4026
  * @returns {any}
3966
4027
  */
3967
- tessellateSolidGrouped(solid, deflection) {
3968
- const ret = wasm.brepkernel_tessellateSolidGrouped(this.__wbg_ptr, solid, deflection);
4028
+ tessellateSolidGrouped(solid, deflection, angular_tolerance) {
4029
+ const ret = wasm.brepkernel_tessellateSolidGrouped(this.__wbg_ptr, solid, deflection, !isLikeNone(angular_tolerance), isLikeNone(angular_tolerance) ? 0 : angular_tolerance);
3969
4030
  if (ret[2]) {
3970
4031
  throw takeFromExternrefTable0(ret[1]);
3971
4032
  }
@@ -3984,10 +4045,11 @@ export class BrepKernel {
3984
4045
  * Returns an error if the solid handle is invalid or tessellation fails.
3985
4046
  * @param {number} solid
3986
4047
  * @param {number} deflection
4048
+ * @param {number | null} [angular_tolerance]
3987
4049
  * @returns {any}
3988
4050
  */
3989
- tessellateSolidUV(solid, deflection) {
3990
- const ret = wasm.brepkernel_tessellateSolidUV(this.__wbg_ptr, solid, deflection);
4051
+ tessellateSolidUV(solid, deflection, angular_tolerance) {
4052
+ const ret = wasm.brepkernel_tessellateSolidUV(this.__wbg_ptr, solid, deflection, !isLikeNone(angular_tolerance), isLikeNone(angular_tolerance) ? 0 : angular_tolerance);
3991
4053
  if (ret[2]) {
3992
4054
  throw takeFromExternrefTable0(ret[1]);
3993
4055
  }
@@ -4611,13 +4673,13 @@ export function __wbg___wbindgen_debug_string_edece8177ad01481(arg0, arg1) {
4611
4673
  export function __wbg___wbindgen_throw_9c31b086c2b26051(arg0, arg1) {
4612
4674
  throw new Error(getStringFromWasm0(arg0, arg1));
4613
4675
  }
4614
- export function __wbg_error_21493330a5972550(arg0, arg1) {
4676
+ export function __wbg_error_516a57f7cccf6b53(arg0, arg1) {
4615
4677
  console.error(getStringFromWasm0(arg0, arg1));
4616
4678
  }
4617
- export function __wbg_log_7484066f03c79736(arg0, arg1) {
4679
+ export function __wbg_log_4659f1a3d4430b04(arg0, arg1) {
4618
4680
  console.log(getStringFromWasm0(arg0, arg1));
4619
4681
  }
4620
- export function __wbg_warn_f8b201a6c0cb91d4(arg0, arg1) {
4682
+ export function __wbg_warn_8b95f57af30cbba1(arg0, arg1) {
4621
4683
  console.warn(getStringFromWasm0(arg0, arg1));
4622
4684
  }
4623
4685
  export function __wbindgen_cast_0000000000000001(arg0, arg1) {
@@ -4766,6 +4828,10 @@ function getUint8ArrayMemory0() {
4766
4828
  return cachedUint8ArrayMemory0;
4767
4829
  }
4768
4830
 
4831
+ function isLikeNone(x) {
4832
+ return x === undefined || x === null;
4833
+ }
4834
+
4769
4835
  function passArray32ToWasm0(arg, malloc) {
4770
4836
  const ptr = malloc(arg.length * 4, 4) >>> 0;
4771
4837
  getUint32ArrayMemory0().set(arg, ptr / 4);
Binary file
@@ -1720,6 +1720,64 @@ class BrepKernel {
1720
1720
  wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
1721
1721
  return v1;
1722
1722
  }
1723
+ /**
1724
+ * Read-only canonical NURBS data for the curve underlying an edge.
1725
+ *
1726
+ * Analytic curves (line, circle, ellipse) are converted to their exact
1727
+ * NURBS form. Returns a JSON string with `degree`, `controlPoints`,
1728
+ * `weights`, the flat `knots` vector, compressed `distinctKnots` /
1729
+ * `multiplicities`, `rational`, `closed` / `periodic`, and `domain`.
1730
+ * @param {number} edge
1731
+ * @returns {string}
1732
+ */
1733
+ getNurbsCurveData(edge) {
1734
+ let deferred2_0;
1735
+ let deferred2_1;
1736
+ try {
1737
+ const ret = wasm.brepkernel_getNurbsCurveData(this.__wbg_ptr, edge);
1738
+ var ptr1 = ret[0];
1739
+ var len1 = ret[1];
1740
+ if (ret[3]) {
1741
+ ptr1 = 0; len1 = 0;
1742
+ throw takeFromExternrefTable0(ret[2]);
1743
+ }
1744
+ deferred2_0 = ptr1;
1745
+ deferred2_1 = len1;
1746
+ return getStringFromWasm0(ptr1, len1);
1747
+ } finally {
1748
+ wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
1749
+ }
1750
+ }
1751
+ /**
1752
+ * Read-only canonical NURBS data for the surface underlying a face.
1753
+ *
1754
+ * Analytic surfaces are converted to NURBS (planes/cylinders exact;
1755
+ * cones/spheres/tori via the exact rational forms). Returns a JSON
1756
+ * string with `degreeU`/`degreeV`, the row-major `controlPoints` grid,
1757
+ * the matching `weights` grid, flat `knotsU`/`knotsV`, compressed
1758
+ * distinct-knots/multiplicities per direction, `rational`,
1759
+ * `periodicU`/`periodicV`, and `domainU`/`domainV`.
1760
+ * @param {number} face
1761
+ * @returns {string}
1762
+ */
1763
+ getNurbsSurfaceData(face) {
1764
+ let deferred2_0;
1765
+ let deferred2_1;
1766
+ try {
1767
+ const ret = wasm.brepkernel_getNurbsSurfaceData(this.__wbg_ptr, face);
1768
+ var ptr1 = ret[0];
1769
+ var len1 = ret[1];
1770
+ if (ret[3]) {
1771
+ ptr1 = 0; len1 = 0;
1772
+ throw takeFromExternrefTable0(ret[2]);
1773
+ }
1774
+ deferred2_0 = ptr1;
1775
+ deferred2_1 = len1;
1776
+ return getStringFromWasm0(ptr1, len1);
1777
+ } finally {
1778
+ wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
1779
+ }
1780
+ }
1723
1781
  /**
1724
1782
  * Get the orientation of a shape.
1725
1783
  *
@@ -3928,10 +3986,11 @@ class BrepKernel {
3928
3986
  * Returns an error if the face handle is invalid or tessellation fails.
3929
3987
  * @param {number} face
3930
3988
  * @param {number} deflection
3989
+ * @param {number | null} [angular_tolerance]
3931
3990
  * @returns {JsMesh}
3932
3991
  */
3933
- tessellateFace(face, deflection) {
3934
- const ret = wasm.brepkernel_tessellateFace(this.__wbg_ptr, face, deflection);
3992
+ tessellateFace(face, deflection, angular_tolerance) {
3993
+ const ret = wasm.brepkernel_tessellateFace(this.__wbg_ptr, face, deflection, !isLikeNone(angular_tolerance), isLikeNone(angular_tolerance) ? 0 : angular_tolerance);
3935
3994
  if (ret[2]) {
3936
3995
  throw takeFromExternrefTable0(ret[1]);
3937
3996
  }
@@ -3947,10 +4006,11 @@ class BrepKernel {
3947
4006
  * Returns an error if the solid handle is invalid or tessellation fails.
3948
4007
  * @param {number} solid
3949
4008
  * @param {number} deflection
4009
+ * @param {number | null} [angular_tolerance]
3950
4010
  * @returns {JsMesh}
3951
4011
  */
3952
- tessellateSolid(solid, deflection) {
3953
- const ret = wasm.brepkernel_tessellateSolid(this.__wbg_ptr, solid, deflection);
4012
+ tessellateSolid(solid, deflection, angular_tolerance) {
4013
+ const ret = wasm.brepkernel_tessellateSolid(this.__wbg_ptr, solid, deflection, !isLikeNone(angular_tolerance), isLikeNone(angular_tolerance) ? 0 : angular_tolerance);
3954
4014
  if (ret[2]) {
3955
4015
  throw takeFromExternrefTable0(ret[1]);
3956
4016
  }
@@ -3964,10 +4024,11 @@ class BrepKernel {
3964
4024
  * `indices` for face `i`, and the last element is `indices.length`.
3965
4025
  * @param {number} solid
3966
4026
  * @param {number} deflection
4027
+ * @param {number | null} [angular_tolerance]
3967
4028
  * @returns {any}
3968
4029
  */
3969
- tessellateSolidGrouped(solid, deflection) {
3970
- const ret = wasm.brepkernel_tessellateSolidGrouped(this.__wbg_ptr, solid, deflection);
4030
+ tessellateSolidGrouped(solid, deflection, angular_tolerance) {
4031
+ const ret = wasm.brepkernel_tessellateSolidGrouped(this.__wbg_ptr, solid, deflection, !isLikeNone(angular_tolerance), isLikeNone(angular_tolerance) ? 0 : angular_tolerance);
3971
4032
  if (ret[2]) {
3972
4033
  throw takeFromExternrefTable0(ret[1]);
3973
4034
  }
@@ -3986,10 +4047,11 @@ class BrepKernel {
3986
4047
  * Returns an error if the solid handle is invalid or tessellation fails.
3987
4048
  * @param {number} solid
3988
4049
  * @param {number} deflection
4050
+ * @param {number | null} [angular_tolerance]
3989
4051
  * @returns {any}
3990
4052
  */
3991
- tessellateSolidUV(solid, deflection) {
3992
- const ret = wasm.brepkernel_tessellateSolidUV(this.__wbg_ptr, solid, deflection);
4053
+ tessellateSolidUV(solid, deflection, angular_tolerance) {
4054
+ const ret = wasm.brepkernel_tessellateSolidUV(this.__wbg_ptr, solid, deflection, !isLikeNone(angular_tolerance), isLikeNone(angular_tolerance) ? 0 : angular_tolerance);
3993
4055
  if (ret[2]) {
3994
4056
  throw takeFromExternrefTable0(ret[1]);
3995
4057
  }
@@ -4622,13 +4684,13 @@ function __wbg_get_imports() {
4622
4684
  __wbg___wbindgen_throw_9c31b086c2b26051: function(arg0, arg1) {
4623
4685
  throw new Error(getStringFromWasm0(arg0, arg1));
4624
4686
  },
4625
- __wbg_error_21493330a5972550: function(arg0, arg1) {
4687
+ __wbg_error_516a57f7cccf6b53: function(arg0, arg1) {
4626
4688
  console.error(getStringFromWasm0(arg0, arg1));
4627
4689
  },
4628
- __wbg_log_7484066f03c79736: function(arg0, arg1) {
4690
+ __wbg_log_4659f1a3d4430b04: function(arg0, arg1) {
4629
4691
  console.log(getStringFromWasm0(arg0, arg1));
4630
4692
  },
4631
- __wbg_warn_f8b201a6c0cb91d4: function(arg0, arg1) {
4693
+ __wbg_warn_8b95f57af30cbba1: function(arg0, arg1) {
4632
4694
  console.warn(getStringFromWasm0(arg0, arg1));
4633
4695
  },
4634
4696
  __wbindgen_cast_0000000000000001: function(arg0, arg1) {
@@ -4784,6 +4846,10 @@ function getUint8ArrayMemory0() {
4784
4846
  return cachedUint8ArrayMemory0;
4785
4847
  }
4786
4848
 
4849
+ function isLikeNone(x) {
4850
+ return x === undefined || x === null;
4851
+ }
4852
+
4787
4853
  function passArray32ToWasm0(arg, malloc) {
4788
4854
  const ptr = malloc(arg.length * 4, 4) >>> 0;
4789
4855
  getUint32ArrayMemory0().set(arg, ptr / 4);
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": "2.92.0",
5
+ "version": "2.94.0",
6
6
  "license": "MIT OR Apache-2.0",
7
7
  "repository": {
8
8
  "type": "git",