@ifc-lite/wasm 4.0.1 → 4.1.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/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "IFC-Lite Contributors"
6
6
  ],
7
7
  "description": "WebAssembly bindings for IFC-Lite",
8
- "version": "4.0.1",
8
+ "version": "4.1.0",
9
9
  "license": "MPL-2.0",
10
10
  "repository": {
11
11
  "type": "git",
package/pkg/ifc-lite.d.ts CHANGED
@@ -610,6 +610,24 @@ export class IfcAPI {
610
610
  * cap. The produced meshes are dropped; only the diagnostics are returned.
611
611
  */
612
612
  diagnoseGeometry(content: Uint8Array): any;
613
+ /**
614
+ * Simplify already-produced element meshes at per-element demesher
615
+ * levels (1-4 = cavity removal + clustering at 0.5/0.25/0.10/0.03
616
+ * triangle ratio, 5 = bounding box).
617
+ *
618
+ * One RECORD per input `MeshData` entry (an element may span several
619
+ * records — per-material submeshes; pass all of them, grouped or not).
620
+ * Per record `i`: `vertexCounts[i]` vertices from `positions` (and
621
+ * `normals` when non-empty), `indexCounts[i]` indices from `indices`
622
+ * (per-record local), `origins[i*3..]`, `localToWorld[i*16..]` valid
623
+ * only when `localToWorldPresent[i] != 0`, level `levels[i]` (records
624
+ * of one element must agree). Arrays are the boundary Y-up convention
625
+ * when `yUp` is true (the browser/SDK case).
626
+ *
627
+ * `rtcX/Y/Z` = `coordinateInfo.originShift` (IFC Z-up metres);
628
+ * `unitScale` = metres per project length unit.
629
+ */
630
+ simplifyMeshes(express_ids: Uint32Array, levels: Uint8Array, positions: Float32Array, normals: Float32Array, indices: Uint32Array, vertex_counts: Uint32Array, index_counts: Uint32Array, origins: Float64Array, local_to_world: Float64Array, local_to_world_present: Uint8Array, rtc_x: number, rtc_y: number, rtc_z: number, unit_scale: number, y_up: boolean): SimplifiedMeshes;
613
631
  /**
614
632
  * Parse IFC file and extract symbolic representations (Plan,
615
633
  * Annotation, FootPrint, Axis). These are 2D curves used for
@@ -723,10 +741,21 @@ export class MeshDataJs {
723
741
  * Get express ID
724
742
  */
725
743
  readonly expressId: number;
744
+ /**
745
+ * Stable texture dedup key (`IfcSurfaceTexture` express id, #1781).
746
+ * 0 when the mesh is untextured.
747
+ */
748
+ readonly textureId: number;
726
749
  /**
727
750
  * True when this mesh carries a surface texture (#961).
728
751
  */
729
752
  readonly hasTexture: boolean;
753
+ /**
754
+ * External image reference (`IfcImageTexture.URLReference`, #1781) for the
755
+ * host to resolve — e.g. a sibling image inside the `.ifcZIP`. `undefined`
756
+ * for untextured meshes and Rust-decoded blob/pixel textures.
757
+ */
758
+ readonly textureUrl: string | undefined;
730
759
  /**
731
760
  * Local (pre-placement, object-space) AABB (issue #1474), WebGL Y-up,
732
761
  * `[minX,minY,minZ,maxX,maxY,maxZ]`. `undefined` when not captured
@@ -908,6 +937,35 @@ export class ProfileEntryJs {
908
937
  readonly transform: Float32Array;
909
938
  }
910
939
 
940
+ export class SimplifiedMeshes {
941
+ private constructor();
942
+ free(): void;
943
+ [Symbol.dispose](): void;
944
+ readonly trisAfter: Uint32Array;
945
+ readonly elementIds: Uint32Array;
946
+ readonly skippedIds: Uint32Array;
947
+ readonly trisBefore: Uint32Array;
948
+ readonly indexCounts: Uint32Array;
949
+ readonly localIndices: Uint32Array;
950
+ readonly vertexCounts: Uint32Array;
951
+ readonly renderIndices: Uint32Array;
952
+ readonly renderNormals: Float32Array;
953
+ /**
954
+ * xyz per element (frame matches the render positions' convention).
955
+ */
956
+ readonly renderOrigins: Float64Array;
957
+ readonly localPositions: Float64Array;
958
+ /**
959
+ * Skip reason per `skippedIds` entry (stable slugs:
960
+ * `no-geometry` / `missing-placement` / `singular-placement` /
961
+ * `empty-result` / `invalid-unit-scale`).
962
+ */
963
+ readonly skippedReasons: any[];
964
+ readonly cavitiesDropped: Uint32Array;
965
+ readonly renderPositions: Float32Array;
966
+ readonly levels: Uint8Array;
967
+ }
968
+
911
969
  export class SpacePlateHandle {
912
970
  free(): void;
913
971
  [Symbol.dispose](): void;
@@ -1269,6 +1327,7 @@ export interface InitOutput {
1269
1327
  readonly __wbg_partitionedbatch_free: (a: number, b: number) => void;
1270
1328
  readonly __wbg_profilecollection_free: (a: number, b: number) => void;
1271
1329
  readonly __wbg_profileentryjs_free: (a: number, b: number) => void;
1330
+ readonly __wbg_simplifiedmeshes_free: (a: number, b: number) => void;
1272
1331
  readonly __wbg_spaceplatehandle_free: (a: number, b: number) => void;
1273
1332
  readonly __wbg_symboliccircle_free: (a: number, b: number) => void;
1274
1333
  readonly __wbg_symbolicfillarea_free: (a: number, b: number) => void;
@@ -1340,6 +1399,7 @@ export interface InitOutput {
1340
1399
  readonly ifcapi_setSkipSmallCuts: (a: number, b: number) => void;
1341
1400
  readonly ifcapi_setSourceBytes: (a: number, b: number, c: number) => void;
1342
1401
  readonly ifcapi_setTessellationQuality: (a: number, b: number, c: number, d: number) => void;
1402
+ readonly ifcapi_simplifyMeshes: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number, v: number, w: number, x: number, y: number, z: number, a1: number) => void;
1343
1403
  readonly ifcapi_version: (a: number, b: number) => void;
1344
1404
  readonly meshOutline2d: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
1345
1405
  readonly meshcollection_buildingRotation: (a: number, b: number) => void;
@@ -1369,9 +1429,11 @@ export interface InitOutput {
1369
1429
  readonly meshdatajs_positions: (a: number) => number;
1370
1430
  readonly meshdatajs_shadingColor: (a: number, b: number) => void;
1371
1431
  readonly meshdatajs_textureHeight: (a: number) => number;
1432
+ readonly meshdatajs_textureId: (a: number) => number;
1372
1433
  readonly meshdatajs_textureRepeatS: (a: number) => number;
1373
1434
  readonly meshdatajs_textureRepeatT: (a: number) => number;
1374
1435
  readonly meshdatajs_textureRgba: (a: number) => number;
1436
+ readonly meshdatajs_textureUrl: (a: number, b: number) => void;
1375
1437
  readonly meshdatajs_textureWidth: (a: number) => number;
1376
1438
  readonly meshdatajs_triangleCount: (a: number) => number;
1377
1439
  readonly meshdatajs_uvs: (a: number) => number;
@@ -1394,6 +1456,21 @@ export interface InitOutput {
1394
1456
  readonly profileentryjs_modelIndex: (a: number) => number;
1395
1457
  readonly profileentryjs_outerPoints: (a: number) => number;
1396
1458
  readonly profileentryjs_transform: (a: number) => number;
1459
+ readonly simplifiedmeshes_cavitiesDropped: (a: number, b: number) => void;
1460
+ readonly simplifiedmeshes_elementIds: (a: number, b: number) => void;
1461
+ readonly simplifiedmeshes_indexCounts: (a: number, b: number) => void;
1462
+ readonly simplifiedmeshes_levels: (a: number, b: number) => void;
1463
+ readonly simplifiedmeshes_localIndices: (a: number, b: number) => void;
1464
+ readonly simplifiedmeshes_localPositions: (a: number, b: number) => void;
1465
+ readonly simplifiedmeshes_renderIndices: (a: number, b: number) => void;
1466
+ readonly simplifiedmeshes_renderNormals: (a: number, b: number) => void;
1467
+ readonly simplifiedmeshes_renderOrigins: (a: number, b: number) => void;
1468
+ readonly simplifiedmeshes_renderPositions: (a: number, b: number) => void;
1469
+ readonly simplifiedmeshes_skippedIds: (a: number, b: number) => void;
1470
+ readonly simplifiedmeshes_skippedReasons: (a: number, b: number) => void;
1471
+ readonly simplifiedmeshes_trisAfter: (a: number, b: number) => void;
1472
+ readonly simplifiedmeshes_trisBefore: (a: number, b: number) => void;
1473
+ readonly simplifiedmeshes_vertexCounts: (a: number, b: number) => void;
1397
1474
  readonly spaceplatehandle_addFace: (a: number, b: number, c: number, d: number, e: number) => void;
1398
1475
  readonly spaceplatehandle_boundingElements: (a: number, b: number, c: number) => void;
1399
1476
  readonly spaceplatehandle_dissolveVertex: (a: number, b: number, c: number) => void;
package/pkg/ifc-lite.js CHANGED
@@ -31,6 +31,16 @@ function getArrayF64FromWasm0(ptr, len) {
31
31
  return getFloat64ArrayMemory0().subarray(ptr / 8, ptr / 8 + len);
32
32
  }
33
33
 
34
+ function getArrayJsValueFromWasm0(ptr, len) {
35
+ ptr = ptr >>> 0;
36
+ const mem = getDataViewMemory0();
37
+ const result = [];
38
+ for (let i = ptr; i < ptr + 4 * len; i += 4) {
39
+ result.push(takeObject(mem.getUint32(i, true)));
40
+ }
41
+ return result;
42
+ }
43
+
34
44
  function getArrayU32FromWasm0(ptr, len) {
35
45
  ptr = ptr >>> 0;
36
46
  return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);
@@ -274,6 +284,10 @@ const ProfileEntryJsFinalization = (typeof FinalizationRegistry === 'undefined')
274
284
  ? { register: () => {}, unregister: () => {} }
275
285
  : new FinalizationRegistry(ptr => wasm.__wbg_profileentryjs_free(ptr >>> 0, 1));
276
286
 
287
+ const SimplifiedMeshesFinalization = (typeof FinalizationRegistry === 'undefined')
288
+ ? { register: () => {}, unregister: () => {} }
289
+ : new FinalizationRegistry(ptr => wasm.__wbg_simplifiedmeshes_free(ptr >>> 0, 1));
290
+
277
291
  const SpacePlateHandleFinalization = (typeof FinalizationRegistry === 'undefined')
278
292
  ? { register: () => {}, unregister: () => {} }
279
293
  : new FinalizationRegistry(ptr => wasm.__wbg_spaceplatehandle_free(ptr >>> 0, 1));
@@ -2007,6 +2021,74 @@ export class IfcAPI {
2007
2021
  const ret = wasm.ifcapi_diagnoseGeometry(this.__wbg_ptr, ptr0, len0);
2008
2022
  return takeObject(ret);
2009
2023
  }
2024
+ /**
2025
+ * Simplify already-produced element meshes at per-element demesher
2026
+ * levels (1-4 = cavity removal + clustering at 0.5/0.25/0.10/0.03
2027
+ * triangle ratio, 5 = bounding box).
2028
+ *
2029
+ * One RECORD per input `MeshData` entry (an element may span several
2030
+ * records — per-material submeshes; pass all of them, grouped or not).
2031
+ * Per record `i`: `vertexCounts[i]` vertices from `positions` (and
2032
+ * `normals` when non-empty), `indexCounts[i]` indices from `indices`
2033
+ * (per-record local), `origins[i*3..]`, `localToWorld[i*16..]` valid
2034
+ * only when `localToWorldPresent[i] != 0`, level `levels[i]` (records
2035
+ * of one element must agree). Arrays are the boundary Y-up convention
2036
+ * when `yUp` is true (the browser/SDK case).
2037
+ *
2038
+ * `rtcX/Y/Z` = `coordinateInfo.originShift` (IFC Z-up metres);
2039
+ * `unitScale` = metres per project length unit.
2040
+ * @param {Uint32Array} express_ids
2041
+ * @param {Uint8Array} levels
2042
+ * @param {Float32Array} positions
2043
+ * @param {Float32Array} normals
2044
+ * @param {Uint32Array} indices
2045
+ * @param {Uint32Array} vertex_counts
2046
+ * @param {Uint32Array} index_counts
2047
+ * @param {Float64Array} origins
2048
+ * @param {Float64Array} local_to_world
2049
+ * @param {Uint8Array} local_to_world_present
2050
+ * @param {number} rtc_x
2051
+ * @param {number} rtc_y
2052
+ * @param {number} rtc_z
2053
+ * @param {number} unit_scale
2054
+ * @param {boolean} y_up
2055
+ * @returns {SimplifiedMeshes}
2056
+ */
2057
+ simplifyMeshes(express_ids, levels, positions, normals, indices, vertex_counts, index_counts, origins, local_to_world, local_to_world_present, rtc_x, rtc_y, rtc_z, unit_scale, y_up) {
2058
+ try {
2059
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2060
+ const ptr0 = passArray32ToWasm0(express_ids, wasm.__wbindgen_export);
2061
+ const len0 = WASM_VECTOR_LEN;
2062
+ const ptr1 = passArray8ToWasm0(levels, wasm.__wbindgen_export);
2063
+ const len1 = WASM_VECTOR_LEN;
2064
+ const ptr2 = passArrayF32ToWasm0(positions, wasm.__wbindgen_export);
2065
+ const len2 = WASM_VECTOR_LEN;
2066
+ const ptr3 = passArrayF32ToWasm0(normals, wasm.__wbindgen_export);
2067
+ const len3 = WASM_VECTOR_LEN;
2068
+ const ptr4 = passArray32ToWasm0(indices, wasm.__wbindgen_export);
2069
+ const len4 = WASM_VECTOR_LEN;
2070
+ const ptr5 = passArray32ToWasm0(vertex_counts, wasm.__wbindgen_export);
2071
+ const len5 = WASM_VECTOR_LEN;
2072
+ const ptr6 = passArray32ToWasm0(index_counts, wasm.__wbindgen_export);
2073
+ const len6 = WASM_VECTOR_LEN;
2074
+ const ptr7 = passArrayF64ToWasm0(origins, wasm.__wbindgen_export);
2075
+ const len7 = WASM_VECTOR_LEN;
2076
+ const ptr8 = passArrayF64ToWasm0(local_to_world, wasm.__wbindgen_export);
2077
+ const len8 = WASM_VECTOR_LEN;
2078
+ const ptr9 = passArray8ToWasm0(local_to_world_present, wasm.__wbindgen_export);
2079
+ const len9 = WASM_VECTOR_LEN;
2080
+ wasm.ifcapi_simplifyMeshes(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8, ptr9, len9, rtc_x, rtc_y, rtc_z, unit_scale, y_up);
2081
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2082
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2083
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
2084
+ if (r2) {
2085
+ throw takeObject(r1);
2086
+ }
2087
+ return SimplifiedMeshes.__wrap(r0);
2088
+ } finally {
2089
+ wasm.__wbindgen_add_to_stack_pointer(16);
2090
+ }
2091
+ }
2010
2092
  /**
2011
2093
  * Parse IFC file and extract symbolic representations (Plan,
2012
2094
  * Annotation, FootPrint, Axis). These are 2D curves used for
@@ -2224,6 +2306,15 @@ export class MeshDataJs {
2224
2306
  const ret = wasm.meshdatajs_expressId(this.__wbg_ptr);
2225
2307
  return ret >>> 0;
2226
2308
  }
2309
+ /**
2310
+ * Stable texture dedup key (`IfcSurfaceTexture` express id, #1781).
2311
+ * 0 when the mesh is untextured.
2312
+ * @returns {number}
2313
+ */
2314
+ get textureId() {
2315
+ const ret = wasm.meshdatajs_textureId(this.__wbg_ptr);
2316
+ return ret >>> 0;
2317
+ }
2227
2318
  /**
2228
2319
  * True when this mesh carries a surface texture (#961).
2229
2320
  * @returns {boolean}
@@ -2232,6 +2323,28 @@ export class MeshDataJs {
2232
2323
  const ret = wasm.meshdatajs_hasTexture(this.__wbg_ptr);
2233
2324
  return ret !== 0;
2234
2325
  }
2326
+ /**
2327
+ * External image reference (`IfcImageTexture.URLReference`, #1781) for the
2328
+ * host to resolve — e.g. a sibling image inside the `.ifcZIP`. `undefined`
2329
+ * for untextured meshes and Rust-decoded blob/pixel textures.
2330
+ * @returns {string | undefined}
2331
+ */
2332
+ get textureUrl() {
2333
+ try {
2334
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2335
+ wasm.meshdatajs_textureUrl(retptr, this.__wbg_ptr);
2336
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2337
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2338
+ let v1;
2339
+ if (r0 !== 0) {
2340
+ v1 = getStringFromWasm0(r0, r1).slice();
2341
+ wasm.__wbindgen_export4(r0, r1 * 1, 1);
2342
+ }
2343
+ return v1;
2344
+ } finally {
2345
+ wasm.__wbindgen_add_to_stack_pointer(16);
2346
+ }
2347
+ }
2235
2348
  /**
2236
2349
  * Local (pre-placement, object-space) AABB (issue #1474), WebGL Y-up,
2237
2350
  * `[minX,minY,minZ,maxX,maxY,maxZ]`. `undefined` when not captured
@@ -2725,6 +2838,280 @@ export class ProfileEntryJs {
2725
2838
  }
2726
2839
  if (Symbol.dispose) ProfileEntryJs.prototype[Symbol.dispose] = ProfileEntryJs.prototype.free;
2727
2840
 
2841
+ /**
2842
+ * Flat result of `simplifyMeshes`: per surviving element `i`,
2843
+ * `vertexCounts[i]` vertices and `indexCounts[i]` indices taken in order
2844
+ * from the concatenated arrays (mirrors the `exportGlbFromMeshes` wire
2845
+ * convention). `localPositions` is 1:1 with `renderPositions` (f64, file
2846
+ * units, element object frame); `localIndices` is 1:1 with `renderIndices`
2847
+ * but in the IFC frame's winding. Skipped elements are reported in
2848
+ * `skippedIds` / `skippedReasons` and must keep their original geometry.
2849
+ */
2850
+ export class SimplifiedMeshes {
2851
+ static __wrap(ptr) {
2852
+ ptr = ptr >>> 0;
2853
+ const obj = Object.create(SimplifiedMeshes.prototype);
2854
+ obj.__wbg_ptr = ptr;
2855
+ SimplifiedMeshesFinalization.register(obj, obj.__wbg_ptr, obj);
2856
+ return obj;
2857
+ }
2858
+ __destroy_into_raw() {
2859
+ const ptr = this.__wbg_ptr;
2860
+ this.__wbg_ptr = 0;
2861
+ SimplifiedMeshesFinalization.unregister(this);
2862
+ return ptr;
2863
+ }
2864
+ free() {
2865
+ const ptr = this.__destroy_into_raw();
2866
+ wasm.__wbg_simplifiedmeshes_free(ptr, 0);
2867
+ }
2868
+ /**
2869
+ * @returns {Uint32Array}
2870
+ */
2871
+ get trisAfter() {
2872
+ try {
2873
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2874
+ wasm.simplifiedmeshes_trisAfter(retptr, this.__wbg_ptr);
2875
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2876
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2877
+ var v1 = getArrayU32FromWasm0(r0, r1).slice();
2878
+ wasm.__wbindgen_export4(r0, r1 * 4, 4);
2879
+ return v1;
2880
+ } finally {
2881
+ wasm.__wbindgen_add_to_stack_pointer(16);
2882
+ }
2883
+ }
2884
+ /**
2885
+ * @returns {Uint32Array}
2886
+ */
2887
+ get elementIds() {
2888
+ try {
2889
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2890
+ wasm.simplifiedmeshes_elementIds(retptr, this.__wbg_ptr);
2891
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2892
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2893
+ var v1 = getArrayU32FromWasm0(r0, r1).slice();
2894
+ wasm.__wbindgen_export4(r0, r1 * 4, 4);
2895
+ return v1;
2896
+ } finally {
2897
+ wasm.__wbindgen_add_to_stack_pointer(16);
2898
+ }
2899
+ }
2900
+ /**
2901
+ * @returns {Uint32Array}
2902
+ */
2903
+ get skippedIds() {
2904
+ try {
2905
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2906
+ wasm.simplifiedmeshes_skippedIds(retptr, this.__wbg_ptr);
2907
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2908
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2909
+ var v1 = getArrayU32FromWasm0(r0, r1).slice();
2910
+ wasm.__wbindgen_export4(r0, r1 * 4, 4);
2911
+ return v1;
2912
+ } finally {
2913
+ wasm.__wbindgen_add_to_stack_pointer(16);
2914
+ }
2915
+ }
2916
+ /**
2917
+ * @returns {Uint32Array}
2918
+ */
2919
+ get trisBefore() {
2920
+ try {
2921
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2922
+ wasm.simplifiedmeshes_trisBefore(retptr, this.__wbg_ptr);
2923
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2924
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2925
+ var v1 = getArrayU32FromWasm0(r0, r1).slice();
2926
+ wasm.__wbindgen_export4(r0, r1 * 4, 4);
2927
+ return v1;
2928
+ } finally {
2929
+ wasm.__wbindgen_add_to_stack_pointer(16);
2930
+ }
2931
+ }
2932
+ /**
2933
+ * @returns {Uint32Array}
2934
+ */
2935
+ get indexCounts() {
2936
+ try {
2937
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2938
+ wasm.simplifiedmeshes_indexCounts(retptr, this.__wbg_ptr);
2939
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2940
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2941
+ var v1 = getArrayU32FromWasm0(r0, r1).slice();
2942
+ wasm.__wbindgen_export4(r0, r1 * 4, 4);
2943
+ return v1;
2944
+ } finally {
2945
+ wasm.__wbindgen_add_to_stack_pointer(16);
2946
+ }
2947
+ }
2948
+ /**
2949
+ * @returns {Uint32Array}
2950
+ */
2951
+ get localIndices() {
2952
+ try {
2953
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2954
+ wasm.simplifiedmeshes_localIndices(retptr, this.__wbg_ptr);
2955
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2956
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2957
+ var v1 = getArrayU32FromWasm0(r0, r1).slice();
2958
+ wasm.__wbindgen_export4(r0, r1 * 4, 4);
2959
+ return v1;
2960
+ } finally {
2961
+ wasm.__wbindgen_add_to_stack_pointer(16);
2962
+ }
2963
+ }
2964
+ /**
2965
+ * @returns {Uint32Array}
2966
+ */
2967
+ get vertexCounts() {
2968
+ try {
2969
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2970
+ wasm.simplifiedmeshes_vertexCounts(retptr, this.__wbg_ptr);
2971
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2972
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2973
+ var v1 = getArrayU32FromWasm0(r0, r1).slice();
2974
+ wasm.__wbindgen_export4(r0, r1 * 4, 4);
2975
+ return v1;
2976
+ } finally {
2977
+ wasm.__wbindgen_add_to_stack_pointer(16);
2978
+ }
2979
+ }
2980
+ /**
2981
+ * @returns {Uint32Array}
2982
+ */
2983
+ get renderIndices() {
2984
+ try {
2985
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2986
+ wasm.simplifiedmeshes_renderIndices(retptr, this.__wbg_ptr);
2987
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2988
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2989
+ var v1 = getArrayU32FromWasm0(r0, r1).slice();
2990
+ wasm.__wbindgen_export4(r0, r1 * 4, 4);
2991
+ return v1;
2992
+ } finally {
2993
+ wasm.__wbindgen_add_to_stack_pointer(16);
2994
+ }
2995
+ }
2996
+ /**
2997
+ * @returns {Float32Array}
2998
+ */
2999
+ get renderNormals() {
3000
+ try {
3001
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
3002
+ wasm.simplifiedmeshes_renderNormals(retptr, this.__wbg_ptr);
3003
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
3004
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
3005
+ var v1 = getArrayF32FromWasm0(r0, r1).slice();
3006
+ wasm.__wbindgen_export4(r0, r1 * 4, 4);
3007
+ return v1;
3008
+ } finally {
3009
+ wasm.__wbindgen_add_to_stack_pointer(16);
3010
+ }
3011
+ }
3012
+ /**
3013
+ * xyz per element (frame matches the render positions' convention).
3014
+ * @returns {Float64Array}
3015
+ */
3016
+ get renderOrigins() {
3017
+ try {
3018
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
3019
+ wasm.simplifiedmeshes_renderOrigins(retptr, this.__wbg_ptr);
3020
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
3021
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
3022
+ var v1 = getArrayF64FromWasm0(r0, r1).slice();
3023
+ wasm.__wbindgen_export4(r0, r1 * 8, 8);
3024
+ return v1;
3025
+ } finally {
3026
+ wasm.__wbindgen_add_to_stack_pointer(16);
3027
+ }
3028
+ }
3029
+ /**
3030
+ * @returns {Float64Array}
3031
+ */
3032
+ get localPositions() {
3033
+ try {
3034
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
3035
+ wasm.simplifiedmeshes_localPositions(retptr, this.__wbg_ptr);
3036
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
3037
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
3038
+ var v1 = getArrayF64FromWasm0(r0, r1).slice();
3039
+ wasm.__wbindgen_export4(r0, r1 * 8, 8);
3040
+ return v1;
3041
+ } finally {
3042
+ wasm.__wbindgen_add_to_stack_pointer(16);
3043
+ }
3044
+ }
3045
+ /**
3046
+ * Skip reason per `skippedIds` entry (stable slugs:
3047
+ * `no-geometry` / `missing-placement` / `singular-placement` /
3048
+ * `empty-result` / `invalid-unit-scale`).
3049
+ * @returns {any[]}
3050
+ */
3051
+ get skippedReasons() {
3052
+ try {
3053
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
3054
+ wasm.simplifiedmeshes_skippedReasons(retptr, this.__wbg_ptr);
3055
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
3056
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
3057
+ var v1 = getArrayJsValueFromWasm0(r0, r1).slice();
3058
+ wasm.__wbindgen_export4(r0, r1 * 4, 4);
3059
+ return v1;
3060
+ } finally {
3061
+ wasm.__wbindgen_add_to_stack_pointer(16);
3062
+ }
3063
+ }
3064
+ /**
3065
+ * @returns {Uint32Array}
3066
+ */
3067
+ get cavitiesDropped() {
3068
+ try {
3069
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
3070
+ wasm.simplifiedmeshes_cavitiesDropped(retptr, this.__wbg_ptr);
3071
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
3072
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
3073
+ var v1 = getArrayU32FromWasm0(r0, r1).slice();
3074
+ wasm.__wbindgen_export4(r0, r1 * 4, 4);
3075
+ return v1;
3076
+ } finally {
3077
+ wasm.__wbindgen_add_to_stack_pointer(16);
3078
+ }
3079
+ }
3080
+ /**
3081
+ * @returns {Float32Array}
3082
+ */
3083
+ get renderPositions() {
3084
+ try {
3085
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
3086
+ wasm.simplifiedmeshes_renderPositions(retptr, this.__wbg_ptr);
3087
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
3088
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
3089
+ var v1 = getArrayF32FromWasm0(r0, r1).slice();
3090
+ wasm.__wbindgen_export4(r0, r1 * 4, 4);
3091
+ return v1;
3092
+ } finally {
3093
+ wasm.__wbindgen_add_to_stack_pointer(16);
3094
+ }
3095
+ }
3096
+ /**
3097
+ * @returns {Uint8Array}
3098
+ */
3099
+ get levels() {
3100
+ try {
3101
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
3102
+ wasm.simplifiedmeshes_levels(retptr, this.__wbg_ptr);
3103
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
3104
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
3105
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
3106
+ wasm.__wbindgen_export4(r0, r1 * 1, 1);
3107
+ return v1;
3108
+ } finally {
3109
+ wasm.__wbindgen_add_to_stack_pointer(16);
3110
+ }
3111
+ }
3112
+ }
3113
+ if (Symbol.dispose) SimplifiedMeshes.prototype[Symbol.dispose] = SimplifiedMeshes.prototype.free;
3114
+
2728
3115
  /**
2729
3116
  * A persistent, editable floor-plate topology. See the module docs.
2730
3117
  */
Binary file