@ifc-lite/wasm 1.14.2 → 1.14.4

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/README.md CHANGED
@@ -114,7 +114,7 @@ println!("Parsed {} entities", result.entities.len());
114
114
  For contributing or running the full demo app:
115
115
 
116
116
  ```bash
117
- git clone https://github.com/louistrue/ifc-lite.git
117
+ GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/louistrue/ifc-lite.git
118
118
  cd ifc-lite
119
119
  pnpm install && pnpm dev
120
120
  ```
@@ -122,6 +122,8 @@ pnpm install && pnpm dev
122
122
  Open http://localhost:5173 and load an IFC file.
123
123
 
124
124
  > **Note:** Requires Node.js 18+ and pnpm 8+. No Rust toolchain needed - WASM is pre-built.
125
+ >
126
+ > **Git LFS:** Large benchmark fixtures are intentionally not downloaded during clone. Pull only the files you need, for example `git lfs pull --include="tests/models/ara3d/AC20-FZK-Haus.ifc"`.
125
127
  >
126
128
  > **📖 Full Guide**: See [Installation](docs/guide/installation.md) for detailed setup options including troubleshooting.
127
129
 
@@ -262,7 +264,7 @@ ifc-lite/
262
264
  For contributing to IFClite itself:
263
265
 
264
266
  ```bash
265
- git clone https://github.com/louistrue/ifc-lite.git
267
+ GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/louistrue/ifc-lite.git
266
268
  cd ifc-lite
267
269
  pnpm install
268
270
 
@@ -322,7 +324,7 @@ We welcome contributions!
322
324
 
323
325
  ```bash
324
326
  # Fork and clone
325
- git clone https://github.com/YOUR_USERNAME/ifc-lite.git
327
+ GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/YOUR_USERNAME/ifc-lite.git
326
328
 
327
329
  # Create a branch
328
330
  git checkout -b feature/my-feature
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": "1.14.2",
8
+ "version": "1.14.4",
9
9
  "license": "MPL-2.0",
10
10
  "repository": {
11
11
  "type": "git",
package/pkg/ifc-lite.d.ts CHANGED
@@ -183,8 +183,8 @@ export class GpuInstancedGeometryCollection {
183
183
  [Symbol.dispose](): void;
184
184
  get(index: number): GpuInstancedGeometry | undefined;
185
185
  /**
186
- * Get geometry by index with zero-copy access
187
- * Returns a reference that provides pointer access
186
+ * Get geometry by index with pointer access over owned buffers.
187
+ * This avoids exposing references tied to collection lifetime.
188
188
  */
189
189
  getRef(index: number): GpuInstancedGeometryRef | undefined;
190
190
  constructor();
@@ -192,8 +192,8 @@ export class GpuInstancedGeometryCollection {
192
192
  }
193
193
 
194
194
  /**
195
- * Reference to geometry in collection for zero-copy access
196
- * This avoids cloning when accessing geometry data
195
+ * Pointer-friendly geometry view with owned backing storage.
196
+ * Owning buffers prevents dangling pointers after collection mutation/drop.
197
197
  */
198
198
  export class GpuInstancedGeometryRef {
199
199
  private constructor();
@@ -927,7 +927,6 @@ export interface InitOutput {
927
927
  readonly __wbg_gpugeometry_free: (a: number, b: number) => void;
928
928
  readonly __wbg_gpuinstancedgeometry_free: (a: number, b: number) => void;
929
929
  readonly __wbg_gpuinstancedgeometrycollection_free: (a: number, b: number) => void;
930
- readonly __wbg_gpuinstancedgeometryref_free: (a: number, b: number) => void;
931
930
  readonly __wbg_gpumeshmetadata_free: (a: number, b: number) => void;
932
931
  readonly __wbg_ifcapi_free: (a: number, b: number) => void;
933
932
  readonly __wbg_instancedata_free: (a: number, b: number) => void;
@@ -986,21 +985,8 @@ export interface InitOutput {
986
985
  readonly gpuinstancedgeometry_vertexDataLen: (a: number) => number;
987
986
  readonly gpuinstancedgeometry_vertexDataPtr: (a: number) => number;
988
987
  readonly gpuinstancedgeometrycollection_get: (a: number, b: number) => number;
989
- readonly gpuinstancedgeometrycollection_getRef: (a: number, b: number) => number;
990
988
  readonly gpuinstancedgeometrycollection_length: (a: number) => number;
991
989
  readonly gpuinstancedgeometrycollection_new: () => number;
992
- readonly gpuinstancedgeometryref_geometryId: (a: number) => bigint;
993
- readonly gpuinstancedgeometryref_indicesByteLength: (a: number) => number;
994
- readonly gpuinstancedgeometryref_indicesLen: (a: number) => number;
995
- readonly gpuinstancedgeometryref_indicesPtr: (a: number) => number;
996
- readonly gpuinstancedgeometryref_instanceCount: (a: number) => number;
997
- readonly gpuinstancedgeometryref_instanceDataByteLength: (a: number) => number;
998
- readonly gpuinstancedgeometryref_instanceDataLen: (a: number) => number;
999
- readonly gpuinstancedgeometryref_instanceDataPtr: (a: number) => number;
1000
- readonly gpuinstancedgeometryref_instanceExpressIdsPtr: (a: number) => number;
1001
- readonly gpuinstancedgeometryref_vertexDataByteLength: (a: number) => number;
1002
- readonly gpuinstancedgeometryref_vertexDataLen: (a: number) => number;
1003
- readonly gpuinstancedgeometryref_vertexDataPtr: (a: number) => number;
1004
990
  readonly gpumeshmetadata_color: (a: number, b: number) => void;
1005
991
  readonly gpumeshmetadata_expressId: (a: number) => number;
1006
992
  readonly gpumeshmetadata_ifcTypeIdx: (a: number) => number;
@@ -1093,6 +1079,10 @@ export interface InitOutput {
1093
1079
  readonly zerocopymesh_positions_ptr: (a: number) => number;
1094
1080
  readonly zerocopymesh_vertex_count: (a: number) => number;
1095
1081
  readonly init: () => void;
1082
+ readonly gpuinstancedgeometryref_indicesLen: (a: number) => number;
1083
+ readonly gpuinstancedgeometryref_instanceCount: (a: number) => number;
1084
+ readonly gpuinstancedgeometryref_instanceDataLen: (a: number) => number;
1085
+ readonly gpuinstancedgeometryref_vertexDataLen: (a: number) => number;
1096
1086
  readonly instancedmeshcollection_length: (a: number) => number;
1097
1087
  readonly instancedmeshcollection_totalGeometries: (a: number) => number;
1098
1088
  readonly meshcollectionwithrtc_length: (a: number) => number;
@@ -1103,18 +1093,28 @@ export interface InitOutput {
1103
1093
  readonly __wbg_set_rtcoffsetjs_x: (a: number, b: number) => void;
1104
1094
  readonly __wbg_set_rtcoffsetjs_y: (a: number, b: number) => void;
1105
1095
  readonly __wbg_set_rtcoffsetjs_z: (a: number, b: number) => void;
1096
+ readonly gpuinstancedgeometryref_geometryId: (a: number) => bigint;
1106
1097
  readonly instancedgeometry_geometryId: (a: number) => bigint;
1107
1098
  readonly meshcollection_rtcOffsetX: (a: number) => number;
1108
1099
  readonly symboliccircle_expressId: (a: number) => number;
1100
+ readonly gpuinstancedgeometryref_indicesByteLength: (a: number) => number;
1101
+ readonly gpuinstancedgeometryref_instanceDataByteLength: (a: number) => number;
1102
+ readonly gpuinstancedgeometryref_vertexDataByteLength: (a: number) => number;
1103
+ readonly gpuinstancedgeometrycollection_getRef: (a: number, b: number) => number;
1109
1104
  readonly zerocopymesh_triangle_count: (a: number) => number;
1105
+ readonly gpuinstancedgeometryref_indicesPtr: (a: number) => number;
1106
+ readonly gpuinstancedgeometryref_instanceDataPtr: (a: number) => number;
1107
+ readonly gpuinstancedgeometryref_instanceExpressIdsPtr: (a: number) => number;
1108
+ readonly gpuinstancedgeometryref_vertexDataPtr: (a: number) => number;
1110
1109
  readonly zerocopymesh_indices_ptr: (a: number) => number;
1111
1110
  readonly zerocopymesh_normals_ptr: (a: number) => number;
1111
+ readonly __wbg_gpuinstancedgeometryref_free: (a: number, b: number) => void;
1112
1112
  readonly get_memory: () => number;
1113
- readonly __wasm_bindgen_func_elem_1032: (a: number, b: number) => void;
1114
- readonly __wasm_bindgen_func_elem_480: (a: number, b: number) => void;
1115
- readonly __wasm_bindgen_func_elem_1037: (a: number, b: number, c: number, d: number) => void;
1116
- readonly __wasm_bindgen_func_elem_1070: (a: number, b: number, c: number, d: number) => void;
1117
- readonly __wasm_bindgen_func_elem_484: (a: number, b: number) => void;
1113
+ readonly __wasm_bindgen_func_elem_1016: (a: number, b: number) => void;
1114
+ readonly __wasm_bindgen_func_elem_465: (a: number, b: number) => void;
1115
+ readonly __wasm_bindgen_func_elem_1021: (a: number, b: number, c: number, d: number) => void;
1116
+ readonly __wasm_bindgen_func_elem_1054: (a: number, b: number, c: number, d: number) => void;
1117
+ readonly __wasm_bindgen_func_elem_469: (a: number, b: number) => void;
1118
1118
  readonly __wbindgen_export: (a: number) => void;
1119
1119
  readonly __wbindgen_export2: (a: number, b: number, c: number) => void;
1120
1120
  readonly __wbindgen_export3: (a: number, b: number) => number;
package/pkg/ifc-lite.js CHANGED
@@ -560,8 +560,8 @@ export class GpuInstancedGeometryCollection {
560
560
  return ret === 0 ? undefined : GpuInstancedGeometry.__wrap(ret);
561
561
  }
562
562
  /**
563
- * Get geometry by index with zero-copy access
564
- * Returns a reference that provides pointer access
563
+ * Get geometry by index with pointer access over owned buffers.
564
+ * This avoids exposing references tied to collection lifetime.
565
565
  * @param {number} index
566
566
  * @returns {GpuInstancedGeometryRef | undefined}
567
567
  */
@@ -586,8 +586,8 @@ export class GpuInstancedGeometryCollection {
586
586
  if (Symbol.dispose) GpuInstancedGeometryCollection.prototype[Symbol.dispose] = GpuInstancedGeometryCollection.prototype.free;
587
587
 
588
588
  /**
589
- * Reference to geometry in collection for zero-copy access
590
- * This avoids cloning when accessing geometry data
589
+ * Pointer-friendly geometry view with owned backing storage.
590
+ * Owning buffers prevents dangling pointers after collection mutation/drop.
591
591
  */
592
592
  export class GpuInstancedGeometryRef {
593
593
  static __wrap(ptr) {
@@ -2446,7 +2446,7 @@ function __wbg_get_imports() {
2446
2446
  const a = state0.a;
2447
2447
  state0.a = 0;
2448
2448
  try {
2449
- return __wasm_bindgen_func_elem_1070(a, state0.b, arg0, arg1);
2449
+ return __wasm_bindgen_func_elem_1054(a, state0.b, arg0, arg1);
2450
2450
  } finally {
2451
2451
  state0.a = a;
2452
2452
  }
@@ -2529,12 +2529,12 @@ function __wbg_get_imports() {
2529
2529
  },
2530
2530
  __wbindgen_cast_0000000000000001: function(arg0, arg1) {
2531
2531
  // Cast intrinsic for `Closure(Closure { dtor_idx: 135, function: Function { arguments: [Externref], shim_idx: 136, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`.
2532
- const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_1032, __wasm_bindgen_func_elem_1037);
2532
+ const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_1016, __wasm_bindgen_func_elem_1021);
2533
2533
  return addHeapObject(ret);
2534
2534
  },
2535
2535
  __wbindgen_cast_0000000000000002: function(arg0, arg1) {
2536
2536
  // Cast intrinsic for `Closure(Closure { dtor_idx: 46, function: Function { arguments: [], shim_idx: 47, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
2537
- const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_480, __wasm_bindgen_func_elem_484);
2537
+ const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_465, __wasm_bindgen_func_elem_469);
2538
2538
  return addHeapObject(ret);
2539
2539
  },
2540
2540
  __wbindgen_cast_0000000000000003: function(arg0) {
@@ -2562,18 +2562,18 @@ function __wbg_get_imports() {
2562
2562
  };
2563
2563
  return {
2564
2564
  __proto__: null,
2565
- "./ifc_lite_wasm_bg.js": import0,
2565
+ "./ifc-lite_bg.js": import0,
2566
2566
  };
2567
2567
  }
2568
2568
 
2569
- function __wasm_bindgen_func_elem_484(arg0, arg1) {
2570
- wasm.__wasm_bindgen_func_elem_484(arg0, arg1);
2569
+ function __wasm_bindgen_func_elem_469(arg0, arg1) {
2570
+ wasm.__wasm_bindgen_func_elem_469(arg0, arg1);
2571
2571
  }
2572
2572
 
2573
- function __wasm_bindgen_func_elem_1037(arg0, arg1, arg2) {
2573
+ function __wasm_bindgen_func_elem_1021(arg0, arg1, arg2) {
2574
2574
  try {
2575
2575
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2576
- wasm.__wasm_bindgen_func_elem_1037(retptr, arg0, arg1, addHeapObject(arg2));
2576
+ wasm.__wasm_bindgen_func_elem_1021(retptr, arg0, arg1, addHeapObject(arg2));
2577
2577
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2578
2578
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2579
2579
  if (r1) {
@@ -2584,8 +2584,8 @@ function __wasm_bindgen_func_elem_1037(arg0, arg1, arg2) {
2584
2584
  }
2585
2585
  }
2586
2586
 
2587
- function __wasm_bindgen_func_elem_1070(arg0, arg1, arg2, arg3) {
2588
- wasm.__wasm_bindgen_func_elem_1070(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
2587
+ function __wasm_bindgen_func_elem_1054(arg0, arg1, arg2, arg3) {
2588
+ wasm.__wasm_bindgen_func_elem_1054(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
2589
2589
  }
2590
2590
 
2591
2591
  const GeoReferenceJsFinalization = (typeof FinalizationRegistry === 'undefined')
Binary file