@ifc-lite/wasm 1.14.0 → 1.14.2
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 +1 -1
- package/pkg/ifc-lite.d.ts +1049 -974
- package/pkg/ifc-lite.js +1424 -1423
- package/pkg/ifc-lite_bg.wasm +0 -0
package/pkg/ifc-lite.d.ts
CHANGED
|
@@ -1,814 +1,888 @@
|
|
|
1
1
|
/* tslint:disable */
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* Georeferencing information exposed to JavaScript
|
|
6
|
+
*/
|
|
4
7
|
export class GeoReferenceJs {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
8
|
+
private constructor();
|
|
9
|
+
free(): void;
|
|
10
|
+
[Symbol.dispose](): void;
|
|
11
|
+
/**
|
|
12
|
+
* Transform local coordinates to map coordinates
|
|
13
|
+
*/
|
|
14
|
+
localToMap(x: number, y: number, z: number): Float64Array;
|
|
15
|
+
/**
|
|
16
|
+
* Transform map coordinates to local coordinates
|
|
17
|
+
*/
|
|
18
|
+
mapToLocal(e: number, n: number, h: number): Float64Array;
|
|
19
|
+
/**
|
|
20
|
+
* Get 4x4 transformation matrix (column-major for WebGL)
|
|
21
|
+
*/
|
|
22
|
+
toMatrix(): Float64Array;
|
|
23
|
+
/**
|
|
24
|
+
* Get CRS name
|
|
25
|
+
*/
|
|
26
|
+
readonly crsName: string | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* Get rotation angle in radians
|
|
29
|
+
*/
|
|
30
|
+
readonly rotation: number;
|
|
31
|
+
/**
|
|
32
|
+
* Eastings (X offset)
|
|
33
|
+
*/
|
|
34
|
+
eastings: number;
|
|
35
|
+
/**
|
|
36
|
+
* Northings (Y offset)
|
|
37
|
+
*/
|
|
38
|
+
northings: number;
|
|
39
|
+
/**
|
|
40
|
+
* Orthogonal height (Z offset)
|
|
41
|
+
*/
|
|
42
|
+
orthogonal_height: number;
|
|
43
|
+
/**
|
|
44
|
+
* Scale factor
|
|
45
|
+
*/
|
|
46
|
+
scale: number;
|
|
47
|
+
/**
|
|
48
|
+
* X-axis abscissa (cos of rotation)
|
|
49
|
+
*/
|
|
50
|
+
x_axis_abscissa: number;
|
|
51
|
+
/**
|
|
52
|
+
* X-axis ordinate (sin of rotation)
|
|
53
|
+
*/
|
|
54
|
+
x_axis_ordinate: number;
|
|
52
55
|
}
|
|
53
56
|
|
|
57
|
+
/**
|
|
58
|
+
* GPU-ready geometry stored in WASM linear memory
|
|
59
|
+
*
|
|
60
|
+
* Data layout:
|
|
61
|
+
* - vertex_data: Interleaved [px, py, pz, nx, ny, nz, ...] (6 floats per vertex)
|
|
62
|
+
* - indices: Triangle indices [i0, i1, i2, ...]
|
|
63
|
+
* - mesh_metadata: Per-mesh metadata for draw calls
|
|
64
|
+
*
|
|
65
|
+
* All coordinates are pre-converted from IFC Z-up to WebGL Y-up
|
|
66
|
+
*/
|
|
54
67
|
export class GpuGeometry {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
68
|
+
free(): void;
|
|
69
|
+
[Symbol.dispose](): void;
|
|
70
|
+
/**
|
|
71
|
+
* Get IFC type name by index
|
|
72
|
+
*/
|
|
73
|
+
getIfcTypeName(index: number): string | undefined;
|
|
74
|
+
/**
|
|
75
|
+
* Get metadata for a specific mesh
|
|
76
|
+
*/
|
|
77
|
+
getMeshMetadata(index: number): GpuMeshMetadata | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* Create a new empty GPU geometry container
|
|
80
|
+
*/
|
|
81
|
+
constructor();
|
|
82
|
+
/**
|
|
83
|
+
* Set the RTC (Relative To Center) offset applied to coordinates
|
|
84
|
+
*/
|
|
85
|
+
set_rtc_offset(x: number, y: number, z: number): void;
|
|
86
|
+
/**
|
|
87
|
+
* Check if RTC offset is active (non-zero)
|
|
88
|
+
*/
|
|
89
|
+
readonly hasRtcOffset: boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Get byte length of indices (for GPU buffer creation)
|
|
92
|
+
*/
|
|
93
|
+
readonly indicesByteLength: number;
|
|
94
|
+
/**
|
|
95
|
+
* Get length of indices array (in u32 elements)
|
|
96
|
+
*/
|
|
97
|
+
readonly indicesLen: number;
|
|
98
|
+
/**
|
|
99
|
+
* Get pointer to indices array for zero-copy view
|
|
100
|
+
*/
|
|
101
|
+
readonly indicesPtr: number;
|
|
102
|
+
/**
|
|
103
|
+
* Check if geometry is empty
|
|
104
|
+
*/
|
|
105
|
+
readonly isEmpty: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Get number of meshes in this geometry batch
|
|
108
|
+
*/
|
|
109
|
+
readonly meshCount: number;
|
|
110
|
+
/**
|
|
111
|
+
* Get X component of RTC offset
|
|
112
|
+
*/
|
|
113
|
+
readonly rtcOffsetX: number;
|
|
114
|
+
/**
|
|
115
|
+
* Get Y component of RTC offset
|
|
116
|
+
*/
|
|
117
|
+
readonly rtcOffsetY: number;
|
|
118
|
+
/**
|
|
119
|
+
* Get Z component of RTC offset
|
|
120
|
+
*/
|
|
121
|
+
readonly rtcOffsetZ: number;
|
|
122
|
+
/**
|
|
123
|
+
* Get total triangle count
|
|
124
|
+
*/
|
|
125
|
+
readonly totalTriangleCount: number;
|
|
126
|
+
/**
|
|
127
|
+
* Get total vertex count
|
|
128
|
+
*/
|
|
129
|
+
readonly totalVertexCount: number;
|
|
130
|
+
/**
|
|
131
|
+
* Get byte length of vertex data (for GPU buffer creation)
|
|
132
|
+
*/
|
|
133
|
+
readonly vertexDataByteLength: number;
|
|
134
|
+
/**
|
|
135
|
+
* Get length of vertex data array (in f32 elements, not bytes)
|
|
136
|
+
*/
|
|
137
|
+
readonly vertexDataLen: number;
|
|
138
|
+
/**
|
|
139
|
+
* Get pointer to vertex data for zero-copy view
|
|
140
|
+
*
|
|
141
|
+
* SAFETY: View is only valid until next WASM allocation!
|
|
142
|
+
* Create view, upload to GPU, then discard view immediately.
|
|
143
|
+
*/
|
|
144
|
+
readonly vertexDataPtr: number;
|
|
132
145
|
}
|
|
133
146
|
|
|
147
|
+
/**
|
|
148
|
+
* GPU-ready instanced geometry for efficient rendering of repeated shapes
|
|
149
|
+
*
|
|
150
|
+
* Data layout:
|
|
151
|
+
* - vertex_data: Interleaved [px, py, pz, nx, ny, nz, ...] (shared geometry)
|
|
152
|
+
* - indices: Triangle indices (shared geometry)
|
|
153
|
+
* - instance_data: [transform (16 floats) + color (4 floats)] per instance = 20 floats
|
|
154
|
+
*/
|
|
134
155
|
export class GpuInstancedGeometry {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
156
|
+
free(): void;
|
|
157
|
+
[Symbol.dispose](): void;
|
|
158
|
+
/**
|
|
159
|
+
* Create new instanced geometry
|
|
160
|
+
*/
|
|
161
|
+
constructor(geometry_id: bigint);
|
|
162
|
+
readonly geometryId: bigint;
|
|
163
|
+
readonly indicesByteLength: number;
|
|
164
|
+
readonly indicesLen: number;
|
|
165
|
+
readonly indicesPtr: number;
|
|
166
|
+
readonly instanceCount: number;
|
|
167
|
+
readonly instanceDataByteLength: number;
|
|
168
|
+
readonly instanceDataLen: number;
|
|
169
|
+
readonly instanceDataPtr: number;
|
|
170
|
+
readonly instanceExpressIdsPtr: number;
|
|
171
|
+
readonly triangleCount: number;
|
|
172
|
+
readonly vertexCount: number;
|
|
173
|
+
readonly vertexDataByteLength: number;
|
|
174
|
+
readonly vertexDataLen: number;
|
|
175
|
+
readonly vertexDataPtr: number;
|
|
155
176
|
}
|
|
156
177
|
|
|
178
|
+
/**
|
|
179
|
+
* Collection of GPU-ready instanced geometries
|
|
180
|
+
*/
|
|
157
181
|
export class GpuInstancedGeometryCollection {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
182
|
+
free(): void;
|
|
183
|
+
[Symbol.dispose](): void;
|
|
184
|
+
get(index: number): GpuInstancedGeometry | undefined;
|
|
185
|
+
/**
|
|
186
|
+
* Get geometry by index with zero-copy access
|
|
187
|
+
* Returns a reference that provides pointer access
|
|
188
|
+
*/
|
|
189
|
+
getRef(index: number): GpuInstancedGeometryRef | undefined;
|
|
190
|
+
constructor();
|
|
191
|
+
readonly length: number;
|
|
168
192
|
}
|
|
169
193
|
|
|
194
|
+
/**
|
|
195
|
+
* Reference to geometry in collection for zero-copy access
|
|
196
|
+
* This avoids cloning when accessing geometry data
|
|
197
|
+
*/
|
|
170
198
|
export class GpuInstancedGeometryRef {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
199
|
+
private constructor();
|
|
200
|
+
free(): void;
|
|
201
|
+
[Symbol.dispose](): void;
|
|
202
|
+
readonly geometryId: bigint;
|
|
203
|
+
readonly indicesByteLength: number;
|
|
204
|
+
readonly indicesLen: number;
|
|
205
|
+
readonly indicesPtr: number;
|
|
206
|
+
readonly instanceCount: number;
|
|
207
|
+
readonly instanceDataByteLength: number;
|
|
208
|
+
readonly instanceDataLen: number;
|
|
209
|
+
readonly instanceDataPtr: number;
|
|
210
|
+
readonly instanceExpressIdsPtr: number;
|
|
211
|
+
readonly vertexDataByteLength: number;
|
|
212
|
+
readonly vertexDataLen: number;
|
|
213
|
+
readonly vertexDataPtr: number;
|
|
186
214
|
}
|
|
187
215
|
|
|
216
|
+
/**
|
|
217
|
+
* Metadata for a single mesh within the GPU geometry buffer
|
|
218
|
+
*/
|
|
188
219
|
export class GpuMeshMetadata {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
220
|
+
private constructor();
|
|
221
|
+
free(): void;
|
|
222
|
+
[Symbol.dispose](): void;
|
|
223
|
+
readonly color: Float32Array;
|
|
224
|
+
readonly expressId: number;
|
|
225
|
+
readonly ifcTypeIdx: number;
|
|
226
|
+
readonly indexCount: number;
|
|
227
|
+
readonly indexOffset: number;
|
|
228
|
+
readonly vertexCount: number;
|
|
229
|
+
readonly vertexOffset: number;
|
|
199
230
|
}
|
|
200
231
|
|
|
232
|
+
/**
|
|
233
|
+
* Main IFC-Lite API
|
|
234
|
+
*/
|
|
201
235
|
export class IfcAPI {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
236
|
+
free(): void;
|
|
237
|
+
[Symbol.dispose](): void;
|
|
238
|
+
/**
|
|
239
|
+
* Debug: Test processing entity #953 (FacetedBrep wall)
|
|
240
|
+
*/
|
|
241
|
+
debugProcessEntity953(content: string): string;
|
|
242
|
+
/**
|
|
243
|
+
* Debug: Test processing a single wall
|
|
244
|
+
*/
|
|
245
|
+
debugProcessFirstWall(content: string): string;
|
|
246
|
+
/**
|
|
247
|
+
* Extract georeferencing information from IFC content
|
|
248
|
+
* Returns null if no georeferencing is present
|
|
249
|
+
*
|
|
250
|
+
* Example:
|
|
251
|
+
* ```javascript
|
|
252
|
+
* const api = new IfcAPI();
|
|
253
|
+
* const georef = api.getGeoReference(ifcData);
|
|
254
|
+
* if (georef) {
|
|
255
|
+
* console.log('CRS:', georef.crsName);
|
|
256
|
+
* const [e, n, h] = georef.localToMap(10, 20, 5);
|
|
257
|
+
* }
|
|
258
|
+
* ```
|
|
259
|
+
*/
|
|
260
|
+
getGeoReference(content: string): GeoReferenceJs | undefined;
|
|
261
|
+
/**
|
|
262
|
+
* Get WASM memory for zero-copy access
|
|
263
|
+
*/
|
|
264
|
+
getMemory(): any;
|
|
265
|
+
/**
|
|
266
|
+
* Create and initialize the IFC API
|
|
267
|
+
*/
|
|
268
|
+
constructor();
|
|
269
|
+
/**
|
|
270
|
+
* Parse IFC file (traditional - waits for completion)
|
|
271
|
+
*
|
|
272
|
+
* Example:
|
|
273
|
+
* ```javascript
|
|
274
|
+
* const api = new IfcAPI();
|
|
275
|
+
* const result = await api.parse(ifcData);
|
|
276
|
+
* console.log('Entities:', result.entityCount);
|
|
277
|
+
* ```
|
|
278
|
+
*/
|
|
279
|
+
parse(content: string): Promise<any>;
|
|
280
|
+
/**
|
|
281
|
+
* Parse IFC file and return individual meshes with express IDs and colors
|
|
282
|
+
* This matches the MeshData[] format expected by the viewer
|
|
283
|
+
*
|
|
284
|
+
* Example:
|
|
285
|
+
* ```javascript
|
|
286
|
+
* const api = new IfcAPI();
|
|
287
|
+
* const collection = api.parseMeshes(ifcData);
|
|
288
|
+
* for (let i = 0; i < collection.length; i++) {
|
|
289
|
+
* const mesh = collection.get(i);
|
|
290
|
+
* console.log('Express ID:', mesh.expressId);
|
|
291
|
+
* console.log('Positions:', mesh.positions);
|
|
292
|
+
* console.log('Color:', mesh.color);
|
|
293
|
+
* }
|
|
294
|
+
* ```
|
|
295
|
+
*/
|
|
296
|
+
parseMeshes(content: string): MeshCollection;
|
|
297
|
+
/**
|
|
298
|
+
* Parse IFC file with streaming mesh batches for progressive rendering
|
|
299
|
+
* Calls the callback with batches of meshes, yielding to browser between batches
|
|
300
|
+
*
|
|
301
|
+
* Options:
|
|
302
|
+
* - `batchSize`: Number of meshes per batch (default: 25)
|
|
303
|
+
* - `onBatch(meshes, progress)`: Called for each batch of meshes
|
|
304
|
+
* - `onRtcOffset({x, y, z, hasRtc})`: Called early with RTC offset for camera/world setup
|
|
305
|
+
* - `onColorUpdate(Map<id, color>)`: Called with style updates after initial render
|
|
306
|
+
* - `onComplete(stats)`: Called when parsing completes with stats including rtcOffset
|
|
307
|
+
*
|
|
308
|
+
* Example:
|
|
309
|
+
* ```javascript
|
|
310
|
+
* const api = new IfcAPI();
|
|
311
|
+
* await api.parseMeshesAsync(ifcData, {
|
|
312
|
+
* batchSize: 100,
|
|
313
|
+
* onRtcOffset: (rtc) => {
|
|
314
|
+
* if (rtc.hasRtc) {
|
|
315
|
+
* // Model uses large coordinates - adjust camera/world origin
|
|
316
|
+
* viewer.setWorldOffset(rtc.x, rtc.y, rtc.z);
|
|
317
|
+
* }
|
|
318
|
+
* },
|
|
319
|
+
* onBatch: (meshes, progress) => {
|
|
320
|
+
* for (const mesh of meshes) {
|
|
321
|
+
* scene.add(createThreeMesh(mesh));
|
|
322
|
+
* }
|
|
323
|
+
* console.log(`Progress: ${progress.percent}%`);
|
|
324
|
+
* },
|
|
325
|
+
* onComplete: (stats) => {
|
|
326
|
+
* console.log(`Done! ${stats.totalMeshes} meshes`);
|
|
327
|
+
* // stats.rtcOffset also available here: {x, y, z, hasRtc}
|
|
328
|
+
* }
|
|
329
|
+
* });
|
|
330
|
+
* ```
|
|
331
|
+
*/
|
|
332
|
+
parseMeshesAsync(content: string, options: any): Promise<any>;
|
|
333
|
+
/**
|
|
334
|
+
* Parse IFC file and return instanced geometry grouped by geometry hash
|
|
335
|
+
* This reduces draw calls by grouping identical geometries with different transforms
|
|
336
|
+
*
|
|
337
|
+
* Example:
|
|
338
|
+
* ```javascript
|
|
339
|
+
* const api = new IfcAPI();
|
|
340
|
+
* const collection = api.parseMeshesInstanced(ifcData);
|
|
341
|
+
* for (let i = 0; i < collection.length; i++) {
|
|
342
|
+
* const geometry = collection.get(i);
|
|
343
|
+
* console.log('Geometry ID:', geometry.geometryId);
|
|
344
|
+
* console.log('Instances:', geometry.instanceCount);
|
|
345
|
+
* for (let j = 0; j < geometry.instanceCount; j++) {
|
|
346
|
+
* const inst = geometry.getInstance(j);
|
|
347
|
+
* console.log(' Express ID:', inst.expressId);
|
|
348
|
+
* console.log(' Transform:', inst.transform);
|
|
349
|
+
* }
|
|
350
|
+
* }
|
|
351
|
+
* ```
|
|
352
|
+
*/
|
|
353
|
+
parseMeshesInstanced(content: string): InstancedMeshCollection;
|
|
354
|
+
/**
|
|
355
|
+
* Parse IFC file with streaming instanced geometry batches for progressive rendering
|
|
356
|
+
* Groups identical geometries and yields batches of InstancedGeometry
|
|
357
|
+
* Uses fast-first-frame streaming: simple geometry (walls, slabs) first
|
|
358
|
+
*
|
|
359
|
+
* Example:
|
|
360
|
+
* ```javascript
|
|
361
|
+
* const api = new IfcAPI();
|
|
362
|
+
* await api.parseMeshesInstancedAsync(ifcData, {
|
|
363
|
+
* batchSize: 25, // Number of unique geometries per batch
|
|
364
|
+
* onBatch: (geometries, progress) => {
|
|
365
|
+
* for (const geom of geometries) {
|
|
366
|
+
* renderer.addInstancedGeometry(geom);
|
|
367
|
+
* }
|
|
368
|
+
* },
|
|
369
|
+
* onComplete: (stats) => {
|
|
370
|
+
* console.log(`Done! ${stats.totalGeometries} unique geometries, ${stats.totalInstances} instances`);
|
|
371
|
+
* }
|
|
372
|
+
* });
|
|
373
|
+
* ```
|
|
374
|
+
*/
|
|
375
|
+
parseMeshesInstancedAsync(content: string, options: any): Promise<any>;
|
|
376
|
+
/**
|
|
377
|
+
* Parse IFC file and return mesh with RTC offset for large coordinates
|
|
378
|
+
* This handles georeferenced models by shifting to centroid
|
|
379
|
+
*
|
|
380
|
+
* Example:
|
|
381
|
+
* ```javascript
|
|
382
|
+
* const api = new IfcAPI();
|
|
383
|
+
* const result = api.parseMeshesWithRtc(ifcData);
|
|
384
|
+
* const rtcOffset = result.rtcOffset;
|
|
385
|
+
* const meshes = result.meshes;
|
|
386
|
+
*
|
|
387
|
+
* // Convert local coords back to world:
|
|
388
|
+
* if (rtcOffset.isSignificant()) {
|
|
389
|
+
* const [wx, wy, wz] = rtcOffset.toWorld(localX, localY, localZ);
|
|
390
|
+
* }
|
|
391
|
+
* ```
|
|
392
|
+
*/
|
|
393
|
+
parseMeshesWithRtc(content: string): MeshCollectionWithRtc;
|
|
394
|
+
/**
|
|
395
|
+
* Parse IFC file with streaming events
|
|
396
|
+
* Calls the callback function for each parse event
|
|
397
|
+
*
|
|
398
|
+
* Example:
|
|
399
|
+
* ```javascript
|
|
400
|
+
* const api = new IfcAPI();
|
|
401
|
+
* await api.parseStreaming(ifcData, (event) => {
|
|
402
|
+
* console.log('Event:', event);
|
|
403
|
+
* });
|
|
404
|
+
* ```
|
|
405
|
+
*/
|
|
406
|
+
parseStreaming(content: string, callback: Function): Promise<any>;
|
|
407
|
+
/**
|
|
408
|
+
* Parse IFC file and extract symbolic representations (Plan, Annotation, FootPrint)
|
|
409
|
+
* These are 2D curves used for architectural drawings instead of sectioning 3D geometry
|
|
410
|
+
*
|
|
411
|
+
* Example:
|
|
412
|
+
* ```javascript
|
|
413
|
+
* const api = new IfcAPI();
|
|
414
|
+
* const symbols = api.parseSymbolicRepresentations(ifcData);
|
|
415
|
+
* console.log('Found', symbols.totalCount, 'symbolic items');
|
|
416
|
+
* for (let i = 0; i < symbols.polylineCount; i++) {
|
|
417
|
+
* const polyline = symbols.getPolyline(i);
|
|
418
|
+
* console.log('Polyline for', polyline.ifcType, ':', polyline.points);
|
|
419
|
+
* }
|
|
420
|
+
* ```
|
|
421
|
+
*/
|
|
422
|
+
parseSymbolicRepresentations(content: string): SymbolicRepresentationCollection;
|
|
423
|
+
/**
|
|
424
|
+
* Parse IFC file and return GPU-ready geometry for zero-copy upload
|
|
425
|
+
*
|
|
426
|
+
* This method generates geometry that is:
|
|
427
|
+
* - Pre-interleaved (position + normal per vertex)
|
|
428
|
+
* - Coordinate-converted (Z-up to Y-up)
|
|
429
|
+
* - Ready for direct GPU upload via pointer access
|
|
430
|
+
*
|
|
431
|
+
* Example:
|
|
432
|
+
* ```javascript
|
|
433
|
+
* const api = new IfcAPI();
|
|
434
|
+
* const gpuGeom = api.parseToGpuGeometry(ifcData);
|
|
435
|
+
*
|
|
436
|
+
* // Get WASM memory for zero-copy views
|
|
437
|
+
* const memory = api.getMemory();
|
|
438
|
+
*
|
|
439
|
+
* // Create views directly into WASM memory (NO COPY!)
|
|
440
|
+
* const vertexView = new Float32Array(
|
|
441
|
+
* memory.buffer,
|
|
442
|
+
* gpuGeom.vertexDataPtr,
|
|
443
|
+
* gpuGeom.vertexDataLen
|
|
444
|
+
* );
|
|
445
|
+
* const indexView = new Uint32Array(
|
|
446
|
+
* memory.buffer,
|
|
447
|
+
* gpuGeom.indicesPtr,
|
|
448
|
+
* gpuGeom.indicesLen
|
|
449
|
+
* );
|
|
450
|
+
*
|
|
451
|
+
* // Upload directly to GPU (single copy: WASM → GPU)
|
|
452
|
+
* device.queue.writeBuffer(vertexBuffer, 0, vertexView);
|
|
453
|
+
* device.queue.writeBuffer(indexBuffer, 0, indexView);
|
|
454
|
+
*
|
|
455
|
+
* // Free when done
|
|
456
|
+
* gpuGeom.free();
|
|
457
|
+
* ```
|
|
458
|
+
*/
|
|
459
|
+
parseToGpuGeometry(content: string): GpuGeometry;
|
|
460
|
+
/**
|
|
461
|
+
* Parse IFC file with streaming GPU-ready geometry batches
|
|
462
|
+
*
|
|
463
|
+
* Yields batches of GPU-ready geometry for progressive rendering with zero-copy upload.
|
|
464
|
+
* Uses fast-first-frame streaming: simple geometry (walls, slabs) first.
|
|
465
|
+
*
|
|
466
|
+
* Example:
|
|
467
|
+
* ```javascript
|
|
468
|
+
* const api = new IfcAPI();
|
|
469
|
+
* const memory = api.getMemory();
|
|
470
|
+
*
|
|
471
|
+
* await api.parseToGpuGeometryAsync(ifcData, {
|
|
472
|
+
* batchSize: 25,
|
|
473
|
+
* onBatch: (gpuGeom, progress) => {
|
|
474
|
+
* // Create zero-copy views
|
|
475
|
+
* const vertexView = new Float32Array(
|
|
476
|
+
* memory.buffer,
|
|
477
|
+
* gpuGeom.vertexDataPtr,
|
|
478
|
+
* gpuGeom.vertexDataLen
|
|
479
|
+
* );
|
|
480
|
+
*
|
|
481
|
+
* // Upload to GPU
|
|
482
|
+
* device.queue.writeBuffer(vertexBuffer, 0, vertexView);
|
|
483
|
+
*
|
|
484
|
+
* // IMPORTANT: Free immediately after upload!
|
|
485
|
+
* gpuGeom.free();
|
|
486
|
+
* },
|
|
487
|
+
* onComplete: (stats) => {
|
|
488
|
+
* console.log(`Done! ${stats.totalMeshes} meshes`);
|
|
489
|
+
* }
|
|
490
|
+
* });
|
|
491
|
+
* ```
|
|
492
|
+
*/
|
|
493
|
+
parseToGpuGeometryAsync(content: string, options: any): Promise<any>;
|
|
494
|
+
/**
|
|
495
|
+
* Parse IFC file to GPU-ready instanced geometry for zero-copy upload
|
|
496
|
+
*
|
|
497
|
+
* Groups identical geometries by hash for efficient GPU instancing.
|
|
498
|
+
* Returns a collection of instanced geometries with pointer access.
|
|
499
|
+
*/
|
|
500
|
+
parseToGpuInstancedGeometry(content: string): GpuInstancedGeometryCollection;
|
|
501
|
+
/**
|
|
502
|
+
* Parse IFC file with zero-copy mesh data
|
|
503
|
+
* Maximum performance - returns mesh with direct memory access
|
|
504
|
+
*
|
|
505
|
+
* Example:
|
|
506
|
+
* ```javascript
|
|
507
|
+
* const api = new IfcAPI();
|
|
508
|
+
* const mesh = await api.parseZeroCopy(ifcData);
|
|
509
|
+
*
|
|
510
|
+
* // Create TypedArray views (NO COPYING!)
|
|
511
|
+
* const memory = await api.getMemory();
|
|
512
|
+
* const positions = new Float32Array(
|
|
513
|
+
* memory.buffer,
|
|
514
|
+
* mesh.positions_ptr,
|
|
515
|
+
* mesh.positions_len
|
|
516
|
+
* );
|
|
517
|
+
*
|
|
518
|
+
* // Upload directly to GPU
|
|
519
|
+
* gl.bufferData(gl.ARRAY_BUFFER, positions, gl.STATIC_DRAW);
|
|
520
|
+
* ```
|
|
521
|
+
*/
|
|
522
|
+
parseZeroCopy(content: string): ZeroCopyMesh;
|
|
523
|
+
/**
|
|
524
|
+
* Fast entity scanning using SIMD-accelerated Rust scanner
|
|
525
|
+
* Returns array of entity references for data model parsing
|
|
526
|
+
* Much faster than TypeScript byte-by-byte scanning (5-10x speedup)
|
|
527
|
+
*/
|
|
528
|
+
scanEntitiesFast(content: string): any;
|
|
529
|
+
/**
|
|
530
|
+
* Fast entity scanning from raw bytes (avoids TextDecoder.decode on JS side).
|
|
531
|
+
* Accepts Uint8Array directly — saves ~2-5s for 487MB files by skipping
|
|
532
|
+
* JS string creation and UTF-16→UTF-8 conversion.
|
|
533
|
+
*/
|
|
534
|
+
scanEntitiesFastBytes(data: Uint8Array): any;
|
|
535
|
+
/**
|
|
536
|
+
* Fast geometry-only entity scanning
|
|
537
|
+
* Scans only entities that have geometry, skipping 99% of non-geometry entities
|
|
538
|
+
* Returns array of geometry entity references for parallel processing
|
|
539
|
+
* Much faster than scanning all entities (3x speedup for large files)
|
|
540
|
+
*/
|
|
541
|
+
scanGeometryEntitiesFast(content: string): any;
|
|
542
|
+
/**
|
|
543
|
+
* Check if API is initialized
|
|
544
|
+
*/
|
|
545
|
+
readonly is_ready: boolean;
|
|
546
|
+
/**
|
|
547
|
+
* Get version string
|
|
548
|
+
*/
|
|
549
|
+
readonly version: string;
|
|
510
550
|
}
|
|
511
551
|
|
|
552
|
+
/**
|
|
553
|
+
* Instance data for instanced rendering
|
|
554
|
+
*/
|
|
512
555
|
export class InstanceData {
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
556
|
+
private constructor();
|
|
557
|
+
free(): void;
|
|
558
|
+
[Symbol.dispose](): void;
|
|
559
|
+
readonly color: Float32Array;
|
|
560
|
+
readonly expressId: number;
|
|
561
|
+
readonly transform: Float32Array;
|
|
519
562
|
}
|
|
520
563
|
|
|
564
|
+
/**
|
|
565
|
+
* Instanced geometry - one geometry definition with multiple instances
|
|
566
|
+
*/
|
|
521
567
|
export class InstancedGeometry {
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
568
|
+
private constructor();
|
|
569
|
+
free(): void;
|
|
570
|
+
[Symbol.dispose](): void;
|
|
571
|
+
get_instance(index: number): InstanceData | undefined;
|
|
572
|
+
readonly geometryId: bigint;
|
|
573
|
+
readonly indices: Uint32Array;
|
|
574
|
+
readonly instance_count: number;
|
|
575
|
+
readonly normals: Float32Array;
|
|
576
|
+
readonly positions: Float32Array;
|
|
531
577
|
}
|
|
532
578
|
|
|
579
|
+
/**
|
|
580
|
+
* Collection of instanced geometries
|
|
581
|
+
*/
|
|
533
582
|
export class InstancedMeshCollection {
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
583
|
+
private constructor();
|
|
584
|
+
free(): void;
|
|
585
|
+
[Symbol.dispose](): void;
|
|
586
|
+
get(index: number): InstancedGeometry | undefined;
|
|
587
|
+
readonly length: number;
|
|
588
|
+
readonly totalGeometries: number;
|
|
589
|
+
readonly totalInstances: number;
|
|
541
590
|
}
|
|
542
591
|
|
|
592
|
+
/**
|
|
593
|
+
* Collection of mesh data for returning multiple meshes
|
|
594
|
+
*/
|
|
543
595
|
export class MeshCollection {
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
596
|
+
private constructor();
|
|
597
|
+
free(): void;
|
|
598
|
+
[Symbol.dispose](): void;
|
|
599
|
+
/**
|
|
600
|
+
* Get mesh at index
|
|
601
|
+
*/
|
|
602
|
+
get(index: number): MeshDataJs | undefined;
|
|
603
|
+
/**
|
|
604
|
+
* Check if RTC offset is significant (>10km)
|
|
605
|
+
*/
|
|
606
|
+
hasRtcOffset(): boolean;
|
|
607
|
+
/**
|
|
608
|
+
* Convert local coordinates to world coordinates
|
|
609
|
+
* Use this to convert mesh positions back to original IFC coordinates
|
|
610
|
+
*/
|
|
611
|
+
localToWorld(x: number, y: number, z: number): Float64Array;
|
|
612
|
+
/**
|
|
613
|
+
* Get building rotation angle in radians (from IfcSite placement)
|
|
614
|
+
* Returns None if no rotation was detected
|
|
615
|
+
*/
|
|
616
|
+
readonly buildingRotation: number | undefined;
|
|
617
|
+
/**
|
|
618
|
+
* Get number of meshes
|
|
619
|
+
*/
|
|
620
|
+
readonly length: number;
|
|
621
|
+
/**
|
|
622
|
+
* Get RTC offset X (for converting local coords back to world coords)
|
|
623
|
+
* Add this to local X coordinates to get world X coordinates
|
|
624
|
+
*/
|
|
625
|
+
readonly rtcOffsetX: number;
|
|
626
|
+
/**
|
|
627
|
+
* Get RTC offset Y
|
|
628
|
+
*/
|
|
629
|
+
readonly rtcOffsetY: number;
|
|
630
|
+
/**
|
|
631
|
+
* Get RTC offset Z
|
|
632
|
+
*/
|
|
633
|
+
readonly rtcOffsetZ: number;
|
|
634
|
+
/**
|
|
635
|
+
* Get total triangle count across all meshes
|
|
636
|
+
*/
|
|
637
|
+
readonly totalTriangles: number;
|
|
638
|
+
/**
|
|
639
|
+
* Get total vertex count across all meshes
|
|
640
|
+
*/
|
|
641
|
+
readonly totalVertices: number;
|
|
590
642
|
}
|
|
591
643
|
|
|
644
|
+
/**
|
|
645
|
+
* Mesh collection with RTC offset for large coordinates
|
|
646
|
+
*/
|
|
592
647
|
export class MeshCollectionWithRtc {
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
648
|
+
private constructor();
|
|
649
|
+
free(): void;
|
|
650
|
+
[Symbol.dispose](): void;
|
|
651
|
+
/**
|
|
652
|
+
* Get mesh at index
|
|
653
|
+
*/
|
|
654
|
+
get(index: number): MeshDataJs | undefined;
|
|
655
|
+
/**
|
|
656
|
+
* Get number of meshes
|
|
657
|
+
*/
|
|
658
|
+
readonly length: number;
|
|
659
|
+
/**
|
|
660
|
+
* Get the mesh collection
|
|
661
|
+
*/
|
|
662
|
+
readonly meshes: MeshCollection;
|
|
663
|
+
/**
|
|
664
|
+
* Get the RTC offset
|
|
665
|
+
*/
|
|
666
|
+
readonly rtcOffset: RtcOffsetJs;
|
|
612
667
|
}
|
|
613
668
|
|
|
669
|
+
/**
|
|
670
|
+
* Individual mesh data with express ID and color (matches MeshData interface)
|
|
671
|
+
*/
|
|
614
672
|
export class MeshDataJs {
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
673
|
+
private constructor();
|
|
674
|
+
free(): void;
|
|
675
|
+
[Symbol.dispose](): void;
|
|
676
|
+
/**
|
|
677
|
+
* Get color as [r, g, b, a] array
|
|
678
|
+
*/
|
|
679
|
+
readonly color: Float32Array;
|
|
680
|
+
/**
|
|
681
|
+
* Get express ID
|
|
682
|
+
*/
|
|
683
|
+
readonly expressId: number;
|
|
684
|
+
/**
|
|
685
|
+
* Get IFC type name (e.g., "IfcWall", "IfcSpace")
|
|
686
|
+
*/
|
|
687
|
+
readonly ifcType: string;
|
|
688
|
+
/**
|
|
689
|
+
* Get indices as Uint32Array (copy to JS)
|
|
690
|
+
*/
|
|
691
|
+
readonly indices: Uint32Array;
|
|
692
|
+
/**
|
|
693
|
+
* Get normals as Float32Array (copy to JS)
|
|
694
|
+
*/
|
|
695
|
+
readonly normals: Float32Array;
|
|
696
|
+
/**
|
|
697
|
+
* Get positions as Float32Array (copy to JS)
|
|
698
|
+
*/
|
|
699
|
+
readonly positions: Float32Array;
|
|
700
|
+
/**
|
|
701
|
+
* Get triangle count
|
|
702
|
+
*/
|
|
703
|
+
readonly triangleCount: number;
|
|
704
|
+
/**
|
|
705
|
+
* Get vertex count
|
|
706
|
+
*/
|
|
707
|
+
readonly vertexCount: number;
|
|
650
708
|
}
|
|
651
709
|
|
|
710
|
+
/**
|
|
711
|
+
* RTC offset information exposed to JavaScript
|
|
712
|
+
*/
|
|
652
713
|
export class RtcOffsetJs {
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
714
|
+
private constructor();
|
|
715
|
+
free(): void;
|
|
716
|
+
[Symbol.dispose](): void;
|
|
717
|
+
/**
|
|
718
|
+
* Check if offset is significant (>10km)
|
|
719
|
+
*/
|
|
720
|
+
isSignificant(): boolean;
|
|
721
|
+
/**
|
|
722
|
+
* Convert local coordinates to world coordinates
|
|
723
|
+
*/
|
|
724
|
+
toWorld(x: number, y: number, z: number): Float64Array;
|
|
725
|
+
/**
|
|
726
|
+
* X offset (subtracted from positions)
|
|
727
|
+
*/
|
|
728
|
+
x: number;
|
|
729
|
+
/**
|
|
730
|
+
* Y offset
|
|
731
|
+
*/
|
|
732
|
+
y: number;
|
|
733
|
+
/**
|
|
734
|
+
* Z offset
|
|
735
|
+
*/
|
|
736
|
+
z: number;
|
|
676
737
|
}
|
|
677
738
|
|
|
739
|
+
/**
|
|
740
|
+
* A 2D circle/arc for symbolic representations
|
|
741
|
+
*/
|
|
678
742
|
export class SymbolicCircle {
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
743
|
+
private constructor();
|
|
744
|
+
free(): void;
|
|
745
|
+
[Symbol.dispose](): void;
|
|
746
|
+
readonly centerX: number;
|
|
747
|
+
readonly centerY: number;
|
|
748
|
+
readonly endAngle: number;
|
|
749
|
+
readonly expressId: number;
|
|
750
|
+
readonly ifcType: string;
|
|
751
|
+
/**
|
|
752
|
+
* Check if this is a full circle
|
|
753
|
+
*/
|
|
754
|
+
readonly isFullCircle: boolean;
|
|
755
|
+
readonly radius: number;
|
|
756
|
+
readonly repIdentifier: string;
|
|
757
|
+
readonly startAngle: number;
|
|
694
758
|
}
|
|
695
759
|
|
|
760
|
+
/**
|
|
761
|
+
* A single 2D polyline for symbolic representations (Plan, Annotation, FootPrint)
|
|
762
|
+
* Points are stored as [x1, y1, x2, y2, ...] in 2D coordinates
|
|
763
|
+
*/
|
|
696
764
|
export class SymbolicPolyline {
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
765
|
+
private constructor();
|
|
766
|
+
free(): void;
|
|
767
|
+
[Symbol.dispose](): void;
|
|
768
|
+
/**
|
|
769
|
+
* Get express ID of the parent element
|
|
770
|
+
*/
|
|
771
|
+
readonly expressId: number;
|
|
772
|
+
/**
|
|
773
|
+
* Get IFC type name (e.g., "IfcDoor", "IfcWindow")
|
|
774
|
+
*/
|
|
775
|
+
readonly ifcType: string;
|
|
776
|
+
/**
|
|
777
|
+
* Check if this is a closed loop
|
|
778
|
+
*/
|
|
779
|
+
readonly isClosed: boolean;
|
|
780
|
+
/**
|
|
781
|
+
* Get number of points
|
|
782
|
+
*/
|
|
783
|
+
readonly pointCount: number;
|
|
784
|
+
/**
|
|
785
|
+
* Get 2D points as Float32Array [x1, y1, x2, y2, ...]
|
|
786
|
+
*/
|
|
787
|
+
readonly points: Float32Array;
|
|
788
|
+
/**
|
|
789
|
+
* Get representation identifier ("Plan", "Annotation", "FootPrint", "Axis")
|
|
790
|
+
*/
|
|
791
|
+
readonly repIdentifier: string;
|
|
724
792
|
}
|
|
725
793
|
|
|
794
|
+
/**
|
|
795
|
+
* Collection of symbolic representations for an IFC model
|
|
796
|
+
*/
|
|
726
797
|
export class SymbolicRepresentationCollection {
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
798
|
+
private constructor();
|
|
799
|
+
free(): void;
|
|
800
|
+
[Symbol.dispose](): void;
|
|
801
|
+
/**
|
|
802
|
+
* Get circle at index
|
|
803
|
+
*/
|
|
804
|
+
getCircle(index: number): SymbolicCircle | undefined;
|
|
805
|
+
/**
|
|
806
|
+
* Get all express IDs that have symbolic representations
|
|
807
|
+
*/
|
|
808
|
+
getExpressIds(): Uint32Array;
|
|
809
|
+
/**
|
|
810
|
+
* Get polyline at index
|
|
811
|
+
*/
|
|
812
|
+
getPolyline(index: number): SymbolicPolyline | undefined;
|
|
813
|
+
/**
|
|
814
|
+
* Get number of circles/arcs
|
|
815
|
+
*/
|
|
816
|
+
readonly circleCount: number;
|
|
817
|
+
/**
|
|
818
|
+
* Check if collection is empty
|
|
819
|
+
*/
|
|
820
|
+
readonly isEmpty: boolean;
|
|
821
|
+
/**
|
|
822
|
+
* Get number of polylines
|
|
823
|
+
*/
|
|
824
|
+
readonly polylineCount: number;
|
|
825
|
+
/**
|
|
826
|
+
* Get total count of all symbolic items
|
|
827
|
+
*/
|
|
828
|
+
readonly totalCount: number;
|
|
758
829
|
}
|
|
759
830
|
|
|
831
|
+
/**
|
|
832
|
+
* Zero-copy mesh that exposes pointers to WASM memory
|
|
833
|
+
*/
|
|
760
834
|
export class ZeroCopyMesh {
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
835
|
+
free(): void;
|
|
836
|
+
[Symbol.dispose](): void;
|
|
837
|
+
/**
|
|
838
|
+
* Get bounding box maximum point
|
|
839
|
+
*/
|
|
840
|
+
bounds_max(): Float32Array;
|
|
841
|
+
/**
|
|
842
|
+
* Get bounding box minimum point
|
|
843
|
+
*/
|
|
844
|
+
bounds_min(): Float32Array;
|
|
845
|
+
/**
|
|
846
|
+
* Create a new zero-copy mesh from a Mesh
|
|
847
|
+
*/
|
|
848
|
+
constructor();
|
|
849
|
+
/**
|
|
850
|
+
* Get length of indices array
|
|
851
|
+
*/
|
|
852
|
+
readonly indices_len: number;
|
|
853
|
+
/**
|
|
854
|
+
* Get pointer to indices array
|
|
855
|
+
*/
|
|
856
|
+
readonly indices_ptr: number;
|
|
857
|
+
/**
|
|
858
|
+
* Check if mesh is empty
|
|
859
|
+
*/
|
|
860
|
+
readonly is_empty: boolean;
|
|
861
|
+
/**
|
|
862
|
+
* Get length of normals array
|
|
863
|
+
*/
|
|
864
|
+
readonly normals_len: number;
|
|
865
|
+
/**
|
|
866
|
+
* Get pointer to normals array
|
|
867
|
+
*/
|
|
868
|
+
readonly normals_ptr: number;
|
|
869
|
+
/**
|
|
870
|
+
* Get length of positions array (in f32 elements, not bytes)
|
|
871
|
+
*/
|
|
872
|
+
readonly positions_len: number;
|
|
873
|
+
/**
|
|
874
|
+
* Get pointer to positions array
|
|
875
|
+
* JavaScript can create Float32Array view: new Float32Array(memory.buffer, ptr, length)
|
|
876
|
+
*/
|
|
877
|
+
readonly positions_ptr: number;
|
|
878
|
+
/**
|
|
879
|
+
* Get triangle count
|
|
880
|
+
*/
|
|
881
|
+
readonly triangle_count: number;
|
|
882
|
+
/**
|
|
883
|
+
* Get vertex count
|
|
884
|
+
*/
|
|
885
|
+
readonly vertex_count: number;
|
|
812
886
|
}
|
|
813
887
|
|
|
814
888
|
/**
|
|
@@ -842,230 +916,231 @@ export function version(): string;
|
|
|
842
916
|
export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
|
|
843
917
|
|
|
844
918
|
export interface InitOutput {
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
919
|
+
readonly memory: WebAssembly.Memory;
|
|
920
|
+
readonly __wbg_georeferencejs_free: (a: number, b: number) => void;
|
|
921
|
+
readonly __wbg_get_georeferencejs_eastings: (a: number) => number;
|
|
922
|
+
readonly __wbg_get_georeferencejs_northings: (a: number) => number;
|
|
923
|
+
readonly __wbg_get_georeferencejs_orthogonal_height: (a: number) => number;
|
|
924
|
+
readonly __wbg_get_georeferencejs_scale: (a: number) => number;
|
|
925
|
+
readonly __wbg_get_georeferencejs_x_axis_abscissa: (a: number) => number;
|
|
926
|
+
readonly __wbg_get_georeferencejs_x_axis_ordinate: (a: number) => number;
|
|
927
|
+
readonly __wbg_gpugeometry_free: (a: number, b: number) => void;
|
|
928
|
+
readonly __wbg_gpuinstancedgeometry_free: (a: number, b: number) => void;
|
|
929
|
+
readonly __wbg_gpuinstancedgeometrycollection_free: (a: number, b: number) => void;
|
|
930
|
+
readonly __wbg_gpuinstancedgeometryref_free: (a: number, b: number) => void;
|
|
931
|
+
readonly __wbg_gpumeshmetadata_free: (a: number, b: number) => void;
|
|
932
|
+
readonly __wbg_ifcapi_free: (a: number, b: number) => void;
|
|
933
|
+
readonly __wbg_instancedata_free: (a: number, b: number) => void;
|
|
934
|
+
readonly __wbg_instancedgeometry_free: (a: number, b: number) => void;
|
|
935
|
+
readonly __wbg_instancedmeshcollection_free: (a: number, b: number) => void;
|
|
936
|
+
readonly __wbg_meshcollection_free: (a: number, b: number) => void;
|
|
937
|
+
readonly __wbg_meshcollectionwithrtc_free: (a: number, b: number) => void;
|
|
938
|
+
readonly __wbg_meshdatajs_free: (a: number, b: number) => void;
|
|
939
|
+
readonly __wbg_rtcoffsetjs_free: (a: number, b: number) => void;
|
|
940
|
+
readonly __wbg_set_georeferencejs_eastings: (a: number, b: number) => void;
|
|
941
|
+
readonly __wbg_set_georeferencejs_northings: (a: number, b: number) => void;
|
|
942
|
+
readonly __wbg_set_georeferencejs_orthogonal_height: (a: number, b: number) => void;
|
|
943
|
+
readonly __wbg_set_georeferencejs_scale: (a: number, b: number) => void;
|
|
944
|
+
readonly __wbg_set_georeferencejs_x_axis_abscissa: (a: number, b: number) => void;
|
|
945
|
+
readonly __wbg_set_georeferencejs_x_axis_ordinate: (a: number, b: number) => void;
|
|
946
|
+
readonly __wbg_symboliccircle_free: (a: number, b: number) => void;
|
|
947
|
+
readonly __wbg_symbolicpolyline_free: (a: number, b: number) => void;
|
|
948
|
+
readonly __wbg_symbolicrepresentationcollection_free: (a: number, b: number) => void;
|
|
949
|
+
readonly __wbg_zerocopymesh_free: (a: number, b: number) => void;
|
|
950
|
+
readonly georeferencejs_crsName: (a: number, b: number) => void;
|
|
951
|
+
readonly georeferencejs_localToMap: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
952
|
+
readonly georeferencejs_mapToLocal: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
953
|
+
readonly georeferencejs_rotation: (a: number) => number;
|
|
954
|
+
readonly georeferencejs_toMatrix: (a: number, b: number) => void;
|
|
955
|
+
readonly gpugeometry_getIfcTypeName: (a: number, b: number, c: number) => void;
|
|
956
|
+
readonly gpugeometry_getMeshMetadata: (a: number, b: number) => number;
|
|
957
|
+
readonly gpugeometry_hasRtcOffset: (a: number) => number;
|
|
958
|
+
readonly gpugeometry_indicesByteLength: (a: number) => number;
|
|
959
|
+
readonly gpugeometry_indicesLen: (a: number) => number;
|
|
960
|
+
readonly gpugeometry_indicesPtr: (a: number) => number;
|
|
961
|
+
readonly gpugeometry_isEmpty: (a: number) => number;
|
|
962
|
+
readonly gpugeometry_meshCount: (a: number) => number;
|
|
963
|
+
readonly gpugeometry_new: () => number;
|
|
964
|
+
readonly gpugeometry_rtcOffsetX: (a: number) => number;
|
|
965
|
+
readonly gpugeometry_rtcOffsetY: (a: number) => number;
|
|
966
|
+
readonly gpugeometry_rtcOffsetZ: (a: number) => number;
|
|
967
|
+
readonly gpugeometry_set_rtc_offset: (a: number, b: number, c: number, d: number) => void;
|
|
968
|
+
readonly gpugeometry_totalTriangleCount: (a: number) => number;
|
|
969
|
+
readonly gpugeometry_totalVertexCount: (a: number) => number;
|
|
970
|
+
readonly gpugeometry_vertexDataByteLength: (a: number) => number;
|
|
971
|
+
readonly gpugeometry_vertexDataLen: (a: number) => number;
|
|
972
|
+
readonly gpugeometry_vertexDataPtr: (a: number) => number;
|
|
973
|
+
readonly gpuinstancedgeometry_geometryId: (a: number) => bigint;
|
|
974
|
+
readonly gpuinstancedgeometry_indicesByteLength: (a: number) => number;
|
|
975
|
+
readonly gpuinstancedgeometry_indicesLen: (a: number) => number;
|
|
976
|
+
readonly gpuinstancedgeometry_indicesPtr: (a: number) => number;
|
|
977
|
+
readonly gpuinstancedgeometry_instanceCount: (a: number) => number;
|
|
978
|
+
readonly gpuinstancedgeometry_instanceDataByteLength: (a: number) => number;
|
|
979
|
+
readonly gpuinstancedgeometry_instanceDataLen: (a: number) => number;
|
|
980
|
+
readonly gpuinstancedgeometry_instanceDataPtr: (a: number) => number;
|
|
981
|
+
readonly gpuinstancedgeometry_instanceExpressIdsPtr: (a: number) => number;
|
|
982
|
+
readonly gpuinstancedgeometry_new: (a: bigint) => number;
|
|
983
|
+
readonly gpuinstancedgeometry_triangleCount: (a: number) => number;
|
|
984
|
+
readonly gpuinstancedgeometry_vertexCount: (a: number) => number;
|
|
985
|
+
readonly gpuinstancedgeometry_vertexDataByteLength: (a: number) => number;
|
|
986
|
+
readonly gpuinstancedgeometry_vertexDataLen: (a: number) => number;
|
|
987
|
+
readonly gpuinstancedgeometry_vertexDataPtr: (a: number) => number;
|
|
988
|
+
readonly gpuinstancedgeometrycollection_get: (a: number, b: number) => number;
|
|
989
|
+
readonly gpuinstancedgeometrycollection_getRef: (a: number, b: number) => number;
|
|
990
|
+
readonly gpuinstancedgeometrycollection_length: (a: number) => number;
|
|
991
|
+
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
|
+
readonly gpumeshmetadata_color: (a: number, b: number) => void;
|
|
1005
|
+
readonly gpumeshmetadata_expressId: (a: number) => number;
|
|
1006
|
+
readonly gpumeshmetadata_ifcTypeIdx: (a: number) => number;
|
|
1007
|
+
readonly gpumeshmetadata_indexCount: (a: number) => number;
|
|
1008
|
+
readonly gpumeshmetadata_indexOffset: (a: number) => number;
|
|
1009
|
+
readonly gpumeshmetadata_vertexCount: (a: number) => number;
|
|
1010
|
+
readonly gpumeshmetadata_vertexOffset: (a: number) => number;
|
|
1011
|
+
readonly ifcapi_debugProcessEntity953: (a: number, b: number, c: number, d: number) => void;
|
|
1012
|
+
readonly ifcapi_debugProcessFirstWall: (a: number, b: number, c: number, d: number) => void;
|
|
1013
|
+
readonly ifcapi_getGeoReference: (a: number, b: number, c: number) => number;
|
|
1014
|
+
readonly ifcapi_getMemory: (a: number) => number;
|
|
1015
|
+
readonly ifcapi_is_ready: (a: number) => number;
|
|
1016
|
+
readonly ifcapi_new: () => number;
|
|
1017
|
+
readonly ifcapi_parse: (a: number, b: number, c: number) => number;
|
|
1018
|
+
readonly ifcapi_parseMeshes: (a: number, b: number, c: number) => number;
|
|
1019
|
+
readonly ifcapi_parseMeshesAsync: (a: number, b: number, c: number, d: number) => number;
|
|
1020
|
+
readonly ifcapi_parseMeshesInstanced: (a: number, b: number, c: number) => number;
|
|
1021
|
+
readonly ifcapi_parseMeshesInstancedAsync: (a: number, b: number, c: number, d: number) => number;
|
|
1022
|
+
readonly ifcapi_parseMeshesWithRtc: (a: number, b: number, c: number) => number;
|
|
1023
|
+
readonly ifcapi_parseStreaming: (a: number, b: number, c: number, d: number) => number;
|
|
1024
|
+
readonly ifcapi_parseSymbolicRepresentations: (a: number, b: number, c: number) => number;
|
|
1025
|
+
readonly ifcapi_parseToGpuGeometry: (a: number, b: number, c: number) => number;
|
|
1026
|
+
readonly ifcapi_parseToGpuGeometryAsync: (a: number, b: number, c: number, d: number) => number;
|
|
1027
|
+
readonly ifcapi_parseToGpuInstancedGeometry: (a: number, b: number, c: number) => number;
|
|
1028
|
+
readonly ifcapi_parseZeroCopy: (a: number, b: number, c: number) => number;
|
|
1029
|
+
readonly ifcapi_scanEntitiesFast: (a: number, b: number, c: number) => number;
|
|
1030
|
+
readonly ifcapi_scanEntitiesFastBytes: (a: number, b: number, c: number) => number;
|
|
1031
|
+
readonly ifcapi_scanGeometryEntitiesFast: (a: number, b: number, c: number) => number;
|
|
1032
|
+
readonly ifcapi_version: (a: number, b: number) => void;
|
|
1033
|
+
readonly instancedata_color: (a: number, b: number) => void;
|
|
1034
|
+
readonly instancedata_expressId: (a: number) => number;
|
|
1035
|
+
readonly instancedata_transform: (a: number) => number;
|
|
1036
|
+
readonly instancedgeometry_get_instance: (a: number, b: number) => number;
|
|
1037
|
+
readonly instancedgeometry_indices: (a: number) => number;
|
|
1038
|
+
readonly instancedgeometry_instance_count: (a: number) => number;
|
|
1039
|
+
readonly instancedgeometry_normals: (a: number) => number;
|
|
1040
|
+
readonly instancedgeometry_positions: (a: number) => number;
|
|
1041
|
+
readonly instancedmeshcollection_get: (a: number, b: number) => number;
|
|
1042
|
+
readonly instancedmeshcollection_totalInstances: (a: number) => number;
|
|
1043
|
+
readonly meshcollection_buildingRotation: (a: number, b: number) => void;
|
|
1044
|
+
readonly meshcollection_get: (a: number, b: number) => number;
|
|
1045
|
+
readonly meshcollection_hasRtcOffset: (a: number) => number;
|
|
1046
|
+
readonly meshcollection_length: (a: number) => number;
|
|
1047
|
+
readonly meshcollection_localToWorld: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
1048
|
+
readonly meshcollection_rtcOffsetY: (a: number) => number;
|
|
1049
|
+
readonly meshcollection_rtcOffsetZ: (a: number) => number;
|
|
1050
|
+
readonly meshcollection_totalTriangles: (a: number) => number;
|
|
1051
|
+
readonly meshcollection_totalVertices: (a: number) => number;
|
|
1052
|
+
readonly meshcollectionwithrtc_get: (a: number, b: number) => number;
|
|
1053
|
+
readonly meshcollectionwithrtc_meshes: (a: number) => number;
|
|
1054
|
+
readonly meshcollectionwithrtc_rtcOffset: (a: number) => number;
|
|
1055
|
+
readonly meshdatajs_color: (a: number, b: number) => void;
|
|
1056
|
+
readonly meshdatajs_expressId: (a: number) => number;
|
|
1057
|
+
readonly meshdatajs_ifcType: (a: number, b: number) => void;
|
|
1058
|
+
readonly meshdatajs_indices: (a: number) => number;
|
|
1059
|
+
readonly meshdatajs_normals: (a: number) => number;
|
|
1060
|
+
readonly meshdatajs_positions: (a: number) => number;
|
|
1061
|
+
readonly meshdatajs_triangleCount: (a: number) => number;
|
|
1062
|
+
readonly meshdatajs_vertexCount: (a: number) => number;
|
|
1063
|
+
readonly rtcoffsetjs_isSignificant: (a: number) => number;
|
|
1064
|
+
readonly rtcoffsetjs_toWorld: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
1065
|
+
readonly symboliccircle_centerX: (a: number) => number;
|
|
1066
|
+
readonly symboliccircle_centerY: (a: number) => number;
|
|
1067
|
+
readonly symboliccircle_endAngle: (a: number) => number;
|
|
1068
|
+
readonly symboliccircle_ifcType: (a: number, b: number) => void;
|
|
1069
|
+
readonly symboliccircle_isFullCircle: (a: number) => number;
|
|
1070
|
+
readonly symboliccircle_radius: (a: number) => number;
|
|
1071
|
+
readonly symboliccircle_repIdentifier: (a: number, b: number) => void;
|
|
1072
|
+
readonly symboliccircle_startAngle: (a: number) => number;
|
|
1073
|
+
readonly symbolicpolyline_expressId: (a: number) => number;
|
|
1074
|
+
readonly symbolicpolyline_ifcType: (a: number, b: number) => void;
|
|
1075
|
+
readonly symbolicpolyline_isClosed: (a: number) => number;
|
|
1076
|
+
readonly symbolicpolyline_pointCount: (a: number) => number;
|
|
1077
|
+
readonly symbolicpolyline_points: (a: number) => number;
|
|
1078
|
+
readonly symbolicpolyline_repIdentifier: (a: number, b: number) => void;
|
|
1079
|
+
readonly symbolicrepresentationcollection_circleCount: (a: number) => number;
|
|
1080
|
+
readonly symbolicrepresentationcollection_getCircle: (a: number, b: number) => number;
|
|
1081
|
+
readonly symbolicrepresentationcollection_getExpressIds: (a: number, b: number) => void;
|
|
1082
|
+
readonly symbolicrepresentationcollection_getPolyline: (a: number, b: number) => number;
|
|
1083
|
+
readonly symbolicrepresentationcollection_isEmpty: (a: number) => number;
|
|
1084
|
+
readonly symbolicrepresentationcollection_polylineCount: (a: number) => number;
|
|
1085
|
+
readonly symbolicrepresentationcollection_totalCount: (a: number) => number;
|
|
1086
|
+
readonly version: (a: number) => void;
|
|
1087
|
+
readonly zerocopymesh_bounds_max: (a: number, b: number) => void;
|
|
1088
|
+
readonly zerocopymesh_bounds_min: (a: number, b: number) => void;
|
|
1089
|
+
readonly zerocopymesh_is_empty: (a: number) => number;
|
|
1090
|
+
readonly zerocopymesh_new: () => number;
|
|
1091
|
+
readonly zerocopymesh_normals_len: (a: number) => number;
|
|
1092
|
+
readonly zerocopymesh_positions_len: (a: number) => number;
|
|
1093
|
+
readonly zerocopymesh_positions_ptr: (a: number) => number;
|
|
1094
|
+
readonly zerocopymesh_vertex_count: (a: number) => number;
|
|
1095
|
+
readonly init: () => void;
|
|
1096
|
+
readonly instancedmeshcollection_length: (a: number) => number;
|
|
1097
|
+
readonly instancedmeshcollection_totalGeometries: (a: number) => number;
|
|
1098
|
+
readonly meshcollectionwithrtc_length: (a: number) => number;
|
|
1099
|
+
readonly zerocopymesh_indices_len: (a: number) => number;
|
|
1100
|
+
readonly __wbg_get_rtcoffsetjs_x: (a: number) => number;
|
|
1101
|
+
readonly __wbg_get_rtcoffsetjs_y: (a: number) => number;
|
|
1102
|
+
readonly __wbg_get_rtcoffsetjs_z: (a: number) => number;
|
|
1103
|
+
readonly __wbg_set_rtcoffsetjs_x: (a: number, b: number) => void;
|
|
1104
|
+
readonly __wbg_set_rtcoffsetjs_y: (a: number, b: number) => void;
|
|
1105
|
+
readonly __wbg_set_rtcoffsetjs_z: (a: number, b: number) => void;
|
|
1106
|
+
readonly instancedgeometry_geometryId: (a: number) => bigint;
|
|
1107
|
+
readonly meshcollection_rtcOffsetX: (a: number) => number;
|
|
1108
|
+
readonly symboliccircle_expressId: (a: number) => number;
|
|
1109
|
+
readonly zerocopymesh_triangle_count: (a: number) => number;
|
|
1110
|
+
readonly zerocopymesh_indices_ptr: (a: number) => number;
|
|
1111
|
+
readonly zerocopymesh_normals_ptr: (a: number) => number;
|
|
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;
|
|
1118
|
+
readonly __wbindgen_export: (a: number) => void;
|
|
1119
|
+
readonly __wbindgen_export2: (a: number, b: number, c: number) => void;
|
|
1120
|
+
readonly __wbindgen_export3: (a: number, b: number) => number;
|
|
1121
|
+
readonly __wbindgen_export4: (a: number, b: number, c: number, d: number) => number;
|
|
1122
|
+
readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
|
|
1123
|
+
readonly __wbindgen_start: () => void;
|
|
1049
1124
|
}
|
|
1050
1125
|
|
|
1051
1126
|
export type SyncInitInput = BufferSource | WebAssembly.Module;
|
|
1052
1127
|
|
|
1053
1128
|
/**
|
|
1054
|
-
* Instantiates the given `module`, which can either be bytes or
|
|
1055
|
-
* a precompiled `WebAssembly.Module`.
|
|
1056
|
-
*
|
|
1057
|
-
* @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
|
|
1058
|
-
*
|
|
1059
|
-
* @returns {InitOutput}
|
|
1060
|
-
*/
|
|
1129
|
+
* Instantiates the given `module`, which can either be bytes or
|
|
1130
|
+
* a precompiled `WebAssembly.Module`.
|
|
1131
|
+
*
|
|
1132
|
+
* @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
|
|
1133
|
+
*
|
|
1134
|
+
* @returns {InitOutput}
|
|
1135
|
+
*/
|
|
1061
1136
|
export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;
|
|
1062
1137
|
|
|
1063
1138
|
/**
|
|
1064
|
-
* If `module_or_path` is {RequestInfo} or {URL}, makes a request and
|
|
1065
|
-
* for everything else, calls `WebAssembly.instantiate` directly.
|
|
1066
|
-
*
|
|
1067
|
-
* @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
|
|
1068
|
-
*
|
|
1069
|
-
* @returns {Promise<InitOutput>}
|
|
1070
|
-
*/
|
|
1139
|
+
* If `module_or_path` is {RequestInfo} or {URL}, makes a request and
|
|
1140
|
+
* for everything else, calls `WebAssembly.instantiate` directly.
|
|
1141
|
+
*
|
|
1142
|
+
* @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
|
|
1143
|
+
*
|
|
1144
|
+
* @returns {Promise<InitOutput>}
|
|
1145
|
+
*/
|
|
1071
1146
|
export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;
|