@ifc-lite/geometry 1.1.7 → 1.2.1
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/LICENSE +373 -0
- package/dist/default-materials.d.ts.map +1 -1
- package/dist/default-materials.js +12 -1
- package/dist/default-materials.js.map +1 -1
- package/dist/ifc-lite-bridge.d.ts +1 -0
- package/dist/ifc-lite-bridge.d.ts.map +1 -1
- package/dist/ifc-lite-bridge.js.map +1 -1
- package/dist/ifc-lite-mesh-collector.d.ts +12 -2
- package/dist/ifc-lite-mesh-collector.d.ts.map +1 -1
- package/dist/ifc-lite-mesh-collector.js +63 -7
- package/dist/ifc-lite-mesh-collector.js.map +1 -1
- package/dist/index.d.ts +40 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +167 -85
- package/dist/index.js.map +1 -1
- package/dist/native-bridge.d.ts +24 -0
- package/dist/native-bridge.d.ts.map +1 -0
- package/dist/native-bridge.js +141 -0
- package/dist/native-bridge.js.map +1 -0
- package/dist/platform-bridge.d.ts +96 -0
- package/dist/platform-bridge.d.ts.map +1 -0
- package/dist/platform-bridge.js +26 -0
- package/dist/platform-bridge.js.map +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/wasm-bridge.d.ts +21 -0
- package/dist/wasm-bridge.d.ts.map +1 -0
- package/dist/wasm-bridge.js +111 -0
- package/dist/wasm-bridge.js.map +1 -0
- package/dist/wasm-memory-manager.d.ts +178 -0
- package/dist/wasm-memory-manager.d.ts.map +1 -0
- package/dist/wasm-memory-manager.js +86 -0
- package/dist/wasm-memory-manager.js.map +1 -0
- package/dist/zero-copy-collector.d.ts +158 -0
- package/dist/zero-copy-collector.d.ts.map +1 -0
- package/dist/zero-copy-collector.js +224 -0
- package/dist/zero-copy-collector.js.map +1 -0
- package/package.json +12 -8
- package/dist/geometry.worker.d.ts +0 -2
- package/dist/geometry.worker.d.ts.map +0 -1
- package/dist/geometry.worker.js +0 -116
- package/dist/geometry.worker.js.map +0 -1
- package/dist/worker-pool.d.ts +0 -56
- package/dist/worker-pool.d.ts.map +0 -1
- package/dist/worker-pool.js +0 -160
- package/dist/worker-pool.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -3,22 +3,41 @@
|
|
|
3
3
|
* Now powered by IFC-Lite native Rust WASM (1.9x faster than web-ifc)
|
|
4
4
|
*/
|
|
5
5
|
export { IfcLiteBridge } from './ifc-lite-bridge.js';
|
|
6
|
-
export { IfcLiteMeshCollector } from './ifc-lite-mesh-collector.js';
|
|
6
|
+
export { IfcLiteMeshCollector, type StreamingColorUpdateEvent } from './ifc-lite-mesh-collector.js';
|
|
7
|
+
export { createPlatformBridge, isTauri, type IPlatformBridge, type GeometryProcessingResult, type GeometryStats as PlatformGeometryStats, type StreamingOptions, type StreamingProgress, type GeometryBatch, } from './platform-bridge.js';
|
|
8
|
+
export { WasmBridge } from './wasm-bridge.js';
|
|
9
|
+
export { NativeBridge } from './native-bridge.js';
|
|
7
10
|
export { BufferBuilder } from './buffer-builder.js';
|
|
8
11
|
export { CoordinateHandler } from './coordinate-handler.js';
|
|
9
|
-
export { WorkerPool } from './worker-pool.js';
|
|
10
12
|
export { GeometryQuality } from './progressive-loader.js';
|
|
11
13
|
export { LODGenerator, type LODConfig, type LODMesh } from './lod.js';
|
|
12
14
|
export { deduplicateMeshes, getDeduplicationStats, type InstancedMeshData, type DeduplicationStats } from './geometry-deduplicator.js';
|
|
13
15
|
export * from './types.js';
|
|
14
16
|
export * from './default-materials.js';
|
|
17
|
+
export { WasmMemoryManager, type GpuGeometryHandle, type GpuMeshMetadataHandle, type GpuInstancedGeometryHandle, type GpuInstancedGeometryCollectionHandle, type GpuInstancedGeometryRefHandle } from './wasm-memory-manager.js';
|
|
18
|
+
export { ZeroCopyMeshCollector, ZeroCopyInstancedCollector, type ZeroCopyStreamingProgress, type ZeroCopyBatchResult, type ZeroCopyCompleteStats, type ZeroCopyMeshMetadata, type ZeroCopyBatch, type ZeroCopyInstancedBatch, } from './zero-copy-collector.js';
|
|
15
19
|
export { IfcLiteBridge as WebIfcBridge } from './ifc-lite-bridge.js';
|
|
16
20
|
import { GeometryQuality } from './progressive-loader.js';
|
|
17
21
|
import type { GeometryResult, MeshData } from './types.js';
|
|
18
22
|
export interface GeometryProcessorOptions {
|
|
19
|
-
useWorkers?: boolean;
|
|
20
23
|
quality?: GeometryQuality;
|
|
21
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Dynamic batch configuration for ramp-up streaming
|
|
27
|
+
* Starts with small batches for fast first frame, ramps up for throughput
|
|
28
|
+
*/
|
|
29
|
+
export interface DynamicBatchConfig {
|
|
30
|
+
/** Initial batch size for first 3 batches (default: 50) */
|
|
31
|
+
initialBatchSize?: number;
|
|
32
|
+
/** Maximum batch size for batches 11+ (default: 500) */
|
|
33
|
+
maxBatchSize?: number;
|
|
34
|
+
/** File size in MB for adaptive sizing (optional) */
|
|
35
|
+
fileSizeMB?: number;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Calculate dynamic batch size based on batch number
|
|
39
|
+
*/
|
|
40
|
+
export declare function calculateDynamicBatchSize(batchNumber: number, initialBatchSize?: number, maxBatchSize?: number): number;
|
|
22
41
|
export type StreamingGeometryEvent = {
|
|
23
42
|
type: 'start';
|
|
24
43
|
totalEstimate: number;
|
|
@@ -30,6 +49,9 @@ export type StreamingGeometryEvent = {
|
|
|
30
49
|
meshes: MeshData[];
|
|
31
50
|
totalSoFar: number;
|
|
32
51
|
coordinateInfo?: import('./types.js').CoordinateInfo;
|
|
52
|
+
} | {
|
|
53
|
+
type: 'colorUpdate';
|
|
54
|
+
updates: Map<number, [number, number, number, number]>;
|
|
33
55
|
} | {
|
|
34
56
|
type: 'complete';
|
|
35
57
|
totalMeshes: number;
|
|
@@ -54,34 +76,35 @@ export type StreamingInstancedGeometryEvent = {
|
|
|
54
76
|
};
|
|
55
77
|
export declare class GeometryProcessor {
|
|
56
78
|
private bridge;
|
|
79
|
+
private platformBridge;
|
|
57
80
|
private bufferBuilder;
|
|
58
81
|
private coordinateHandler;
|
|
59
|
-
private
|
|
60
|
-
private useWorkers;
|
|
82
|
+
private isNative;
|
|
61
83
|
constructor(options?: GeometryProcessorOptions);
|
|
62
84
|
/**
|
|
63
|
-
* Initialize
|
|
64
|
-
*
|
|
85
|
+
* Initialize the geometry processor
|
|
86
|
+
* In Tauri: Creates platform bridge for native Rust processing
|
|
87
|
+
* In browser: Loads WASM
|
|
65
88
|
*/
|
|
66
89
|
init(_wasmPath?: string): Promise<void>;
|
|
67
90
|
/**
|
|
68
|
-
* Process IFC file and extract geometry
|
|
91
|
+
* Process IFC file and extract geometry (synchronous, use processStreaming for large files)
|
|
69
92
|
* @param buffer IFC file buffer
|
|
70
93
|
* @param entityIndex Optional entity index for priority-based loading
|
|
71
94
|
*/
|
|
72
95
|
process(buffer: Uint8Array, entityIndex?: Map<number, any>): Promise<GeometryResult>;
|
|
73
96
|
/**
|
|
74
|
-
* Collect meshes on main thread using IFC-Lite
|
|
97
|
+
* Collect meshes on main thread using IFC-Lite WASM
|
|
75
98
|
*/
|
|
76
99
|
private collectMeshesMainThread;
|
|
77
100
|
/**
|
|
78
101
|
* Process IFC file with streaming output for progressive rendering
|
|
79
|
-
* Uses
|
|
102
|
+
* Uses native Rust in Tauri, WASM in browser
|
|
80
103
|
* @param buffer IFC file buffer
|
|
81
104
|
* @param entityIndex Optional entity index for priority-based loading
|
|
82
|
-
* @param
|
|
105
|
+
* @param batchConfig Dynamic batch configuration or fixed batch size
|
|
83
106
|
*/
|
|
84
|
-
processStreaming(buffer: Uint8Array, _entityIndex?: Map<number, any>,
|
|
107
|
+
processStreaming(buffer: Uint8Array, _entityIndex?: Map<number, any>, batchConfig?: number | DynamicBatchConfig): AsyncGenerator<StreamingGeometryEvent>;
|
|
85
108
|
/**
|
|
86
109
|
* Process IFC file with streaming instanced geometry output for progressive rendering
|
|
87
110
|
* Groups identical geometries by hash (before transformation) for GPU instancing
|
|
@@ -101,9 +124,13 @@ export declare class GeometryProcessor {
|
|
|
101
124
|
*/
|
|
102
125
|
processAdaptive(buffer: Uint8Array, options?: {
|
|
103
126
|
sizeThreshold?: number;
|
|
104
|
-
batchSize?: number;
|
|
127
|
+
batchSize?: number | DynamicBatchConfig;
|
|
105
128
|
entityIndex?: Map<number, any>;
|
|
106
129
|
}): AsyncGenerator<StreamingGeometryEvent>;
|
|
130
|
+
/**
|
|
131
|
+
* Get the WASM API instance for advanced operations (e.g., entity scanning)
|
|
132
|
+
*/
|
|
133
|
+
getApi(): import("@ifc-lite/wasm").IfcAPI | null;
|
|
107
134
|
/**
|
|
108
135
|
* Cleanup resources
|
|
109
136
|
*/
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -8,100 +8,106 @@
|
|
|
8
8
|
// IFC-Lite components (recommended - faster)
|
|
9
9
|
export { IfcLiteBridge } from './ifc-lite-bridge.js';
|
|
10
10
|
export { IfcLiteMeshCollector } from './ifc-lite-mesh-collector.js';
|
|
11
|
+
// Platform bridge abstraction (auto-selects WASM or native based on environment)
|
|
12
|
+
export { createPlatformBridge, isTauri, } from './platform-bridge.js';
|
|
13
|
+
export { WasmBridge } from './wasm-bridge.js';
|
|
14
|
+
export { NativeBridge } from './native-bridge.js';
|
|
11
15
|
// Support components
|
|
12
16
|
export { BufferBuilder } from './buffer-builder.js';
|
|
13
17
|
export { CoordinateHandler } from './coordinate-handler.js';
|
|
14
|
-
export { WorkerPool } from './worker-pool.js';
|
|
15
18
|
export { GeometryQuality } from './progressive-loader.js';
|
|
16
19
|
export { LODGenerator } from './lod.js';
|
|
17
20
|
export { deduplicateMeshes, getDeduplicationStats } from './geometry-deduplicator.js';
|
|
18
21
|
export * from './types.js';
|
|
19
22
|
export * from './default-materials.js';
|
|
23
|
+
// Zero-copy GPU upload (new - faster, less memory)
|
|
24
|
+
export { WasmMemoryManager } from './wasm-memory-manager.js';
|
|
25
|
+
export { ZeroCopyMeshCollector, ZeroCopyInstancedCollector, } from './zero-copy-collector.js';
|
|
20
26
|
// Legacy exports for compatibility (deprecated)
|
|
21
27
|
export { IfcLiteBridge as WebIfcBridge } from './ifc-lite-bridge.js';
|
|
22
28
|
import { IfcLiteBridge } from './ifc-lite-bridge.js';
|
|
23
29
|
import { IfcLiteMeshCollector } from './ifc-lite-mesh-collector.js';
|
|
24
30
|
import { BufferBuilder } from './buffer-builder.js';
|
|
25
31
|
import { CoordinateHandler } from './coordinate-handler.js';
|
|
26
|
-
import {
|
|
32
|
+
import { createPlatformBridge, isTauri } from './platform-bridge.js';
|
|
33
|
+
/**
|
|
34
|
+
* Calculate dynamic batch size based on batch number
|
|
35
|
+
*/
|
|
36
|
+
export function calculateDynamicBatchSize(batchNumber, initialBatchSize = 50, maxBatchSize = 500) {
|
|
37
|
+
if (batchNumber <= 3) {
|
|
38
|
+
return initialBatchSize; // Fast first frame
|
|
39
|
+
}
|
|
40
|
+
else if (batchNumber <= 6) {
|
|
41
|
+
return Math.floor((initialBatchSize + maxBatchSize) / 2); // Quick ramp
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
return maxBatchSize; // Full throughput earlier
|
|
45
|
+
}
|
|
46
|
+
}
|
|
27
47
|
export class GeometryProcessor {
|
|
28
|
-
bridge;
|
|
48
|
+
bridge = null;
|
|
49
|
+
platformBridge = null;
|
|
29
50
|
bufferBuilder;
|
|
30
51
|
coordinateHandler;
|
|
31
|
-
|
|
32
|
-
useWorkers = false;
|
|
52
|
+
isNative = false;
|
|
33
53
|
constructor(options = {}) {
|
|
34
|
-
this.bridge = new IfcLiteBridge();
|
|
35
54
|
this.bufferBuilder = new BufferBuilder();
|
|
36
55
|
this.coordinateHandler = new CoordinateHandler();
|
|
37
|
-
this.
|
|
38
|
-
// Note:
|
|
56
|
+
this.isNative = isTauri();
|
|
57
|
+
// Note: options accepted for API compatibility
|
|
39
58
|
void options.quality;
|
|
59
|
+
if (this.isNative) {
|
|
60
|
+
console.log('[GeometryProcessor] Running in Tauri - using NATIVE Rust processing');
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
console.log('[GeometryProcessor] Running in browser - using WASM processing');
|
|
64
|
+
this.bridge = new IfcLiteBridge();
|
|
65
|
+
}
|
|
40
66
|
}
|
|
41
67
|
/**
|
|
42
|
-
* Initialize
|
|
43
|
-
*
|
|
68
|
+
* Initialize the geometry processor
|
|
69
|
+
* In Tauri: Creates platform bridge for native Rust processing
|
|
70
|
+
* In browser: Loads WASM
|
|
44
71
|
*/
|
|
45
72
|
async init(_wasmPath) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
73
|
+
if (this.isNative) {
|
|
74
|
+
// Create platform bridge for native processing
|
|
75
|
+
this.platformBridge = await createPlatformBridge();
|
|
76
|
+
await this.platformBridge.init();
|
|
77
|
+
console.log('[GeometryProcessor] Native bridge initialized');
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
// WASM path
|
|
81
|
+
if (this.bridge) {
|
|
82
|
+
await this.bridge.init();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
50
85
|
}
|
|
51
86
|
/**
|
|
52
|
-
* Process IFC file and extract geometry
|
|
87
|
+
* Process IFC file and extract geometry (synchronous, use processStreaming for large files)
|
|
53
88
|
* @param buffer IFC file buffer
|
|
54
89
|
* @param entityIndex Optional entity index for priority-based loading
|
|
55
90
|
*/
|
|
56
91
|
async process(buffer, entityIndex) {
|
|
57
|
-
if (!this.bridge.isInitialized()) {
|
|
58
|
-
await this.init();
|
|
59
|
-
}
|
|
60
|
-
// entityIndex is used in collectMeshesMainThread for priority-based loading
|
|
61
92
|
void entityIndex;
|
|
62
93
|
let meshes;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
workerUrl = new URL('./geometry.worker.ts', import.meta.url);
|
|
72
|
-
}
|
|
73
|
-
catch (e) {
|
|
74
|
-
workerUrl = './geometry.worker.ts';
|
|
75
|
-
}
|
|
76
|
-
this.workerPool = new WorkerPool(workerUrl, 1); // Use single worker for now
|
|
77
|
-
await this.workerPool.init();
|
|
78
|
-
}
|
|
79
|
-
catch (error) {
|
|
80
|
-
console.warn('[GeometryProcessor] Worker pool initialization failed, will use main thread:', error);
|
|
81
|
-
this.workerPool = null;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
if (this.workerPool?.isAvailable()) {
|
|
85
|
-
try {
|
|
86
|
-
meshes = await this.workerPool.submit('mesh-collection', {
|
|
87
|
-
buffer: buffer.buffer,
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
catch (error) {
|
|
91
|
-
console.warn('[Geometry] Worker pool failed, falling back to main thread:', error);
|
|
92
|
-
meshes = await this.collectMeshesMainThread(buffer);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
// Fallback to main thread
|
|
97
|
-
meshes = await this.collectMeshesMainThread(buffer);
|
|
98
|
-
}
|
|
94
|
+
if (this.isNative && this.platformBridge) {
|
|
95
|
+
// NATIVE PATH - Use Tauri commands
|
|
96
|
+
console.time('[GeometryProcessor] native-processing');
|
|
97
|
+
const decoder = new TextDecoder();
|
|
98
|
+
const content = decoder.decode(buffer);
|
|
99
|
+
const result = await this.platformBridge.processGeometry(content);
|
|
100
|
+
meshes = result.meshes;
|
|
101
|
+
console.timeEnd('[GeometryProcessor] native-processing');
|
|
99
102
|
}
|
|
100
103
|
else {
|
|
101
|
-
//
|
|
104
|
+
// WASM PATH - Synchronous processing on main thread
|
|
105
|
+
// For large files, use processStreaming() instead
|
|
106
|
+
if (!this.bridge?.isInitialized()) {
|
|
107
|
+
await this.init();
|
|
108
|
+
}
|
|
102
109
|
meshes = await this.collectMeshesMainThread(buffer);
|
|
103
110
|
}
|
|
104
|
-
// const meshCollectionTime = performance.now() - meshCollectionStart;
|
|
105
111
|
// Handle large coordinates by shifting to origin
|
|
106
112
|
const coordinateInfo = this.coordinateHandler.processMeshes(meshes);
|
|
107
113
|
// Build GPU-ready buffers
|
|
@@ -116,9 +122,12 @@ export class GeometryProcessor {
|
|
|
116
122
|
return result;
|
|
117
123
|
}
|
|
118
124
|
/**
|
|
119
|
-
* Collect meshes on main thread using IFC-Lite
|
|
125
|
+
* Collect meshes on main thread using IFC-Lite WASM
|
|
120
126
|
*/
|
|
121
127
|
async collectMeshesMainThread(buffer, _entityIndex) {
|
|
128
|
+
if (!this.bridge) {
|
|
129
|
+
throw new Error('WASM bridge not initialized');
|
|
130
|
+
}
|
|
122
131
|
// Convert buffer to string (IFC files are text)
|
|
123
132
|
const decoder = new TextDecoder();
|
|
124
133
|
const content = decoder.decode(buffer);
|
|
@@ -128,36 +137,77 @@ export class GeometryProcessor {
|
|
|
128
137
|
}
|
|
129
138
|
/**
|
|
130
139
|
* Process IFC file with streaming output for progressive rendering
|
|
131
|
-
* Uses
|
|
140
|
+
* Uses native Rust in Tauri, WASM in browser
|
|
132
141
|
* @param buffer IFC file buffer
|
|
133
142
|
* @param entityIndex Optional entity index for priority-based loading
|
|
134
|
-
* @param
|
|
143
|
+
* @param batchConfig Dynamic batch configuration or fixed batch size
|
|
135
144
|
*/
|
|
136
|
-
async *processStreaming(buffer, _entityIndex,
|
|
137
|
-
|
|
138
|
-
if (
|
|
145
|
+
async *processStreaming(buffer, _entityIndex, batchConfig = 25) {
|
|
146
|
+
// Initialize if needed
|
|
147
|
+
if (this.isNative) {
|
|
148
|
+
if (!this.platformBridge) {
|
|
149
|
+
await this.init();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
else if (!this.bridge?.isInitialized()) {
|
|
139
153
|
await this.init();
|
|
140
154
|
}
|
|
141
155
|
// Reset coordinate handler for new file
|
|
142
156
|
this.coordinateHandler.reset();
|
|
157
|
+
// Yield start event FIRST so UI can update before heavy processing
|
|
143
158
|
yield { type: 'start', totalEstimate: buffer.length / 1000 };
|
|
159
|
+
// Yield to main thread before heavy decode operation
|
|
160
|
+
await new Promise(resolve => setTimeout(resolve, 0));
|
|
144
161
|
// Convert buffer to string (IFC files are text)
|
|
145
162
|
const decoder = new TextDecoder();
|
|
146
163
|
const content = decoder.decode(buffer);
|
|
147
|
-
// Use a placeholder model ID (IFC-Lite doesn't use model IDs)
|
|
148
164
|
yield { type: 'model-open', modelID: 0 };
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
//
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
165
|
+
if (this.isNative && this.platformBridge) {
|
|
166
|
+
// NATIVE PATH - Use Tauri streaming
|
|
167
|
+
console.time('[GeometryProcessor] native-streaming');
|
|
168
|
+
// For native, we do a single batch for now (streaming via events is complex)
|
|
169
|
+
// TODO: Implement proper streaming with Tauri events
|
|
170
|
+
const result = await this.platformBridge.processGeometry(content);
|
|
171
|
+
const totalMeshes = result.meshes.length;
|
|
172
|
+
this.coordinateHandler.processMeshesIncremental(result.meshes);
|
|
173
|
+
const coordinateInfo = this.coordinateHandler.getFinalCoordinateInfo();
|
|
174
|
+
yield { type: 'batch', meshes: result.meshes, totalSoFar: totalMeshes, coordinateInfo: coordinateInfo || undefined };
|
|
175
|
+
yield { type: 'complete', totalMeshes, coordinateInfo };
|
|
176
|
+
console.timeEnd('[GeometryProcessor] native-streaming');
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
// WASM PATH
|
|
180
|
+
if (!this.bridge) {
|
|
181
|
+
throw new Error('WASM bridge not initialized');
|
|
182
|
+
}
|
|
183
|
+
const collector = new IfcLiteMeshCollector(this.bridge.getApi(), content);
|
|
184
|
+
let totalMeshes = 0;
|
|
185
|
+
// Determine optimal WASM batch size based on file size
|
|
186
|
+
// Larger batches = fewer callbacks = faster processing
|
|
187
|
+
const fileSizeMB = typeof batchConfig !== 'number' && batchConfig.fileSizeMB
|
|
188
|
+
? batchConfig.fileSizeMB
|
|
189
|
+
: buffer.length / (1024 * 1024);
|
|
190
|
+
// Use WASM batches directly - no JS accumulation layer
|
|
191
|
+
// WASM already prioritizes simple geometry (walls, slabs) for fast first frame
|
|
192
|
+
const wasmBatchSize = fileSizeMB < 10 ? 100 : fileSizeMB < 50 ? 200 : fileSizeMB < 100 ? 300 : 500;
|
|
193
|
+
// Use WASM batches directly for maximum throughput
|
|
194
|
+
for await (const item of collector.collectMeshesStreaming(wasmBatchSize)) {
|
|
195
|
+
// Handle color update events
|
|
196
|
+
if (item && typeof item === 'object' && 'type' in item && item.type === 'colorUpdate') {
|
|
197
|
+
yield { type: 'colorUpdate', updates: item.updates };
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
// Handle mesh batches
|
|
201
|
+
const batch = item;
|
|
202
|
+
// Process coordinate shifts incrementally (will accumulate bounds)
|
|
203
|
+
this.coordinateHandler.processMeshesIncremental(batch);
|
|
204
|
+
totalMeshes += batch.length;
|
|
205
|
+
const coordinateInfo = this.coordinateHandler.getCurrentCoordinateInfo();
|
|
206
|
+
yield { type: 'batch', meshes: batch, totalSoFar: totalMeshes, coordinateInfo: coordinateInfo || undefined };
|
|
207
|
+
}
|
|
208
|
+
const coordinateInfo = this.coordinateHandler.getFinalCoordinateInfo();
|
|
209
|
+
yield { type: 'complete', totalMeshes, coordinateInfo };
|
|
158
210
|
}
|
|
159
|
-
const coordinateInfo = this.coordinateHandler.getFinalCoordinateInfo();
|
|
160
|
-
yield { type: 'complete', totalMeshes, coordinateInfo };
|
|
161
211
|
}
|
|
162
212
|
/**
|
|
163
213
|
* Process IFC file with streaming instanced geometry output for progressive rendering
|
|
@@ -166,7 +216,16 @@ export class GeometryProcessor {
|
|
|
166
216
|
* @param batchSize Number of unique geometries per batch (default: 25)
|
|
167
217
|
*/
|
|
168
218
|
async *processInstancedStreaming(buffer, batchSize = 25) {
|
|
169
|
-
if
|
|
219
|
+
// Initialize if needed
|
|
220
|
+
if (this.isNative) {
|
|
221
|
+
if (!this.platformBridge) {
|
|
222
|
+
await this.init();
|
|
223
|
+
}
|
|
224
|
+
// Note: Native instanced streaming not yet implemented - fall through to WASM
|
|
225
|
+
// For now, throw an error to make it clear
|
|
226
|
+
console.warn('[GeometryProcessor] Native instanced streaming not yet implemented, using WASM');
|
|
227
|
+
}
|
|
228
|
+
if (!this.bridge?.isInitialized()) {
|
|
170
229
|
await this.init();
|
|
171
230
|
}
|
|
172
231
|
// Reset coordinate handler for new file
|
|
@@ -234,8 +293,14 @@ export class GeometryProcessor {
|
|
|
234
293
|
*/
|
|
235
294
|
async *processAdaptive(buffer, options = {}) {
|
|
236
295
|
const sizeThreshold = options.sizeThreshold ?? 2 * 1024 * 1024; // Default 2MB
|
|
237
|
-
const
|
|
238
|
-
if
|
|
296
|
+
const batchConfig = options.batchSize ?? 25;
|
|
297
|
+
// Initialize if needed
|
|
298
|
+
if (this.isNative) {
|
|
299
|
+
if (!this.platformBridge) {
|
|
300
|
+
await this.init();
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
else if (!this.bridge?.isInitialized()) {
|
|
239
304
|
await this.init();
|
|
240
305
|
}
|
|
241
306
|
// Reset coordinate handler for new file
|
|
@@ -247,8 +312,19 @@ export class GeometryProcessor {
|
|
|
247
312
|
const decoder = new TextDecoder();
|
|
248
313
|
const content = decoder.decode(buffer);
|
|
249
314
|
yield { type: 'model-open', modelID: 0 };
|
|
250
|
-
|
|
251
|
-
|
|
315
|
+
let allMeshes;
|
|
316
|
+
if (this.isNative && this.platformBridge) {
|
|
317
|
+
// NATIVE PATH - single batch processing
|
|
318
|
+
console.time('[GeometryProcessor] native-adaptive-sync');
|
|
319
|
+
const result = await this.platformBridge.processGeometry(content);
|
|
320
|
+
allMeshes = result.meshes;
|
|
321
|
+
console.timeEnd('[GeometryProcessor] native-adaptive-sync');
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
// WASM PATH
|
|
325
|
+
const collector = new IfcLiteMeshCollector(this.bridge.getApi(), content);
|
|
326
|
+
allMeshes = collector.collectMeshes();
|
|
327
|
+
}
|
|
252
328
|
// Process coordinate shifts
|
|
253
329
|
this.coordinateHandler.processMeshesIncremental(allMeshes);
|
|
254
330
|
const coordinateInfo = this.coordinateHandler.getFinalCoordinateInfo();
|
|
@@ -264,17 +340,23 @@ export class GeometryProcessor {
|
|
|
264
340
|
else {
|
|
265
341
|
// Large files: Stream for fast first frame
|
|
266
342
|
// processStreaming will emit its own start and model-open events
|
|
267
|
-
yield* this.processStreaming(buffer, options.entityIndex,
|
|
343
|
+
yield* this.processStreaming(buffer, options.entityIndex, batchConfig);
|
|
268
344
|
}
|
|
269
345
|
}
|
|
346
|
+
/**
|
|
347
|
+
* Get the WASM API instance for advanced operations (e.g., entity scanning)
|
|
348
|
+
*/
|
|
349
|
+
getApi() {
|
|
350
|
+
if (!this.bridge || !this.bridge.isInitialized()) {
|
|
351
|
+
return null;
|
|
352
|
+
}
|
|
353
|
+
return this.bridge.getApi();
|
|
354
|
+
}
|
|
270
355
|
/**
|
|
271
356
|
* Cleanup resources
|
|
272
357
|
*/
|
|
273
358
|
dispose() {
|
|
274
|
-
|
|
275
|
-
this.workerPool.terminate();
|
|
276
|
-
this.workerPool = null;
|
|
277
|
-
}
|
|
359
|
+
// No cleanup needed
|
|
278
360
|
}
|
|
279
361
|
}
|
|
280
362
|
//# sourceMappingURL=index.js.map
|
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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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Native Bridge Implementation
|
|
3
|
+
*
|
|
4
|
+
* Uses Tauri commands for geometry processing in desktop apps.
|
|
5
|
+
* Provides native Rust performance with multi-threading support.
|
|
6
|
+
*/
|
|
7
|
+
import type { IPlatformBridge, GeometryProcessingResult, GeometryStats, StreamingOptions } from './platform-bridge.js';
|
|
8
|
+
/**
|
|
9
|
+
* Native Tauri bridge for desktop apps
|
|
10
|
+
*
|
|
11
|
+
* This uses Tauri's invoke() to call native Rust commands that use
|
|
12
|
+
* ifc-lite-core and ifc-lite-geometry directly (no WASM overhead).
|
|
13
|
+
*/
|
|
14
|
+
export declare class NativeBridge implements IPlatformBridge {
|
|
15
|
+
private initialized;
|
|
16
|
+
private invoke;
|
|
17
|
+
private listen;
|
|
18
|
+
init(): Promise<void>;
|
|
19
|
+
isInitialized(): boolean;
|
|
20
|
+
processGeometry(content: string): Promise<GeometryProcessingResult>;
|
|
21
|
+
processGeometryStreaming(content: string, options: StreamingOptions): Promise<GeometryStats>;
|
|
22
|
+
getApi(): null;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=native-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-bridge.d.ts","sourceRoot":"","sources":["../src/native-bridge.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAEjB,MAAM,sBAAsB,CAAC;AAY9B;;;;;GAKG;AACH,qBAAa,YAAa,YAAW,eAAe;IAClD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,MAAM,CAAyB;IAEjC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB3B,aAAa,IAAI,OAAO;IAIlB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IA6BnE,wBAAwB,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,aAAa,CAAC;IA0EzB,MAAM,IAAI,IAAI;CAIf"}
|