@meshioplusplus/wasm 17.9.0 → 17.10.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/index.d.ts CHANGED
@@ -2067,6 +2067,47 @@ export interface MeshioPlusPlusModule {
2067
2067
  grid(dims: number[], origin?: number[] | null, spacing?: number[] | null,
2068
2068
  maxCells?: number): Mesh;
2069
2069
 
2070
+ /**
2071
+ * A regular 2-D grid of quads or triangles at `z = origin[2]`, points x
2072
+ * fastest. `split` (`'zigzag'`, `'up'`, `'down'`, `'center'`) lays out the
2073
+ * triangles; `order: 2` gives `quad8` / `triangle6` cells on the exact
2074
+ * geometry. Side regions `xmin`, `xmax`, `ymin`, `ymax`.
2075
+ * @throws {Error} on a bad count, size, cell type, split or order, or a mesh
2076
+ * above `maxCells`.
2077
+ */
2078
+ rectangle(dims?: number[] | null, size?: number[] | null, origin?: number[] | null,
2079
+ cellType?: string, split?: string, order?: number, maxCells?: number): Mesh;
2080
+
2081
+ /** A regular 3-D grid of `'hexahedron'`, `'tetra'` (six Kuhn tetrahedra per
2082
+ * cell) or `'wedge'` cells. Side regions `xmin` ... `zmax`. */
2083
+ box(dims?: number[] | null, size?: number[] | null, origin?: number[] | null,
2084
+ cellType?: string, order?: number, maxCells?: number): Mesh;
2085
+
2086
+ /** A disk of `n x n` quads (squircle map) or `n` rings of triangles. Side
2087
+ * region `rim`. */
2088
+ disk(radius?: number, n?: number, center?: number[] | null, cellType?: string,
2089
+ order?: number, maxCells?: number): Mesh;
2090
+
2091
+ /** A latitude / longitude sphere surface, oriented outward; `cellType: 'quad'`
2092
+ * gives quads between the rings and triangle caps. */
2093
+ uvSphere(radius?: number, nu?: number, nv?: number, center?: number[] | null,
2094
+ cellType?: string, order?: number, maxCells?: number): Mesh;
2095
+
2096
+ /** A sphere surface of `20 * 4^subdivisions` triangles, oriented outward. */
2097
+ icosaSphere(radius?: number, subdivisions?: number, center?: number[] | null,
2098
+ order?: number, maxCells?: number): Mesh;
2099
+
2100
+ /** A solid cylinder along z, `'hexahedron'` or `'wedge'` cells. Side regions
2101
+ * `side`, `top`, `bottom`. */
2102
+ cylinder(radius?: number, height?: number, nxy?: number, nz?: number,
2103
+ center?: number[] | null, cellType?: string, order?: number,
2104
+ maxCells?: number): Mesh;
2105
+
2106
+ /** One cell of each requested meshio type in its reference coordinates, side
2107
+ * by side (every supported type when `types` is omitted); `pairs` gives two
2108
+ * cells sharing a facet, for linear types. */
2109
+ referenceCells(types?: string[] | null, pairs?: boolean): Mesh;
2110
+
2070
2111
  /**
2071
2112
  * Build a regular grid around a mesh. Give exactly one of `resolution` and
2072
2113
  * `cellSize`; `fill` selects the whole bounding box, only the cells a triangle
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshioplusplus/wasm",
3
- "version": "17.9.0",
3
+ "version": "17.10.0",
4
4
  "description": "meshio++ mesh I/O compiled to WebAssembly: read 80 and write 75 mesh formats (incl. MED, CGNS, Exodus; STEP and IGES in the full build) in the browser or Node.js",
5
5
  "type": "module",
6
6
  "main": "./src/index.mjs",
package/src/index.mjs CHANGED
@@ -276,6 +276,13 @@ export class MeshioPlusPlusLoadError extends Error {
276
276
  * slice: (mesh: Mesh, origin: number[], normal: number[], recordParentIds?: boolean) => Mesh,
277
277
  * isosurface: (mesh: Mesh, array: string, isovalues: number|number[], component?: number, recordParentIds?: boolean) => Mesh,
278
278
  * grid: (dims: number[], origin?: number[], spacing?: number[], maxCells?: number) => Mesh,
279
+ * rectangle: (dims?: number[], size?: number[], origin?: number[], cellType?: string, split?: string, order?: number, maxCells?: number) => Mesh,
280
+ * box: (dims?: number[], size?: number[], origin?: number[], cellType?: string, order?: number, maxCells?: number) => Mesh,
281
+ * disk: (radius?: number, n?: number, center?: number[], cellType?: string, order?: number, maxCells?: number) => Mesh,
282
+ * uvSphere: (radius?: number, nu?: number, nv?: number, center?: number[], cellType?: string, order?: number, maxCells?: number) => Mesh,
283
+ * icosaSphere: (radius?: number, subdivisions?: number, center?: number[], order?: number, maxCells?: number) => Mesh,
284
+ * cylinder: (radius?: number, height?: number, nxy?: number, nz?: number, center?: number[], cellType?: string, order?: number, maxCells?: number) => Mesh,
285
+ * referenceCells: (types?: string[], pairs?: boolean) => Mesh,
279
286
  * voxelize: (mesh: Mesh, resolution?: number[], cellSize?: number, bounds?: number[], padding?: number, paddingRelative?: number, fill?: string, sign?: string, attachOccupancy?: boolean, maxCells?: number, watertightCheck?: string) => {mesh: Mesh, dims: number[], origin: number[], spacing: number[], numOccupied: number},
280
287
  * octree: (mesh: Mesh, rootCells?: number[], minLevel?: number, maxLevel?: number, bounds?: number[], padding?: number, paddingRelative?: number, dimension?: number, sampleDistance?: number, balance?: string, fill?: string, sign?: string, attachDistance?: boolean, evenOdd?: boolean, maxCells?: number, watertightCheck?: string, transition?: string, snap?: boolean, surfaceLevel?: number, curvatureThreshold?: number, featureAngle?: number, sizeArray?: string, plane?: string) => {mesh: Mesh, dimension: number, numLeaves: number, numHanging: number, finestLevel: number, origin: number[], rootSize: number, numSnapped: number, numRefused: number},
281
288
  * surfaceWatertightCheck: (mesh: Mesh) => {boundaryEdges: number, nonManifoldEdges: number, inconsistentPairs: number, degenerateTriangles: number, watertight: boolean},
@@ -743,6 +750,28 @@ export async function loadMeshioPlusPlus(
743
750
  Module.slice(mesh, origin, normal, recordParentIds),
744
751
  grid: (dims, origin = null, spacing = null, maxCells = 20000000) =>
745
752
  Module.grid(dims, origin, spacing, maxCells),
753
+ rectangle: (
754
+ dims = null, size = null, origin = null, cellType = 'quad', split = 'zigzag',
755
+ order = 1, maxCells = 20000000,
756
+ ) => Module.rectangle(dims, size, origin, cellType, split, order, maxCells),
757
+ box: (
758
+ dims = null, size = null, origin = null, cellType = 'hexahedron', order = 1,
759
+ maxCells = 20000000,
760
+ ) => Module.box(dims, size, origin, cellType, order, maxCells),
761
+ disk: (
762
+ radius = 1, n = 8, center = null, cellType = 'quad', order = 1, maxCells = 20000000,
763
+ ) => Module.disk(radius, n, center, cellType, order, maxCells),
764
+ uvSphere: (
765
+ radius = 1, nu = 16, nv = 8, center = null, cellType = 'triangle', order = 1,
766
+ maxCells = 20000000,
767
+ ) => Module.uvSphere(radius, nu, nv, center, cellType, order, maxCells),
768
+ icosaSphere: (radius = 1, subdivisions = 2, center = null, order = 1, maxCells = 20000000) =>
769
+ Module.icosaSphere(radius, subdivisions, center, order, maxCells),
770
+ cylinder: (
771
+ radius = 1, height = 1, nxy = 8, nz = 8, center = null, cellType = 'hexahedron',
772
+ order = 1, maxCells = 20000000,
773
+ ) => Module.cylinder(radius, height, nxy, nz, center, cellType, order, maxCells),
774
+ referenceCells: (types = null, pairs = false) => Module.referenceCells(types, pairs),
746
775
  voxelize: (
747
776
  mesh,
748
777
  resolution = null,