@ifc-lite/geometry 1.18.5 → 2.0.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.
Files changed (67) hide show
  1. package/README.md +1 -1
  2. package/dist/geometry-coordinate.d.ts +0 -5
  3. package/dist/geometry-coordinate.d.ts.map +1 -1
  4. package/dist/geometry-coordinate.js +8 -19
  5. package/dist/geometry-coordinate.js.map +1 -1
  6. package/dist/geometry-parallel.d.ts +4 -26
  7. package/dist/geometry-parallel.d.ts.map +1 -1
  8. package/dist/geometry-parallel.js +5 -23
  9. package/dist/geometry-parallel.js.map +1 -1
  10. package/dist/geometry.worker.d.ts +0 -1
  11. package/dist/geometry.worker.d.ts.map +1 -1
  12. package/dist/geometry.worker.js.map +1 -1
  13. package/dist/ifc-lite-bridge.d.ts +2 -58
  14. package/dist/ifc-lite-bridge.d.ts.map +1 -1
  15. package/dist/ifc-lite-bridge.js +5 -127
  16. package/dist/ifc-lite-bridge.js.map +1 -1
  17. package/dist/index.d.ts +17 -46
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +100 -293
  20. package/dist/index.js.map +1 -1
  21. package/dist/platform-bridge.d.ts +6 -3
  22. package/dist/platform-bridge.d.ts.map +1 -1
  23. package/dist/platform-bridge.js +7 -7
  24. package/dist/platform-bridge.js.map +1 -1
  25. package/dist/progressive-loader.d.ts +5 -56
  26. package/dist/progressive-loader.d.ts.map +1 -1
  27. package/dist/progressive-loader.js +7 -132
  28. package/dist/progressive-loader.js.map +1 -1
  29. package/dist/types.d.ts +8 -29
  30. package/dist/types.d.ts.map +1 -1
  31. package/package.json +11 -20
  32. package/dist/default-materials.d.ts +0 -22
  33. package/dist/default-materials.d.ts.map +0 -1
  34. package/dist/default-materials.js +0 -124
  35. package/dist/default-materials.js.map +0 -1
  36. package/dist/geometry-controller.worker.d.ts +0 -4
  37. package/dist/geometry-controller.worker.d.ts.map +0 -1
  38. package/dist/geometry-controller.worker.js +0 -402
  39. package/dist/geometry-controller.worker.js.map +0 -1
  40. package/dist/geometry-deduplicator.d.ts +0 -42
  41. package/dist/geometry-deduplicator.d.ts.map +0 -1
  42. package/dist/geometry-deduplicator.js +0 -80
  43. package/dist/geometry-deduplicator.js.map +0 -1
  44. package/dist/ifc-lite-mesh-collector.d.ts +0 -111
  45. package/dist/ifc-lite-mesh-collector.d.ts.map +0 -1
  46. package/dist/ifc-lite-mesh-collector.js +0 -447
  47. package/dist/ifc-lite-mesh-collector.js.map +0 -1
  48. package/dist/lod.d.ts +0 -60
  49. package/dist/lod.d.ts.map +0 -1
  50. package/dist/lod.js +0 -113
  51. package/dist/lod.js.map +0 -1
  52. package/dist/style-cache.d.ts +0 -36
  53. package/dist/style-cache.d.ts.map +0 -1
  54. package/dist/style-cache.js +0 -127
  55. package/dist/style-cache.js.map +0 -1
  56. package/dist/wasm-bridge.d.ts +0 -22
  57. package/dist/wasm-bridge.d.ts.map +0 -1
  58. package/dist/wasm-bridge.js +0 -120
  59. package/dist/wasm-bridge.js.map +0 -1
  60. package/dist/wasm-memory-manager.d.ts +0 -178
  61. package/dist/wasm-memory-manager.d.ts.map +0 -1
  62. package/dist/wasm-memory-manager.js +0 -86
  63. package/dist/wasm-memory-manager.js.map +0 -1
  64. package/dist/zero-copy-collector.d.ts +0 -158
  65. package/dist/zero-copy-collector.d.ts.map +0 -1
  66. package/dist/zero-copy-collector.js +0 -224
  67. package/dist/zero-copy-collector.js.map +0 -1
package/dist/index.js CHANGED
@@ -7,7 +7,6 @@
7
7
  */
8
8
  // IFC-Lite components (recommended - faster)
9
9
  export { IfcLiteBridge } from './ifc-lite-bridge.js';
10
- export { IfcLiteMeshCollector } from './ifc-lite-mesh-collector.js';
11
10
  import { safeUtf8Decode } from '@ifc-lite/data';
12
11
  // Platform bridge abstraction (auto-selects WASM or native based on environment)
13
12
  export { createPlatformBridge, isTauri, } from './platform-bridge.js';
@@ -17,22 +16,13 @@ export { CoordinateHandler } from './coordinate-handler.js';
17
16
  export { GeometryQuality } from './progressive-loader.js';
18
17
  export { computeWorkerCount, pickWorkerCount } from './worker-count.js';
19
18
  export { getGeometryStreamWatchdogMs } from './watchdog.js';
20
- export { LODGenerator } from './lod.js';
21
- export { deduplicateMeshes, getDeduplicationStats } from './geometry-deduplicator.js';
22
19
  export * from './types.js';
23
- export * from './default-materials.js';
24
- // Zero-copy GPU upload (new - faster, less memory)
25
- export { WasmMemoryManager } from './wasm-memory-manager.js';
26
- export { ZeroCopyMeshCollector, ZeroCopyInstancedCollector, } from './zero-copy-collector.js';
27
- // Legacy exports for compatibility (deprecated)
28
- export { IfcLiteBridge as WebIfcBridge } from './ifc-lite-bridge.js';
29
20
  import { IfcLiteBridge } from './ifc-lite-bridge.js';
30
- import { IfcLiteMeshCollector } from './ifc-lite-mesh-collector.js';
31
21
  import { BufferBuilder } from './buffer-builder.js';
32
22
  import { CoordinateHandler } from './coordinate-handler.js';
33
23
  import { createPlatformBridge, isTauri } from './platform-bridge.js';
34
24
  // Extracted sub-modules
35
- import { getStreamingBatchSize, convertMeshCollectionToBatch, convertInstancedCollectionToBatch, withBuildingRotation } from './geometry-coordinate.js';
25
+ import { getStreamingBatchSize, convertMeshCollectionToBatch, withBuildingRotation } from './geometry-coordinate.js';
36
26
  import { streamNativeGeometry } from './geometry-native.js';
37
27
  import { processParallel } from './geometry-parallel.js';
38
28
  let activeWasmStreamingOperation = null;
@@ -48,20 +38,6 @@ function acquireWasmStreamingOperation(operation) {
48
38
  }
49
39
  };
50
40
  }
51
- /**
52
- * Calculate dynamic batch size based on batch number
53
- */
54
- export function calculateDynamicBatchSize(batchNumber, initialBatchSize = 50, maxBatchSize = 500) {
55
- if (batchNumber <= 3) {
56
- return initialBatchSize; // Fast first frame
57
- }
58
- else if (batchNumber <= 6) {
59
- return Math.floor((initialBatchSize + maxBatchSize) / 2); // Quick ramp
60
- }
61
- else {
62
- return maxBatchSize; // Full throughput earlier
63
- }
64
- }
65
41
  // QueuedNativeStreamingEvent, native stream constants, and yieldToEventLoop
66
42
  // have been extracted to ./geometry-native.ts
67
43
  export class GeometryProcessor {
@@ -186,20 +162,44 @@ export class GeometryProcessor {
186
162
  };
187
163
  }
188
164
  /**
189
- * Collect meshes on main thread using IFC-Lite WASM
165
+ * Collect ALL meshes for a buffer via the Family-A pre-pass + job-batch
166
+ * path — the same WASM entry points (`buildPrePassOnce` +
167
+ * `processGeometryBatch`) that the worker pool and the >256 MB streaming
168
+ * path already use. This is the single main-thread mesh-production
169
+ * implementation; it replaces the legacy whole-file
170
+ * `IfcLiteMeshCollector` / `parseMeshes` path.
171
+ *
172
+ * The merge-layers toggle is stateful on the bridge's IfcAPI (applied in
173
+ * `init()` via `bridge.setMergeLayers`), so the batch path honours it
174
+ * without any per-call argument. Bytes are passed straight through —
175
+ * no `TextDecoder` materialization of the whole file.
190
176
  */
191
- async collectMeshesMainThread(buffer, _entityIndex) {
177
+ collectMeshesViaPrePass(buffer) {
192
178
  if (!this.bridge) {
193
179
  throw new Error('WASM bridge not initialized');
194
180
  }
195
- // Convert buffer to string (IFC files are text)
196
- // SAB-safe: caller may pass a SharedArrayBuffer-backed view, which
197
- // both Firefox and Chromium reject in raw `TextDecoder.decode`.
198
- const content = safeUtf8Decode(buffer);
199
- const collector = new IfcLiteMeshCollector(this.bridge.getApi(), content, { mergeLayers: this.mergeLayers });
200
- const meshes = collector.collectMeshes();
201
- const buildingRotation = collector.getBuildingRotation();
202
- return { meshes, buildingRotation };
181
+ const api = this.bridge.getApi();
182
+ const prePass = api.buildPrePassOnce(buffer);
183
+ try {
184
+ const meshes = [];
185
+ const totalJobs = prePass.totalJobs ?? 0;
186
+ if (prePass.jobs && totalJobs > 0) {
187
+ // One batch over all jobs — synchronous callers want the full set.
188
+ const collection = api.processGeometryBatch(buffer, prePass.jobs, prePass.unitScale, prePass.rtcOffset?.[0] ?? 0, prePass.rtcOffset?.[1] ?? 0, prePass.rtcOffset?.[2] ?? 0, prePass.needsShift, prePass.voidKeys, prePass.voidCounts, prePass.voidValues, prePass.styleIds, prePass.styleColors);
189
+ meshes.push(...convertMeshCollectionToBatch(collection));
190
+ }
191
+ return { meshes, buildingRotation: prePass.buildingRotation ?? undefined };
192
+ }
193
+ finally {
194
+ // Always release the pre-pass cache — even if processGeometryBatch throws.
195
+ api.clearPrePassCache?.();
196
+ }
197
+ }
198
+ /**
199
+ * Collect meshes on main thread using IFC-Lite WASM.
200
+ */
201
+ async collectMeshesMainThread(buffer, _entityIndex) {
202
+ return this.collectMeshesViaPrePass(buffer);
203
203
  }
204
204
  // getStreamingBatchSize, convertMeshCollectionToBatch,
205
205
  // convertInstancedCollectionToBatch, and withBuildingRotation have been
@@ -210,122 +210,62 @@ export class GeometryProcessor {
210
210
  }
211
211
  const api = this.bridge.getApi();
212
212
  const prePass = api.buildPrePassOnce(buffer);
213
- yield { type: 'model-open', modelID: 0 };
214
- if (prePass.rtcOffset) {
215
- yield {
216
- type: 'rtcOffset',
217
- rtcOffset: {
218
- x: prePass.rtcOffset[0] ?? 0,
219
- y: prePass.rtcOffset[1] ?? 0,
220
- z: prePass.rtcOffset[2] ?? 0,
221
- },
222
- hasRtc: Boolean(prePass.needsShift),
223
- };
224
- }
225
- const buildingRotation = prePass.buildingRotation ?? undefined;
226
- if (!prePass.jobs || prePass.totalJobs === 0) {
227
- const coordinateInfo = withBuildingRotation(this.coordinateHandler.getFinalCoordinateInfo(), buildingRotation);
228
- yield { type: 'complete', totalMeshes: 0, coordinateInfo };
229
- return;
230
- }
231
- const batchSize = getStreamingBatchSize(buffer, batchConfig);
232
- // Cap at ~30 batches max to avoid excessive per-batch overhead
233
- const maxBatches = 30;
234
- const effectiveBatchSize = Math.max(batchSize, Math.ceil(prePass.totalJobs / maxBatches));
235
- let totalMeshes = 0;
236
- for (let startJob = 0; startJob < prePass.totalJobs; startJob += effectiveBatchSize) {
237
- const endJob = Math.min(startJob + effectiveBatchSize, prePass.totalJobs);
238
- const jobSlice = prePass.jobs.slice(startJob * 3, endJob * 3);
239
- const collection = api.processGeometryBatch(buffer, jobSlice, prePass.unitScale, prePass.rtcOffset?.[0] ?? 0, prePass.rtcOffset?.[1] ?? 0, prePass.rtcOffset?.[2] ?? 0, prePass.needsShift, prePass.voidKeys, prePass.voidCounts, prePass.voidValues, prePass.styleIds, prePass.styleColors);
240
- const batch = convertMeshCollectionToBatch(collection);
241
- if (batch.length === 0) {
242
- await new Promise(resolve => setTimeout(resolve, 0));
243
- continue;
213
+ // try/finally so the pre-pass cache is released on every exit: the
214
+ // totalJobs===0 early return, a processGeometryBatch throw, or the
215
+ // consumer abandoning the generator (which triggers `.return()`).
216
+ try {
217
+ yield { type: 'model-open', modelID: 0 };
218
+ if (prePass.rtcOffset) {
219
+ yield {
220
+ type: 'rtcOffset',
221
+ rtcOffset: {
222
+ x: prePass.rtcOffset[0] ?? 0,
223
+ y: prePass.rtcOffset[1] ?? 0,
224
+ z: prePass.rtcOffset[2] ?? 0,
225
+ },
226
+ hasRtc: Boolean(prePass.needsShift),
227
+ };
244
228
  }
245
- this.coordinateHandler.processMeshesIncremental(batch);
246
- totalMeshes += batch.length;
247
- const currentCoordinateInfo = this.coordinateHandler.getCurrentCoordinateInfo();
248
- const coordinateInfo = currentCoordinateInfo
249
- ? withBuildingRotation(currentCoordinateInfo, buildingRotation)
250
- : null;
251
- yield {
252
- type: 'batch',
253
- meshes: batch,
254
- totalSoFar: totalMeshes,
255
- coordinateInfo: coordinateInfo || undefined,
256
- };
257
- await new Promise(resolve => setTimeout(resolve, 0));
258
- }
259
- api.clearPrePassCache?.();
260
- const coordinateInfo = withBuildingRotation(this.coordinateHandler.getFinalCoordinateInfo(), buildingRotation);
261
- yield { type: 'complete', totalMeshes, coordinateInfo };
262
- }
263
- async *processInstancedStreamingBytes(buffer, batchSize) {
264
- if (!this.bridge) {
265
- throw new Error('WASM bridge not initialized');
266
- }
267
- const api = this.bridge.getApi();
268
- const prePass = api.buildPrePassOnce(buffer);
269
- const buildingRotation = prePass.buildingRotation ?? undefined;
270
- yield { type: 'model-open', modelID: 0 };
271
- if (!prePass.jobs || prePass.totalJobs === 0) {
272
- const coordinateInfo = withBuildingRotation(this.coordinateHandler.getFinalCoordinateInfo(), buildingRotation);
273
- yield { type: 'complete', totalGeometries: 0, totalInstances: 0, coordinateInfo };
274
- return;
275
- }
276
- let totalGeometries = 0;
277
- let totalInstances = 0;
278
- // Cap at ~30 batches max to avoid excessive per-batch overhead
279
- const maxBatches = 30;
280
- const effectiveBatchSize = Math.max(batchSize, Math.ceil(prePass.totalJobs / maxBatches));
281
- for (let startJob = 0; startJob < prePass.totalJobs; startJob += effectiveBatchSize) {
282
- const endJob = Math.min(startJob + effectiveBatchSize, prePass.totalJobs);
283
- const jobSlice = prePass.jobs.slice(startJob * 3, endJob * 3);
284
- const collection = api.processInstancedGeometryBatch(buffer, jobSlice, prePass.unitScale, prePass.rtcOffset?.[0] ?? 0, prePass.rtcOffset?.[1] ?? 0, prePass.rtcOffset?.[2] ?? 0, prePass.needsShift, prePass.styleIds, prePass.styleColors);
285
- const batch = convertInstancedCollectionToBatch(collection);
286
- if (batch.length === 0) {
287
- await new Promise(resolve => setTimeout(resolve, 0));
288
- continue;
229
+ const buildingRotation = prePass.buildingRotation ?? undefined;
230
+ if (!prePass.jobs || prePass.totalJobs === 0) {
231
+ const coordinateInfo = withBuildingRotation(this.coordinateHandler.getFinalCoordinateInfo(), buildingRotation);
232
+ yield { type: 'complete', totalMeshes: 0, coordinateInfo };
233
+ return;
289
234
  }
290
- const meshDataBatch = [];
291
- for (const geom of batch) {
292
- const positions = geom.positions;
293
- const normals = geom.normals;
294
- const indices = geom.indices;
295
- if (geom.instance_count > 0) {
296
- const firstInstance = geom.get_instance(0);
297
- if (firstInstance) {
298
- const color = firstInstance.color;
299
- meshDataBatch.push({
300
- expressId: firstInstance.expressId,
301
- positions,
302
- normals,
303
- indices,
304
- color: [color[0], color[1], color[2], color[3]],
305
- });
306
- }
235
+ const batchSize = getStreamingBatchSize(buffer, batchConfig);
236
+ // Cap at ~30 batches max to avoid excessive per-batch overhead
237
+ const maxBatches = 30;
238
+ const effectiveBatchSize = Math.max(batchSize, Math.ceil(prePass.totalJobs / maxBatches));
239
+ let totalMeshes = 0;
240
+ for (let startJob = 0; startJob < prePass.totalJobs; startJob += effectiveBatchSize) {
241
+ const endJob = Math.min(startJob + effectiveBatchSize, prePass.totalJobs);
242
+ const jobSlice = prePass.jobs.slice(startJob * 3, endJob * 3);
243
+ const collection = api.processGeometryBatch(buffer, jobSlice, prePass.unitScale, prePass.rtcOffset?.[0] ?? 0, prePass.rtcOffset?.[1] ?? 0, prePass.rtcOffset?.[2] ?? 0, prePass.needsShift, prePass.voidKeys, prePass.voidCounts, prePass.voidValues, prePass.styleIds, prePass.styleColors);
244
+ const batch = convertMeshCollectionToBatch(collection);
245
+ if (batch.length === 0) {
246
+ await new Promise(resolve => setTimeout(resolve, 0));
247
+ continue;
307
248
  }
249
+ this.coordinateHandler.processMeshesIncremental(batch);
250
+ totalMeshes += batch.length;
251
+ const currentCoordinateInfo = this.coordinateHandler.getCurrentCoordinateInfo();
252
+ const coordinateInfo = currentCoordinateInfo
253
+ ? withBuildingRotation(currentCoordinateInfo, buildingRotation)
254
+ : null;
255
+ yield {
256
+ type: 'batch',
257
+ meshes: batch,
258
+ totalSoFar: totalMeshes,
259
+ coordinateInfo: coordinateInfo || undefined,
260
+ };
261
+ await new Promise(resolve => setTimeout(resolve, 0));
308
262
  }
309
- if (meshDataBatch.length > 0) {
310
- this.coordinateHandler.processMeshesIncremental(meshDataBatch);
311
- }
312
- totalGeometries += batch.length;
313
- totalInstances += batch.reduce((sum, geometry) => sum + geometry.instance_count, 0);
314
- const currentCoordinateInfo = this.coordinateHandler.getCurrentCoordinateInfo();
315
- const coordinateInfo = currentCoordinateInfo
316
- ? withBuildingRotation(currentCoordinateInfo, buildingRotation)
317
- : null;
318
- yield {
319
- type: 'batch',
320
- geometries: batch,
321
- totalSoFar: totalGeometries,
322
- coordinateInfo: coordinateInfo || undefined,
323
- };
324
- await new Promise(resolve => setTimeout(resolve, 0));
263
+ const coordinateInfo = withBuildingRotation(this.coordinateHandler.getFinalCoordinateInfo(), buildingRotation);
264
+ yield { type: 'complete', totalMeshes, coordinateInfo };
265
+ }
266
+ finally {
267
+ api.clearPrePassCache?.();
325
268
  }
326
- api.clearPrePassCache?.();
327
- const coordinateInfo = withBuildingRotation(this.coordinateHandler.getFinalCoordinateInfo(), buildingRotation);
328
- yield { type: 'complete', totalGeometries, totalInstances, coordinateInfo };
329
269
  }
330
270
  /**
331
271
  * Process IFC file with streaming output for progressive rendering
@@ -435,53 +375,15 @@ export class GeometryProcessor {
435
375
  console.timeEnd('[GeometryProcessor] native-streaming');
436
376
  }
437
377
  else {
438
- // WASM PATH
378
+ // WASM PATH — single-threaded fallback (no SAB / Worker). Route ALL
379
+ // sizes through the Family-A pre-pass + job-batch streamer; the old
380
+ // 256 MB gate (above which we already used `processStreamingBytes`)
381
+ // is gone, so there is one byte-based streaming implementation and
382
+ // the legacy whole-file `IfcLiteMeshCollector` is no longer used.
439
383
  if (!this.bridge) {
440
384
  throw new Error('WASM bridge not initialized');
441
385
  }
442
- if (buffer.length >= GeometryProcessor.largeFileByteStreamingThreshold) {
443
- yield* this.processStreamingBytes(buffer, batchConfig);
444
- return;
445
- }
446
- // Convert buffer to string (IFC files are text). SAB-safe.
447
- const content = safeUtf8Decode(buffer);
448
- yield { type: 'model-open', modelID: 0 };
449
- const collector = new IfcLiteMeshCollector(this.bridge.getApi(), content, { mergeLayers: this.mergeLayers });
450
- let totalMeshes = 0;
451
- let extractedBuildingRotation = undefined;
452
- const wasmBatchSize = getStreamingBatchSize(buffer, batchConfig);
453
- // Use WASM batches directly for maximum throughput
454
- for await (const item of collector.collectMeshesStreaming(wasmBatchSize)) {
455
- // Handle color update events
456
- if (item && typeof item === 'object' && 'type' in item && item.type === 'colorUpdate') {
457
- yield { type: 'colorUpdate', updates: item.updates };
458
- continue;
459
- }
460
- // Handle RTC offset events
461
- if (item && typeof item === 'object' && 'type' in item && item.type === 'rtcOffset') {
462
- const rtcEvent = item;
463
- yield { type: 'rtcOffset', rtcOffset: rtcEvent.rtcOffset, hasRtc: rtcEvent.hasRtc };
464
- continue;
465
- }
466
- // Handle mesh batches
467
- const batch = item;
468
- // Process coordinate shifts incrementally (will accumulate bounds)
469
- this.coordinateHandler.processMeshesIncremental(batch);
470
- totalMeshes += batch.length;
471
- const coordinateInfo = this.coordinateHandler.getCurrentCoordinateInfo();
472
- // Merge buildingRotation if we have it
473
- const coordinateInfoWithRotation = coordinateInfo && extractedBuildingRotation !== undefined
474
- ? { ...coordinateInfo, buildingRotation: extractedBuildingRotation }
475
- : coordinateInfo;
476
- yield { type: 'batch', meshes: batch, totalSoFar: totalMeshes, coordinateInfo: coordinateInfoWithRotation || undefined };
477
- }
478
- // Get building rotation after streaming completes
479
- extractedBuildingRotation = collector.getBuildingRotation();
480
- const coordinateInfo = this.coordinateHandler.getFinalCoordinateInfo();
481
- const finalCoordinateInfo = extractedBuildingRotation !== undefined
482
- ? { ...coordinateInfo, buildingRotation: extractedBuildingRotation }
483
- : coordinateInfo;
484
- yield { type: 'complete', totalMeshes, coordinateInfo: finalCoordinateInfo };
386
+ yield* this.processStreamingBytes(buffer, batchConfig);
485
387
  }
486
388
  }
487
389
  /**
@@ -512,99 +414,6 @@ export class GeometryProcessor {
512
414
  }
513
415
  yield* streamNativeGeometry((options) => this.platformBridge.processGeometryStreamingCache(cacheKey, options), 0, this.coordinateHandler, (stats) => { this.lastNativeStats = stats; });
514
416
  }
515
- /**
516
- * Process IFC file with streaming instanced geometry output for progressive rendering
517
- * Groups identical geometries by hash (before transformation) for GPU instancing
518
- * @param buffer IFC file buffer
519
- * @param batchSize Number of unique geometries per batch (default: 25)
520
- */
521
- async *processInstancedStreaming(buffer, batchSize = 25) {
522
- const releaseWasmOperation = this.isNative
523
- ? null
524
- : acquireWasmStreamingOperation('processInstancedStreaming');
525
- try {
526
- yield* this.processInstancedStreamingUnlocked(buffer, batchSize);
527
- }
528
- finally {
529
- releaseWasmOperation?.();
530
- }
531
- }
532
- async *processInstancedStreamingUnlocked(buffer, batchSize = 25) {
533
- // Initialize if needed
534
- if (this.isNative) {
535
- if (!this.platformBridge) {
536
- await this.init();
537
- }
538
- // Note: Native instanced streaming not yet implemented - fall through to WASM
539
- // For now, throw an error to make it clear
540
- console.warn('[GeometryProcessor] Native instanced streaming not yet implemented, using WASM');
541
- }
542
- if (!this.bridge?.isInitialized()) {
543
- await this.init();
544
- }
545
- // Reset coordinate handler for new file
546
- this.coordinateHandler.reset();
547
- yield { type: 'start', totalEstimate: buffer.length / 1000 };
548
- // Adapt batch size for large files to reduce callback overhead
549
- // Larger batches = fewer callbacks = less overhead for huge models
550
- const fileSizeMB = buffer.length / (1024 * 1024);
551
- const effectiveBatchSize = fileSizeMB < 50 ? batchSize : fileSizeMB < 200 ? Math.max(batchSize, 50) : fileSizeMB < 300 ? Math.max(batchSize, 100) : Math.max(batchSize, 200);
552
- const byteBatchSize = Math.max(effectiveBatchSize, getStreamingBatchSize(buffer, batchSize));
553
- if (buffer.length >= GeometryProcessor.largeFileByteStreamingThreshold) {
554
- yield* this.processInstancedStreamingBytes(buffer, byteBatchSize);
555
- return;
556
- }
557
- // Convert buffer to string (IFC files are text)
558
- // SAB-safe: caller may pass a SharedArrayBuffer-backed view, which
559
- // both Firefox and Chromium reject in raw `TextDecoder.decode`.
560
- const content = safeUtf8Decode(buffer);
561
- // Use a placeholder model ID (IFC-Lite doesn't use model IDs)
562
- yield { type: 'model-open', modelID: 0 };
563
- const collector = new IfcLiteMeshCollector(this.bridge.getApi(), content, { mergeLayers: this.mergeLayers });
564
- let totalGeometries = 0;
565
- let totalInstances = 0;
566
- for await (const batch of collector.collectInstancedGeometryStreaming(effectiveBatchSize)) {
567
- // For instanced geometry, we need to extract mesh data from instances for coordinate handling
568
- // Convert InstancedGeometry to MeshData[] for coordinate handler
569
- const meshDataBatch = [];
570
- for (const geom of batch) {
571
- const positions = geom.positions;
572
- const normals = geom.normals;
573
- const indices = geom.indices;
574
- // Create a mesh data entry for each instance (for coordinate bounds calculation)
575
- // We'll use the first instance's color as representative
576
- if (geom.instance_count > 0) {
577
- const firstInstance = geom.get_instance(0);
578
- if (firstInstance) {
579
- const color = firstInstance.color;
580
- meshDataBatch.push({
581
- expressId: firstInstance.expressId,
582
- positions,
583
- normals,
584
- indices,
585
- color: [color[0], color[1], color[2], color[3]],
586
- });
587
- }
588
- }
589
- }
590
- // Process coordinate shifts incrementally
591
- if (meshDataBatch.length > 0) {
592
- this.coordinateHandler.processMeshesIncremental(meshDataBatch);
593
- }
594
- totalGeometries += batch.length;
595
- totalInstances += batch.reduce((sum, g) => sum + g.instance_count, 0);
596
- // Get current coordinate info for this batch
597
- const coordinateInfo = this.coordinateHandler.getCurrentCoordinateInfo();
598
- yield {
599
- type: 'batch',
600
- geometries: batch,
601
- totalSoFar: totalGeometries,
602
- coordinateInfo: coordinateInfo || undefined
603
- };
604
- }
605
- const coordinateInfo = this.coordinateHandler.getFinalCoordinateInfo();
606
- yield { type: 'complete', totalGeometries, totalInstances, coordinateInfo };
607
- }
608
417
  /**
609
418
  * Process IFC file in parallel using Web Workers.
610
419
  * Each worker gets its own WASM instance and processes a disjoint slice
@@ -618,10 +427,8 @@ export class GeometryProcessor {
618
427
  existingSab,
619
428
  /** Callback fired when the streaming pre-pass exports its entity index. */
620
429
  onEntityIndex,
621
- /** Phase 2 flag — use the single-controller worker (rayon-internal). */
622
- useSingleController,
623
430
  /**
624
- * Explicit wasm asset URLs forwarded to the worker pool. See
431
+ * Explicit wasm asset URL forwarded to the worker pool. See
625
432
  * `ProcessParallelOptions.wasmUrls` in `geometry-parallel.ts` for
626
433
  * the full rationale — needed only for bundlers that can't transform
627
434
  * `new URL('ifc-lite_bg.wasm', import.meta.url)` inside the worker
@@ -635,7 +442,6 @@ export class GeometryProcessor {
635
442
  }
636
443
  yield* processParallel(buffer, this.coordinateHandler, sharedRtcOffset, existingSab, {
637
444
  onEntityIndex,
638
- useSingleController,
639
445
  // Issue #540: forward the merge-layers preference snapshotted
640
446
  // at construction time. processParallel posts `set-merge-layers`
641
447
  // to every spawned worker right after `init`.
@@ -672,6 +478,7 @@ export class GeometryProcessor {
672
478
  yield { type: 'start', totalEstimate: buffer.length / 1000 };
673
479
  yield { type: 'model-open', modelID: 0 };
674
480
  let allMeshes;
481
+ let buildingRotation;
675
482
  if (this.isNative && this.platformBridge) {
676
483
  // NATIVE PATH - single batch processing
677
484
  console.time('[GeometryProcessor] native-adaptive-sync');
@@ -680,17 +487,17 @@ export class GeometryProcessor {
680
487
  console.timeEnd('[GeometryProcessor] native-adaptive-sync');
681
488
  }
682
489
  else {
683
- // WASM PATH (SAB-safe).
684
- const content = safeUtf8Decode(buffer);
685
- const collector = new IfcLiteMeshCollector(this.bridge.getApi(), content, { mergeLayers: this.mergeLayers });
686
- allMeshes = collector.collectMeshes();
490
+ // WASM PATH — Family-A pre-pass + job batches (SAB-safe, bytes in).
491
+ const collected = this.collectMeshesViaPrePass(buffer);
492
+ allMeshes = collected.meshes;
493
+ buildingRotation = collected.buildingRotation;
687
494
  }
688
495
  // NOTE: The sync path (<2MB) does not support sharedRtcOffset override.
689
496
  // Infrastructure models with large coordinates are always >2MB and use
690
497
  // the parallel/streaming paths where shared RTC is properly threaded.
691
498
  // Process coordinate shifts
692
499
  this.coordinateHandler.processMeshesIncremental(allMeshes);
693
- const coordinateInfo = this.coordinateHandler.getFinalCoordinateInfo();
500
+ const coordinateInfo = withBuildingRotation(this.coordinateHandler.getFinalCoordinateInfo(), buildingRotation);
694
501
  // Emit as single batch for immediate rendering
695
502
  yield {
696
503
  type: 'batch',
@@ -707,7 +514,7 @@ export class GeometryProcessor {
707
514
  && typeof navigator !== 'undefined'
708
515
  && (navigator.hardwareConcurrency ?? 1) > 1;
709
516
  if (useParallel) {
710
- yield* this.processParallel(buffer, options.sharedRtcOffset, options.existingSab, options.onEntityIndex, options.useSingleController, options.wasmUrls);
517
+ yield* this.processParallel(buffer, options.sharedRtcOffset, options.existingSab, options.onEntityIndex, options.wasmUrls);
711
518
  }
712
519
  else {
713
520
  yield* this.processStreaming(buffer, options.entityIndex, batchConfig, options.sharedRtcOffset);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -146,10 +146,13 @@ export interface IPlatformBridge {
146
146
  */
147
147
  export declare function isTauri(): boolean;
148
148
  /**
149
- * Create the appropriate platform bridge based on runtime environment
149
+ * Create the appropriate platform bridge based on runtime environment.
150
150
  *
151
- * In Tauri: Returns NativeBridge (native Rust processing)
152
- * In Browser: Returns WasmBridge (WASM processing)
151
+ * Only used on the native (Tauri) path — `GeometryProcessor` calls this
152
+ * exclusively when `isNative` (which requires `isTauri()`), so the browser
153
+ * never reaches here. In the browser, geometry runs through the WASM
154
+ * `GeometryProcessor.bridge` (`IfcLiteBridge`) + pre-pass/job-batch path
155
+ * directly, not through a platform bridge.
153
156
  */
154
157
  export declare function createPlatformBridge(): Promise<IPlatformBridge>;
155
158
  //# sourceMappingURL=platform-bridge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"platform-bridge.d.ts","sourceRoot":"","sources":["../src/platform-bridge.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,4BAA6B,SAAQ,8BAA8B;IAClF,QAAQ,EAAE,4BAA4B,EAAE,CAAC;IACzC,QAAQ,EAAE,8BAA8B,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,4BAA4B,GAAG,IAAI,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,eAAe,CAAC,EAAE,oBAAoB,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACzC,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACpE,0CAA0C;IAC1C,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC;IACjF,2CAA2C;IAC3C,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC5C,0BAA0B;IAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC;IAEzB;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAEjF;;;OAGG;IACH,mBAAmB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAEtE;;;;OAIG;IACH,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1G;;OAEG;IACH,4BAA4B,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAElH;;OAEG;IACH,6BAA6B,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEpG;;;OAGG;IACH,MAAM,IAAI,OAAO,GAAG,IAAI,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,OAAO,CAEjC;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,eAAe,CAAC,CAQrE"}
1
+ {"version":3,"file":"platform-bridge.d.ts","sourceRoot":"","sources":["../src/platform-bridge.ts"],"names":[],"mappings":"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"}