@ifc-lite/viewer 1.22.1 → 1.23.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 (33) hide show
  1. package/.turbo/turbo-build.log +30 -30
  2. package/CHANGELOG.md +50 -0
  3. package/dist/assets/{basketViewActivator--cFpU2Q9.js → basketViewActivator-Dn_bHUl2.js} +6 -6
  4. package/dist/assets/{bcf-Ba2CjHib.js → bcf-B9SFl84i.js} +1 -1
  5. package/dist/assets/{deflate-DCLbV4UE.js → deflate-yMpdCIqk.js} +1 -1
  6. package/dist/assets/{exporters-Bf6PTtdW.js → exporters-D-BvrNIg.js} +1178 -1147
  7. package/dist/assets/{geometry-controller.worker-CEr00X3X.js → geometry-controller.worker-Cm5pvyR6.js} +2 -2
  8. package/dist/assets/geometry.worker-ClNvXIrj.js +1 -0
  9. package/dist/assets/{geotiff-BN4J8Vt9.js → geotiff-D1tvcDCb.js} +10 -10
  10. package/dist/assets/{ids-XwxE1tK3.js → ids-DZLs0snJ.js} +3 -3
  11. package/dist/assets/{ifc-lite-DNzkEkIb.js → ifc-lite-BDg0iIbj.js} +2 -2
  12. package/dist/assets/{ifc-lite_bg-1IiJN0Zg.wasm → ifc-lite_bg-BIryVCXQ.wasm} +0 -0
  13. package/dist/assets/{ifc-lite_bg-B_eUD1Wy.wasm → ifc-lite_bg-DyHX37GQ.wasm} +0 -0
  14. package/dist/assets/{index-j2x5R7fb.js → index-CXSBhkcJ.js} +20564 -20159
  15. package/dist/assets/{jpeg-BUTmr0Bp.js → jpeg-DUMcZp24.js} +1 -1
  16. package/dist/assets/{lerc-DmzRHXn3.js → lerc-IN4uWojP.js} +1 -1
  17. package/dist/assets/{lzw-CgyIIzii.js → lzw-Cnw0hH-m.js} +1 -1
  18. package/dist/assets/{native-bridge-Q5ACp4QY.js → native-bridge-BVf2uzoH.js} +1 -1
  19. package/dist/assets/{packbits-C1r4AzHj.js → packbits-BskJCwk0.js} +1 -1
  20. package/dist/assets/{parser.worker-Cl6XQcXA.js → parser.worker-BdtkkaGf.js} +3 -3
  21. package/dist/assets/raw-DzTtEZIY.js +1 -0
  22. package/dist/assets/{sandbox-Bju6ZKJK.js → sandbox-VLI_y7cl.js} +2 -2
  23. package/dist/assets/{server-client-B8wi3CGx.js → server-client-BLcKaWQB.js} +1 -1
  24. package/dist/assets/{wasm-bridge-X-mWRA9Z.js → wasm-bridge-BAfZh7YT.js} +1 -1
  25. package/dist/assets/{webimage-D0MbRMkU.js → webimage-Db2xzze3.js} +1 -1
  26. package/dist/assets/{workerHelpers-DnNedVRr.js → workerHelpers--sAYm9yN.js} +1 -1
  27. package/dist/assets/{zstd-DA4VQ-ji.js → zstd-BDToOQyD.js} +1 -1
  28. package/dist/index.html +6 -6
  29. package/package.json +7 -7
  30. package/src/components/viewer/GLBExportDialog.tsx +389 -0
  31. package/src/components/viewer/MainToolbar.tsx +17 -25
  32. package/dist/assets/geometry.worker-B4VPDkmL.js +0 -1
  33. package/dist/assets/raw-ZqLh7kVQ.js +0 -1
@@ -1,6 +1,6 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/native-bridge-Q5ACp4QY.js","assets/sandbox-Bju6ZKJK.js","assets/lens-CpjUdqpw.js","assets/wasm-bridge-X-mWRA9Z.js"])))=>i.map(i=>d[i]);
2
- import { J as on, _ as Ae, aD as Z, a1 as gn, a2 as hn, j as et, k as Et, aG as an, E as In, ab as me, af as yn, ac as mn, az as bn, K as En, i as be, h as wn, __tla as __tla_0 } from "./sandbox-Bju6ZKJK.js";
3
- let xs, Os, rn, Ls, Es, dn, we, $n, Bs, Ee, Un, ee, As, Ms, Ns;
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/native-bridge-BVf2uzoH.js","assets/sandbox-VLI_y7cl.js","assets/lens-CpjUdqpw.js","assets/wasm-bridge-BAfZh7YT.js"])))=>i.map(i=>d[i]);
2
+ import { J as on, _ as Ae, aD as tt, a1 as gn, a2 as hn, j as nt, k as Ft, aG as an, E as In, ab as be, af as yn, ac as mn, az as bn, K as En, i as Ee, h as wn, __tla as __tla_0 } from "./sandbox-VLI_y7cl.js";
3
+ let xs, Os, rn, Ls, Es, dn, Ce, $n, Bs, we, Un, se, As, Ms, Ns;
4
4
  let __tla = Promise.all([
5
5
  (()=>{
6
6
  try {
@@ -10,67 +10,67 @@ let __tla = Promise.all([
10
10
  ]).then(async ()=>{
11
11
  let o;
12
12
  function B(i) {
13
- Ut === it.length && it.push(it.length + 1);
14
- const t = Ut;
15
- return Ut = it[t], it[t] = i, t;
13
+ Gt === ot.length && ot.push(ot.length + 1);
14
+ const t = Gt;
15
+ return Gt = ot[t], ot[t] = i, t;
16
16
  }
17
17
  function Oe(i) {
18
- if (vt == 1) throw new Error("out of js stack");
19
- return it[--vt] = i, vt;
18
+ if ($t == 1) throw new Error("out of js stack");
19
+ return ot[--$t] = i, $t;
20
20
  }
21
21
  const xe = typeof FinalizationRegistry > "u" ? {
22
22
  register: ()=>{},
23
23
  unregister: ()=>{}
24
24
  } : new FinalizationRegistry((i)=>i.dtor(i.a, i.b));
25
25
  function Cn(i) {
26
- i < 132 || (it[i] = Ut, Ut = i);
26
+ i < 132 || (ot[i] = Gt, Gt = i);
27
27
  }
28
- function gt(i, t) {
28
+ function It(i, t) {
29
29
  return i = i >>> 0, Tn().subarray(i / 4, i / 4 + t);
30
30
  }
31
- function Bt(i, t) {
31
+ function vt(i, t) {
32
32
  return i = i >>> 0, Fn().subarray(i / 8, i / 8 + t);
33
33
  }
34
34
  function cn(i, t) {
35
35
  return i = i >>> 0, ln().subarray(i / 4, i / 4 + t);
36
36
  }
37
- let pt = null;
38
- function S() {
39
- return (pt === null || pt.buffer.detached === !0 || pt.buffer.detached === void 0 && pt.buffer !== o.memory.buffer) && (pt = new DataView(o.memory.buffer)), pt;
37
+ let bt = null;
38
+ function F() {
39
+ return (bt === null || bt.buffer.detached === !0 || bt.buffer.detached === void 0 && bt.buffer !== o.memory.buffer) && (bt = new DataView(o.memory.buffer)), bt;
40
40
  }
41
- let Ot = null;
41
+ let Lt = null;
42
42
  function Tn() {
43
- return (Ot === null || Ot.byteLength === 0) && (Ot = new Float32Array(o.memory.buffer)), Ot;
43
+ return (Lt === null || Lt.byteLength === 0) && (Lt = new Float32Array(o.memory.buffer)), Lt;
44
44
  }
45
- let xt = null;
45
+ let Bt = null;
46
46
  function Fn() {
47
- return (xt === null || xt.byteLength === 0) && (xt = new Float64Array(o.memory.buffer)), xt;
47
+ return (Bt === null || Bt.byteLength === 0) && (Bt = new Float64Array(o.memory.buffer)), Bt;
48
48
  }
49
- function tt(i, t) {
49
+ function et(i, t) {
50
50
  return i = i >>> 0, Nn(i, t);
51
51
  }
52
- let Mt = null;
52
+ let Pt = null;
53
53
  function ln() {
54
- return (Mt === null || Mt.byteLength === 0) && (Mt = new Uint32Array(o.memory.buffer)), Mt;
54
+ return (Pt === null || Pt.byteLength === 0) && (Pt = new Uint32Array(o.memory.buffer)), Pt;
55
55
  }
56
- let Lt = null;
57
- function Pt() {
58
- return (Lt === null || Lt.byteLength === 0) && (Lt = new Uint8Array(o.memory.buffer)), Lt;
56
+ let Ut = null;
57
+ function Dt() {
58
+ return (Ut === null || Ut.byteLength === 0) && (Ut = new Uint8Array(o.memory.buffer)), Ut;
59
59
  }
60
60
  function L(i) {
61
- return it[i];
61
+ return ot[i];
62
62
  }
63
- function Nt(i, t) {
63
+ function xt(i, t) {
64
64
  try {
65
65
  return i.apply(this, t);
66
66
  } catch (e) {
67
67
  o.__wbindgen_export(B(e));
68
68
  }
69
69
  }
70
- let it = new Array(128).fill(void 0);
71
- it.push(void 0, null, !0, !1);
72
- let Ut = it.length;
73
- function wt(i) {
70
+ let ot = new Array(128).fill(void 0);
71
+ ot.push(void 0, null, !0, !1);
72
+ let Gt = ot.length;
73
+ function Rt(i) {
74
74
  return i == null;
75
75
  }
76
76
  function Rn(i, t, e, n) {
@@ -93,21 +93,21 @@ let __tla = Promise.all([
93
93
  --s.cnt === 0 && (s.dtor(s.a, s.b), s.a = 0, xe.unregister(s));
94
94
  }, xe.register(r, s, s), r;
95
95
  }
96
- function ct(i, t) {
96
+ function _t(i, t) {
97
97
  const e = t(i.length * 4, 4) >>> 0;
98
- return ln().set(i, e / 4), x = i.length, e;
98
+ return ln().set(i, e / 4), O = i.length, e;
99
99
  }
100
- function lt(i, t) {
100
+ function ft(i, t) {
101
101
  const e = t(i.length * 1, 1) >>> 0;
102
- return Pt().set(i, e / 1), x = i.length, e;
102
+ return Dt().set(i, e / 1), O = i.length, e;
103
103
  }
104
- function J(i, t, e) {
104
+ function Q(i, t, e) {
105
105
  if (e === void 0) {
106
- const c = Dt.encode(i), l = t(c.length, 1) >>> 0;
107
- return Pt().subarray(l, l + c.length).set(c), x = c.length, l;
106
+ const c = zt.encode(i), l = t(c.length, 1) >>> 0;
107
+ return Dt().subarray(l, l + c.length).set(c), O = c.length, l;
108
108
  }
109
109
  let n = i.length, s = t(n, 1) >>> 0;
110
- const r = Pt();
110
+ const r = Dt();
111
111
  let a = 0;
112
112
  for(; a < n; a++){
113
113
  const c = i.charCodeAt(a);
@@ -116,54 +116,54 @@ let __tla = Promise.all([
116
116
  }
117
117
  if (a !== n) {
118
118
  a !== 0 && (i = i.slice(a)), s = e(s, n, n = a + i.length * 3, 1) >>> 0;
119
- const c = Pt().subarray(s + a, s + n), l = Dt.encodeInto(i, c);
119
+ const c = Dt().subarray(s + a, s + n), l = zt.encodeInto(i, c);
120
120
  a += l.written, s = e(s, n, a, 1) >>> 0;
121
121
  }
122
- return x = a, s;
122
+ return O = a, s;
123
123
  }
124
- let vt = 128;
125
- function D(i) {
124
+ let $t = 128;
125
+ function G(i) {
126
126
  const t = L(i);
127
127
  return Cn(i), t;
128
128
  }
129
- let se = new TextDecoder("utf-8", {
129
+ let ie = new TextDecoder("utf-8", {
130
130
  ignoreBOM: !0,
131
131
  fatal: !0
132
132
  });
133
- se.decode();
133
+ ie.decode();
134
134
  const Sn = 2146435072;
135
- let ce = 0;
135
+ let le = 0;
136
136
  function Nn(i, t) {
137
- return ce += t, ce >= Sn && (se = new TextDecoder("utf-8", {
137
+ return le += t, le >= Sn && (ie = new TextDecoder("utf-8", {
138
138
  ignoreBOM: !0,
139
139
  fatal: !0
140
- }), se.decode(), ce = t), se.decode(Pt().subarray(i, i + t));
140
+ }), ie.decode(), le = t), ie.decode(Dt().subarray(i, i + t));
141
141
  }
142
- const Dt = new TextEncoder;
143
- "encodeInto" in Dt || (Dt.encodeInto = function(i, t) {
144
- const e = Dt.encode(i);
142
+ const zt = new TextEncoder;
143
+ "encodeInto" in zt || (zt.encodeInto = function(i, t) {
144
+ const e = zt.encode(i);
145
145
  return t.set(e), {
146
146
  read: i.length,
147
147
  written: e.length
148
148
  };
149
149
  });
150
- let x = 0;
150
+ let O = 0;
151
151
  function An(i, t, e) {
152
- o.__wasm_bindgen_func_elem_1480(i, t, B(e));
152
+ o.__wasm_bindgen_func_elem_1484(i, t, B(e));
153
153
  }
154
154
  function On(i, t, e, n) {
155
- o.__wasm_bindgen_func_elem_1520(i, t, B(e), B(n));
155
+ o.__wasm_bindgen_func_elem_1524(i, t, B(e), B(n));
156
156
  }
157
157
  const Me = typeof FinalizationRegistry > "u" ? {
158
158
  register: ()=>{},
159
159
  unregister: ()=>{}
160
- } : new FinalizationRegistry((i)=>o.__wbg_georeferencejs_free(i >>> 0, 1)), le = typeof FinalizationRegistry > "u" ? {
160
+ } : new FinalizationRegistry((i)=>o.__wbg_georeferencejs_free(i >>> 0, 1)), de = typeof FinalizationRegistry > "u" ? {
161
161
  register: ()=>{},
162
162
  unregister: ()=>{}
163
- } : new FinalizationRegistry((i)=>o.__wbg_gpugeometry_free(i >>> 0, 1)), de = typeof FinalizationRegistry > "u" ? {
163
+ } : new FinalizationRegistry((i)=>o.__wbg_gpugeometry_free(i >>> 0, 1)), _e = typeof FinalizationRegistry > "u" ? {
164
164
  register: ()=>{},
165
165
  unregister: ()=>{}
166
- } : new FinalizationRegistry((i)=>o.__wbg_gpuinstancedgeometry_free(i >>> 0, 1)), _e = typeof FinalizationRegistry > "u" ? {
166
+ } : new FinalizationRegistry((i)=>o.__wbg_gpuinstancedgeometry_free(i >>> 0, 1)), fe = typeof FinalizationRegistry > "u" ? {
167
167
  register: ()=>{},
168
168
  unregister: ()=>{}
169
169
  } : new FinalizationRegistry((i)=>o.__wbg_gpuinstancedgeometrycollection_free(i >>> 0, 1)), Le = typeof FinalizationRegistry > "u" ? {
@@ -205,20 +205,20 @@ let __tla = Promise.all([
205
205
  } : new FinalizationRegistry((i)=>o.__wbg_rtcoffsetjs_free(i >>> 0, 1)), We = typeof FinalizationRegistry > "u" ? {
206
206
  register: ()=>{},
207
207
  unregister: ()=>{}
208
- } : new FinalizationRegistry((i)=>o.__wbg_symboliccircle_free(i >>> 0, 1)), Ye = typeof FinalizationRegistry > "u" ? {
208
+ } : new FinalizationRegistry((i)=>o.__wbg_symboliccircle_free(i >>> 0, 1)), He = typeof FinalizationRegistry > "u" ? {
209
209
  register: ()=>{},
210
210
  unregister: ()=>{}
211
- } : new FinalizationRegistry((i)=>o.__wbg_symbolicpolyline_free(i >>> 0, 1)), He = typeof FinalizationRegistry > "u" ? {
211
+ } : new FinalizationRegistry((i)=>o.__wbg_symbolicpolyline_free(i >>> 0, 1)), Ye = typeof FinalizationRegistry > "u" ? {
212
212
  register: ()=>{},
213
213
  unregister: ()=>{}
214
- } : new FinalizationRegistry((i)=>o.__wbg_symbolicrepresentationcollection_free(i >>> 0, 1)), fe = typeof FinalizationRegistry > "u" ? {
214
+ } : new FinalizationRegistry((i)=>o.__wbg_symbolicrepresentationcollection_free(i >>> 0, 1)), ue = typeof FinalizationRegistry > "u" ? {
215
215
  register: ()=>{},
216
216
  unregister: ()=>{}
217
217
  } : new FinalizationRegistry((i)=>o.__wbg_zerocopymesh_free(i >>> 0, 1));
218
- class Gt {
218
+ class Vt {
219
219
  static __wrap(t) {
220
220
  t = t >>> 0;
221
- const e = Object.create(Gt.prototype);
221
+ const e = Object.create(Vt.prototype);
222
222
  return e.__wbg_ptr = t, Me.register(e, e.__wbg_ptr, e), e;
223
223
  }
224
224
  __destroy_into_raw() {
@@ -233,7 +233,7 @@ let __tla = Promise.all([
233
233
  try {
234
234
  const c = o.__wbindgen_add_to_stack_pointer(-16);
235
235
  o.georeferencejs_localToMap(c, this.__wbg_ptr, t, e, n);
236
- var s = S().getInt32(c + 0, !0), r = S().getInt32(c + 4, !0), a = Bt(s, r).slice();
236
+ var s = F().getInt32(c + 0, !0), r = F().getInt32(c + 4, !0), a = vt(s, r).slice();
237
237
  return o.__wbindgen_export2(s, r * 8, 8), a;
238
238
  } finally{
239
239
  o.__wbindgen_add_to_stack_pointer(16);
@@ -243,7 +243,7 @@ let __tla = Promise.all([
243
243
  try {
244
244
  const c = o.__wbindgen_add_to_stack_pointer(-16);
245
245
  o.georeferencejs_mapToLocal(c, this.__wbg_ptr, t, e, n);
246
- var s = S().getInt32(c + 0, !0), r = S().getInt32(c + 4, !0), a = Bt(s, r).slice();
246
+ var s = F().getInt32(c + 0, !0), r = F().getInt32(c + 4, !0), a = vt(s, r).slice();
247
247
  return o.__wbindgen_export2(s, r * 8, 8), a;
248
248
  } finally{
249
249
  o.__wbindgen_add_to_stack_pointer(16);
@@ -253,9 +253,9 @@ let __tla = Promise.all([
253
253
  try {
254
254
  const n = o.__wbindgen_add_to_stack_pointer(-16);
255
255
  o.georeferencejs_crsName(n, this.__wbg_ptr);
256
- var t = S().getInt32(n + 0, !0), e = S().getInt32(n + 4, !0);
256
+ var t = F().getInt32(n + 0, !0), e = F().getInt32(n + 4, !0);
257
257
  let s;
258
- return t !== 0 && (s = tt(t, e).slice(), o.__wbindgen_export2(t, e * 1, 1)), s;
258
+ return t !== 0 && (s = et(t, e).slice(), o.__wbindgen_export2(t, e * 1, 1)), s;
259
259
  } finally{
260
260
  o.__wbindgen_add_to_stack_pointer(16);
261
261
  }
@@ -267,7 +267,7 @@ let __tla = Promise.all([
267
267
  try {
268
268
  const s = o.__wbindgen_add_to_stack_pointer(-16);
269
269
  o.georeferencejs_toMatrix(s, this.__wbg_ptr);
270
- var t = S().getInt32(s + 0, !0), e = S().getInt32(s + 4, !0), n = Bt(t, e).slice();
270
+ var t = F().getInt32(s + 0, !0), e = F().getInt32(s + 4, !0), n = vt(t, e).slice();
271
271
  return o.__wbindgen_export2(t, e * 8, 8), n;
272
272
  } finally{
273
273
  o.__wbindgen_add_to_stack_pointer(16);
@@ -310,16 +310,16 @@ let __tla = Promise.all([
310
310
  o.__wbg_set_georeferencejs_scale(this.__wbg_ptr, t);
311
311
  }
312
312
  }
313
- Symbol.dispose && (Gt.prototype[Symbol.dispose] = Gt.prototype.free);
314
- class Tt {
313
+ Symbol.dispose && (Vt.prototype[Symbol.dispose] = Vt.prototype.free);
314
+ class Nt {
315
315
  static __wrap(t) {
316
316
  t = t >>> 0;
317
- const e = Object.create(Tt.prototype);
318
- return e.__wbg_ptr = t, le.register(e, e.__wbg_ptr, e), e;
317
+ const e = Object.create(Nt.prototype);
318
+ return e.__wbg_ptr = t, de.register(e, e.__wbg_ptr, e), e;
319
319
  }
320
320
  __destroy_into_raw() {
321
321
  const t = this.__wbg_ptr;
322
- return this.__wbg_ptr = 0, le.unregister(this), t;
322
+ return this.__wbg_ptr = 0, de.unregister(this), t;
323
323
  }
324
324
  free() {
325
325
  const t = this.__destroy_into_raw();
@@ -359,16 +359,16 @@ let __tla = Promise.all([
359
359
  try {
360
360
  const s = o.__wbindgen_add_to_stack_pointer(-16);
361
361
  o.gpugeometry_getIfcTypeName(s, this.__wbg_ptr, t);
362
- var e = S().getInt32(s + 0, !0), n = S().getInt32(s + 4, !0);
362
+ var e = F().getInt32(s + 0, !0), n = F().getInt32(s + 4, !0);
363
363
  let r;
364
- return e !== 0 && (r = tt(e, n).slice(), o.__wbindgen_export2(e, n * 1, 1)), r;
364
+ return e !== 0 && (r = et(e, n).slice(), o.__wbindgen_export2(e, n * 1, 1)), r;
365
365
  } finally{
366
366
  o.__wbindgen_add_to_stack_pointer(16);
367
367
  }
368
368
  }
369
369
  getMeshMetadata(t) {
370
370
  const e = o.gpugeometry_getMeshMetadata(this.__wbg_ptr, t);
371
- return e === 0 ? void 0 : jt.__wrap(e);
371
+ return e === 0 ? void 0 : Ht.__wrap(e);
372
372
  }
373
373
  get totalVertexCount() {
374
374
  return o.gpugeometry_totalVertexCount(this.__wbg_ptr) >>> 0;
@@ -384,22 +384,22 @@ let __tla = Promise.all([
384
384
  }
385
385
  constructor(){
386
386
  const t = o.gpugeometry_new();
387
- return this.__wbg_ptr = t >>> 0, le.register(this, this.__wbg_ptr, this), this;
387
+ return this.__wbg_ptr = t >>> 0, de.register(this, this.__wbg_ptr, this), this;
388
388
  }
389
389
  get isEmpty() {
390
390
  return o.gpugeometry_isEmpty(this.__wbg_ptr) !== 0;
391
391
  }
392
392
  }
393
- Symbol.dispose && (Tt.prototype[Symbol.dispose] = Tt.prototype.free);
394
- class $t {
393
+ Symbol.dispose && (Nt.prototype[Symbol.dispose] = Nt.prototype.free);
394
+ class jt {
395
395
  static __wrap(t) {
396
396
  t = t >>> 0;
397
- const e = Object.create($t.prototype);
398
- return e.__wbg_ptr = t, de.register(e, e.__wbg_ptr, e), e;
397
+ const e = Object.create(jt.prototype);
398
+ return e.__wbg_ptr = t, _e.register(e, e.__wbg_ptr, e), e;
399
399
  }
400
400
  __destroy_into_raw() {
401
401
  const t = this.__wbg_ptr;
402
- return this.__wbg_ptr = 0, de.unregister(this), t;
402
+ return this.__wbg_ptr = 0, _e.unregister(this), t;
403
403
  }
404
404
  free() {
405
405
  const t = this.__destroy_into_raw();
@@ -450,19 +450,19 @@ let __tla = Promise.all([
450
450
  }
451
451
  constructor(t){
452
452
  const e = o.gpuinstancedgeometry_new(t);
453
- return this.__wbg_ptr = e >>> 0, de.register(this, this.__wbg_ptr, this), this;
453
+ return this.__wbg_ptr = e >>> 0, _e.register(this, this.__wbg_ptr, this), this;
454
454
  }
455
455
  }
456
- Symbol.dispose && ($t.prototype[Symbol.dispose] = $t.prototype.free);
457
- class zt {
456
+ Symbol.dispose && (jt.prototype[Symbol.dispose] = jt.prototype.free);
457
+ class kt {
458
458
  static __wrap(t) {
459
459
  t = t >>> 0;
460
- const e = Object.create(zt.prototype);
461
- return e.__wbg_ptr = t, _e.register(e, e.__wbg_ptr, e), e;
460
+ const e = Object.create(kt.prototype);
461
+ return e.__wbg_ptr = t, fe.register(e, e.__wbg_ptr, e), e;
462
462
  }
463
463
  __destroy_into_raw() {
464
464
  const t = this.__wbg_ptr;
465
- return this.__wbg_ptr = 0, _e.unregister(this), t;
465
+ return this.__wbg_ptr = 0, fe.unregister(this), t;
466
466
  }
467
467
  free() {
468
468
  const t = this.__destroy_into_raw();
@@ -470,25 +470,25 @@ let __tla = Promise.all([
470
470
  }
471
471
  get(t) {
472
472
  const e = o.gpuinstancedgeometrycollection_get(this.__wbg_ptr, t);
473
- return e === 0 ? void 0 : $t.__wrap(e);
473
+ return e === 0 ? void 0 : jt.__wrap(e);
474
474
  }
475
475
  constructor(){
476
476
  const t = o.gpuinstancedgeometrycollection_new();
477
- return this.__wbg_ptr = t >>> 0, _e.register(this, this.__wbg_ptr, this), this;
477
+ return this.__wbg_ptr = t >>> 0, fe.register(this, this.__wbg_ptr, this), this;
478
478
  }
479
479
  get length() {
480
480
  return o.gpuinstancedgeometrycollection_length(this.__wbg_ptr) >>> 0;
481
481
  }
482
482
  getRef(t) {
483
483
  const e = o.gpuinstancedgeometrycollection_get(this.__wbg_ptr, t);
484
- return e === 0 ? void 0 : Vt.__wrap(e);
484
+ return e === 0 ? void 0 : Wt.__wrap(e);
485
485
  }
486
486
  }
487
- Symbol.dispose && (zt.prototype[Symbol.dispose] = zt.prototype.free);
488
- class Vt {
487
+ Symbol.dispose && (kt.prototype[Symbol.dispose] = kt.prototype.free);
488
+ class Wt {
489
489
  static __wrap(t) {
490
490
  t = t >>> 0;
491
- const e = Object.create(Vt.prototype);
491
+ const e = Object.create(Wt.prototype);
492
492
  return e.__wbg_ptr = t, Le.register(e, e.__wbg_ptr, e), e;
493
493
  }
494
494
  __destroy_into_raw() {
@@ -537,11 +537,11 @@ let __tla = Promise.all([
537
537
  return o.gpuinstancedgeometry_instanceDataByteLength(this.__wbg_ptr) >>> 0;
538
538
  }
539
539
  }
540
- Symbol.dispose && (Vt.prototype[Symbol.dispose] = Vt.prototype.free);
541
- class jt {
540
+ Symbol.dispose && (Wt.prototype[Symbol.dispose] = Wt.prototype.free);
541
+ class Ht {
542
542
  static __wrap(t) {
543
543
  t = t >>> 0;
544
- const e = Object.create(jt.prototype);
544
+ const e = Object.create(Ht.prototype);
545
545
  return e.__wbg_ptr = t, Be.register(e, e.__wbg_ptr, e), e;
546
546
  }
547
547
  __destroy_into_raw() {
@@ -574,15 +574,15 @@ let __tla = Promise.all([
574
574
  try {
575
575
  const s = o.__wbindgen_add_to_stack_pointer(-16);
576
576
  o.gpumeshmetadata_color(s, this.__wbg_ptr);
577
- var t = S().getInt32(s + 0, !0), e = S().getInt32(s + 4, !0), n = gt(t, e).slice();
577
+ var t = F().getInt32(s + 0, !0), e = F().getInt32(s + 4, !0), n = It(t, e).slice();
578
578
  return o.__wbindgen_export2(t, e * 4, 4), n;
579
579
  } finally{
580
580
  o.__wbindgen_add_to_stack_pointer(16);
581
581
  }
582
582
  }
583
583
  }
584
- Symbol.dispose && (jt.prototype[Symbol.dispose] = jt.prototype.free);
585
- Ee = class {
584
+ Symbol.dispose && (Ht.prototype[Symbol.dispose] = Ht.prototype.free);
585
+ we = class {
586
586
  __destroy_into_raw() {
587
587
  const t = this.__wbg_ptr;
588
588
  return this.__wbg_ptr = 0, Pe.unregister(this), t;
@@ -592,90 +592,90 @@ let __tla = Promise.all([
592
592
  o.__wbg_ifcapi_free(t, 0);
593
593
  }
594
594
  parseMeshes(t) {
595
- const e = J(t, o.__wbindgen_export3, o.__wbindgen_export4), n = x, s = o.ifcapi_parseMeshes(this.__wbg_ptr, e, n);
596
- return _t.__wrap(s);
595
+ const e = Q(t, o.__wbindgen_export3, o.__wbindgen_export4), n = O, s = o.ifcapi_parseMeshes(this.__wbg_ptr, e, n);
596
+ return ht.__wrap(s);
597
597
  }
598
598
  parseMeshesAsync(t, e) {
599
- const n = J(t, o.__wbindgen_export3, o.__wbindgen_export4), s = x, r = o.ifcapi_parseMeshesAsync(this.__wbg_ptr, n, s, B(e));
600
- return D(r);
599
+ const n = Q(t, o.__wbindgen_export3, o.__wbindgen_export4), s = O, r = o.ifcapi_parseMeshesAsync(this.__wbg_ptr, n, s, B(e));
600
+ return G(r);
601
601
  }
602
602
  buildPrePassFast(t) {
603
- const e = lt(t, o.__wbindgen_export3), n = x, s = o.ifcapi_buildPrePassFast(this.__wbg_ptr, e, n);
604
- return D(s);
603
+ const e = ft(t, o.__wbindgen_export3), n = O, s = o.ifcapi_buildPrePassFast(this.__wbg_ptr, e, n);
604
+ return G(s);
605
605
  }
606
606
  buildPrePassOnce(t) {
607
- const e = lt(t, o.__wbindgen_export3), n = x, s = o.ifcapi_buildPrePassOnce(this.__wbg_ptr, e, n);
608
- return D(s);
607
+ const e = ft(t, o.__wbindgen_export3), n = O, s = o.ifcapi_buildPrePassOnce(this.__wbg_ptr, e, n);
608
+ return G(s);
609
609
  }
610
610
  parseMeshesSubset(t, e, n, s) {
611
- const r = J(t, o.__wbindgen_export3, o.__wbindgen_export4), a = x, c = o.ifcapi_parseMeshesSubset(this.__wbg_ptr, r, a, e, n, s);
612
- return _t.__wrap(c);
611
+ const r = Q(t, o.__wbindgen_export3, o.__wbindgen_export4), a = O, c = o.ifcapi_parseMeshesSubset(this.__wbg_ptr, r, a, e, n, s);
612
+ return ht.__wrap(c);
613
613
  }
614
614
  parseToGpuGeometry(t) {
615
- const e = J(t, o.__wbindgen_export3, o.__wbindgen_export4), n = x, s = o.ifcapi_parseToGpuGeometry(this.__wbg_ptr, e, n);
616
- return Tt.__wrap(s);
615
+ const e = Q(t, o.__wbindgen_export3, o.__wbindgen_export4), n = O, s = o.ifcapi_parseToGpuGeometry(this.__wbg_ptr, e, n);
616
+ return Nt.__wrap(s);
617
617
  }
618
618
  parseMeshesInstanced(t) {
619
- const e = J(t, o.__wbindgen_export3, o.__wbindgen_export4), n = x, s = o.ifcapi_parseMeshesInstanced(this.__wbg_ptr, e, n);
620
- return Rt.__wrap(s);
619
+ const e = Q(t, o.__wbindgen_export3, o.__wbindgen_export4), n = O, s = o.ifcapi_parseMeshesInstanced(this.__wbg_ptr, e, n);
620
+ return Ot.__wrap(s);
621
621
  }
622
- processGeometryBatch(t, e, n, s, r, a, c, l, d, _, f, p) {
623
- const g = lt(t, o.__wbindgen_export3), u = x, h = ct(e, o.__wbindgen_export3), b = x, C = ct(l, o.__wbindgen_export3), w = x, A = ct(d, o.__wbindgen_export3), M = x, z = ct(_, o.__wbindgen_export3), m = x, N = ct(f, o.__wbindgen_export3), I = x, F = lt(p, o.__wbindgen_export3), R = x, E = o.ifcapi_processGeometryBatch(this.__wbg_ptr, g, u, h, b, n, s, r, a, c, C, w, A, M, z, m, N, I, F, R);
624
- return _t.__wrap(E);
622
+ processGeometryBatch(t, e, n, s, r, a, c, l, d, f, _, p) {
623
+ const g = ft(t, o.__wbindgen_export3), u = O, h = _t(e, o.__wbindgen_export3), m = O, w = _t(l, o.__wbindgen_export3), C = O, A = _t(d, o.__wbindgen_export3), P = O, z = _t(f, o.__wbindgen_export3), x = O, v = _t(_, o.__wbindgen_export3), E = O, N = ft(p, o.__wbindgen_export3), S = O, b = o.ifcapi_processGeometryBatch(this.__wbg_ptr, g, u, h, m, n, s, r, a, c, w, C, A, P, z, x, v, E, N, S);
624
+ return ht.__wrap(b);
625
625
  }
626
626
  scanEntityIndexShard(t, e, n, s) {
627
627
  try {
628
- const l = o.__wbindgen_add_to_stack_pointer(-16), d = lt(t, o.__wbindgen_export3), _ = x;
629
- o.ifcapi_scanEntityIndexShard(l, this.__wbg_ptr, d, _, Oe(e), n, s);
630
- var r = S().getInt32(l + 0, !0), a = S().getInt32(l + 4, !0), c = S().getInt32(l + 8, !0);
631
- if (c) throw D(a);
632
- return D(r);
628
+ const l = o.__wbindgen_add_to_stack_pointer(-16), d = ft(t, o.__wbindgen_export3), f = O;
629
+ o.ifcapi_scanEntityIndexShard(l, this.__wbg_ptr, d, f, Oe(e), n, s);
630
+ var r = F().getInt32(l + 0, !0), a = F().getInt32(l + 4, !0), c = F().getInt32(l + 8, !0);
631
+ if (c) throw G(a);
632
+ return G(r);
633
633
  } finally{
634
- o.__wbindgen_add_to_stack_pointer(16), it[vt++] = void 0;
634
+ o.__wbindgen_add_to_stack_pointer(16), ot[$t++] = void 0;
635
635
  }
636
636
  }
637
637
  buildPrePassStreaming(t, e, n) {
638
638
  try {
639
- const c = o.__wbindgen_add_to_stack_pointer(-16), l = lt(t, o.__wbindgen_export3), d = x;
639
+ const c = o.__wbindgen_add_to_stack_pointer(-16), l = ft(t, o.__wbindgen_export3), d = O;
640
640
  o.ifcapi_buildPrePassStreaming(c, this.__wbg_ptr, l, d, Oe(e), n);
641
- var s = S().getInt32(c + 0, !0), r = S().getInt32(c + 4, !0), a = S().getInt32(c + 8, !0);
642
- if (a) throw D(r);
643
- return D(s);
641
+ var s = F().getInt32(c + 0, !0), r = F().getInt32(c + 4, !0), a = F().getInt32(c + 8, !0);
642
+ if (a) throw G(r);
643
+ return G(s);
644
644
  } finally{
645
- o.__wbindgen_add_to_stack_pointer(16), it[vt++] = void 0;
645
+ o.__wbindgen_add_to_stack_pointer(16), ot[$t++] = void 0;
646
646
  }
647
647
  }
648
648
  parseToGpuGeometryAsync(t, e) {
649
- const n = J(t, o.__wbindgen_export3, o.__wbindgen_export4), s = x, r = o.ifcapi_parseToGpuGeometryAsync(this.__wbg_ptr, n, s, B(e));
650
- return D(r);
649
+ const n = Q(t, o.__wbindgen_export3, o.__wbindgen_export4), s = O, r = o.ifcapi_parseToGpuGeometryAsync(this.__wbg_ptr, n, s, B(e));
650
+ return G(r);
651
651
  }
652
652
  parseMeshesInstancedAsync(t, e) {
653
- const n = J(t, o.__wbindgen_export3, o.__wbindgen_export4), s = x, r = o.ifcapi_parseMeshesInstancedAsync(this.__wbg_ptr, n, s, B(e));
654
- return D(r);
653
+ const n = Q(t, o.__wbindgen_export3, o.__wbindgen_export4), s = O, r = o.ifcapi_parseMeshesInstancedAsync(this.__wbg_ptr, n, s, B(e));
654
+ return G(r);
655
655
  }
656
656
  parseToGpuInstancedGeometry(t) {
657
- const e = J(t, o.__wbindgen_export3, o.__wbindgen_export4), n = x, s = o.ifcapi_parseToGpuInstancedGeometry(this.__wbg_ptr, e, n);
658
- return zt.__wrap(s);
657
+ const e = Q(t, o.__wbindgen_export3, o.__wbindgen_export4), n = O, s = o.ifcapi_parseToGpuInstancedGeometry(this.__wbg_ptr, e, n);
658
+ return kt.__wrap(s);
659
659
  }
660
660
  processInstancedGeometryBatch(t, e, n, s, r, a, c, l, d) {
661
- const _ = lt(t, o.__wbindgen_export3), f = x, p = ct(e, o.__wbindgen_export3), g = x, u = ct(l, o.__wbindgen_export3), h = x, b = lt(d, o.__wbindgen_export3), C = x, w = o.ifcapi_processInstancedGeometryBatch(this.__wbg_ptr, _, f, p, g, n, s, r, a, c, u, h, b, C);
662
- return Rt.__wrap(w);
661
+ const f = ft(t, o.__wbindgen_export3), _ = O, p = _t(e, o.__wbindgen_export3), g = O, u = _t(l, o.__wbindgen_export3), h = O, m = ft(d, o.__wbindgen_export3), w = O, C = o.ifcapi_processInstancedGeometryBatch(this.__wbg_ptr, f, _, p, g, n, s, r, a, c, u, h, m, w);
662
+ return Ot.__wrap(C);
663
663
  }
664
664
  parseZeroCopy(t) {
665
- const e = J(t, o.__wbindgen_export3, o.__wbindgen_export4), n = x, s = o.ifcapi_parseZeroCopy(this.__wbg_ptr, e, n);
666
- return Kt.__wrap(s);
665
+ const e = Q(t, o.__wbindgen_export3, o.__wbindgen_export4), n = O, s = o.ifcapi_parseZeroCopy(this.__wbg_ptr, e, n);
666
+ return ee.__wrap(s);
667
667
  }
668
668
  extractProfiles(t, e) {
669
- const n = J(t, o.__wbindgen_export3, o.__wbindgen_export4), s = x, r = o.ifcapi_extractProfiles(this.__wbg_ptr, n, s, e);
670
- return Yt.__wrap(r);
669
+ const n = Q(t, o.__wbindgen_export3, o.__wbindgen_export4), s = O, r = o.ifcapi_extractProfiles(this.__wbg_ptr, n, s, e);
670
+ return Jt.__wrap(r);
671
671
  }
672
672
  debugProcessEntity953(t) {
673
673
  let e, n;
674
674
  try {
675
- const a = o.__wbindgen_add_to_stack_pointer(-16), c = J(t, o.__wbindgen_export3, o.__wbindgen_export4), l = x;
675
+ const a = o.__wbindgen_add_to_stack_pointer(-16), c = Q(t, o.__wbindgen_export3, o.__wbindgen_export4), l = O;
676
676
  o.ifcapi_debugProcessEntity953(a, this.__wbg_ptr, c, l);
677
- var s = S().getInt32(a + 0, !0), r = S().getInt32(a + 4, !0);
678
- return e = s, n = r, tt(s, r);
677
+ var s = F().getInt32(a + 0, !0), r = F().getInt32(a + 4, !0);
678
+ return e = s, n = r, et(s, r);
679
679
  } finally{
680
680
  o.__wbindgen_add_to_stack_pointer(16), o.__wbindgen_export2(e, n, 1);
681
681
  }
@@ -683,20 +683,20 @@ let __tla = Promise.all([
683
683
  debugProcessFirstWall(t) {
684
684
  let e, n;
685
685
  try {
686
- const a = o.__wbindgen_add_to_stack_pointer(-16), c = J(t, o.__wbindgen_export3, o.__wbindgen_export4), l = x;
686
+ const a = o.__wbindgen_add_to_stack_pointer(-16), c = Q(t, o.__wbindgen_export3, o.__wbindgen_export4), l = O;
687
687
  o.ifcapi_debugProcessFirstWall(a, this.__wbg_ptr, c, l);
688
- var s = S().getInt32(a + 0, !0), r = S().getInt32(a + 4, !0);
689
- return e = s, n = r, tt(s, r);
688
+ var s = F().getInt32(a + 0, !0), r = F().getInt32(a + 4, !0);
689
+ return e = s, n = r, et(s, r);
690
690
  } finally{
691
691
  o.__wbindgen_add_to_stack_pointer(16), o.__wbindgen_export2(e, n, 1);
692
692
  }
693
693
  }
694
694
  getMemory() {
695
695
  const t = o.ifcapi_getMemory(this.__wbg_ptr);
696
- return D(t);
696
+ return G(t);
697
697
  }
698
698
  setEntityIndex(t, e, n) {
699
- const s = ct(t, o.__wbindgen_export3), r = x, a = ct(e, o.__wbindgen_export3), c = x, l = ct(n, o.__wbindgen_export3), d = x;
699
+ const s = _t(t, o.__wbindgen_export3), r = O, a = _t(e, o.__wbindgen_export3), c = O, l = _t(n, o.__wbindgen_export3), d = O;
700
700
  o.ifcapi_setEntityIndex(this.__wbg_ptr, s, r, a, c, l, d);
701
701
  }
702
702
  setMergeLayers(t) {
@@ -714,8 +714,8 @@ let __tla = Promise.all([
714
714
  try {
715
715
  const r = o.__wbindgen_add_to_stack_pointer(-16);
716
716
  o.ifcapi_version(r, this.__wbg_ptr);
717
- var n = S().getInt32(r + 0, !0), s = S().getInt32(r + 4, !0);
718
- return t = n, e = s, tt(n, s);
717
+ var n = F().getInt32(r + 0, !0), s = F().getInt32(r + 4, !0);
718
+ return t = n, e = s, et(n, s);
719
719
  } finally{
720
720
  o.__wbindgen_add_to_stack_pointer(16), o.__wbindgen_export2(t, e, 1);
721
721
  }
@@ -724,47 +724,47 @@ let __tla = Promise.all([
724
724
  return o.ifcapi_is_ready(this.__wbg_ptr) !== 0;
725
725
  }
726
726
  getGeoReference(t) {
727
- const e = J(t, o.__wbindgen_export3, o.__wbindgen_export4), n = x, s = o.ifcapi_getGeoReference(this.__wbg_ptr, e, n);
728
- return s === 0 ? void 0 : Gt.__wrap(s);
727
+ const e = Q(t, o.__wbindgen_export3, o.__wbindgen_export4), n = O, s = o.ifcapi_getGeoReference(this.__wbg_ptr, e, n);
728
+ return s === 0 ? void 0 : Vt.__wrap(s);
729
729
  }
730
730
  parseMeshesWithRtc(t) {
731
- const e = J(t, o.__wbindgen_export3, o.__wbindgen_export4), n = x, s = o.ifcapi_parseMeshesWithRtc(this.__wbg_ptr, e, n);
732
- return Wt.__wrap(s);
731
+ const e = Q(t, o.__wbindgen_export3, o.__wbindgen_export4), n = O, s = o.ifcapi_parseMeshesWithRtc(this.__wbg_ptr, e, n);
732
+ return Xt.__wrap(s);
733
733
  }
734
734
  parseStreaming(t, e) {
735
- const n = J(t, o.__wbindgen_export3, o.__wbindgen_export4), s = x, r = o.ifcapi_parseStreaming(this.__wbg_ptr, n, s, B(e));
736
- return D(r);
735
+ const n = Q(t, o.__wbindgen_export3, o.__wbindgen_export4), s = O, r = o.ifcapi_parseStreaming(this.__wbg_ptr, n, s, B(e));
736
+ return G(r);
737
737
  }
738
738
  scanEntitiesFast(t) {
739
- const e = J(t, o.__wbindgen_export3, o.__wbindgen_export4), n = x, s = o.ifcapi_scanEntitiesFast(this.__wbg_ptr, e, n);
740
- return D(s);
739
+ const e = Q(t, o.__wbindgen_export3, o.__wbindgen_export4), n = O, s = o.ifcapi_scanEntitiesFast(this.__wbg_ptr, e, n);
740
+ return G(s);
741
741
  }
742
742
  scanEntitiesFastBytes(t) {
743
- const e = lt(t, o.__wbindgen_export3), n = x, s = o.ifcapi_scanEntitiesFastBytes(this.__wbg_ptr, e, n);
744
- return D(s);
743
+ const e = ft(t, o.__wbindgen_export3), n = O, s = o.ifcapi_scanEntitiesFastBytes(this.__wbg_ptr, e, n);
744
+ return G(s);
745
745
  }
746
746
  scanGeometryEntitiesFast(t) {
747
- const e = J(t, o.__wbindgen_export3, o.__wbindgen_export4), n = x, s = o.ifcapi_scanGeometryEntitiesFast(this.__wbg_ptr, e, n);
748
- return D(s);
747
+ const e = Q(t, o.__wbindgen_export3, o.__wbindgen_export4), n = O, s = o.ifcapi_scanGeometryEntitiesFast(this.__wbg_ptr, e, n);
748
+ return G(s);
749
749
  }
750
750
  scanRelevantEntitiesFastBytes(t) {
751
- const e = lt(t, o.__wbindgen_export3), n = x, s = o.ifcapi_scanRelevantEntitiesFastBytes(this.__wbg_ptr, e, n);
752
- return D(s);
751
+ const e = ft(t, o.__wbindgen_export3), n = O, s = o.ifcapi_scanRelevantEntitiesFastBytes(this.__wbg_ptr, e, n);
752
+ return G(s);
753
753
  }
754
754
  parse(t) {
755
- const e = J(t, o.__wbindgen_export3, o.__wbindgen_export4), n = x, s = o.ifcapi_parse(this.__wbg_ptr, e, n);
756
- return D(s);
755
+ const e = Q(t, o.__wbindgen_export3, o.__wbindgen_export4), n = O, s = o.ifcapi_parse(this.__wbg_ptr, e, n);
756
+ return G(s);
757
757
  }
758
758
  parseSymbolicRepresentations(t) {
759
- const e = J(t, o.__wbindgen_export3, o.__wbindgen_export4), n = x, s = o.ifcapi_parseSymbolicRepresentations(this.__wbg_ptr, e, n);
760
- return qt.__wrap(s);
759
+ const e = Q(t, o.__wbindgen_export3, o.__wbindgen_export4), n = O, s = o.ifcapi_parseSymbolicRepresentations(this.__wbg_ptr, e, n);
760
+ return te.__wrap(s);
761
761
  }
762
762
  };
763
- Symbol.dispose && (Ee.prototype[Symbol.dispose] = Ee.prototype.free);
764
- class kt {
763
+ Symbol.dispose && (we.prototype[Symbol.dispose] = we.prototype.free);
764
+ class Yt {
765
765
  static __wrap(t) {
766
766
  t = t >>> 0;
767
- const e = Object.create(kt.prototype);
767
+ const e = Object.create(Yt.prototype);
768
768
  return e.__wbg_ptr = t, Ue.register(e, e.__wbg_ptr, e), e;
769
769
  }
770
770
  __destroy_into_raw() {
@@ -782,7 +782,7 @@ let __tla = Promise.all([
782
782
  try {
783
783
  const s = o.__wbindgen_add_to_stack_pointer(-16);
784
784
  o.instancedata_color(s, this.__wbg_ptr);
785
- var t = S().getInt32(s + 0, !0), e = S().getInt32(s + 4, !0), n = gt(t, e).slice();
785
+ var t = F().getInt32(s + 0, !0), e = F().getInt32(s + 4, !0), n = It(t, e).slice();
786
786
  return o.__wbindgen_export2(t, e * 4, 4), n;
787
787
  } finally{
788
788
  o.__wbindgen_add_to_stack_pointer(16);
@@ -790,14 +790,14 @@ let __tla = Promise.all([
790
790
  }
791
791
  get transform() {
792
792
  const t = o.instancedata_transform(this.__wbg_ptr);
793
- return D(t);
793
+ return G(t);
794
794
  }
795
795
  }
796
- Symbol.dispose && (kt.prototype[Symbol.dispose] = kt.prototype.free);
797
- class Ft {
796
+ Symbol.dispose && (Yt.prototype[Symbol.dispose] = Yt.prototype.free);
797
+ class At {
798
798
  static __wrap(t) {
799
799
  t = t >>> 0;
800
- const e = Object.create(Ft.prototype);
800
+ const e = Object.create(At.prototype);
801
801
  return e.__wbg_ptr = t, ve.register(e, e.__wbg_ptr, e), e;
802
802
  }
803
803
  __destroy_into_raw() {
@@ -814,29 +814,29 @@ let __tla = Promise.all([
814
814
  }
815
815
  get_instance(t) {
816
816
  const e = o.instancedgeometry_get_instance(this.__wbg_ptr, t);
817
- return e === 0 ? void 0 : kt.__wrap(e);
817
+ return e === 0 ? void 0 : Yt.__wrap(e);
818
818
  }
819
819
  get instance_count() {
820
820
  return o.instancedgeometry_instance_count(this.__wbg_ptr) >>> 0;
821
821
  }
822
822
  get indices() {
823
823
  const t = o.instancedgeometry_indices(this.__wbg_ptr);
824
- return D(t);
824
+ return G(t);
825
825
  }
826
826
  get normals() {
827
827
  const t = o.instancedgeometry_normals(this.__wbg_ptr);
828
- return D(t);
828
+ return G(t);
829
829
  }
830
830
  get positions() {
831
831
  const t = o.instancedgeometry_positions(this.__wbg_ptr);
832
- return D(t);
832
+ return G(t);
833
833
  }
834
834
  }
835
- Symbol.dispose && (Ft.prototype[Symbol.dispose] = Ft.prototype.free);
836
- class Rt {
835
+ Symbol.dispose && (At.prototype[Symbol.dispose] = At.prototype.free);
836
+ class Ot {
837
837
  static __wrap(t) {
838
838
  t = t >>> 0;
839
- const e = Object.create(Rt.prototype);
839
+ const e = Object.create(Ot.prototype);
840
840
  return e.__wbg_ptr = t, De.register(e, e.__wbg_ptr, e), e;
841
841
  }
842
842
  __destroy_into_raw() {
@@ -855,17 +855,17 @@ let __tla = Promise.all([
855
855
  }
856
856
  get(t) {
857
857
  const e = o.instancedmeshcollection_get(this.__wbg_ptr, t);
858
- return e === 0 ? void 0 : Ft.__wrap(e);
858
+ return e === 0 ? void 0 : At.__wrap(e);
859
859
  }
860
860
  get length() {
861
861
  return o.gpuinstancedgeometrycollection_length(this.__wbg_ptr) >>> 0;
862
862
  }
863
863
  }
864
- Symbol.dispose && (Rt.prototype[Symbol.dispose] = Rt.prototype.free);
865
- class _t {
864
+ Symbol.dispose && (Ot.prototype[Symbol.dispose] = Ot.prototype.free);
865
+ class ht {
866
866
  static __wrap(t) {
867
867
  t = t >>> 0;
868
- const e = Object.create(_t.prototype);
868
+ const e = Object.create(ht.prototype);
869
869
  return e.__wbg_ptr = t, Ge.register(e, e.__wbg_ptr, e), e;
870
870
  }
871
871
  __destroy_into_raw() {
@@ -892,7 +892,7 @@ let __tla = Promise.all([
892
892
  try {
893
893
  const c = o.__wbindgen_add_to_stack_pointer(-16);
894
894
  o.meshcollection_localToWorld(c, this.__wbg_ptr, t, e, n);
895
- var s = S().getInt32(c + 0, !0), r = S().getInt32(c + 4, !0), a = Bt(s, r).slice();
895
+ var s = F().getInt32(c + 0, !0), r = F().getInt32(c + 4, !0), a = vt(s, r).slice();
896
896
  return o.__wbindgen_export2(s, r * 8, 8), a;
897
897
  } finally{
898
898
  o.__wbindgen_add_to_stack_pointer(16);
@@ -908,7 +908,7 @@ let __tla = Promise.all([
908
908
  try {
909
909
  const n = o.__wbindgen_add_to_stack_pointer(-16);
910
910
  o.meshcollection_buildingRotation(n, this.__wbg_ptr);
911
- var t = S().getInt32(n + 0, !0), e = S().getFloat64(n + 8, !0);
911
+ var t = F().getInt32(n + 0, !0), e = F().getFloat64(n + 8, !0);
912
912
  return t === 0 ? void 0 : e;
913
913
  } finally{
914
914
  o.__wbindgen_add_to_stack_pointer(16);
@@ -916,17 +916,17 @@ let __tla = Promise.all([
916
916
  }
917
917
  get(t) {
918
918
  const e = o.meshcollection_get(this.__wbg_ptr, t);
919
- return e === 0 ? void 0 : ht.__wrap(e);
919
+ return e === 0 ? void 0 : Et.__wrap(e);
920
920
  }
921
921
  get length() {
922
922
  return o.meshcollection_length(this.__wbg_ptr) >>> 0;
923
923
  }
924
924
  }
925
- Symbol.dispose && (_t.prototype[Symbol.dispose] = _t.prototype.free);
926
- class Wt {
925
+ Symbol.dispose && (ht.prototype[Symbol.dispose] = ht.prototype.free);
926
+ class Xt {
927
927
  static __wrap(t) {
928
928
  t = t >>> 0;
929
- const e = Object.create(Wt.prototype);
929
+ const e = Object.create(Xt.prototype);
930
930
  return e.__wbg_ptr = t, $e.register(e, e.__wbg_ptr, e), e;
931
931
  }
932
932
  __destroy_into_raw() {
@@ -939,25 +939,25 @@ let __tla = Promise.all([
939
939
  }
940
940
  get rtcOffset() {
941
941
  const t = o.meshcollectionwithrtc_rtcOffset(this.__wbg_ptr);
942
- return Xt.__wrap(t);
942
+ return qt.__wrap(t);
943
943
  }
944
944
  get(t) {
945
945
  const e = o.meshcollectionwithrtc_get(this.__wbg_ptr, t);
946
- return e === 0 ? void 0 : ht.__wrap(e);
946
+ return e === 0 ? void 0 : Et.__wrap(e);
947
947
  }
948
948
  get length() {
949
949
  return o.meshcollection_length(this.__wbg_ptr) >>> 0;
950
950
  }
951
951
  get meshes() {
952
952
  const t = o.meshcollectionwithrtc_meshes(this.__wbg_ptr);
953
- return _t.__wrap(t);
953
+ return ht.__wrap(t);
954
954
  }
955
955
  }
956
- Symbol.dispose && (Wt.prototype[Symbol.dispose] = Wt.prototype.free);
957
- class ht {
956
+ Symbol.dispose && (Xt.prototype[Symbol.dispose] = Xt.prototype.free);
957
+ class Et {
958
958
  static __wrap(t) {
959
959
  t = t >>> 0;
960
- const e = Object.create(ht.prototype);
960
+ const e = Object.create(Et.prototype);
961
961
  return e.__wbg_ptr = t, ze.register(e, e.__wbg_ptr, e), e;
962
962
  }
963
963
  __destroy_into_raw() {
@@ -974,6 +974,17 @@ let __tla = Promise.all([
974
974
  get vertexCount() {
975
975
  return o.meshdatajs_vertexCount(this.__wbg_ptr) >>> 0;
976
976
  }
977
+ get shadingColor() {
978
+ try {
979
+ const n = o.__wbindgen_add_to_stack_pointer(-16);
980
+ o.meshdatajs_shadingColor(n, this.__wbg_ptr);
981
+ var t = F().getInt32(n + 0, !0), e = F().getInt32(n + 4, !0);
982
+ let s;
983
+ return t !== 0 && (s = It(t, e).slice(), o.__wbindgen_export2(t, e * 4, 4)), s;
984
+ } finally{
985
+ o.__wbindgen_add_to_stack_pointer(16);
986
+ }
987
+ }
977
988
  get triangleCount() {
978
989
  return o.meshdatajs_triangleCount(this.__wbg_ptr) >>> 0;
979
990
  }
@@ -981,7 +992,7 @@ let __tla = Promise.all([
981
992
  try {
982
993
  const s = o.__wbindgen_add_to_stack_pointer(-16);
983
994
  o.meshdatajs_color(s, this.__wbg_ptr);
984
- var t = S().getInt32(s + 0, !0), e = S().getInt32(s + 4, !0), n = gt(t, e).slice();
995
+ var t = F().getInt32(s + 0, !0), e = F().getInt32(s + 4, !0), n = It(t, e).slice();
985
996
  return o.__wbindgen_export2(t, e * 4, 4), n;
986
997
  } finally{
987
998
  o.__wbindgen_add_to_stack_pointer(16);
@@ -989,33 +1000,33 @@ let __tla = Promise.all([
989
1000
  }
990
1001
  get indices() {
991
1002
  const t = o.meshdatajs_indices(this.__wbg_ptr);
992
- return D(t);
1003
+ return G(t);
993
1004
  }
994
1005
  get normals() {
995
1006
  const t = o.meshdatajs_normals(this.__wbg_ptr);
996
- return D(t);
1007
+ return G(t);
997
1008
  }
998
1009
  get ifcType() {
999
1010
  let t, e;
1000
1011
  try {
1001
1012
  const r = o.__wbindgen_add_to_stack_pointer(-16);
1002
1013
  o.meshdatajs_ifcType(r, this.__wbg_ptr);
1003
- var n = S().getInt32(r + 0, !0), s = S().getInt32(r + 4, !0);
1004
- return t = n, e = s, tt(n, s);
1014
+ var n = F().getInt32(r + 0, !0), s = F().getInt32(r + 4, !0);
1015
+ return t = n, e = s, et(n, s);
1005
1016
  } finally{
1006
1017
  o.__wbindgen_add_to_stack_pointer(16), o.__wbindgen_export2(t, e, 1);
1007
1018
  }
1008
1019
  }
1009
1020
  get positions() {
1010
1021
  const t = o.meshdatajs_positions(this.__wbg_ptr);
1011
- return D(t);
1022
+ return G(t);
1012
1023
  }
1013
1024
  }
1014
- Symbol.dispose && (ht.prototype[Symbol.dispose] = ht.prototype.free);
1015
- class Yt {
1025
+ Symbol.dispose && (Et.prototype[Symbol.dispose] = Et.prototype.free);
1026
+ class Jt {
1016
1027
  static __wrap(t) {
1017
1028
  t = t >>> 0;
1018
- const e = Object.create(Yt.prototype);
1029
+ const e = Object.create(Jt.prototype);
1019
1030
  return e.__wbg_ptr = t, Ve.register(e, e.__wbg_ptr, e), e;
1020
1031
  }
1021
1032
  __destroy_into_raw() {
@@ -1028,17 +1039,17 @@ let __tla = Promise.all([
1028
1039
  }
1029
1040
  get(t) {
1030
1041
  const e = o.profilecollection_get(this.__wbg_ptr, t);
1031
- return e === 0 ? void 0 : Ht.__wrap(e);
1042
+ return e === 0 ? void 0 : Qt.__wrap(e);
1032
1043
  }
1033
1044
  get length() {
1034
1045
  return o.profilecollection_length(this.__wbg_ptr) >>> 0;
1035
1046
  }
1036
1047
  }
1037
- Symbol.dispose && (Yt.prototype[Symbol.dispose] = Yt.prototype.free);
1038
- class Ht {
1048
+ Symbol.dispose && (Jt.prototype[Symbol.dispose] = Jt.prototype.free);
1049
+ class Qt {
1039
1050
  static __wrap(t) {
1040
1051
  t = t >>> 0;
1041
- const e = Object.create(Ht.prototype);
1052
+ const e = Object.create(Qt.prototype);
1042
1053
  return e.__wbg_ptr = t, je.register(e, e.__wbg_ptr, e), e;
1043
1054
  }
1044
1055
  __destroy_into_raw() {
@@ -1050,26 +1061,26 @@ let __tla = Promise.all([
1050
1061
  o.__wbg_profileentryjs_free(t, 0);
1051
1062
  }
1052
1063
  get expressId() {
1053
- return o.meshdatajs_expressId(this.__wbg_ptr) >>> 0;
1064
+ return o.profileentryjs_expressId(this.__wbg_ptr) >>> 0;
1054
1065
  }
1055
1066
  get holeCounts() {
1056
1067
  const t = o.profileentryjs_holeCounts(this.__wbg_ptr);
1057
- return D(t);
1068
+ return G(t);
1058
1069
  }
1059
1070
  get holePoints() {
1060
1071
  const t = o.profileentryjs_holePoints(this.__wbg_ptr);
1061
- return D(t);
1072
+ return G(t);
1062
1073
  }
1063
1074
  get modelIndex() {
1064
1075
  return o.profileentryjs_modelIndex(this.__wbg_ptr) >>> 0;
1065
1076
  }
1066
1077
  get outerPoints() {
1067
1078
  const t = o.profileentryjs_outerPoints(this.__wbg_ptr);
1068
- return D(t);
1079
+ return G(t);
1069
1080
  }
1070
1081
  get extrusionDir() {
1071
1082
  const t = o.profileentryjs_extrusionDir(this.__wbg_ptr);
1072
- return D(t);
1083
+ return G(t);
1073
1084
  }
1074
1085
  get extrusionDepth() {
1075
1086
  return o.profileentryjs_extrusionDepth(this.__wbg_ptr);
@@ -1079,22 +1090,22 @@ let __tla = Promise.all([
1079
1090
  try {
1080
1091
  const r = o.__wbindgen_add_to_stack_pointer(-16);
1081
1092
  o.profileentryjs_ifcType(r, this.__wbg_ptr);
1082
- var n = S().getInt32(r + 0, !0), s = S().getInt32(r + 4, !0);
1083
- return t = n, e = s, tt(n, s);
1093
+ var n = F().getInt32(r + 0, !0), s = F().getInt32(r + 4, !0);
1094
+ return t = n, e = s, et(n, s);
1084
1095
  } finally{
1085
1096
  o.__wbindgen_add_to_stack_pointer(16), o.__wbindgen_export2(t, e, 1);
1086
1097
  }
1087
1098
  }
1088
1099
  get transform() {
1089
1100
  const t = o.profileentryjs_transform(this.__wbg_ptr);
1090
- return D(t);
1101
+ return G(t);
1091
1102
  }
1092
1103
  }
1093
- Symbol.dispose && (Ht.prototype[Symbol.dispose] = Ht.prototype.free);
1094
- class Xt {
1104
+ Symbol.dispose && (Qt.prototype[Symbol.dispose] = Qt.prototype.free);
1105
+ class qt {
1095
1106
  static __wrap(t) {
1096
1107
  t = t >>> 0;
1097
- const e = Object.create(Xt.prototype);
1108
+ const e = Object.create(qt.prototype);
1098
1109
  return e.__wbg_ptr = t, ke.register(e, e.__wbg_ptr, e), e;
1099
1110
  }
1100
1111
  __destroy_into_raw() {
@@ -1112,7 +1123,7 @@ let __tla = Promise.all([
1112
1123
  try {
1113
1124
  const c = o.__wbindgen_add_to_stack_pointer(-16);
1114
1125
  o.rtcoffsetjs_toWorld(c, this.__wbg_ptr, t, e, n);
1115
- var s = S().getInt32(c + 0, !0), r = S().getInt32(c + 4, !0), a = Bt(s, r).slice();
1126
+ var s = F().getInt32(c + 0, !0), r = F().getInt32(c + 4, !0), a = vt(s, r).slice();
1116
1127
  return o.__wbindgen_export2(s, r * 8, 8), a;
1117
1128
  } finally{
1118
1129
  o.__wbindgen_add_to_stack_pointer(16);
@@ -1137,11 +1148,11 @@ let __tla = Promise.all([
1137
1148
  o.__wbg_set_georeferencejs_orthogonal_height(this.__wbg_ptr, t);
1138
1149
  }
1139
1150
  }
1140
- Symbol.dispose && (Xt.prototype[Symbol.dispose] = Xt.prototype.free);
1141
- class Jt {
1151
+ Symbol.dispose && (qt.prototype[Symbol.dispose] = qt.prototype.free);
1152
+ class Kt {
1142
1153
  static __wrap(t) {
1143
1154
  t = t >>> 0;
1144
- const e = Object.create(Jt.prototype);
1155
+ const e = Object.create(Kt.prototype);
1145
1156
  return e.__wbg_ptr = t, We.register(e, e.__wbg_ptr, e), e;
1146
1157
  }
1147
1158
  __destroy_into_raw() {
@@ -1166,8 +1177,8 @@ let __tla = Promise.all([
1166
1177
  try {
1167
1178
  const r = o.__wbindgen_add_to_stack_pointer(-16);
1168
1179
  o.symboliccircle_repIdentifier(r, this.__wbg_ptr);
1169
- var n = S().getInt32(r + 0, !0), s = S().getInt32(r + 4, !0);
1170
- return t = n, e = s, tt(n, s);
1180
+ var n = F().getInt32(r + 0, !0), s = F().getInt32(r + 4, !0);
1181
+ return t = n, e = s, et(n, s);
1171
1182
  } finally{
1172
1183
  o.__wbindgen_add_to_stack_pointer(16), o.__wbindgen_export2(t, e, 1);
1173
1184
  }
@@ -1186,8 +1197,8 @@ let __tla = Promise.all([
1186
1197
  try {
1187
1198
  const r = o.__wbindgen_add_to_stack_pointer(-16);
1188
1199
  o.symboliccircle_ifcType(r, this.__wbg_ptr);
1189
- var n = S().getInt32(r + 0, !0), s = S().getInt32(r + 4, !0);
1190
- return t = n, e = s, tt(n, s);
1200
+ var n = F().getInt32(r + 0, !0), s = F().getInt32(r + 4, !0);
1201
+ return t = n, e = s, et(n, s);
1191
1202
  } finally{
1192
1203
  o.__wbindgen_add_to_stack_pointer(16), o.__wbindgen_export2(t, e, 1);
1193
1204
  }
@@ -1196,16 +1207,16 @@ let __tla = Promise.all([
1196
1207
  return o.symboliccircle_endAngle(this.__wbg_ptr);
1197
1208
  }
1198
1209
  }
1199
- Symbol.dispose && (Jt.prototype[Symbol.dispose] = Jt.prototype.free);
1200
- class Qt {
1210
+ Symbol.dispose && (Kt.prototype[Symbol.dispose] = Kt.prototype.free);
1211
+ class Zt {
1201
1212
  static __wrap(t) {
1202
1213
  t = t >>> 0;
1203
- const e = Object.create(Qt.prototype);
1204
- return e.__wbg_ptr = t, Ye.register(e, e.__wbg_ptr, e), e;
1214
+ const e = Object.create(Zt.prototype);
1215
+ return e.__wbg_ptr = t, He.register(e, e.__wbg_ptr, e), e;
1205
1216
  }
1206
1217
  __destroy_into_raw() {
1207
1218
  const t = this.__wbg_ptr;
1208
- return this.__wbg_ptr = 0, Ye.unregister(this), t;
1219
+ return this.__wbg_ptr = 0, He.unregister(this), t;
1209
1220
  }
1210
1221
  free() {
1211
1222
  const t = this.__destroy_into_raw();
@@ -1222,23 +1233,23 @@ let __tla = Promise.all([
1222
1233
  try {
1223
1234
  const r = o.__wbindgen_add_to_stack_pointer(-16);
1224
1235
  o.symbolicpolyline_repIdentifier(r, this.__wbg_ptr);
1225
- var n = S().getInt32(r + 0, !0), s = S().getInt32(r + 4, !0);
1226
- return t = n, e = s, tt(n, s);
1236
+ var n = F().getInt32(r + 0, !0), s = F().getInt32(r + 4, !0);
1237
+ return t = n, e = s, et(n, s);
1227
1238
  } finally{
1228
1239
  o.__wbindgen_add_to_stack_pointer(16), o.__wbindgen_export2(t, e, 1);
1229
1240
  }
1230
1241
  }
1231
1242
  get points() {
1232
1243
  const t = o.symbolicpolyline_points(this.__wbg_ptr);
1233
- return D(t);
1244
+ return G(t);
1234
1245
  }
1235
1246
  get ifcType() {
1236
1247
  let t, e;
1237
1248
  try {
1238
1249
  const r = o.__wbindgen_add_to_stack_pointer(-16);
1239
1250
  o.symbolicpolyline_ifcType(r, this.__wbg_ptr);
1240
- var n = S().getInt32(r + 0, !0), s = S().getInt32(r + 4, !0);
1241
- return t = n, e = s, tt(n, s);
1251
+ var n = F().getInt32(r + 0, !0), s = F().getInt32(r + 4, !0);
1252
+ return t = n, e = s, et(n, s);
1242
1253
  } finally{
1243
1254
  o.__wbindgen_add_to_stack_pointer(16), o.__wbindgen_export2(t, e, 1);
1244
1255
  }
@@ -1247,16 +1258,16 @@ let __tla = Promise.all([
1247
1258
  return o.symbolicpolyline_isClosed(this.__wbg_ptr) !== 0;
1248
1259
  }
1249
1260
  }
1250
- Symbol.dispose && (Qt.prototype[Symbol.dispose] = Qt.prototype.free);
1251
- class qt {
1261
+ Symbol.dispose && (Zt.prototype[Symbol.dispose] = Zt.prototype.free);
1262
+ class te {
1252
1263
  static __wrap(t) {
1253
1264
  t = t >>> 0;
1254
- const e = Object.create(qt.prototype);
1255
- return e.__wbg_ptr = t, He.register(e, e.__wbg_ptr, e), e;
1265
+ const e = Object.create(te.prototype);
1266
+ return e.__wbg_ptr = t, Ye.register(e, e.__wbg_ptr, e), e;
1256
1267
  }
1257
1268
  __destroy_into_raw() {
1258
1269
  const t = this.__wbg_ptr;
1259
- return this.__wbg_ptr = 0, He.unregister(this), t;
1270
+ return this.__wbg_ptr = 0, Ye.unregister(this), t;
1260
1271
  }
1261
1272
  free() {
1262
1273
  const t = this.__destroy_into_raw();
@@ -1264,7 +1275,7 @@ let __tla = Promise.all([
1264
1275
  }
1265
1276
  getCircle(t) {
1266
1277
  const e = o.symbolicrepresentationcollection_getCircle(this.__wbg_ptr, t);
1267
- return e === 0 ? void 0 : Jt.__wrap(e);
1278
+ return e === 0 ? void 0 : Kt.__wrap(e);
1268
1279
  }
1269
1280
  get totalCount() {
1270
1281
  return o.symbolicrepresentationcollection_totalCount(this.__wbg_ptr) >>> 0;
@@ -1274,7 +1285,7 @@ let __tla = Promise.all([
1274
1285
  }
1275
1286
  getPolyline(t) {
1276
1287
  const e = o.symbolicrepresentationcollection_getPolyline(this.__wbg_ptr, t);
1277
- return e === 0 ? void 0 : Qt.__wrap(e);
1288
+ return e === 0 ? void 0 : Zt.__wrap(e);
1278
1289
  }
1279
1290
  get polylineCount() {
1280
1291
  return o.symbolicrepresentationcollection_polylineCount(this.__wbg_ptr) >>> 0;
@@ -1283,7 +1294,7 @@ let __tla = Promise.all([
1283
1294
  try {
1284
1295
  const s = o.__wbindgen_add_to_stack_pointer(-16);
1285
1296
  o.symbolicrepresentationcollection_getExpressIds(s, this.__wbg_ptr);
1286
- var t = S().getInt32(s + 0, !0), e = S().getInt32(s + 4, !0), n = cn(t, e).slice();
1297
+ var t = F().getInt32(s + 0, !0), e = F().getInt32(s + 4, !0), n = cn(t, e).slice();
1287
1298
  return o.__wbindgen_export2(t, e * 4, 4), n;
1288
1299
  } finally{
1289
1300
  o.__wbindgen_add_to_stack_pointer(16);
@@ -1293,16 +1304,16 @@ let __tla = Promise.all([
1293
1304
  return o.symbolicrepresentationcollection_isEmpty(this.__wbg_ptr) !== 0;
1294
1305
  }
1295
1306
  }
1296
- Symbol.dispose && (qt.prototype[Symbol.dispose] = qt.prototype.free);
1297
- class Kt {
1307
+ Symbol.dispose && (te.prototype[Symbol.dispose] = te.prototype.free);
1308
+ class ee {
1298
1309
  static __wrap(t) {
1299
1310
  t = t >>> 0;
1300
- const e = Object.create(Kt.prototype);
1301
- return e.__wbg_ptr = t, fe.register(e, e.__wbg_ptr, e), e;
1311
+ const e = Object.create(ee.prototype);
1312
+ return e.__wbg_ptr = t, ue.register(e, e.__wbg_ptr, e), e;
1302
1313
  }
1303
1314
  __destroy_into_raw() {
1304
1315
  const t = this.__wbg_ptr;
1305
- return this.__wbg_ptr = 0, fe.unregister(this), t;
1316
+ return this.__wbg_ptr = 0, ue.unregister(this), t;
1306
1317
  }
1307
1318
  free() {
1308
1319
  const t = this.__destroy_into_raw();
@@ -1312,7 +1323,7 @@ let __tla = Promise.all([
1312
1323
  try {
1313
1324
  const s = o.__wbindgen_add_to_stack_pointer(-16);
1314
1325
  o.zerocopymesh_bounds_max(s, this.__wbg_ptr);
1315
- var t = S().getInt32(s + 0, !0), e = S().getInt32(s + 4, !0), n = gt(t, e).slice();
1326
+ var t = F().getInt32(s + 0, !0), e = F().getInt32(s + 4, !0), n = It(t, e).slice();
1316
1327
  return o.__wbindgen_export2(t, e * 4, 4), n;
1317
1328
  } finally{
1318
1329
  o.__wbindgen_add_to_stack_pointer(16);
@@ -1322,7 +1333,7 @@ let __tla = Promise.all([
1322
1333
  try {
1323
1334
  const s = o.__wbindgen_add_to_stack_pointer(-16);
1324
1335
  o.zerocopymesh_bounds_min(s, this.__wbg_ptr);
1325
- var t = S().getInt32(s + 0, !0), e = S().getInt32(s + 4, !0), n = gt(t, e).slice();
1336
+ var t = F().getInt32(s + 0, !0), e = F().getInt32(s + 4, !0), n = It(t, e).slice();
1326
1337
  return o.__wbindgen_export2(t, e * 4, 4), n;
1327
1338
  } finally{
1328
1339
  o.__wbindgen_add_to_stack_pointer(16);
@@ -1354,13 +1365,13 @@ let __tla = Promise.all([
1354
1365
  }
1355
1366
  constructor(){
1356
1367
  const t = o.zerocopymesh_new();
1357
- return this.__wbg_ptr = t >>> 0, fe.register(this, this.__wbg_ptr, this), this;
1368
+ return this.__wbg_ptr = t >>> 0, ue.register(this, this.__wbg_ptr, this), this;
1358
1369
  }
1359
1370
  get is_empty() {
1360
1371
  return o.zerocopymesh_is_empty(this.__wbg_ptr) !== 0;
1361
1372
  }
1362
1373
  }
1363
- Symbol.dispose && (Kt.prototype[Symbol.dispose] = Kt.prototype.free);
1374
+ Symbol.dispose && (ee.prototype[Symbol.dispose] = ee.prototype.free);
1364
1375
  const xn = new Set([
1365
1376
  "basic",
1366
1377
  "cors",
@@ -1387,7 +1398,7 @@ let __tla = Promise.all([
1387
1398
  function Ln() {
1388
1399
  const i = {};
1389
1400
  return i.wbg = {}, i.wbg.__wbg_Error_52673b7de5a0ca89 = function(t, e) {
1390
- const n = Error(tt(t, e));
1401
+ const n = Error(et(t, e));
1391
1402
  return B(n);
1392
1403
  }, i.wbg.__wbg___wbindgen_is_function_8d400b8b1af978cd = function(t) {
1393
1404
  return typeof L(t) == "function";
@@ -1398,23 +1409,23 @@ let __tla = Promise.all([
1398
1409
  return B(t);
1399
1410
  }, i.wbg.__wbg___wbindgen_number_get_9619185a74197f95 = function(t, e) {
1400
1411
  const n = L(e), s = typeof n == "number" ? n : void 0;
1401
- S().setFloat64(t + 8, wt(s) ? 0 : s, !0), S().setInt32(t + 0, !wt(s), !0);
1412
+ F().setFloat64(t + 8, Rt(s) ? 0 : s, !0), F().setInt32(t + 0, !Rt(s), !0);
1402
1413
  }, i.wbg.__wbg___wbindgen_throw_dd24417ed36fc46e = function(t, e) {
1403
- throw new Error(tt(t, e));
1414
+ throw new Error(et(t, e));
1404
1415
  }, i.wbg.__wbg__wbg_cb_unref_87dfb5aaa0cbcea7 = function(t) {
1405
1416
  L(t)._wbg_cb_unref();
1406
1417
  }, i.wbg.__wbg_call_3020136f7a2d6e44 = function() {
1407
- return Nt(function(t, e, n) {
1418
+ return xt(function(t, e, n) {
1408
1419
  const s = L(t).call(L(e), L(n));
1409
1420
  return B(s);
1410
1421
  }, arguments);
1411
1422
  }, i.wbg.__wbg_call_abb4ff46ce38be40 = function() {
1412
- return Nt(function(t, e) {
1423
+ return xt(function(t, e) {
1413
1424
  const n = L(t).call(L(e));
1414
1425
  return B(n);
1415
1426
  }, arguments);
1416
1427
  }, i.wbg.__wbg_call_c8baa5c5e72d274e = function() {
1417
- return Nt(function(t, e, n, s) {
1428
+ return xt(function(t, e, n, s) {
1418
1429
  const r = L(t).call(L(e), L(n), L(s));
1419
1430
  return B(r);
1420
1431
  }, arguments);
@@ -1423,29 +1434,29 @@ let __tla = Promise.all([
1423
1434
  }, i.wbg.__wbg_error_7534b8e9a36f1ab4 = function(t, e) {
1424
1435
  let n, s;
1425
1436
  try {
1426
- n = t, s = e, console.error(tt(t, e));
1437
+ n = t, s = e, console.error(et(t, e));
1427
1438
  } finally{
1428
1439
  o.__wbindgen_export2(n, s, 1);
1429
1440
  }
1430
1441
  }, i.wbg.__wbg_get_af9dab7e9603ea93 = function() {
1431
- return Nt(function(t, e) {
1442
+ return xt(function(t, e) {
1432
1443
  const n = Reflect.get(L(t), L(e));
1433
1444
  return B(n);
1434
1445
  }, arguments);
1435
1446
  }, i.wbg.__wbg_gpugeometry_new = function(t) {
1436
- const e = Tt.__wrap(t);
1447
+ const e = Nt.__wrap(t);
1437
1448
  return B(e);
1438
1449
  }, i.wbg.__wbg_info_ce6bcc489c22f6f0 = function(t) {
1439
1450
  console.info(L(t));
1440
1451
  }, i.wbg.__wbg_instancedgeometry_new = function(t) {
1441
- const e = Ft.__wrap(t);
1452
+ const e = At.__wrap(t);
1442
1453
  return B(e);
1443
1454
  }, i.wbg.__wbg_length_86ce4877baf913bb = function(t) {
1444
1455
  return L(t).length;
1445
1456
  }, i.wbg.__wbg_length_d45040a40c570362 = function(t) {
1446
1457
  return L(t).length;
1447
1458
  }, i.wbg.__wbg_meshdatajs_new = function(t) {
1448
- const e = ht.__wrap(t);
1459
+ const e = Et.__wrap(t);
1449
1460
  return B(e);
1450
1461
  }, i.wbg.__wbg_new_1ba21ce319a06297 = function() {
1451
1462
  const t = new Object;
@@ -1476,13 +1487,13 @@ let __tla = Promise.all([
1476
1487
  n.a = n.b = 0;
1477
1488
  }
1478
1489
  }, i.wbg.__wbg_new_from_slice_41e2764a343e3cb1 = function(t, e) {
1479
- const n = new Float32Array(gt(t, e));
1490
+ const n = new Float32Array(It(t, e));
1480
1491
  return B(n);
1481
1492
  }, i.wbg.__wbg_new_from_slice_db0691b69e9d3891 = function(t, e) {
1482
1493
  const n = new Uint32Array(cn(t, e));
1483
1494
  return B(n);
1484
1495
  }, i.wbg.__wbg_new_no_args_cb138f77cf6151ee = function(t, e) {
1485
- const n = new Function(tt(t, e));
1496
+ const n = new Function(et(t, e));
1486
1497
  return B(n);
1487
1498
  }, i.wbg.__wbg_new_with_length_202b3db94ba5fc86 = function(t) {
1488
1499
  const e = new Uint32Array(t >>> 0);
@@ -1494,7 +1505,7 @@ let __tla = Promise.all([
1494
1505
  const e = new Uint8Array(t >>> 0);
1495
1506
  return B(e);
1496
1507
  }, i.wbg.__wbg_prototypesetcall_96cc7097487b926d = function(t, e, n) {
1497
- Float32Array.prototype.set.call(gt(t, e), L(n));
1508
+ Float32Array.prototype.set.call(It(t, e), L(n));
1498
1509
  }, i.wbg.__wbg_push_7d9be8f38fc13975 = function(t, e) {
1499
1510
  return L(t).push(L(e));
1500
1511
  }, i.wbg.__wbg_queueMicrotask_9b549dfce8865860 = function(t) {
@@ -1506,13 +1517,13 @@ let __tla = Promise.all([
1506
1517
  const e = Promise.resolve(L(t));
1507
1518
  return B(e);
1508
1519
  }, i.wbg.__wbg_set_3f1d0b984ed272ed = function(t, e, n) {
1509
- L(t)[D(e)] = D(n);
1520
+ L(t)[G(e)] = G(n);
1510
1521
  }, i.wbg.__wbg_set_781438a03c0c3c81 = function() {
1511
- return Nt(function(t, e, n) {
1522
+ return xt(function(t, e, n) {
1512
1523
  return Reflect.set(L(t), L(e), L(n));
1513
1524
  }, arguments);
1514
1525
  }, i.wbg.__wbg_set_7df433eea03a5c14 = function(t, e, n) {
1515
- L(t)[e >>> 0] = D(n);
1526
+ L(t)[e >>> 0] = G(n);
1516
1527
  }, i.wbg.__wbg_set_index_021489b2916af13e = function(t, e, n) {
1517
1528
  L(t)[e >>> 0] = n;
1518
1529
  }, i.wbg.__wbg_set_index_04c4b93e64d08a52 = function(t, e, n) {
@@ -1520,33 +1531,33 @@ let __tla = Promise.all([
1520
1531
  }, i.wbg.__wbg_set_index_42abe35f117e614e = function(t, e, n) {
1521
1532
  L(t)[e >>> 0] = n >>> 0;
1522
1533
  }, i.wbg.__wbg_stack_0ed75d68575b0f3c = function(t, e) {
1523
- const n = L(e).stack, s = J(n, o.__wbindgen_export3, o.__wbindgen_export4), r = x;
1524
- S().setInt32(t + 4, r, !0), S().setInt32(t + 0, s, !0);
1534
+ const n = L(e).stack, s = Q(n, o.__wbindgen_export3, o.__wbindgen_export4), r = O;
1535
+ F().setInt32(t + 4, r, !0), F().setInt32(t + 0, s, !0);
1525
1536
  }, i.wbg.__wbg_static_accessor_GLOBAL_769e6b65d6557335 = function() {
1526
1537
  const t = typeof global > "u" ? null : global;
1527
- return wt(t) ? 0 : B(t);
1538
+ return Rt(t) ? 0 : B(t);
1528
1539
  }, i.wbg.__wbg_static_accessor_GLOBAL_THIS_60cf02db4de8e1c1 = function() {
1529
1540
  const t = typeof globalThis > "u" ? null : globalThis;
1530
- return wt(t) ? 0 : B(t);
1541
+ return Rt(t) ? 0 : B(t);
1531
1542
  }, i.wbg.__wbg_static_accessor_SELF_08f5a74c69739274 = function() {
1532
1543
  const t = typeof self > "u" ? null : self;
1533
- return wt(t) ? 0 : B(t);
1544
+ return Rt(t) ? 0 : B(t);
1534
1545
  }, i.wbg.__wbg_static_accessor_WINDOW_a8924b26aa92d024 = function() {
1535
1546
  const t = typeof window > "u" ? null : window;
1536
- return wt(t) ? 0 : B(t);
1547
+ return Rt(t) ? 0 : B(t);
1537
1548
  }, i.wbg.__wbg_then_4f95312d68691235 = function(t, e) {
1538
1549
  const n = L(t).then(L(e));
1539
1550
  return B(n);
1540
1551
  }, i.wbg.__wbg_warn_6e567d0d926ff881 = function(t) {
1541
1552
  console.warn(L(t));
1542
1553
  }, i.wbg.__wbindgen_cast_2241b6af4c4b2941 = function(t, e) {
1543
- const n = tt(t, e);
1554
+ const n = et(t, e);
1544
1555
  return B(n);
1545
1556
  }, i.wbg.__wbindgen_cast_4625c577ab2ec9ee = function(t) {
1546
1557
  const e = BigInt.asUintN(64, t);
1547
1558
  return B(e);
1548
1559
  }, i.wbg.__wbindgen_cast_73cbb7b49382c492 = function(t, e) {
1549
- const n = Rn(t, e, o.__wasm_bindgen_func_elem_1479, An);
1560
+ const n = Rn(t, e, o.__wasm_bindgen_func_elem_1483, An);
1550
1561
  return B(n);
1551
1562
  }, i.wbg.__wbindgen_cast_d6cd19b81560fd6e = function(t) {
1552
1563
  return B(t);
@@ -1554,22 +1565,22 @@ let __tla = Promise.all([
1554
1565
  const e = L(t);
1555
1566
  return B(e);
1556
1567
  }, i.wbg.__wbindgen_object_drop_ref = function(t) {
1557
- D(t);
1568
+ G(t);
1558
1569
  }, i;
1559
1570
  }
1560
1571
  function Bn(i, t) {
1561
- return o = i.exports, dn.__wbindgen_wasm_module = t, pt = null, Ot = null, xt = null, Mt = null, Lt = null, o.__wbindgen_start(), o;
1572
+ return o = i.exports, dn.__wbindgen_wasm_module = t, bt = null, Lt = null, Bt = null, Pt = null, Ut = null, o.__wbindgen_start(), o;
1562
1573
  }
1563
1574
  dn = async function(i) {
1564
1575
  if (o !== void 0) return o;
1565
- typeof i < "u" && (Object.getPrototypeOf(i) === Object.prototype ? { module_or_path: i } = i : console.warn("using deprecated parameters for the initialization function; pass a single object instead")), typeof i > "u" && (i = new URL("/assets/ifc-lite_bg-B_eUD1Wy.wasm", import.meta.url));
1576
+ typeof i < "u" && (Object.getPrototypeOf(i) === Object.prototype ? { module_or_path: i } = i : console.warn("using deprecated parameters for the initialization function; pass a single object instead")), typeof i > "u" && (i = new URL("/assets/ifc-lite_bg-DyHX37GQ.wasm", import.meta.url));
1566
1577
  const t = Ln();
1567
1578
  (typeof i == "string" || typeof Request == "function" && i instanceof Request || typeof URL == "function" && i instanceof URL) && (i = fetch(i));
1568
1579
  const { instance: e, module: n } = await Mn(await i, t);
1569
1580
  return Bn(e, n);
1570
1581
  };
1571
- const q = on("Geometry"), Pn = "IFC-Lite WASM cannot recover from a fatal runtime error within the same document lifetime. Reload the page or recreate the worker process before calling init() again.";
1572
- let ue = null;
1582
+ const K = on("Geometry"), Pn = "IFC-Lite WASM cannot recover from a fatal runtime error within the same document lifetime. Reload the page or recreate the worker process before calling init() again.";
1583
+ let pe = null;
1573
1584
  Un = class {
1574
1585
  ifcApi = null;
1575
1586
  initialized = !1;
@@ -1578,15 +1589,15 @@ let __tla = Promise.all([
1578
1589
  return t instanceof WebAssembly.RuntimeError;
1579
1590
  }
1580
1591
  markFatalWasmRuntimeError() {
1581
- ue = new Error(Pn), this.reset();
1592
+ pe = new Error(Pn), this.reset();
1582
1593
  }
1583
1594
  async init() {
1584
1595
  if (!this.initialized) {
1585
- if (ue) throw ue;
1596
+ if (pe) throw pe;
1586
1597
  try {
1587
- await dn(), q.warn("Geometry processing: single-threaded mode (thread pool disabled for Vite compatibility)"), this.ifcApi = new Ee, this.applyMergeLayers(), this.initialized = !0, q.info("WASM geometry engine initialized");
1598
+ await dn(), K.warn("Geometry processing: single-threaded mode (thread pool disabled for Vite compatibility)"), this.ifcApi = new we, this.applyMergeLayers(), this.initialized = !0, K.info("WASM geometry engine initialized");
1588
1599
  } catch (t) {
1589
- throw q.error("Failed to initialize WASM geometry engine", t, {
1600
+ throw K.error("Failed to initialize WASM geometry engine", t, {
1590
1601
  operation: "init"
1591
1602
  }), this.isWasmRuntimeError(t) ? this.markFatalWasmRuntimeError() : this.reset(), t;
1592
1603
  }
@@ -1599,11 +1610,11 @@ let __tla = Promise.all([
1599
1610
  if (!this.ifcApi) throw new Error("IFC-Lite not initialized. Call init() first.");
1600
1611
  try {
1601
1612
  const e = this.ifcApi.parseMeshes(t);
1602
- return q.debug(`Parsed ${e.length} meshes`, {
1613
+ return K.debug(`Parsed ${e.length} meshes`, {
1603
1614
  operation: "parseMeshes"
1604
1615
  }), e;
1605
1616
  } catch (e) {
1606
- throw q.error("Failed to parse IFC geometry", e, {
1617
+ throw K.error("Failed to parse IFC geometry", e, {
1607
1618
  operation: "parseMeshes",
1608
1619
  data: {
1609
1620
  contentLength: t.length
@@ -1615,11 +1626,11 @@ let __tla = Promise.all([
1615
1626
  if (!this.ifcApi) throw new Error("IFC-Lite not initialized. Call init() first.");
1616
1627
  try {
1617
1628
  const e = this.ifcApi.parseMeshesInstanced(t);
1618
- return q.debug(`Parsed ${e.length} instanced geometries`, {
1629
+ return K.debug(`Parsed ${e.length} instanced geometries`, {
1619
1630
  operation: "parseMeshesInstanced"
1620
1631
  }), e;
1621
1632
  } catch (e) {
1622
- throw q.error("Failed to parse instanced IFC geometry", e, {
1633
+ throw K.error("Failed to parse instanced IFC geometry", e, {
1623
1634
  operation: "parseMeshesInstanced",
1624
1635
  data: {
1625
1636
  contentLength: t.length
@@ -1632,7 +1643,7 @@ let __tla = Promise.all([
1632
1643
  try {
1633
1644
  return await this.ifcApi.parseMeshesAsync(t, e);
1634
1645
  } catch (n) {
1635
- throw q.error("Failed to parse IFC geometry (streaming)", n, {
1646
+ throw K.error("Failed to parse IFC geometry (streaming)", n, {
1636
1647
  operation: "parseMeshesAsync",
1637
1648
  data: {
1638
1649
  contentLength: t.length
@@ -1645,7 +1656,7 @@ let __tla = Promise.all([
1645
1656
  try {
1646
1657
  return await this.ifcApi.parseMeshesInstancedAsync(t, e);
1647
1658
  } catch (n) {
1648
- throw q.error("Failed to parse instanced IFC geometry (streaming)", n, {
1659
+ throw K.error("Failed to parse instanced IFC geometry (streaming)", n, {
1649
1660
  operation: "parseMeshesInstancedAsync",
1650
1661
  data: {
1651
1662
  contentLength: t.length
@@ -1657,11 +1668,11 @@ let __tla = Promise.all([
1657
1668
  if (!this.ifcApi) throw new Error("IFC-Lite not initialized. Call init() first.");
1658
1669
  try {
1659
1670
  const e = this.ifcApi.parseSymbolicRepresentations(t);
1660
- return q.debug(`Parsed ${e.totalCount} symbolic items (${e.polylineCount} polylines, ${e.circleCount} circles)`, {
1671
+ return K.debug(`Parsed ${e.totalCount} symbolic items (${e.polylineCount} polylines, ${e.circleCount} circles)`, {
1661
1672
  operation: "parseSymbolicRepresentations"
1662
1673
  }), e;
1663
1674
  } catch (e) {
1664
- throw q.error("Failed to parse symbolic representations", e, {
1675
+ throw K.error("Failed to parse symbolic representations", e, {
1665
1676
  operation: "parseSymbolicRepresentations",
1666
1677
  data: {
1667
1678
  contentLength: t.length
@@ -1673,11 +1684,11 @@ let __tla = Promise.all([
1673
1684
  if (!this.ifcApi) throw new Error("IFC-Lite not initialized. Call init() first.");
1674
1685
  try {
1675
1686
  const n = this.ifcApi.extractProfiles(t, e);
1676
- return q.debug(`Extracted ${n.length} profiles`, {
1687
+ return K.debug(`Extracted ${n.length} profiles`, {
1677
1688
  operation: "extractProfiles"
1678
1689
  }), n;
1679
1690
  } catch (n) {
1680
- throw q.error("Failed to extract profiles", n, {
1691
+ throw K.error("Failed to extract profiles", n, {
1681
1692
  operation: "extractProfiles",
1682
1693
  data: {
1683
1694
  contentLength: t.length
@@ -1689,11 +1700,11 @@ let __tla = Promise.all([
1689
1700
  if (!this.ifcApi) throw new Error("IFC-Lite not initialized. Call init() first.");
1690
1701
  try {
1691
1702
  const r = this.ifcApi.parseMeshesSubset(t, e, n, s);
1692
- return q.debug(`Parsed subset [${e}, ${n}) → ${r.length} meshes`, {
1703
+ return K.debug(`Parsed subset [${e}, ${n}) → ${r.length} meshes`, {
1693
1704
  operation: "parseMeshesSubset"
1694
1705
  }), r;
1695
1706
  } catch (r) {
1696
- throw q.error("Failed to parse IFC geometry subset", r, {
1707
+ throw K.error("Failed to parse IFC geometry subset", r, {
1697
1708
  operation: "parseMeshesSubset",
1698
1709
  data: {
1699
1710
  contentLength: t.length,
@@ -1723,7 +1734,7 @@ let __tla = Promise.all([
1723
1734
  if (!this.ifcApi) return;
1724
1735
  const t = this.ifcApi;
1725
1736
  if (typeof t.setMergeLayers != "function") {
1726
- q.warn("setMergeLayers not present on WASM API — flag tracked but suppression is a no-op until WASM is rebuilt", {
1737
+ K.warn("setMergeLayers not present on WASM API — flag tracked but suppression is a no-op until WASM is rebuilt", {
1727
1738
  operation: "setMergeLayers",
1728
1739
  data: {
1729
1740
  requested: this.mergeLayers
@@ -1731,13 +1742,13 @@ let __tla = Promise.all([
1731
1742
  });
1732
1743
  return;
1733
1744
  }
1734
- t.setMergeLayers(this.mergeLayers), q.debug(`mergeLayers=${this.mergeLayers}`, {
1745
+ t.setMergeLayers(this.mergeLayers), K.debug(`mergeLayers=${this.mergeLayers}`, {
1735
1746
  operation: "setMergeLayers"
1736
1747
  });
1737
1748
  }
1738
1749
  };
1739
- const ot = on("MeshCollector");
1740
- ee = class {
1750
+ const ct = on("MeshCollector");
1751
+ se = class {
1741
1752
  ifcApi;
1742
1753
  content;
1743
1754
  _buildingRotation;
@@ -1772,7 +1783,7 @@ let __tla = Promise.all([
1772
1783
  try {
1773
1784
  t = this.ifcApi.parseMeshes(this.content);
1774
1785
  } catch (r) {
1775
- throw ot.error("WASM mesh parsing failed", r, {
1786
+ throw ct.error("WASM mesh parsing failed", r, {
1776
1787
  operation: "collectMeshes"
1777
1788
  }), r;
1778
1789
  }
@@ -1790,17 +1801,25 @@ let __tla = Promise.all([
1790
1801
  c[1],
1791
1802
  c[2],
1792
1803
  c[3]
1793
- ];
1804
+ ], d = a.shadingColor, f = d && d.length === 4 ? [
1805
+ d[0],
1806
+ d[1],
1807
+ d[2],
1808
+ d[3]
1809
+ ] : void 0;
1794
1810
  e.push({
1795
1811
  expressId: a.expressId,
1796
1812
  ifcType: a.ifcType,
1797
1813
  positions: a.positions,
1798
1814
  normals: a.normals,
1799
1815
  indices: a.indices,
1800
- color: l
1816
+ color: l,
1817
+ ...f ? {
1818
+ shadingColor: f
1819
+ } : {}
1801
1820
  }), a.free(), a = null;
1802
1821
  } catch (c) {
1803
- if (n++, ot.caught(`Failed to process mesh ${r}`, c, {
1822
+ if (n++, ct.caught(`Failed to process mesh ${r}`, c, {
1804
1823
  operation: "collectMeshes"
1805
1824
  }), a) try {
1806
1825
  a.free();
@@ -1808,9 +1827,9 @@ let __tla = Promise.all([
1808
1827
  }
1809
1828
  }
1810
1829
  const s = t.buildingRotation ?? void 0;
1811
- return t.free(), n > 0 && ot.warn(`Skipped ${n} meshes due to errors`, {
1830
+ return t.free(), n > 0 && ct.warn(`Skipped ${n} meshes due to errors`, {
1812
1831
  operation: "collectMeshes"
1813
- }), ot.debug(`Collected ${e.length} meshes`, {
1832
+ }), ct.debug(`Collected ${e.length} meshes`, {
1814
1833
  operation: "collectMeshes"
1815
1834
  }), this._buildingRotation = s, e;
1816
1835
  }
@@ -1825,28 +1844,28 @@ let __tla = Promise.all([
1825
1844
  let c = 0, l = 0;
1826
1845
  const d = this.ifcApi.parseMeshesAsync(this.content, {
1827
1846
  batchSize: t,
1828
- onRtcOffset: (f)=>{
1847
+ onRtcOffset: (_)=>{
1829
1848
  e.push({
1830
1849
  type: "rtcOffset",
1831
1850
  rtcOffset: {
1832
- x: f.x,
1833
- y: f.y,
1834
- z: f.z
1851
+ x: _.x,
1852
+ y: _.y,
1853
+ z: _.z
1835
1854
  },
1836
- hasRtc: f.hasRtc
1855
+ hasRtc: _.hasRtc
1837
1856
  }), n && (n(), n = null);
1838
1857
  },
1839
- onColorUpdate: (f)=>{
1840
- for (const [p, g] of f)a.set(p, g);
1858
+ onColorUpdate: (_)=>{
1859
+ for (const [p, g] of _)a.set(p, g);
1841
1860
  e.push({
1842
1861
  type: "colorUpdate",
1843
- updates: new Map(f)
1862
+ updates: new Map(_)
1844
1863
  }), n && (n(), n = null);
1845
1864
  },
1846
- onBatch: (f, p)=>{
1865
+ onBatch: (_, p)=>{
1847
1866
  const g = [];
1848
- for (const u of f)try {
1849
- const h = u.expressId, b = a.get(h) ?? [
1867
+ for (const u of _)try {
1868
+ const h = u.expressId, m = a.get(h) ?? [
1850
1869
  u.color[0],
1851
1870
  u.color[1],
1852
1871
  u.color[2],
@@ -1858,10 +1877,10 @@ let __tla = Promise.all([
1858
1877
  positions: u.positions,
1859
1878
  normals: u.normals,
1860
1879
  indices: u.indices,
1861
- color: b
1880
+ color: m
1862
1881
  }), u.free(), c++;
1863
1882
  } catch (h) {
1864
- l++, ot.caught(`Failed to process mesh #${u.expressId}`, h, {
1883
+ l++, ct.caught(`Failed to process mesh #${u.expressId}`, h, {
1865
1884
  operation: "collectMeshesStreaming",
1866
1885
  entityId: u.expressId
1867
1886
  });
@@ -1871,13 +1890,13 @@ let __tla = Promise.all([
1871
1890
  }
1872
1891
  g.length > 0 && e.push(g), n && (n(), n = null);
1873
1892
  },
1874
- onComplete: (f)=>{
1875
- s = !0, f.buildingRotation !== void 0 && (this._buildingRotation = f.buildingRotation), ot.debug(`Streaming complete: ${f.totalMeshes} meshes, ${f.totalVertices} vertices, ${f.totalTriangles} triangles`, {
1893
+ onComplete: (_)=>{
1894
+ s = !0, _.buildingRotation !== void 0 && (this._buildingRotation = _.buildingRotation), ct.debug(`Streaming complete: ${_.totalMeshes} meshes, ${_.totalVertices} vertices, ${_.totalTriangles} triangles`, {
1876
1895
  operation: "collectMeshesStreaming"
1877
- }), l > 0 && ot.warn(`Skipped ${l} meshes due to errors`, {
1896
+ }), l > 0 && ct.warn(`Skipped ${l} meshes due to errors`, {
1878
1897
  operation: "collectMeshesStreaming"
1879
1898
  });
1880
- const p = f.csgDiagnostics;
1899
+ const p = _.csgDiagnostics;
1881
1900
  if (p) {
1882
1901
  const g = p.totalFailures ?? 0;
1883
1902
  if (g > 0) {
@@ -1887,23 +1906,23 @@ let __tla = Promise.all([
1887
1906
  }
1888
1907
  n && (n(), n = null);
1889
1908
  }
1890
- }).catch((f)=>{
1891
- r = f instanceof Error ? f : new Error(String(f)), ot.error("WASM streaming parsing failed", r, {
1909
+ }).catch((_)=>{
1910
+ r = _ instanceof Error ? _ : new Error(String(_)), ct.error("WASM streaming parsing failed", r, {
1892
1911
  operation: "collectMeshesStreaming"
1893
1912
  }), s = !0, n && (n(), n = null);
1894
1913
  });
1895
- let _ = 0;
1914
+ let f = 0;
1896
1915
  for(;;){
1897
- for(; e.length > 0;)_++, yield e.shift();
1916
+ for(; e.length > 0;)f++, yield e.shift();
1898
1917
  if (r) throw r;
1899
1918
  if (s && e.length === 0) break;
1900
- await new Promise((f)=>{
1901
- n = f;
1919
+ await new Promise((_)=>{
1920
+ n = _;
1902
1921
  });
1903
1922
  }
1904
- if (_ === 0 && this.content.length > 1e3) {
1905
- const f = (this.content.length / 1048576).toFixed(1);
1906
- ot.warn(`WASM streaming returned 0 batches for ${f}MB file - this may indicate insufficient memory for large file processing`, {
1923
+ if (f === 0 && this.content.length > 1e3) {
1924
+ const _ = (this.content.length / 1048576).toFixed(1);
1925
+ ct.warn(`WASM streaming returned 0 batches for ${_}MB file - this may indicate insufficient memory for large file processing`, {
1907
1926
  operation: "collectMeshesStreaming",
1908
1927
  data: {
1909
1928
  contentLength: this.content.length
@@ -1936,7 +1955,7 @@ let __tla = Promise.all([
1936
1955
  s = !0, n && (n(), n = null);
1937
1956
  }
1938
1957
  }).catch((l)=>{
1939
- r = l instanceof Error ? l : new Error(String(l)), ot.error("WASM instanced streaming parsing failed", r, {
1958
+ r = l instanceof Error ? l : new Error(String(l)), ct.error("WASM instanced streaming parsing failed", r, {
1940
1959
  operation: "collectInstancedGeometryStreaming"
1941
1960
  }), s = !0, n && (n(), n = null);
1942
1961
  });
@@ -1951,7 +1970,7 @@ let __tla = Promise.all([
1951
1970
  }
1952
1971
  if (c === 0 && this.content.length > 1e3) {
1953
1972
  const l = (this.content.length / 1048576).toFixed(1);
1954
- ot.warn(`WASM instanced streaming returned 0 batches for ${l}MB file - this may indicate insufficient memory for large file processing`, {
1973
+ ct.warn(`WASM instanced streaming returned 0 batches for ${l}MB file - this may indicate insufficient memory for large file processing`, {
1955
1974
  operation: "collectInstancedGeometryStreaming",
1956
1975
  data: {
1957
1976
  contentLength: this.content.length
@@ -1967,7 +1986,7 @@ let __tla = Promise.all([
1967
1986
  async function vn() {
1968
1987
  if (_n()) {
1969
1988
  const { NativeBridge: i } = await Ae(async ()=>{
1970
- const { NativeBridge: t } = await import("./native-bridge-Q5ACp4QY.js").then(async (m)=>{
1989
+ const { NativeBridge: t } = await import("./native-bridge-BVf2uzoH.js").then(async (m)=>{
1971
1990
  await m.__tla;
1972
1991
  return m;
1973
1992
  });
@@ -1978,7 +1997,7 @@ let __tla = Promise.all([
1978
1997
  return new i;
1979
1998
  } else {
1980
1999
  const { WasmBridge: i } = await Ae(async ()=>{
1981
- const { WasmBridge: t } = await import("./wasm-bridge-X-mWRA9Z.js");
2000
+ const { WasmBridge: t } = await import("./wasm-bridge-BAfZh7YT.js");
1982
2001
  return {
1983
2002
  WasmBridge: t
1984
2003
  };
@@ -2038,8 +2057,8 @@ let __tla = Promise.all([
2038
2057
  for (const r of t){
2039
2058
  const a = r.positions;
2040
2059
  for(let c = 0; c < a.length; c += 3){
2041
- const l = a[c], d = a[c + 1], _ = a[c + 2];
2042
- Number.isFinite(l) && Number.isFinite(d) && Number.isFinite(_) && Math.abs(l) < s && Math.abs(d) < s && Math.abs(_) < s && (n.min.x = Math.min(n.min.x, l), n.min.y = Math.min(n.min.y, d), n.min.z = Math.min(n.min.z, _), n.max.x = Math.max(n.max.x, l), n.max.y = Math.max(n.max.y, d), n.max.z = Math.max(n.max.z, _));
2060
+ const l = a[c], d = a[c + 1], f = a[c + 2];
2061
+ Number.isFinite(l) && Number.isFinite(d) && Number.isFinite(f) && Math.abs(l) < s && Math.abs(d) < s && Math.abs(f) < s && (n.min.x = Math.min(n.min.x, l), n.min.y = Math.min(n.min.y, d), n.min.z = Math.min(n.min.z, f), n.max.x = Math.max(n.max.x, l), n.max.y = Math.max(n.max.y, d), n.max.z = Math.max(n.max.z, f));
2043
2062
  }
2044
2063
  }
2045
2064
  return n;
@@ -2047,12 +2066,12 @@ let __tla = Promise.all([
2047
2066
  calculateBoundsFast(t) {
2048
2067
  let e = 1 / 0, n = 1 / 0, s = 1 / 0, r = -1 / 0, a = -1 / 0, c = -1 / 0;
2049
2068
  for (const l of t){
2050
- const d = l.positions, _ = d.length;
2051
- if (_ < 3) continue;
2052
- const f = d[0], p = d[1], g = d[2];
2053
- if (f < e && (e = f), p < n && (n = p), g < s && (s = g), f > r && (r = f), p > a && (a = p), g > c && (c = g), _ >= 6) {
2054
- const u = d[_ - 3], h = d[_ - 2], b = d[_ - 1];
2055
- u < e && (e = u), h < n && (n = h), b < s && (s = b), u > r && (r = u), h > a && (a = h), b > c && (c = b);
2069
+ const d = l.positions, f = d.length;
2070
+ if (f < 3) continue;
2071
+ const _ = d[0], p = d[1], g = d[2];
2072
+ if (_ < e && (e = _), p < n && (n = p), g < s && (s = g), _ > r && (r = _), p > a && (a = p), g > c && (c = g), f >= 6) {
2073
+ const u = d[f - 3], h = d[f - 2], m = d[f - 1];
2074
+ u < e && (e = u), h < n && (n = h), m < s && (s = m), u > r && (r = u), h > a && (a = h), m > c && (c = m);
2056
2075
  }
2057
2076
  }
2058
2077
  return {
@@ -2190,15 +2209,15 @@ let __tla = Promise.all([
2190
2209
  z: this.accumulatedBounds.max.z - this.accumulatedBounds.min.z
2191
2210
  }, r = Math.max(s.x, s.y, s.z), a = this.calculateCentroid(this.accumulatedBounds), c = Math.sqrt(a.x ** 2 + a.y ** 2 + a.z ** 2);
2192
2211
  let l = 0, d = 0;
2193
- const _ = this.THRESHOLD;
2212
+ const f = this.THRESHOLD;
2194
2213
  for (const g of t){
2195
2214
  const u = g.positions;
2196
2215
  if (u.length >= 3) {
2197
- const h = Math.abs(u[0]), b = Math.abs(u[1]), C = Math.abs(u[2]);
2198
- Math.max(h, b, C) < _ ? l++ : d++;
2216
+ const h = Math.abs(u[0]), m = Math.abs(u[1]), w = Math.abs(u[2]);
2217
+ Math.max(h, m, w) < f ? l++ : d++;
2199
2218
  }
2200
2219
  }
2201
- const f = l + d, p = f > 0 && l / f > .5;
2220
+ const _ = l + d, p = _ > 0 && l / _ > .5;
2202
2221
  p && (this.wasmRtcDetected = !0, this.accumulatedBounds = this.calculateBounds(t, this.NORMAL_COORD_THRESHOLD)), (c > this.THRESHOLD || r > this.THRESHOLD) && !p && (this.originShift = a);
2203
2222
  }
2204
2223
  this.shiftCalculated = !0;
@@ -2279,7 +2298,7 @@ let __tla = Promise.all([
2279
2298
  };
2280
2299
  let l;
2281
2300
  e >= 16 && s >= 16 ? l = Math.min(c, Math.floor(e / 2)) : e >= 12 && s >= 8 ? l = t > 512 ? 4 : 5 : e >= 10 && s >= 8 ? l = t > 512 ? 3 : 4 : e >= 8 && s >= 8 ? l = t > 512 ? 2 : 3 : l = Math.max(1, Math.min(2, Math.floor(e / 2)));
2282
- const d = s * 1024, _ = Math.max(1024, d * .25), f = t * 2.5, p = Math.max(64, t * 1.5), g = d - _ - f, u = g > 0 ? Math.max(1, Math.floor(g / p)) : 1, h = [
2301
+ const d = s * 1024, f = Math.max(1024, d * .25), _ = t * 2.5, p = Math.max(64, t * 1.5), g = d - f - _, u = g > 0 ? Math.max(1, Math.floor(g / p)) : 1, h = [
2283
2302
  {
2284
2303
  value: l,
2285
2304
  reason: "cores"
@@ -2297,22 +2316,22 @@ let __tla = Promise.all([
2297
2316
  reason: "max"
2298
2317
  }
2299
2318
  ];
2300
- let b = h[0];
2301
- for(let C = 1; C < h.length; C++)h[C].value < b.value && (b = h[C]);
2302
- return b.value < a ? {
2319
+ let m = h[0];
2320
+ for(let w = 1; w < h.length; w++)h[w].value < m.value && (m = h[w]);
2321
+ return m.value < a ? {
2303
2322
  count: a,
2304
2323
  reason: "min"
2305
2324
  } : {
2306
- count: b.value,
2307
- reason: b.reason
2325
+ count: m.value,
2326
+ reason: m.reason
2308
2327
  };
2309
2328
  }
2310
2329
  function Vn(i) {
2311
2330
  return zn(i).count;
2312
2331
  }
2313
- const jn = 3e4, kn = 15e3, Wn = 15e3, Yn = 5e3, Hn = 60, Xn = 30, Jn = 30, Qn = 15;
2332
+ const jn = 3e4, kn = 15e3, Wn = 15e3, Hn = 5e3, Yn = 60, Xn = 30, Jn = 30, Qn = 15;
2314
2333
  Ns = function(i) {
2315
- const t = i.desktopStableWasm === !0, e = Math.max(0, Math.floor(i.batchCount)), n = Math.max(0, i.fileSizeMB), s = e > 0 ? t ? Yn : Wn : t ? kn : jn, r = e > 0 ? t ? Qn : Jn : t ? Xn : Hn;
2334
+ const t = i.desktopStableWasm === !0, e = Math.max(0, Math.floor(i.batchCount)), n = Math.max(0, i.fileSizeMB), s = e > 0 ? t ? Hn : Wn : t ? kn : jn, r = e > 0 ? t ? Qn : Jn : t ? Xn : Yn;
2316
2335
  return Math.max(s, Math.round(s + n * r));
2317
2336
  };
2318
2337
  function qn(i, t) {
@@ -2351,7 +2370,7 @@ let __tla = Promise.all([
2351
2370
  }
2352
2371
  return Array.from(t.values());
2353
2372
  };
2354
- function pe(i, t) {
2373
+ function ge(i, t) {
2355
2374
  if (typeof t == "number") return t;
2356
2375
  const e = t.fileSizeMB ? t.fileSizeMB : i.length / (1024 * 1024);
2357
2376
  return e < 10 ? 100 : e < 50 ? 200 : e < 100 ? 300 : e < 300 ? 500 : e < 500 ? 1500 : 3e3;
@@ -2362,6 +2381,12 @@ let __tla = Promise.all([
2362
2381
  for(let e = 0; e < i.length; e++){
2363
2382
  const n = i.get(e);
2364
2383
  if (n) try {
2384
+ const s = n.shadingColor, r = s && s.length === 4 ? [
2385
+ s[0],
2386
+ s[1],
2387
+ s[2],
2388
+ s[3]
2389
+ ] : void 0;
2365
2390
  t.push({
2366
2391
  expressId: n.expressId,
2367
2392
  ifcType: n.ifcType,
@@ -2373,7 +2398,10 @@ let __tla = Promise.all([
2373
2398
  n.color[1],
2374
2399
  n.color[2],
2375
2400
  n.color[3]
2376
- ]
2401
+ ],
2402
+ ...r ? {
2403
+ shadingColor: r
2404
+ } : {}
2377
2405
  });
2378
2406
  } finally{
2379
2407
  n.free();
@@ -2396,7 +2424,7 @@ let __tla = Promise.all([
2396
2424
  }
2397
2425
  return t;
2398
2426
  }
2399
- function Ct(i, t) {
2427
+ function St(i, t) {
2400
2428
  return t !== void 0 ? {
2401
2429
  ...i,
2402
2430
  buildingRotation: t
@@ -2438,8 +2466,8 @@ let __tla = Promise.all([
2438
2466
  queuedMeshes: 0,
2439
2467
  coalescedBatchCount: 0
2440
2468
  };
2441
- let a = null, c = !1, l = null, d, _ = 0;
2442
- const f = ()=>{
2469
+ let a = null, c = !1, l = null, d, f = 0;
2470
+ const _ = ()=>{
2443
2471
  a && (a(), a = null);
2444
2472
  }, p = i({
2445
2473
  onBatch: (u)=>{
@@ -2447,52 +2475,52 @@ let __tla = Promise.all([
2447
2475
  type: "batch",
2448
2476
  meshes: u.meshes,
2449
2477
  nativeTelemetry: u.nativeTelemetry
2450
- }, r), f();
2478
+ }, r), _();
2451
2479
  },
2452
2480
  onColorUpdate: (u)=>{
2453
2481
  Je(s, {
2454
2482
  type: "colorUpdate",
2455
2483
  updates: new Map(u)
2456
- }, r), f();
2484
+ }, r), _();
2457
2485
  },
2458
2486
  onComplete: (u)=>{
2459
- n(u), d = u.totalMeshes, c = !0, f();
2487
+ n(u), d = u.totalMeshes, c = !0, _();
2460
2488
  },
2461
2489
  onError: (u)=>{
2462
- l = u, c = !0, f();
2490
+ l = u, c = !0, _();
2463
2491
  }
2464
2492
  });
2465
2493
  for(; !c || s.length > 0;){
2466
- let u = 0, h = 0, b = performance.now();
2494
+ let u = 0, h = 0, m = performance.now();
2467
2495
  for(; s.length > 0;){
2468
- const C = s.shift();
2469
- if (C.type === "colorUpdate") {
2496
+ const w = s.shift();
2497
+ if (w.type === "colorUpdate") {
2470
2498
  yield {
2471
2499
  type: "colorUpdate",
2472
- updates: C.updates
2500
+ updates: w.updates
2473
2501
  };
2474
2502
  continue;
2475
2503
  }
2476
- r.queuedMeshes = Math.max(0, r.queuedMeshes - C.meshes.length), e.processTrustedMeshesIncremental(C.meshes), _ += C.meshes.length;
2477
- const w = e.getCurrentCoordinateInfo();
2504
+ r.queuedMeshes = Math.max(0, r.queuedMeshes - w.meshes.length), e.processTrustedMeshesIncremental(w.meshes), f += w.meshes.length;
2505
+ const C = e.getCurrentCoordinateInfo();
2478
2506
  yield {
2479
2507
  type: "batch",
2480
- meshes: C.meshes,
2481
- totalSoFar: _,
2482
- coordinateInfo: w || void 0,
2483
- nativeTelemetry: C.nativeTelemetry
2484
- }, u += 1, h += C.meshes.length, s.length > 0 && (u >= ns || h >= ss || performance.now() - b >= rs) && (await Xe(), u = 0, h = 0, b = performance.now());
2508
+ meshes: w.meshes,
2509
+ totalSoFar: f,
2510
+ coordinateInfo: C || void 0,
2511
+ nativeTelemetry: w.nativeTelemetry
2512
+ }, u += 1, h += w.meshes.length, s.length > 0 && (u >= ns || h >= ss || performance.now() - m >= rs) && (await Xe(), u = 0, h = 0, m = performance.now());
2485
2513
  }
2486
2514
  if (l) throw l;
2487
- c || await new Promise((C)=>{
2488
- a = C;
2515
+ c || await new Promise((w)=>{
2516
+ a = w;
2489
2517
  });
2490
2518
  }
2491
2519
  await p, r.coalescedBatchCount > 0 && console.info(`[GeometryProcessor] Coalesced ${r.coalescedBatchCount} native batches while JS drained the queue`);
2492
2520
  const g = e.getFinalCoordinateInfo();
2493
2521
  yield {
2494
2522
  type: "complete",
2495
- totalMeshes: d ?? _,
2523
+ totalMeshes: d ?? f,
2496
2524
  coordinateInfo: g
2497
2525
  };
2498
2526
  }
@@ -2507,94 +2535,94 @@ let __tla = Promise.all([
2507
2535
  let r;
2508
2536
  const a = i.buffer;
2509
2537
  n && n.byteLength === i.byteLength ? r = n : typeof SharedArrayBuffer < "u" && a instanceof SharedArrayBuffer && i.byteOffset === 0 && i.byteLength === a.byteLength ? r = a : (r = new SharedArrayBuffer(i.byteLength), new Uint8Array(r).set(i));
2510
- const c = s?.useSingleController === !0, l = ()=>c ? new Worker(new URL("/assets/geometry-controller.worker-CEr00X3X.js", import.meta.url), {
2538
+ const c = s?.useSingleController === !0, l = ()=>c ? new Worker(new URL("/assets/geometry-controller.worker-Cm5pvyR6.js", import.meta.url), {
2511
2539
  type: "module"
2512
- }) : new Worker(new URL("/assets/geometry.worker-B4VPDkmL.js", import.meta.url), {
2540
+ }) : new Worker(new URL("/assets/geometry.worker-ClNvXIrj.js", import.meta.url), {
2513
2541
  type: "module"
2514
- }), d = ()=>new Worker(new URL("/assets/geometry.worker-B4VPDkmL.js", import.meta.url), {
2542
+ }), d = ()=>new Worker(new URL("/assets/geometry.worker-ClNvXIrj.js", import.meta.url), {
2515
2543
  type: "module"
2516
- }), _ = [];
2517
- let f = null;
2544
+ }), f = [];
2545
+ let _ = null;
2518
2546
  const p = ()=>{
2519
- f && (f(), f = null);
2547
+ _ && (_(), _ = null);
2520
2548
  };
2521
- let g = null, u = 0, h = !1, b = null, C = null, w = 0, A = 0, M = !1, z = !1;
2522
- const m = [];
2523
- let N = !1, I = !1;
2524
- const F = [], R = (P, j)=>{
2525
- P.onmessage = (G)=>{
2526
- const v = G.data;
2527
- if (v.type === "ready") {
2528
- console.log(`[stream] worker[${j}] WASM ready @ ${st()}ms`);
2549
+ let g = null, u = 0, h = !1, m = null, w = null, C = 0, A = 0, P = !1, z = !1;
2550
+ const x = [];
2551
+ let v = !1, E = !1;
2552
+ const N = [], S = (U, X)=>{
2553
+ U.onmessage = ($)=>{
2554
+ const D = $.data;
2555
+ if (D.type === "ready") {
2556
+ console.log(`[stream] worker[${X}] WASM ready @ ${q()}ms`);
2529
2557
  return;
2530
2558
  }
2531
- if (v.type === "memory") {
2532
- _.push({
2559
+ if (D.type === "memory") {
2560
+ f.push({
2533
2561
  type: "workerMemory",
2534
- workerIndex: j,
2535
- wasmHeapBytes: v.wasmHeapBytes,
2536
- meshBytes: v.meshBytes
2562
+ workerIndex: X,
2563
+ wasmHeapBytes: D.wasmHeapBytes,
2564
+ meshBytes: D.meshBytes
2537
2565
  }), p();
2538
2566
  return;
2539
2567
  }
2540
- if (v.type === "batch") {
2541
- F[j] === void 0 && (F[j] = st(), console.log(`[stream] worker[${j}] first batch @ ${st()}ms (${v.meshes?.length ?? 0} meshes)`));
2542
- const Y = v.meshes.map(($)=>({
2543
- expressId: $.expressId,
2544
- ifcType: $.ifcType,
2545
- positions: $.positions instanceof Float32Array ? $.positions : new Float32Array($.positions),
2546
- normals: $.normals instanceof Float32Array ? $.normals : new Float32Array($.normals),
2547
- indices: $.indices instanceof Uint32Array ? $.indices : new Uint32Array($.indices),
2548
- color: $.color
2568
+ if (D.type === "batch") {
2569
+ N[X] === void 0 && (N[X] = q(), console.log(`[stream] worker[${X}] first batch @ ${q()}ms (${D.meshes?.length ?? 0} meshes)`));
2570
+ const J = D.meshes.map((V)=>({
2571
+ expressId: V.expressId,
2572
+ ifcType: V.ifcType,
2573
+ positions: V.positions instanceof Float32Array ? V.positions : new Float32Array(V.positions),
2574
+ normals: V.normals instanceof Float32Array ? V.normals : new Float32Array(V.normals),
2575
+ indices: V.indices instanceof Uint32Array ? V.indices : new Uint32Array(V.indices),
2576
+ color: V.color
2549
2577
  }));
2550
- if (Y.length > 0) {
2551
- A += Y.length, t.processMeshesIncremental(Y);
2552
- const $ = t.getCurrentCoordinateInfo();
2553
- _.push({
2578
+ if (J.length > 0) {
2579
+ A += J.length, t.processMeshesIncremental(J);
2580
+ const V = t.getCurrentCoordinateInfo();
2581
+ f.push({
2554
2582
  type: "batch",
2555
- meshes: Y,
2583
+ meshes: J,
2556
2584
  totalSoFar: A,
2557
- coordinateInfo: $ || void 0
2585
+ coordinateInfo: V || void 0
2558
2586
  }), p();
2559
2587
  }
2560
2588
  return;
2561
2589
  }
2562
- if (v.type === "complete") {
2563
- w++, P.terminate(), p();
2590
+ if (D.type === "complete") {
2591
+ C++, U.terminate(), p();
2564
2592
  return;
2565
2593
  }
2566
- if (v.type === "error") {
2567
- C = new Error(`Geometry worker error: ${v.message}`), w++, P.terminate(), p();
2594
+ if (D.type === "error") {
2595
+ w = new Error(`Geometry worker error: ${D.message}`), C++, U.terminate(), p();
2568
2596
  return;
2569
2597
  }
2570
- }, P.onerror = (G)=>{
2571
- C = new Error(`Geometry worker failed: ${G.message}`), w++, P.terminate(), p();
2598
+ }, U.onerror = ($)=>{
2599
+ w = new Error(`Geometry worker failed: ${$.message}`), C++, U.terminate(), p();
2572
2600
  };
2573
- }, E = typeof navigator < "u" ? navigator.hardwareConcurrency ?? 2 : 2, y = typeof navigator < "u" ? navigator.deviceMemory ?? 8 : 8, T = i.byteLength / (1024 * 1024), O = Math.max(1, Math.ceil(T * 100)), V = c ? 1 : Vn({
2601
+ }, b = typeof navigator < "u" ? navigator.hardwareConcurrency ?? 2 : 2, y = typeof navigator < "u" ? navigator.deviceMemory ?? 8 : 8, T = i.byteLength / (1024 * 1024), I = Math.max(1, Math.ceil(T * 100)), M = c ? 1 : Vn({
2574
2602
  fileSizeMB: T,
2575
- cores: E,
2603
+ cores: b,
2576
2604
  deviceMemoryGB: y,
2577
- totalJobs: O
2578
- }), U = [];
2579
- for(let P = 0; P < V; P++){
2580
- const j = l();
2581
- U.push(j), R(j, P);
2582
- const G = c ? s?.wasmUrls?.wasmThreaded : s?.wasmUrls?.wasm;
2583
- j.postMessage({
2605
+ totalJobs: I
2606
+ }), R = [];
2607
+ for(let U = 0; U < M; U++){
2608
+ const X = l();
2609
+ R.push(X), S(X, U);
2610
+ const $ = c ? s?.wasmUrls?.wasmThreaded : s?.wasmUrls?.wasm;
2611
+ X.postMessage({
2584
2612
  type: "init",
2585
- ...G ? {
2586
- wasmUrl: G
2613
+ ...$ ? {
2614
+ wasmUrl: $
2587
2615
  } : {}
2588
- }), j.postMessage({
2616
+ }), X.postMessage({
2589
2617
  type: "set-merge-layers",
2590
2618
  enabled: s?.mergeLayers === !0
2591
2619
  });
2592
2620
  }
2593
- const Q = ()=>{
2594
- if (!M) {
2595
- M = !0;
2596
- for (const P of U)try {
2597
- P.postMessage({
2621
+ const j = ()=>{
2622
+ if (!P) {
2623
+ P = !0;
2624
+ for (const U of R)try {
2625
+ U.postMessage({
2598
2626
  type: "stream-end"
2599
2627
  });
2600
2628
  } catch {}
@@ -2602,189 +2630,189 @@ let __tla = Promise.all([
2602
2630
  }, H = ()=>{
2603
2631
  if (z || !g) return;
2604
2632
  z = !0;
2605
- const P = e != null, j = P ? e.x : g.rtcOffset[0], G = P ? e.y : g.rtcOffset[1], v = P ? e.z : g.rtcOffset[2], Y = P ? !0 : g.needsShift;
2606
- _.push({
2633
+ const U = e != null, X = U ? e.x : g.rtcOffset[0], $ = U ? e.y : g.rtcOffset[1], D = U ? e.z : g.rtcOffset[2], J = U ? !0 : g.needsShift;
2634
+ f.push({
2607
2635
  type: "rtcOffset",
2608
2636
  rtcOffset: {
2609
- x: j,
2610
- y: G,
2611
- z: v
2637
+ x: X,
2638
+ y: $,
2639
+ z: D
2612
2640
  },
2613
- hasRtc: Y
2641
+ hasRtc: J
2614
2642
  }), p();
2615
- const $ = new Uint32Array(0), rt = new Uint8Array(0);
2616
- for (const ut of U)ut.postMessage({
2643
+ const V = new Uint32Array(0), it = new Uint8Array(0);
2644
+ for (const mt of R)mt.postMessage({
2617
2645
  type: "stream-start",
2618
2646
  sharedBuffer: r,
2619
2647
  unitScale: g.unitScale,
2620
- rtcX: j,
2621
- rtcY: G,
2622
- rtcZ: v,
2623
- needsShift: Y,
2624
- voidKeys: $,
2625
- voidCounts: $,
2626
- voidValues: $,
2627
- styleIds: $,
2628
- styleColors: rt
2648
+ rtcX: X,
2649
+ rtcY: $,
2650
+ rtcZ: D,
2651
+ needsShift: J,
2652
+ voidKeys: V,
2653
+ voidCounts: V,
2654
+ voidValues: V,
2655
+ styleIds: V,
2656
+ styleColors: it
2629
2657
  });
2630
2658
  };
2631
- function k(P) {
2632
- if (U.length === 0 || P.length === 0) return;
2633
- const j = Math.floor(P.length / 3);
2634
- if (j === 0) return;
2635
- const G = Math.ceil(j / U.length);
2659
+ function k(U) {
2660
+ if (R.length === 0 || U.length === 0) return;
2661
+ const X = Math.floor(U.length / 3);
2662
+ if (X === 0) return;
2663
+ const $ = Math.ceil(X / R.length);
2636
2664
  try {
2637
- for(let v = 0; v < U.length; v++){
2638
- const Y = v * G * 3, $ = Math.min(Y + G * 3, P.length);
2639
- if (Y >= $) continue;
2640
- const rt = P.slice(Y, $);
2641
- U[v].postMessage({
2665
+ for(let D = 0; D < R.length; D++){
2666
+ const J = D * $ * 3, V = Math.min(J + $ * 3, U.length);
2667
+ if (J >= V) continue;
2668
+ const it = U.slice(J, V);
2669
+ R[D].postMessage({
2642
2670
  type: "stream-chunk",
2643
- jobsFlat: rt
2671
+ jobsFlat: it
2644
2672
  }, [
2645
- rt.buffer
2673
+ it.buffer
2646
2674
  ]);
2647
2675
  }
2648
- } catch (v) {
2649
- C = new Error(`Failed to dispatch jobs chunk: ${v instanceof Error ? v.message : String(v)}`), p();
2676
+ } catch (D) {
2677
+ w = new Error(`Failed to dispatch jobs chunk: ${D instanceof Error ? D.message : String(D)}`), p();
2650
2678
  }
2651
2679
  }
2652
- const W = (P)=>{
2653
- if (!z || !N || !I) {
2654
- m.push(P);
2680
+ const Y = (U)=>{
2681
+ if (!z || !v || !E) {
2682
+ x.push(U);
2655
2683
  return;
2656
2684
  }
2657
- k(P);
2658
- }, X = ()=>{
2659
- if (!(!z || !N || !I)) for(; m.length > 0;)k(m.shift());
2660
- }, ft = performance.now(), st = ()=>Math.round(performance.now() - ft);
2661
- console.log(`[stream] processParallel start, fileSizeMB=${T.toFixed(1)} workerCount=${V}`);
2662
- const at = d();
2663
- s?.wasmUrls?.wasm && at.postMessage({
2685
+ k(U);
2686
+ }, W = ()=>{
2687
+ if (!(!z || !v || !E)) for(; x.length > 0;)k(x.shift());
2688
+ }, at = performance.now(), q = ()=>Math.round(performance.now() - at);
2689
+ console.log(`[stream] processParallel start, fileSizeMB=${T.toFixed(1)} workerCount=${M}`);
2690
+ const st = d();
2691
+ s?.wasmUrls?.wasm && st.postMessage({
2664
2692
  type: "init",
2665
2693
  wasmUrl: s.wasmUrls.wasm
2666
2694
  });
2667
- let It = 0, Zt = 0, St = -1;
2668
- at.onmessage = (P)=>{
2669
- const j = P.data;
2670
- if (j.type === "prepass-progress") {
2671
- _.push({
2695
+ let ut = 0, lt = 0, dt = -1;
2696
+ st.onmessage = (U)=>{
2697
+ const X = U.data;
2698
+ if (X.type === "prepass-progress") {
2699
+ f.push({
2672
2700
  type: "progress",
2673
2701
  phase: "prepass"
2674
2702
  }), p();
2675
2703
  return;
2676
2704
  }
2677
- if (j.type === "prepass-stream") {
2678
- const G = j.event;
2679
- if (G.type === "meta") g = {
2680
- unitScale: G.unitScale,
2681
- rtcOffset: G.rtcOffset,
2682
- needsShift: G.needsShift,
2683
- buildingRotation: G.buildingRotation ?? null
2684
- }, console.log(`[stream] meta @ ${st()}ms unitScale=${g.unitScale} rtc=[${g.rtcOffset[0].toFixed(0)},${g.rtcOffset[1].toFixed(0)},${g.rtcOffset[2].toFixed(0)}]`), H(), p();
2685
- else if (G.type === "jobs") {
2686
- const v = G.jobs, Y = Math.floor(v.length / 3);
2687
- It++, Zt += Y, St < 0 && (St = st(), console.log(`[stream] first jobs chunk @ ${St}ms (${Y} jobs)`)), (It % 10 === 1 || Y < 1e3) && console.log(`[stream] chunk #${It} @ ${st()}ms (+${Y} jobs, total ${Zt})`), W(v);
2688
- } else if (G.type === "styles") {
2689
- const v = G.styleIds, Y = G.styleColors, $ = G.voidKeys, rt = G.voidCounts, ut = G.voidValues;
2690
- console.log(`[stream] styles @ ${st()}ms (${v.length} styled, ${$.length} void hosts), draining ${m.length} queued chunks`);
2691
- for (const ae of U)try {
2692
- const dt = v.slice(), yt = Y.slice(), mt = $.slice(), bt = rt.slice(), te = ut.slice();
2693
- ae.postMessage({
2705
+ if (X.type === "prepass-stream") {
2706
+ const $ = X.event;
2707
+ if ($.type === "meta") g = {
2708
+ unitScale: $.unitScale,
2709
+ rtcOffset: $.rtcOffset,
2710
+ needsShift: $.needsShift,
2711
+ buildingRotation: $.buildingRotation ?? null
2712
+ }, console.log(`[stream] meta @ ${q()}ms unitScale=${g.unitScale} rtc=[${g.rtcOffset[0].toFixed(0)},${g.rtcOffset[1].toFixed(0)},${g.rtcOffset[2].toFixed(0)}]`), H(), p();
2713
+ else if ($.type === "jobs") {
2714
+ const D = $.jobs, J = Math.floor(D.length / 3);
2715
+ ut++, lt += J, dt < 0 && (dt = q(), console.log(`[stream] first jobs chunk @ ${dt}ms (${J} jobs)`)), (ut % 10 === 1 || J < 1e3) && console.log(`[stream] chunk #${ut} @ ${q()}ms (+${J} jobs, total ${lt})`), Y(D);
2716
+ } else if ($.type === "styles") {
2717
+ const D = $.styleIds, J = $.styleColors, V = $.voidKeys, it = $.voidCounts, mt = $.voidValues;
2718
+ console.log(`[stream] styles @ ${q()}ms (${D.length} styled, ${V.length} void hosts), draining ${x.length} queued chunks`);
2719
+ for (const ce of R)try {
2720
+ const gt = D.slice(), wt = J.slice(), Ct = V.slice(), Tt = it.slice(), ne = mt.slice();
2721
+ ce.postMessage({
2694
2722
  type: "set-styles",
2695
- styleIds: dt,
2696
- styleColors: yt,
2697
- voidKeys: mt,
2698
- voidCounts: bt,
2699
- voidValues: te
2723
+ styleIds: gt,
2724
+ styleColors: wt,
2725
+ voidKeys: Ct,
2726
+ voidCounts: Tt,
2727
+ voidValues: ne
2700
2728
  }, [
2701
- dt.buffer,
2702
- yt.buffer,
2703
- mt.buffer,
2704
- bt.buffer,
2705
- te.buffer
2729
+ gt.buffer,
2730
+ wt.buffer,
2731
+ Ct.buffer,
2732
+ Tt.buffer,
2733
+ ne.buffer
2706
2734
  ]);
2707
- } catch (dt) {
2708
- console.warn("[stream] set-styles dispatch failed:", dt);
2735
+ } catch (gt) {
2736
+ console.warn("[stream] set-styles dispatch failed:", gt);
2709
2737
  }
2710
- N = !0, X();
2711
- } else if (G.type === "entity-index") {
2712
- const v = G.ids, Y = G.starts, $ = G.lengths;
2713
- if (console.log(`[stream] entity-index @ ${st()}ms (${v.length} entries)`), typeof SharedArrayBuffer < "u") {
2714
- const rt = v.byteLength, ut = Y.byteLength, ae = $.byteLength, dt = new SharedArrayBuffer(rt), yt = new SharedArrayBuffer(ut), mt = new SharedArrayBuffer(ae);
2715
- new Uint32Array(dt).set(v), new Uint32Array(yt).set(Y), new Uint32Array(mt).set($);
2716
- for (const bt of U)try {
2717
- bt.postMessage({
2738
+ v = !0, W();
2739
+ } else if ($.type === "entity-index") {
2740
+ const D = $.ids, J = $.starts, V = $.lengths;
2741
+ if (console.log(`[stream] entity-index @ ${q()}ms (${D.length} entries)`), typeof SharedArrayBuffer < "u") {
2742
+ const it = D.byteLength, mt = J.byteLength, ce = V.byteLength, gt = new SharedArrayBuffer(it), wt = new SharedArrayBuffer(mt), Ct = new SharedArrayBuffer(ce);
2743
+ new Uint32Array(gt).set(D), new Uint32Array(wt).set(J), new Uint32Array(Ct).set(V);
2744
+ for (const Tt of R)try {
2745
+ Tt.postMessage({
2718
2746
  type: "set-entity-index",
2719
- ids: new Uint32Array(dt),
2720
- starts: new Uint32Array(yt),
2721
- lengths: new Uint32Array(mt)
2747
+ ids: new Uint32Array(gt),
2748
+ starts: new Uint32Array(wt),
2749
+ lengths: new Uint32Array(Ct)
2722
2750
  });
2723
- } catch (te) {
2724
- console.warn("[stream] set-entity-index dispatch failed:", te);
2751
+ } catch (ne) {
2752
+ console.warn("[stream] set-entity-index dispatch failed:", ne);
2725
2753
  }
2726
2754
  if (s?.onEntityIndex) try {
2727
- s.onEntityIndex(new Uint32Array(dt), new Uint32Array(yt), new Uint32Array(mt));
2728
- } catch (bt) {
2729
- console.warn("[stream] onEntityIndex callback failed:", bt);
2755
+ s.onEntityIndex(new Uint32Array(gt), new Uint32Array(wt), new Uint32Array(Ct));
2756
+ } catch (Tt) {
2757
+ console.warn("[stream] onEntityIndex callback failed:", Tt);
2730
2758
  }
2731
2759
  } else {
2732
- for (const rt of U)try {
2733
- rt.postMessage({
2760
+ for (const it of R)try {
2761
+ it.postMessage({
2734
2762
  type: "set-entity-index",
2735
- ids: v.slice(),
2736
- starts: Y.slice(),
2737
- lengths: $.slice()
2763
+ ids: D.slice(),
2764
+ starts: J.slice(),
2765
+ lengths: V.slice()
2738
2766
  });
2739
- } catch (ut) {
2740
- console.warn("[stream] set-entity-index dispatch failed:", ut);
2767
+ } catch (mt) {
2768
+ console.warn("[stream] set-entity-index dispatch failed:", mt);
2741
2769
  }
2742
2770
  if (s?.onEntityIndex) try {
2743
- s.onEntityIndex(v.slice(), Y.slice(), $.slice());
2744
- } catch (rt) {
2745
- console.warn("[stream] onEntityIndex callback failed:", rt);
2771
+ s.onEntityIndex(D.slice(), J.slice(), V.slice());
2772
+ } catch (it) {
2773
+ console.warn("[stream] onEntityIndex callback failed:", it);
2746
2774
  }
2747
2775
  }
2748
- I = !0, X();
2749
- } else G.type === "complete" && (u = G.totalJobs, console.log(`[stream] prepass complete @ ${st()}ms totalJobs=${u} chunks=${It}`), Ne || (Ne = !0, oe()));
2776
+ E = !0, W();
2777
+ } else $.type === "complete" && (u = $.totalJobs, console.log(`[stream] prepass complete @ ${q()}ms totalJobs=${u} chunks=${ut}`), yt || (yt = !0, pt()));
2750
2778
  return;
2751
2779
  }
2752
- if (j.type === "error") {
2753
- b = new Error(j.message), h = !0, at.terminate(), p();
2780
+ if (X.type === "error") {
2781
+ m = new Error(X.message), h = !0, st.terminate(), p();
2754
2782
  return;
2755
2783
  }
2756
- }, at.onerror = (P)=>{
2757
- b = new Error(`Pre-pass worker failed: ${P.message}`), h = !0, at.terminate(), p();
2784
+ }, st.onerror = (U)=>{
2785
+ m = new Error(`Pre-pass worker failed: ${U.message}`), h = !0, st.terminate(), p();
2758
2786
  };
2759
- const oe = ()=>{
2760
- h = !0, z && Q(), at.terminate(), p();
2787
+ const pt = ()=>{
2788
+ h = !0, z && j(), st.terminate(), p();
2761
2789
  };
2762
- at.postMessage({
2790
+ st.postMessage({
2763
2791
  type: "prepass-streaming",
2764
2792
  sharedBuffer: r,
2765
2793
  chunkSize: 5e4
2766
2794
  });
2767
- let Ne = !1;
2795
+ let yt = !1;
2768
2796
  for(;;){
2769
- for(; _.length > 0;)yield _.shift();
2770
- if (C) {
2771
- for (const P of U)try {
2772
- P.terminate();
2797
+ for(; f.length > 0;)yield f.shift();
2798
+ if (w) {
2799
+ for (const U of R)try {
2800
+ U.terminate();
2773
2801
  } catch {}
2774
2802
  try {
2775
- at.terminate();
2803
+ st.terminate();
2776
2804
  } catch {}
2777
- throw C;
2805
+ throw w;
2778
2806
  }
2779
- if (b) {
2780
- for (const P of U)try {
2781
- P.terminate();
2807
+ if (m) {
2808
+ for (const U of R)try {
2809
+ U.terminate();
2782
2810
  } catch {}
2783
- throw b;
2811
+ throw m;
2784
2812
  }
2785
2813
  if (h && !z && u === 0) {
2786
- for (const j of U)try {
2787
- j.terminate();
2814
+ for (const X of R)try {
2815
+ X.terminate();
2788
2816
  } catch {}
2789
2817
  yield {
2790
2818
  type: "complete",
@@ -2793,9 +2821,9 @@ let __tla = Promise.all([
2793
2821
  };
2794
2822
  return;
2795
2823
  }
2796
- if (h && z && w >= U.length && _.length === 0) break;
2797
- await new Promise((P)=>{
2798
- f = P;
2824
+ if (h && z && C >= R.length && f.length === 0) break;
2825
+ await new Promise((U)=>{
2826
+ _ = U;
2799
2827
  });
2800
2828
  }
2801
2829
  const pn = t.getFinalCoordinateInfo();
@@ -2805,14 +2833,14 @@ let __tla = Promise.all([
2805
2833
  coordinateInfo: pn
2806
2834
  };
2807
2835
  }
2808
- let At = null;
2836
+ let Mt = null;
2809
2837
  function qe(i) {
2810
- if (At) throw new Error(`GeometryProcessor ${i} cannot start while ${At} is still running. Wait for the active stream to finish, or cancel it before starting another geometry operation.`);
2811
- return At = i, ()=>{
2812
- At === i && (At = null);
2838
+ if (Mt) throw new Error(`GeometryProcessor ${i} cannot start while ${Mt} is still running. Wait for the active stream to finish, or cancel it before starting another geometry operation.`);
2839
+ return Mt = i, ()=>{
2840
+ Mt === i && (Mt = null);
2813
2841
  };
2814
2842
  }
2815
- we = class {
2843
+ Ce = class {
2816
2844
  static largeFileByteStreamingThreshold = 256 * 1024 * 1024;
2817
2845
  bridge = null;
2818
2846
  platformBridge = null;
@@ -2834,15 +2862,15 @@ let __tla = Promise.all([
2834
2862
  this.bridge?.isInitialized() || await this.init();
2835
2863
  const c = await this.collectMeshesMainThread(t);
2836
2864
  n = c.meshes;
2837
- const l = this.coordinateHandler.processMeshes(n), d = c.buildingRotation, _ = {
2865
+ const l = this.coordinateHandler.processMeshes(n), d = c.buildingRotation, f = {
2838
2866
  ...l,
2839
2867
  buildingRotation: d
2840
- }, f = this.bufferBuilder.processMeshes(n);
2868
+ }, _ = this.bufferBuilder.processMeshes(n);
2841
2869
  return {
2842
- meshes: f.meshes,
2843
- totalTriangles: f.totalTriangles,
2844
- totalVertices: f.totalVertices,
2845
- coordinateInfo: _
2870
+ meshes: _.meshes,
2871
+ totalTriangles: _.totalTriangles,
2872
+ totalVertices: _.totalVertices,
2873
+ coordinateInfo: f
2846
2874
  };
2847
2875
  }
2848
2876
  const s = this.coordinateHandler.processMeshes(n), r = this.bufferBuilder.processMeshes(n);
@@ -2866,7 +2894,7 @@ let __tla = Promise.all([
2866
2894
  }
2867
2895
  async collectMeshesMainThread(t, e) {
2868
2896
  if (!this.bridge) throw new Error("WASM bridge not initialized");
2869
- const n = Z(t), s = new ee(this.bridge.getApi(), n, {
2897
+ const n = tt(t), s = new se(this.bridge.getApi(), n, {
2870
2898
  mergeLayers: this.mergeLayers
2871
2899
  }), r = s.collectMeshes(), a = s.getBuildingRotation();
2872
2900
  return {
@@ -2894,33 +2922,33 @@ let __tla = Promise.all([
2894
2922
  yield {
2895
2923
  type: "complete",
2896
2924
  totalMeshes: 0,
2897
- coordinateInfo: Ct(this.coordinateHandler.getFinalCoordinateInfo(), r)
2925
+ coordinateInfo: St(this.coordinateHandler.getFinalCoordinateInfo(), r)
2898
2926
  };
2899
2927
  return;
2900
2928
  }
2901
- const a = pe(t, e), l = Math.max(a, Math.ceil(s.totalJobs / 30));
2929
+ const a = ge(t, e), l = Math.max(a, Math.ceil(s.totalJobs / 30));
2902
2930
  let d = 0;
2903
- for(let f = 0; f < s.totalJobs; f += l){
2904
- const p = Math.min(f + l, s.totalJobs), g = s.jobs.slice(f * 3, p * 3), u = n.processGeometryBatch(t, g, s.unitScale, s.rtcOffset?.[0] ?? 0, s.rtcOffset?.[1] ?? 0, s.rtcOffset?.[2] ?? 0, s.needsShift, s.voidKeys, s.voidCounts, s.voidValues, s.styleIds, s.styleColors), h = Kn(u);
2931
+ for(let _ = 0; _ < s.totalJobs; _ += l){
2932
+ const p = Math.min(_ + l, s.totalJobs), g = s.jobs.slice(_ * 3, p * 3), u = n.processGeometryBatch(t, g, s.unitScale, s.rtcOffset?.[0] ?? 0, s.rtcOffset?.[1] ?? 0, s.rtcOffset?.[2] ?? 0, s.needsShift, s.voidKeys, s.voidCounts, s.voidValues, s.styleIds, s.styleColors), h = Kn(u);
2905
2933
  if (h.length === 0) {
2906
- await new Promise((w)=>setTimeout(w, 0));
2934
+ await new Promise((C)=>setTimeout(C, 0));
2907
2935
  continue;
2908
2936
  }
2909
2937
  this.coordinateHandler.processMeshesIncremental(h), d += h.length;
2910
- const b = this.coordinateHandler.getCurrentCoordinateInfo(), C = b ? Ct(b, r) : null;
2938
+ const m = this.coordinateHandler.getCurrentCoordinateInfo(), w = m ? St(m, r) : null;
2911
2939
  yield {
2912
2940
  type: "batch",
2913
2941
  meshes: h,
2914
2942
  totalSoFar: d,
2915
- coordinateInfo: C || void 0
2916
- }, await new Promise((w)=>setTimeout(w, 0));
2943
+ coordinateInfo: w || void 0
2944
+ }, await new Promise((C)=>setTimeout(C, 0));
2917
2945
  }
2918
2946
  n.clearPrePassCache?.();
2919
- const _ = Ct(this.coordinateHandler.getFinalCoordinateInfo(), r);
2947
+ const f = St(this.coordinateHandler.getFinalCoordinateInfo(), r);
2920
2948
  yield {
2921
2949
  type: "complete",
2922
2950
  totalMeshes: d,
2923
- coordinateInfo: _
2951
+ coordinateInfo: f
2924
2952
  };
2925
2953
  }
2926
2954
  async *processInstancedStreamingBytes(t, e) {
@@ -2934,56 +2962,56 @@ let __tla = Promise.all([
2934
2962
  type: "complete",
2935
2963
  totalGeometries: 0,
2936
2964
  totalInstances: 0,
2937
- coordinateInfo: Ct(this.coordinateHandler.getFinalCoordinateInfo(), r)
2965
+ coordinateInfo: St(this.coordinateHandler.getFinalCoordinateInfo(), r)
2938
2966
  };
2939
2967
  return;
2940
2968
  }
2941
2969
  let a = 0, c = 0;
2942
2970
  const d = Math.max(e, Math.ceil(s.totalJobs / 30));
2943
- for(let f = 0; f < s.totalJobs; f += d){
2944
- const p = Math.min(f + d, s.totalJobs), g = s.jobs.slice(f * 3, p * 3), u = n.processInstancedGeometryBatch(t, g, s.unitScale, s.rtcOffset?.[0] ?? 0, s.rtcOffset?.[1] ?? 0, s.rtcOffset?.[2] ?? 0, s.needsShift, s.styleIds, s.styleColors), h = Zn(u);
2971
+ for(let _ = 0; _ < s.totalJobs; _ += d){
2972
+ const p = Math.min(_ + d, s.totalJobs), g = s.jobs.slice(_ * 3, p * 3), u = n.processInstancedGeometryBatch(t, g, s.unitScale, s.rtcOffset?.[0] ?? 0, s.rtcOffset?.[1] ?? 0, s.rtcOffset?.[2] ?? 0, s.needsShift, s.styleIds, s.styleColors), h = Zn(u);
2945
2973
  if (h.length === 0) {
2946
2974
  await new Promise((A)=>setTimeout(A, 0));
2947
2975
  continue;
2948
2976
  }
2949
- const b = [];
2977
+ const m = [];
2950
2978
  for (const A of h){
2951
- const M = A.positions, z = A.normals, m = A.indices;
2979
+ const P = A.positions, z = A.normals, x = A.indices;
2952
2980
  if (A.instance_count > 0) {
2953
- const N = A.get_instance(0);
2954
- if (N) {
2955
- const I = N.color;
2956
- b.push({
2957
- expressId: N.expressId,
2958
- positions: M,
2981
+ const v = A.get_instance(0);
2982
+ if (v) {
2983
+ const E = v.color;
2984
+ m.push({
2985
+ expressId: v.expressId,
2986
+ positions: P,
2959
2987
  normals: z,
2960
- indices: m,
2988
+ indices: x,
2961
2989
  color: [
2962
- I[0],
2963
- I[1],
2964
- I[2],
2965
- I[3]
2990
+ E[0],
2991
+ E[1],
2992
+ E[2],
2993
+ E[3]
2966
2994
  ]
2967
2995
  });
2968
2996
  }
2969
2997
  }
2970
2998
  }
2971
- b.length > 0 && this.coordinateHandler.processMeshesIncremental(b), a += h.length, c += h.reduce((A, M)=>A + M.instance_count, 0);
2972
- const C = this.coordinateHandler.getCurrentCoordinateInfo(), w = C ? Ct(C, r) : null;
2999
+ m.length > 0 && this.coordinateHandler.processMeshesIncremental(m), a += h.length, c += h.reduce((A, P)=>A + P.instance_count, 0);
3000
+ const w = this.coordinateHandler.getCurrentCoordinateInfo(), C = w ? St(w, r) : null;
2973
3001
  yield {
2974
3002
  type: "batch",
2975
3003
  geometries: h,
2976
3004
  totalSoFar: a,
2977
- coordinateInfo: w || void 0
3005
+ coordinateInfo: C || void 0
2978
3006
  }, await new Promise((A)=>setTimeout(A, 0));
2979
3007
  }
2980
3008
  n.clearPrePassCache?.();
2981
- const _ = Ct(this.coordinateHandler.getFinalCoordinateInfo(), r);
3009
+ const f = St(this.coordinateHandler.getFinalCoordinateInfo(), r);
2982
3010
  yield {
2983
3011
  type: "complete",
2984
3012
  totalGeometries: a,
2985
3013
  totalInstances: c,
2986
- coordinateInfo: _
3014
+ coordinateInfo: f
2987
3015
  };
2988
3016
  }
2989
3017
  async *processStreaming(t, e, n = 25, s) {
@@ -3004,8 +3032,8 @@ let __tla = Promise.all([
3004
3032
  modelID: 0
3005
3033
  }, console.time("[GeometryProcessor] native-streaming");
3006
3034
  const r = [];
3007
- let a = null, c = !1, l = null, d, _ = 0;
3008
- const f = ()=>{
3035
+ let a = null, c = !1, l = null, d, f = 0;
3036
+ const _ = ()=>{
3009
3037
  a && (a(), a = null);
3010
3038
  }, p = this.platformBridge.processGeometryStreaming(t, {
3011
3039
  onBatch: (u)=>{
@@ -3013,19 +3041,19 @@ let __tla = Promise.all([
3013
3041
  type: "batch",
3014
3042
  meshes: u.meshes,
3015
3043
  nativeTelemetry: u.nativeTelemetry
3016
- }), f();
3044
+ }), _();
3017
3045
  },
3018
3046
  onColorUpdate: (u)=>{
3019
3047
  r.push({
3020
3048
  type: "colorUpdate",
3021
3049
  updates: new Map(u)
3022
- }), f();
3050
+ }), _();
3023
3051
  },
3024
3052
  onComplete: (u)=>{
3025
- this.lastNativeStats = u, d = u.totalMeshes, c = !0, f();
3053
+ this.lastNativeStats = u, d = u.totalMeshes, c = !0, _();
3026
3054
  },
3027
3055
  onError: (u)=>{
3028
- l = u, c = !0, f();
3056
+ l = u, c = !0, _();
3029
3057
  }
3030
3058
  });
3031
3059
  for(; !c || r.length > 0;){
@@ -3038,12 +3066,12 @@ let __tla = Promise.all([
3038
3066
  };
3039
3067
  continue;
3040
3068
  }
3041
- this.coordinateHandler.processMeshesIncremental(u.meshes), _ += u.meshes.length;
3069
+ this.coordinateHandler.processMeshesIncremental(u.meshes), f += u.meshes.length;
3042
3070
  const h = this.coordinateHandler.getCurrentCoordinateInfo();
3043
3071
  yield {
3044
3072
  type: "batch",
3045
3073
  meshes: u.meshes,
3046
- totalSoFar: _,
3074
+ totalSoFar: f,
3047
3075
  coordinateInfo: h || void 0,
3048
3076
  nativeTelemetry: u.nativeTelemetry
3049
3077
  };
@@ -3057,25 +3085,25 @@ let __tla = Promise.all([
3057
3085
  const g = this.coordinateHandler.getFinalCoordinateInfo();
3058
3086
  yield {
3059
3087
  type: "complete",
3060
- totalMeshes: d ?? _,
3088
+ totalMeshes: d ?? f,
3061
3089
  coordinateInfo: g
3062
3090
  }, console.timeEnd("[GeometryProcessor] native-streaming");
3063
3091
  } else {
3064
3092
  if (!this.bridge) throw new Error("WASM bridge not initialized");
3065
- if (t.length >= we.largeFileByteStreamingThreshold) {
3093
+ if (t.length >= Ce.largeFileByteStreamingThreshold) {
3066
3094
  yield* this.processStreamingBytes(t, n);
3067
3095
  return;
3068
3096
  }
3069
- const r = Z(t);
3097
+ const r = tt(t);
3070
3098
  yield {
3071
3099
  type: "model-open",
3072
3100
  modelID: 0
3073
3101
  };
3074
- const a = new ee(this.bridge.getApi(), r, {
3102
+ const a = new se(this.bridge.getApi(), r, {
3075
3103
  mergeLayers: this.mergeLayers
3076
3104
  });
3077
3105
  let c = 0, l;
3078
- const d = pe(t, n);
3106
+ const d = ge(t, n);
3079
3107
  for await (const p of a.collectMeshesStreaming(d)){
3080
3108
  if (p && typeof p == "object" && "type" in p && p.type === "colorUpdate") {
3081
3109
  yield {
@@ -3085,11 +3113,11 @@ let __tla = Promise.all([
3085
3113
  continue;
3086
3114
  }
3087
3115
  if (p && typeof p == "object" && "type" in p && p.type === "rtcOffset") {
3088
- const b = p;
3116
+ const m = p;
3089
3117
  yield {
3090
3118
  type: "rtcOffset",
3091
- rtcOffset: b.rtcOffset,
3092
- hasRtc: b.hasRtc
3119
+ rtcOffset: m.rtcOffset,
3120
+ hasRtc: m.hasRtc
3093
3121
  };
3094
3122
  continue;
3095
3123
  }
@@ -3107,14 +3135,14 @@ let __tla = Promise.all([
3107
3135
  };
3108
3136
  }
3109
3137
  l = a.getBuildingRotation();
3110
- const _ = this.coordinateHandler.getFinalCoordinateInfo(), f = l !== void 0 ? {
3111
- ..._,
3138
+ const f = this.coordinateHandler.getFinalCoordinateInfo(), _ = l !== void 0 ? {
3139
+ ...f,
3112
3140
  buildingRotation: l
3113
- } : _;
3141
+ } : f;
3114
3142
  yield {
3115
3143
  type: "complete",
3116
3144
  totalMeshes: c,
3117
- coordinateInfo: f
3145
+ coordinateInfo: _
3118
3146
  };
3119
3147
  }
3120
3148
  }
@@ -3145,33 +3173,33 @@ let __tla = Promise.all([
3145
3173
  type: "start",
3146
3174
  totalEstimate: t.length / 1e3
3147
3175
  };
3148
- const n = t.length / (1024 * 1024), s = n < 50 ? e : n < 200 ? Math.max(e, 50) : n < 300 ? Math.max(e, 100) : Math.max(e, 200), r = Math.max(s, pe(t, e));
3149
- if (t.length >= we.largeFileByteStreamingThreshold) {
3176
+ const n = t.length / (1024 * 1024), s = n < 50 ? e : n < 200 ? Math.max(e, 50) : n < 300 ? Math.max(e, 100) : Math.max(e, 200), r = Math.max(s, ge(t, e));
3177
+ if (t.length >= Ce.largeFileByteStreamingThreshold) {
3150
3178
  yield* this.processInstancedStreamingBytes(t, r);
3151
3179
  return;
3152
3180
  }
3153
- const a = Z(t);
3181
+ const a = tt(t);
3154
3182
  yield {
3155
3183
  type: "model-open",
3156
3184
  modelID: 0
3157
3185
  };
3158
- const c = new ee(this.bridge.getApi(), a, {
3186
+ const c = new se(this.bridge.getApi(), a, {
3159
3187
  mergeLayers: this.mergeLayers
3160
3188
  });
3161
3189
  let l = 0, d = 0;
3162
- for await (const f of c.collectInstancedGeometryStreaming(s)){
3190
+ for await (const _ of c.collectInstancedGeometryStreaming(s)){
3163
3191
  const p = [];
3164
- for (const u of f){
3165
- const h = u.positions, b = u.normals, C = u.indices;
3192
+ for (const u of _){
3193
+ const h = u.positions, m = u.normals, w = u.indices;
3166
3194
  if (u.instance_count > 0) {
3167
- const w = u.get_instance(0);
3168
- if (w) {
3169
- const A = w.color;
3195
+ const C = u.get_instance(0);
3196
+ if (C) {
3197
+ const A = C.color;
3170
3198
  p.push({
3171
- expressId: w.expressId,
3199
+ expressId: C.expressId,
3172
3200
  positions: h,
3173
- normals: b,
3174
- indices: C,
3201
+ normals: m,
3202
+ indices: w,
3175
3203
  color: [
3176
3204
  A[0],
3177
3205
  A[1],
@@ -3182,21 +3210,21 @@ let __tla = Promise.all([
3182
3210
  }
3183
3211
  }
3184
3212
  }
3185
- p.length > 0 && this.coordinateHandler.processMeshesIncremental(p), l += f.length, d += f.reduce((u, h)=>u + h.instance_count, 0);
3213
+ p.length > 0 && this.coordinateHandler.processMeshesIncremental(p), l += _.length, d += _.reduce((u, h)=>u + h.instance_count, 0);
3186
3214
  const g = this.coordinateHandler.getCurrentCoordinateInfo();
3187
3215
  yield {
3188
3216
  type: "batch",
3189
- geometries: f,
3217
+ geometries: _,
3190
3218
  totalSoFar: l,
3191
3219
  coordinateInfo: g || void 0
3192
3220
  };
3193
3221
  }
3194
- const _ = this.coordinateHandler.getFinalCoordinateInfo();
3222
+ const f = this.coordinateHandler.getFinalCoordinateInfo();
3195
3223
  yield {
3196
3224
  type: "complete",
3197
3225
  totalGeometries: l,
3198
3226
  totalInstances: d,
3199
- coordinateInfo: _
3227
+ coordinateInfo: f
3200
3228
  };
3201
3229
  }
3202
3230
  async *processParallel(t, e, n, s, r, a) {
@@ -3220,8 +3248,8 @@ let __tla = Promise.all([
3220
3248
  let r;
3221
3249
  if (this.isNative && this.platformBridge) console.time("[GeometryProcessor] native-adaptive-sync"), r = (await this.platformBridge.processGeometry(t)).meshes, console.timeEnd("[GeometryProcessor] native-adaptive-sync");
3222
3250
  else {
3223
- const c = Z(t);
3224
- r = new ee(this.bridge.getApi(), c, {
3251
+ const c = tt(t);
3252
+ r = new se(this.bridge.getApi(), c, {
3225
3253
  mergeLayers: this.mergeLayers
3226
3254
  }).collectMeshes();
3227
3255
  }
@@ -3247,12 +3275,12 @@ let __tla = Promise.all([
3247
3275
  }
3248
3276
  parseSymbolicRepresentations(t) {
3249
3277
  if (!this.bridge || !this.bridge.isInitialized()) return null;
3250
- const e = Z(t);
3278
+ const e = tt(t);
3251
3279
  return this.bridge.parseSymbolicRepresentations(e);
3252
3280
  }
3253
3281
  extractProfiles(t, e = 0) {
3254
3282
  if (!this.bridge || !this.bridge.isInitialized()) return null;
3255
- const n = Z(t);
3283
+ const n = tt(t);
3256
3284
  return this.bridge.extractProfiles(n, e);
3257
3285
  }
3258
3286
  dispose() {}
@@ -3274,7 +3302,7 @@ let __tla = Promise.all([
3274
3302
  };
3275
3303
  }
3276
3304
  buildGLTF(t) {
3277
- const e = this.geometryResult.meshes, n = {
3305
+ const e = this.geometryResult.meshes, n = t.colorSource ?? "rendering", s = t.visibleOnly === !0, r = t.hiddenEntityIds ?? null, a = t.isolatedEntityIds ?? null, c = a !== null && a.size > 0, l = t.hiddenIfcTypes ?? null, d = (I)=>s ? !(l && I.ifcType && l.has(I.ifcType) || c && !a.has(I.expressId) || r && r.has(I.expressId)) : !0, f = (I)=>n === "shading" ? I.shadingColor ?? I.color : I.color, _ = {
3278
3306
  asset: {
3279
3307
  version: "2.0",
3280
3308
  generator: "IFC-Lite"
@@ -3295,23 +3323,23 @@ let __tla = Promise.all([
3295
3323
  }
3296
3324
  ]
3297
3325
  };
3298
- t.includeMetadata && (n.asset.extras = {
3326
+ t.includeMetadata && (_.asset.extras = {
3299
3327
  meshCount: e.length,
3300
3328
  vertexCount: this.geometryResult.totalVertices,
3301
3329
  triangleCount: this.geometryResult.totalTriangles
3302
3330
  });
3303
- const s = new Map, r = [];
3304
- function a(m) {
3305
- const N = `${Math.round(m[0] * 100)},${Math.round(m[1] * 100)},${Math.round(m[2] * 100)},${Math.round(m[3] * 100)}`, I = s.get(N);
3306
- if (I !== void 0) return I;
3307
- const F = r.length;
3308
- return r.push({
3331
+ const p = new Map, g = [];
3332
+ function u(I) {
3333
+ const M = `${Math.round(I[0] * 100)},${Math.round(I[1] * 100)},${Math.round(I[2] * 100)},${Math.round(I[3] * 100)}`, R = p.get(M);
3334
+ if (R !== void 0) return R;
3335
+ const j = g.length;
3336
+ return g.push({
3309
3337
  pbrMetallicRoughness: {
3310
3338
  baseColorFactor: [
3311
- m[0],
3312
- m[1],
3313
- m[2],
3314
- m[3]
3339
+ I[0],
3340
+ I[1],
3341
+ I[2],
3342
+ I[3]
3315
3343
  ],
3316
3344
  metallicFactor: 0,
3317
3345
  roughnessFactor: 1
@@ -3319,147 +3347,150 @@ let __tla = Promise.all([
3319
3347
  extensions: {
3320
3348
  KHR_materials_unlit: {}
3321
3349
  },
3322
- ...m[3] < 1 ? {
3350
+ ...I[3] < 1 ? {
3323
3351
  alphaMode: "BLEND"
3324
3352
  } : {}
3325
- }), s.set(N, F), F;
3326
- }
3327
- const c = [];
3328
- let l = 0, d = 0, _ = 0;
3329
- for(let m = 0; m < e.length; m++){
3330
- const N = e[m], I = N.positions, F = N.normals, R = N.indices;
3331
- if (!I.length || !F.length || !R.length || I.length % 3 !== 0 || F.length % 3 !== 0 || I.length !== F.length) continue;
3332
- let E = I[0], y = I[1], T = I[2], O = I[0], V = I[1], U = I[2];
3333
- for(let Q = 3; Q < I.length; Q += 3){
3334
- const H = I[Q], k = I[Q + 1], W = I[Q + 2];
3335
- H < E && (E = H), H > O && (O = H), k < y && (y = k), k > V && (V = k), W < T && (T = W), W > U && (U = W);
3353
+ }), p.set(M, j), j;
3354
+ }
3355
+ const h = [];
3356
+ let m = 0, w = 0, C = 0;
3357
+ for(let I = 0; I < e.length; I++){
3358
+ const M = e[I];
3359
+ if (!d(M)) continue;
3360
+ const R = M.positions, j = M.normals, H = M.indices;
3361
+ if (!R.length || !j.length || !H.length || R.length % 3 !== 0 || j.length % 3 !== 0 || R.length !== j.length) continue;
3362
+ let k = R[0], Y = R[1], W = R[2], at = R[0], q = R[1], st = R[2];
3363
+ for(let lt = 3; lt < R.length; lt += 3){
3364
+ const dt = R[lt], pt = R[lt + 1], yt = R[lt + 2];
3365
+ dt < k && (k = dt), dt > at && (at = dt), pt < Y && (Y = pt), pt > q && (q = pt), yt < W && (W = yt), yt > st && (st = yt);
3336
3366
  }
3337
- c.push({
3338
- meshIndex: m,
3339
- posCount: I.length,
3340
- normCount: F.length,
3341
- idxCount: R.length,
3342
- posByteOffset: l * 4,
3343
- normByteOffset: d * 4,
3344
- idxByteOffset: _ * 4,
3367
+ const ut = f(M);
3368
+ h.push({
3369
+ meshIndex: I,
3370
+ posCount: R.length,
3371
+ normCount: j.length,
3372
+ idxCount: H.length,
3373
+ posByteOffset: m * 4,
3374
+ normByteOffset: w * 4,
3375
+ idxByteOffset: C * 4,
3345
3376
  bounds: {
3346
3377
  min: [
3347
- E,
3348
- y,
3349
- T
3378
+ k,
3379
+ Y,
3380
+ W
3350
3381
  ],
3351
3382
  max: [
3352
- O,
3353
- V,
3354
- U
3383
+ at,
3384
+ q,
3385
+ st
3355
3386
  ]
3356
3387
  },
3357
- materialIdx: N.color ? a(N.color) : void 0
3358
- }), l += I.length, d += F.length, _ += R.length;
3359
- }
3360
- if (l === 0 || d === 0 || _ === 0) throw new Error("Cannot export GLB: no valid geometry data found");
3361
- const f = new Float32Array(l), p = new Float32Array(d), g = new Uint32Array(_);
3362
- let u = 0, h = 0, b = 0;
3363
- const C = [];
3364
- for (const m of c){
3365
- const N = e[m.meshIndex];
3366
- f.set(N.positions, u), p.set(N.normals, h), g.set(N.indices, b), u += m.posCount, h += m.normCount, b += m.idxCount;
3367
- const I = n.accessors.length;
3368
- n.accessors.push({
3388
+ materialIdx: ut ? u(ut) : void 0
3389
+ }), m += R.length, w += j.length, C += H.length;
3390
+ }
3391
+ if (m === 0 || w === 0 || C === 0) throw new Error("Cannot export GLB: no valid geometry data found");
3392
+ const A = new Float32Array(m), P = new Float32Array(w), z = new Uint32Array(C);
3393
+ let x = 0, v = 0, E = 0;
3394
+ const N = [];
3395
+ for (const I of h){
3396
+ const M = e[I.meshIndex];
3397
+ A.set(M.positions, x), P.set(M.normals, v), z.set(M.indices, E), x += I.posCount, v += I.normCount, E += I.idxCount;
3398
+ const R = _.accessors.length;
3399
+ _.accessors.push({
3369
3400
  bufferView: 0,
3370
- byteOffset: m.posByteOffset,
3401
+ byteOffset: I.posByteOffset,
3371
3402
  componentType: 5126,
3372
- count: m.posCount / 3,
3403
+ count: I.posCount / 3,
3373
3404
  type: "VEC3",
3374
- min: m.bounds.min,
3375
- max: m.bounds.max
3405
+ min: I.bounds.min,
3406
+ max: I.bounds.max
3376
3407
  });
3377
- const F = n.accessors.length;
3378
- n.accessors.push({
3408
+ const j = _.accessors.length;
3409
+ _.accessors.push({
3379
3410
  bufferView: 1,
3380
- byteOffset: m.normByteOffset,
3411
+ byteOffset: I.normByteOffset,
3381
3412
  componentType: 5126,
3382
- count: m.normCount / 3,
3413
+ count: I.normCount / 3,
3383
3414
  type: "VEC3"
3384
3415
  });
3385
- const R = n.accessors.length;
3386
- n.accessors.push({
3416
+ const H = _.accessors.length;
3417
+ _.accessors.push({
3387
3418
  bufferView: 2,
3388
- byteOffset: m.idxByteOffset,
3419
+ byteOffset: I.idxByteOffset,
3389
3420
  componentType: 5125,
3390
- count: m.idxCount,
3421
+ count: I.idxCount,
3391
3422
  type: "SCALAR"
3392
3423
  });
3393
- const E = n.meshes.length;
3394
- n.meshes.push({
3424
+ const k = _.meshes.length;
3425
+ _.meshes.push({
3395
3426
  primitives: [
3396
3427
  {
3397
3428
  attributes: {
3398
- POSITION: I,
3399
- NORMAL: F
3429
+ POSITION: R,
3430
+ NORMAL: j
3400
3431
  },
3401
- indices: R,
3402
- ...m.materialIdx !== void 0 ? {
3403
- material: m.materialIdx
3432
+ indices: H,
3433
+ ...I.materialIdx !== void 0 ? {
3434
+ material: I.materialIdx
3404
3435
  } : {}
3405
3436
  }
3406
3437
  ]
3407
3438
  });
3408
- const y = n.nodes.length, T = {
3409
- mesh: E
3439
+ const Y = _.nodes.length, W = {
3440
+ mesh: k
3410
3441
  };
3411
- t.includeMetadata && N.expressId !== void 0 && (T.extras = N.modelIndex !== void 0 ? {
3412
- expressId: N.expressId,
3413
- modelIndex: N.modelIndex
3442
+ t.includeMetadata && M.expressId !== void 0 && (W.extras = M.modelIndex !== void 0 ? {
3443
+ expressId: M.expressId,
3444
+ modelIndex: M.modelIndex
3414
3445
  } : {
3415
- expressId: N.expressId
3416
- }), n.nodes.push(T), C.push(y);
3446
+ expressId: M.expressId
3447
+ }), _.nodes.push(W), N.push(Y);
3417
3448
  }
3418
- n.scenes[0].nodes = C, r.length > 0 && (n.materials = r, n.extensionsUsed = [
3449
+ _.scenes[0].nodes = N, g.length > 0 && (_.materials = g, _.extensionsUsed = [
3419
3450
  "KHR_materials_unlit"
3420
3451
  ]);
3421
- const w = f.buffer, A = p.buffer, M = g.buffer, z = w.byteLength + A.byteLength + M.byteLength;
3422
- n.bufferViews.push({
3452
+ const S = A.buffer, b = P.buffer, y = z.buffer, T = S.byteLength + b.byteLength + y.byteLength;
3453
+ _.bufferViews.push({
3423
3454
  buffer: 0,
3424
3455
  byteOffset: 0,
3425
- byteLength: w.byteLength,
3456
+ byteLength: S.byteLength,
3426
3457
  byteStride: 12,
3427
3458
  target: 34962
3428
- }), n.bufferViews.push({
3459
+ }), _.bufferViews.push({
3429
3460
  buffer: 0,
3430
- byteOffset: w.byteLength,
3431
- byteLength: A.byteLength,
3461
+ byteOffset: S.byteLength,
3462
+ byteLength: b.byteLength,
3432
3463
  byteStride: 12,
3433
3464
  target: 34962
3434
- }), n.bufferViews.push({
3465
+ }), _.bufferViews.push({
3435
3466
  buffer: 0,
3436
- byteOffset: w.byteLength + A.byteLength,
3437
- byteLength: M.byteLength,
3467
+ byteOffset: S.byteLength + b.byteLength,
3468
+ byteLength: y.byteLength,
3438
3469
  target: 34963
3439
- }), n.buffers[0].byteLength = z;
3440
- for (const m of n.accessors){
3441
- const N = n.bufferViews[m.bufferView];
3442
- if (!N) throw new Error(`Accessor references invalid bufferView ${m.bufferView}`);
3443
- let I = 0;
3444
- if (m.componentType === 5126) I = 4;
3445
- else if (m.componentType === 5125) I = 4;
3446
- else if (m.componentType === 5123) I = 2;
3447
- else if (m.componentType === 5120) I = 1;
3448
- else throw new Error(`Unsupported component type: ${m.componentType}`);
3449
- let F = 1;
3450
- if (m.type === "VEC3") F = 3;
3451
- else if (m.type === "VEC2") F = 2;
3452
- else if (m.type === "SCALAR") F = 1;
3453
- else throw new Error(`Unsupported accessor type: ${m.type}`);
3454
- const R = m.count * F * I, E = (m.byteOffset || 0) + R;
3455
- if (E > N.byteLength) throw new Error(`Accessor exceeds bufferView bounds: accessor byteOffset=${m.byteOffset || 0}, length=${R}, bufferView byteLength=${N.byteLength}, end=${E}`);
3470
+ }), _.buffers[0].byteLength = T;
3471
+ for (const I of _.accessors){
3472
+ const M = _.bufferViews[I.bufferView];
3473
+ if (!M) throw new Error(`Accessor references invalid bufferView ${I.bufferView}`);
3474
+ let R = 0;
3475
+ if (I.componentType === 5126) R = 4;
3476
+ else if (I.componentType === 5125) R = 4;
3477
+ else if (I.componentType === 5123) R = 2;
3478
+ else if (I.componentType === 5120) R = 1;
3479
+ else throw new Error(`Unsupported component type: ${I.componentType}`);
3480
+ let j = 1;
3481
+ if (I.type === "VEC3") j = 3;
3482
+ else if (I.type === "VEC2") j = 2;
3483
+ else if (I.type === "SCALAR") j = 1;
3484
+ else throw new Error(`Unsupported accessor type: ${I.type}`);
3485
+ const H = I.count * j * R, k = (I.byteOffset || 0) + H;
3486
+ if (k > M.byteLength) throw new Error(`Accessor exceeds bufferView bounds: accessor byteOffset=${I.byteOffset || 0}, length=${H}, bufferView byteLength=${M.byteLength}, end=${k}`);
3456
3487
  }
3457
3488
  return {
3458
- json: n,
3489
+ json: _,
3459
3490
  buffers: [
3460
- new Uint8Array(w),
3461
- new Uint8Array(A),
3462
- new Uint8Array(M)
3491
+ new Uint8Array(S),
3492
+ new Uint8Array(b),
3493
+ new Uint8Array(y)
3463
3494
  ]
3464
3495
  };
3465
3496
  }
@@ -3470,11 +3501,11 @@ let __tla = Promise.all([
3470
3501
  return n;
3471
3502
  }
3472
3503
  packGLB(t, e) {
3473
- const n = JSON.stringify(t), s = new TextEncoder().encode(n), r = (4 - s.byteLength % 4) % 4, a = s.byteLength + r, c = this.combineBuffers(e), l = (4 - c.byteLength % 4) % 4, d = c.byteLength + l, _ = 20 + a + 8 + d, f = new ArrayBuffer(_), p = new DataView(f), g = new Uint8Array(f);
3504
+ const n = JSON.stringify(t), s = new TextEncoder().encode(n), r = (4 - s.byteLength % 4) % 4, a = s.byteLength + r, c = this.combineBuffers(e), l = (4 - c.byteLength % 4) % 4, d = c.byteLength + l, f = 20 + a + 8 + d, _ = new ArrayBuffer(f), p = new DataView(_), g = new Uint8Array(_);
3474
3505
  let u = 0;
3475
- p.setUint32(u, 1179937895, !0), u += 4, p.setUint32(u, 2, !0), u += 4, p.setUint32(u, _, !0), u += 4, p.setUint32(u, a, !0), u += 4, p.setUint32(u, 1313821514, !0), u += 4, g.set(s, u), u += s.byteLength;
3506
+ p.setUint32(u, 1179937895, !0), u += 4, p.setUint32(u, 2, !0), u += 4, p.setUint32(u, f, !0), u += 4, p.setUint32(u, a, !0), u += 4, p.setUint32(u, 1313821514, !0), u += 4, g.set(s, u), u += s.byteLength;
3476
3507
  for(let h = 0; h < r; h++)g[u++] = 32;
3477
- return p.setUint32(u, d, !0), u += 4, p.setUint32(u, 5130562, !0), u += 4, g.set(c, u), new Uint8Array(f);
3508
+ return p.setUint32(u, d, !0), u += 4, p.setUint32(u, 5130562, !0), u += 4, g.set(c, u), new Uint8Array(_);
3478
3509
  }
3479
3510
  };
3480
3511
  xs = class {
@@ -3499,42 +3530,42 @@ let __tla = Promise.all([
3499
3530
  "hasGeometry"
3500
3531
  ], c = new Map;
3501
3532
  if (s && r) {
3502
- const _ = t ?? this.getAllEntityIds();
3503
- for (const f of _){
3504
- const p = this.getPropertiesForEntity(f);
3533
+ const f = t ?? this.getAllEntityIds();
3534
+ for (const _ of f){
3535
+ const p = this.getPropertiesForEntity(_);
3505
3536
  for (const g of p){
3506
3537
  c.has(g.name) || c.set(g.name, new Set);
3507
3538
  for (const u of g.properties)c.get(g.name).add(u.name);
3508
3539
  }
3509
3540
  }
3510
- for (const [f, p] of c)for (const g of p)a.push(`${f}_${g}`);
3541
+ for (const [_, p] of c)for (const g of p)a.push(`${_}_${g}`);
3511
3542
  }
3512
3543
  const l = [
3513
- this.joinRow(a.map((_)=>this.escapeValue(_)), n)
3544
+ this.joinRow(a.map((f)=>this.escapeValue(f)), n)
3514
3545
  ], d = t ?? this.getAllEntityIds();
3515
- for (const _ of d){
3516
- const f = [
3517
- this.escapeValue(_),
3518
- this.escapeValue(this.store.entities.getGlobalId(_) || ""),
3519
- this.escapeValue(this.store.entities.getName(_) || ""),
3520
- this.escapeValue(this.store.entities.getTypeName(_) || ""),
3521
- this.escapeValue(this.store.entities.getDescription(_) || ""),
3522
- this.escapeValue(this.store.entities.getObjectType(_) || ""),
3523
- this.escapeValue(this.store.entities.hasGeometry(_) ? "true" : "false")
3546
+ for (const f of d){
3547
+ const _ = [
3548
+ this.escapeValue(f),
3549
+ this.escapeValue(this.store.entities.getGlobalId(f) || ""),
3550
+ this.escapeValue(this.store.entities.getName(f) || ""),
3551
+ this.escapeValue(this.store.entities.getTypeName(f) || ""),
3552
+ this.escapeValue(this.store.entities.getDescription(f) || ""),
3553
+ this.escapeValue(this.store.entities.getObjectType(f) || ""),
3554
+ this.escapeValue(this.store.entities.hasGeometry(f) ? "true" : "false")
3524
3555
  ];
3525
3556
  if (s && r) {
3526
- const p = this.getPropertiesForEntity(_), g = new Map;
3557
+ const p = this.getPropertiesForEntity(f), g = new Map;
3527
3558
  for (const u of p){
3528
3559
  const h = new Map;
3529
- for (const b of u.properties)h.set(b.name, b.value);
3560
+ for (const m of u.properties)h.set(m.name, m.value);
3530
3561
  g.set(u.name, h);
3531
3562
  }
3532
- for (const [u, h] of c)for (const b of h){
3533
- const C = g.get(u)?.get(b) ?? "";
3534
- f.push(this.escapeValue(C));
3563
+ for (const [u, h] of c)for (const m of h){
3564
+ const w = g.get(u)?.get(m) ?? "";
3565
+ _.push(this.escapeValue(w));
3535
3566
  }
3536
3567
  }
3537
- l.push(this.joinRow(f, n));
3568
+ l.push(this.joinRow(_, n));
3538
3569
  }
3539
3570
  return l.join(`
3540
3571
  `);
@@ -3555,13 +3586,13 @@ let __tla = Promise.all([
3555
3586
  for (const c of a){
3556
3587
  const l = this.getPropertiesForEntity(c);
3557
3588
  if (!l || l.length === 0) continue;
3558
- const d = this.store.entities.getGlobalId(c) || "", _ = this.store.entities.getName(c) || "", f = this.store.entities.getTypeName(c) || "";
3589
+ const d = this.store.entities.getGlobalId(c) || "", f = this.store.entities.getName(c) || "", _ = this.store.entities.getTypeName(c) || "";
3559
3590
  for (const p of l)if (!(!p.properties || p.properties.length === 0)) for (const g of p.properties){
3560
3591
  const u = [
3561
3592
  this.escapeValue(c),
3562
3593
  this.escapeValue(d),
3563
- this.escapeValue(_),
3564
3594
  this.escapeValue(f),
3595
+ this.escapeValue(_),
3565
3596
  this.escapeValue(p.name || ""),
3566
3597
  this.escapeValue(g.name || ""),
3567
3598
  this.escapeValue(g.value),
@@ -3589,12 +3620,12 @@ let __tla = Promise.all([
3589
3620
  for (const l of c){
3590
3621
  const d = this.getQuantitiesForEntity(l);
3591
3622
  if (!d || d.length === 0) continue;
3592
- const _ = this.store.entities.getGlobalId(l) || "", f = this.store.entities.getName(l) || "", p = this.store.entities.getTypeName(l) || "";
3623
+ const f = this.store.entities.getGlobalId(l) || "", _ = this.store.entities.getName(l) || "", p = this.store.entities.getTypeName(l) || "";
3593
3624
  for (const g of d)if (!(!g.quantities || g.quantities.length === 0)) for (const u of g.quantities){
3594
3625
  const h = [
3595
3626
  this.escapeValue(l),
3596
- this.escapeValue(_),
3597
3627
  this.escapeValue(f),
3628
+ this.escapeValue(_),
3598
3629
  this.escapeValue(p),
3599
3630
  this.escapeValue(g.name || ""),
3600
3631
  this.escapeValue(u.name || ""),
@@ -3620,7 +3651,7 @@ let __tla = Promise.all([
3620
3651
  ], r = this.store.spatialHierarchy;
3621
3652
  if (!r?.project) return s[0];
3622
3653
  const a = (c, l, d)=>{
3623
- const _ = [
3654
+ const f = [
3624
3655
  this.escapeValue(c.expressId),
3625
3656
  this.escapeValue(this.store.entities.getGlobalId(c.expressId) || ""),
3626
3657
  this.escapeValue(c.name || ""),
@@ -3628,7 +3659,7 @@ let __tla = Promise.all([
3628
3659
  this.escapeValue(l ?? ""),
3629
3660
  this.escapeValue(d)
3630
3661
  ];
3631
- if (s.push(this.joinRow(_, e)), c.children) for (const f of c.children)a(f, c.expressId, d + 1);
3662
+ if (s.push(this.joinRow(f, e)), c.children) for (const _ of c.children)a(_, c.expressId, d + 1);
3632
3663
  };
3633
3664
  return a(r.project, null, 0), s.join(`
3634
3665
  `);
@@ -3648,7 +3679,7 @@ let __tla = Promise.all([
3648
3679
  return t.join(e);
3649
3680
  }
3650
3681
  };
3651
- const os = 35, ne = 48, Ke = 57, as = new Set([
3682
+ const os = 35, re = 48, Ke = 57, as = new Set([
3652
3683
  "IFCOWNERHISTORY",
3653
3684
  "IFCAPPLICATION",
3654
3685
  "IFCPERSON",
@@ -3893,37 +3924,37 @@ let __tla = Promise.all([
3893
3924
  "IFCSTRUCTURALSURFACEMEMBERVARYING",
3894
3925
  "IFCSTRUCTURALSURFACEREACTION"
3895
3926
  ]);
3896
- function re(i, t, e, n) {
3927
+ function oe(i, t, e, n) {
3897
3928
  const s = t + e;
3898
3929
  let r = t;
3899
3930
  for(; r < s;)if (i[r] === os) {
3900
- if (r++, r < s && i[r] >= ne && i[r] <= Ke) {
3901
- let a = i[r] - ne;
3902
- for(r++; r < s && i[r] >= ne && i[r] <= Ke;)a = a * 10 + (i[r] - ne), r++;
3931
+ if (r++, r < s && i[r] >= re && i[r] <= Ke) {
3932
+ let a = i[r] - re;
3933
+ for(r++; r < s && i[r] >= re && i[r] <= Ke;)a = a * 10 + (i[r] - re), r++;
3903
3934
  n.push(a);
3904
3935
  }
3905
3936
  } else r++;
3906
3937
  }
3907
- function Ce(i, t, e, n) {
3938
+ function Te(i, t, e, n) {
3908
3939
  const s = new Set, r = [];
3909
3940
  for (const c of i)e.has(c) && !s.has(c) && (s.add(c), r.push(c));
3910
3941
  const a = [];
3911
3942
  for(; r.length > 0;){
3912
3943
  const c = r.pop(), l = e.get(c);
3913
3944
  if (l) {
3914
- a.length = 0, re(t, l.byteOffset, l.byteLength, a);
3945
+ a.length = 0, oe(t, l.byteOffset, l.byteLength, a);
3915
3946
  for(let d = 0; d < a.length; d++){
3916
- const _ = a[d];
3917
- if (!s.has(_) && e.has(_)) {
3918
- if (n && n.has(_)) continue;
3919
- s.add(_), r.push(_);
3947
+ const f = a[d];
3948
+ if (!s.has(f) && e.has(f)) {
3949
+ if (n && n.has(f)) continue;
3950
+ s.add(f), r.push(f);
3920
3951
  }
3921
3952
  }
3922
3953
  }
3923
3954
  }
3924
3955
  return s;
3925
3956
  }
3926
- function Te(i, t, e) {
3957
+ function Fe(i, t, e) {
3927
3958
  const n = new Set, s = new Set;
3928
3959
  for (const [r, a] of i.entityIndex.byId){
3929
3960
  const c = a.type.toUpperCase();
@@ -3970,12 +4001,12 @@ let __tla = Promise.all([
3970
4001
  let l = c.byteOffset;
3971
4002
  const d = c.byteOffset + c.byteLength;
3972
4003
  for(; l < d && n[l] !== 40;)l++;
3973
- if (l >= d || (r.length = 0, re(n, l, d - l, r), r.length < 2)) continue;
3974
- const _ = r[r.length - 2], f = r[r.length - 1];
3975
- e.has(_) && (e.add(f), t.delete(a), t.delete(f));
4004
+ if (l >= d || (r.length = 0, oe(n, l, d - l, r), r.length < 2)) continue;
4005
+ const f = r[r.length - 2], _ = r[r.length - 1];
4006
+ e.has(f) && (e.add(_), t.delete(a), t.delete(_));
3976
4007
  }
3977
4008
  }
3978
- function Fe(i, t, e) {
4009
+ function Re(i, t, e) {
3979
4010
  const n = [], s = [], r = e.byType.get("IFCSTYLEDITEM") ?? [], a = e.byType.get("IFCSTYLEDREPRESENTATION") ?? [];
3980
4011
  for (const c of [
3981
4012
  r,
@@ -3984,21 +4015,21 @@ let __tla = Promise.all([
3984
4015
  if (i.has(l)) continue;
3985
4016
  const d = e.byId.get(l);
3986
4017
  if (!d) continue;
3987
- s.length = 0, re(t, d.byteOffset, d.byteLength, s);
3988
- let _ = !1;
3989
- for(let f = 0; f < s.length; f++)if (i.has(s[f])) {
3990
- _ = !0;
4018
+ s.length = 0, oe(t, d.byteOffset, d.byteLength, s);
4019
+ let f = !1;
4020
+ for(let _ = 0; _ < s.length; _++)if (i.has(s[_])) {
4021
+ f = !0;
3991
4022
  break;
3992
4023
  }
3993
- _ && (i.add(l), n.push(l));
4024
+ f && (i.add(l), n.push(l));
3994
4025
  }
3995
4026
  for(; n.length > 0;){
3996
4027
  const c = n.pop(), l = e.byId.get(c);
3997
4028
  if (l) {
3998
- s.length = 0, re(t, l.byteOffset, l.byteLength, s);
4029
+ s.length = 0, oe(t, l.byteOffset, l.byteLength, s);
3999
4030
  for(let d = 0; d < s.length; d++){
4000
- const _ = s[d];
4001
- !i.has(_) && e.byId.has(_) && (i.add(_), n.push(_));
4031
+ const f = s[d];
4032
+ !i.has(f) && e.byId.has(f) && (i.add(f), n.push(f));
4002
4033
  }
4003
4034
  }
4004
4035
  }
@@ -4109,7 +4140,7 @@ let __tla = Promise.all([
4109
4140
  "IFCBUILTELEMENT",
4110
4141
  "IFCBUILDINGELEMENTPROXY"
4111
4142
  ]
4112
- ]), ge = new Map([]), he = new Map([
4143
+ ]), he = new Map([]), Ie = new Map([
4113
4144
  [
4114
4145
  "IFCFACILITY",
4115
4146
  "IFCBUILDING"
@@ -4382,7 +4413,7 @@ let __tla = Promise.all([
4382
4413
  return fs(t, e)?.get(n) ?? n;
4383
4414
  }
4384
4415
  function fs(i, t) {
4385
- return i === "IFC2X3" && t === "IFC4" ? Ze : i === "IFC4" && t === "IFC2X3" ? tn : i === "IFC4" && t === "IFC4X3" ? ge : i === "IFC4X3" && t === "IFC4" ? he : i === "IFC5" && t === "IFC4X3" || i === "IFC4X3" && t === "IFC5" ? null : i === "IFC5" && t === "IFC4" ? he : i === "IFC4" && t === "IFC5" ? ge : i === "IFC2X3" && (t === "IFC4X3" || t === "IFC5") ? en(Ze, ge) : (i === "IFC4X3" || i === "IFC5") && t === "IFC2X3" ? en(he, tn) : null;
4416
+ return i === "IFC2X3" && t === "IFC4" ? Ze : i === "IFC4" && t === "IFC2X3" ? tn : i === "IFC4" && t === "IFC4X3" ? he : i === "IFC4X3" && t === "IFC4" ? Ie : i === "IFC5" && t === "IFC4X3" || i === "IFC4X3" && t === "IFC5" ? null : i === "IFC5" && t === "IFC4" ? Ie : i === "IFC4" && t === "IFC5" ? he : i === "IFC2X3" && (t === "IFC4X3" || t === "IFC5") ? en(Ze, he) : (i === "IFC4X3" || i === "IFC5") && t === "IFC2X3" ? en(Ie, tn) : null;
4386
4417
  }
4387
4418
  function en(i, t) {
4388
4419
  const e = new Map;
@@ -4390,7 +4421,7 @@ let __tla = Promise.all([
4390
4421
  for (const [n, s] of t)e.has(n) || e.set(n, s);
4391
4422
  return e;
4392
4423
  }
4393
- function ie(i, t, e) {
4424
+ function ae(i, t, e) {
4394
4425
  if (t === e) return i;
4395
4426
  const n = i.match(/^(#\d+=)(\w+)\((.*)?\);?\s*$/);
4396
4427
  if (!n) return i;
@@ -4433,7 +4464,7 @@ let __tla = Promise.all([
4433
4464
  }
4434
4465
  return e.push(r), e.length > t ? e.slice(0, t).join(",") : e.join(",");
4435
4466
  }
4436
- function Re(i, t) {
4467
+ function Se(i, t) {
4437
4468
  return i !== t;
4438
4469
  }
4439
4470
  let gs = 0;
@@ -4443,27 +4474,27 @@ let __tla = Promise.all([
4443
4474
  for(let s = 0; s < 16; s++)e += i[n % 64], n = Math.floor(n / 64) + s;
4444
4475
  return e;
4445
4476
  }
4446
- function nt(i) {
4477
+ function rt(i) {
4447
4478
  return i.replace(/\\/g, "\\\\").replace(/'/g, "''");
4448
4479
  }
4449
- function K(i) {
4480
+ function Z(i) {
4450
4481
  if (!Number.isFinite(i)) return "0.";
4451
4482
  const t = i.toString();
4452
4483
  return t.includes(".") ? t : t + ".";
4453
4484
  }
4454
4485
  function Is(i) {
4455
4486
  switch(i){
4456
- case Et.Length:
4487
+ case Ft.Length:
4457
4488
  return "IFCQUANTITYLENGTH";
4458
- case Et.Area:
4489
+ case Ft.Area:
4459
4490
  return "IFCQUANTITYAREA";
4460
- case Et.Volume:
4491
+ case Ft.Volume:
4461
4492
  return "IFCQUANTITYVOLUME";
4462
- case Et.Count:
4493
+ case Ft.Count:
4463
4494
  return "IFCQUANTITYCOUNT";
4464
- case Et.Weight:
4495
+ case Ft.Weight:
4465
4496
  return "IFCQUANTITYWEIGHT";
4466
- case Et.Time:
4497
+ case Ft.Time:
4467
4498
  return "IFCQUANTITYTIME";
4468
4499
  default:
4469
4500
  return "IFCQUANTITYCOUNT";
@@ -4472,28 +4503,28 @@ let __tla = Promise.all([
4472
4503
  function un(i, t) {
4473
4504
  if (i == null) return "$";
4474
4505
  switch(t){
4475
- case et.String:
4476
- case et.Label:
4477
- case et.Text:
4478
- return `IFCLABEL('${nt(String(i))}')`;
4479
- case et.Identifier:
4480
- return `IFCIDENTIFIER('${nt(String(i))}')`;
4481
- case et.Real:
4506
+ case nt.String:
4507
+ case nt.Label:
4508
+ case nt.Text:
4509
+ return `IFCLABEL('${rt(String(i))}')`;
4510
+ case nt.Identifier:
4511
+ return `IFCIDENTIFIER('${rt(String(i))}')`;
4512
+ case nt.Real:
4482
4513
  {
4483
4514
  const e = Number(i);
4484
4515
  return Number.isFinite(e) ? `IFCREAL(${e.toString().includes(".") ? e : e + "."})` : "$";
4485
4516
  }
4486
- case et.Integer:
4517
+ case nt.Integer:
4487
4518
  return `IFCINTEGER(${Math.round(Number(i))})`;
4488
- case et.Boolean:
4489
- case et.Logical:
4519
+ case nt.Boolean:
4520
+ case nt.Logical:
4490
4521
  return i === !0 ? "IFCBOOLEAN(.T.)" : i === !1 ? "IFCBOOLEAN(.F.)" : "IFCLOGICAL(.U.)";
4491
- case et.Enum:
4522
+ case nt.Enum:
4492
4523
  return `.${String(i).toUpperCase()}.`;
4493
- case et.List:
4494
- return Array.isArray(i) ? `(${i.map((n)=>un(n, et.String)).join(",")})` : "$";
4524
+ case nt.List:
4525
+ return Array.isArray(i) ? `(${i.map((n)=>un(n, nt.String)).join(",")})` : "$";
4495
4526
  default:
4496
- return `IFCLABEL('${nt(String(i))}')`;
4527
+ return `IFCLABEL('${rt(String(i))}')`;
4497
4528
  }
4498
4529
  }
4499
4530
  function ys(i, t) {
@@ -4507,20 +4538,20 @@ let __tla = Promise.all([
4507
4538
  }
4508
4539
  if (/^-?\d+(?:\.\d+)?(?:E[+-]?\d+)?$/i.test(e) && /^-?\d/.test(n)) {
4509
4540
  const s = Number(e);
4510
- return Number.isFinite(s) ? n.includes(".") || /E/i.test(n) ? K(s) : String(s) : "$";
4541
+ return Number.isFinite(s) ? n.includes(".") || /E/i.test(n) ? Z(s) : String(s) : "$";
4511
4542
  }
4512
4543
  return an(i);
4513
4544
  }
4514
- function Se(i) {
4545
+ function Ne(i) {
4515
4546
  if (i == null) return "$";
4516
4547
  if (typeof i == "boolean") return i ? ".T." : ".F.";
4517
- if (typeof i == "number") return Number.isFinite(i) ? Number.isInteger(i) ? String(i) : K(i) : "$";
4518
- if (Array.isArray(i)) return `(${i.map(Se).join(",")})`;
4548
+ if (typeof i == "number") return Number.isFinite(i) ? Number.isInteger(i) ? String(i) : Z(i) : "$";
4549
+ if (Array.isArray(i)) return `(${i.map(Ne).join(",")})`;
4519
4550
  const t = String(i).trim();
4520
- return t === "$" || t === "*" || /^#\d+$/.test(t) ? t : /^\.[A-Z0-9_]+\.$/i.test(t) ? t.toUpperCase() : `'${nt(String(i))}'`;
4551
+ return t === "$" || t === "*" || /^#\d+$/.test(t) ? t : /^\.[A-Z0-9_]+\.$/i.test(t) ? t.toUpperCase() : `'${rt(String(i))}'`;
4521
4552
  }
4522
4553
  function ms(i) {
4523
- return i.map(Se).join(",");
4554
+ return i.map(Ne).join(",");
4524
4555
  }
4525
4556
  function nn(i) {
4526
4557
  const t = [];
@@ -4585,187 +4616,187 @@ let __tla = Promise.all([
4585
4616
  export(t) {
4586
4617
  const e = [];
4587
4618
  let n = 0, s = 0;
4588
- const r = t.schema || this.dataStore.schemaVersion || "IFC4", a = this.dataStore.schemaVersion || "IFC4", c = Re(a, r);
4619
+ const r = t.schema || this.dataStore.schemaVersion || "IFC4", a = this.dataStore.schemaVersion || "IFC4", c = Se(a, r);
4589
4620
  if (r === "IFC2X3" && t.applyMutations !== !1 && t.georefMutations && (Object.keys(t.georefMutations.projectedCRS ?? {}).length > 0 || Object.keys(t.georefMutations.mapConversion ?? {}).length > 0)) throw new Error("Georeferencing creation and editing requires IFC4 or newer. IFC2X3 does not support IfcProjectedCRS or IfcMapConversion.");
4590
- const l = me({
4621
+ const l = be({
4591
4622
  schema: r,
4592
4623
  description: t.description || "Exported from ifc-lite",
4593
4624
  author: t.author || "",
4594
4625
  organization: t.organization || "",
4595
4626
  application: t.application || "ifc-lite",
4596
4627
  filename: t.filename || "export.ifc"
4597
- }), d = new Set, _ = new Map, f = new Map, p = [], g = [], u = new Map, h = new Map, b = new Set, C = new Map, w = new Set, A = new Set;
4628
+ }), d = new Set, f = new Map, _ = new Map, p = [], g = [], u = new Map, h = new Map, m = new Set, w = new Map, C = new Set, A = new Set;
4598
4629
  if (this.mutationView && t.applyMutations !== !1) {
4599
- const I = this.mutationView.getMutations(), F = new Map, R = new Map;
4600
- for (const y of I){
4630
+ const E = this.mutationView.getMutations(), N = new Map, S = new Map;
4631
+ for (const y of E){
4601
4632
  if (y.type === "UPDATE_ATTRIBUTE" && y.attributeName) {
4602
- d.add(y.entityId), f.has(y.entityId) || f.set(y.entityId, new Map), f.get(y.entityId).set(y.attributeName, y.newValue == null ? "" : String(y.newValue));
4633
+ d.add(y.entityId), _.has(y.entityId) || _.set(y.entityId, new Map), _.get(y.entityId).set(y.attributeName, y.newValue == null ? "" : String(y.newValue));
4603
4634
  continue;
4604
4635
  }
4605
4636
  if (!y.psetName) continue;
4606
- const O = y.type === "CREATE_QUANTITY" || y.type === "UPDATE_QUANTITY" || y.type === "DELETE_QUANTITY" ? R : F;
4607
- O.has(y.entityId) || O.set(y.entityId, new Set), O.get(y.entityId).add(y.psetName);
4637
+ const I = y.type === "CREATE_QUANTITY" || y.type === "UPDATE_QUANTITY" || y.type === "DELETE_QUANTITY" ? S : N;
4638
+ I.has(y.entityId) || I.set(y.entityId, new Set), I.get(y.entityId).add(y.psetName);
4608
4639
  }
4609
- const E = this.buildRelDefinesByPropertiesIndex();
4610
- for (const [y, T] of F){
4611
- d.add(y), _.set(y, T), s++;
4612
- const V = this.mutationView.getForEntity(y).filter((H)=>T.has(H.name)), U = new Set;
4613
- V.length > 0 && p.push({
4640
+ const b = this.buildRelDefinesByPropertiesIndex();
4641
+ for (const [y, T] of N){
4642
+ d.add(y), f.set(y, T), s++;
4643
+ const M = this.mutationView.getForEntity(y).filter((H)=>T.has(H.name)), R = new Set;
4644
+ M.length > 0 && p.push({
4614
4645
  entityId: y,
4615
- psets: V
4646
+ psets: M
4616
4647
  });
4617
- const Q = E.get(y);
4618
- if (Q) for (const { relId: H, psetId: k } of Q){
4619
- const W = this.getPropertySetName(k);
4620
- if (W && U.add(W), W && T.has(W)) {
4621
- A.add(H), w.add(k);
4622
- const X = this.getPropertyIdsInSet(k);
4623
- for (const ft of X)w.add(ft);
4648
+ const j = b.get(y);
4649
+ if (j) for (const { relId: H, psetId: k } of j){
4650
+ const Y = this.getPropertySetName(k);
4651
+ if (Y && R.add(Y), Y && T.has(Y)) {
4652
+ A.add(H), C.add(k);
4653
+ const W = this.getPropertyIdsInSet(k);
4654
+ for (const at of W)C.add(at);
4624
4655
  }
4625
4656
  }
4626
4657
  if (this.isTypeEntity(y)) {
4627
4658
  const H = this.getTypeOwnedHasPropertySetIds(y), k = new Set;
4628
- for (const W of H){
4629
- const X = this.getPropertySetName(W);
4630
- if (!X || !T.has(X)) continue;
4631
- k.add(X), w.add(W);
4632
- const ft = this.getPropertyIdsInSet(W);
4633
- for (const st of ft)w.add(st);
4659
+ for (const Y of H){
4660
+ const W = this.getPropertySetName(Y);
4661
+ if (!W || !T.has(W)) continue;
4662
+ k.add(W), C.add(Y);
4663
+ const at = this.getPropertyIdsInSet(Y);
4664
+ for (const q of at)C.add(q);
4634
4665
  }
4635
- for (const W of T)U.has(W) || k.add(W);
4636
- k.size > 0 && (u.set(y, k), h.set(y, H), b.add(y));
4666
+ for (const Y of T)R.has(Y) || k.add(Y);
4667
+ k.size > 0 && (u.set(y, k), h.set(y, H), m.add(y));
4637
4668
  }
4638
4669
  }
4639
- t.includeQuantities === !1 && R.clear();
4640
- for (const [y, T] of R){
4641
- d.add(y), _.has(y) || s++;
4642
- const V = this.mutationView.getQuantitiesForEntity(y).filter((Q)=>T.has(Q.name));
4643
- V.length > 0 && g.push({
4670
+ t.includeQuantities === !1 && S.clear();
4671
+ for (const [y, T] of S){
4672
+ d.add(y), f.has(y) || s++;
4673
+ const M = this.mutationView.getQuantitiesForEntity(y).filter((j)=>T.has(j.name));
4674
+ M.length > 0 && g.push({
4644
4675
  entityId: y,
4645
- qsets: V
4676
+ qsets: M
4646
4677
  });
4647
- const U = E.get(y);
4648
- if (U) for (const { relId: Q, psetId: H } of U){
4678
+ const R = b.get(y);
4679
+ if (R) for (const { relId: j, psetId: H } of R){
4649
4680
  const k = this.getElementQuantityName(H);
4650
4681
  if (k && T.has(k)) {
4651
- A.add(Q), w.add(H);
4652
- const W = this.getPropertyIdsInSet(H);
4653
- for (const X of W)w.add(X);
4682
+ A.add(j), C.add(H);
4683
+ const Y = this.getPropertyIdsInSet(H);
4684
+ for (const W of Y)C.add(W);
4654
4685
  }
4655
4686
  }
4656
4687
  }
4657
- for (const [y] of f)!F.has(y) && !R.has(y) && s++;
4688
+ for (const [y] of _)!N.has(y) && !S.has(y) && s++;
4658
4689
  }
4659
- const M = [];
4690
+ const P = [];
4660
4691
  if (t.applyMutations !== !1 && t.georefMutations) {
4661
- const I = t.georefMutations, F = this.dataStore.entityIndex.byType.get("IFCPROJECTEDCRS"), R = this.dataStore.entityIndex.byType.get("IFCMAPCONVERSION");
4662
- if (I.projectedCRS && F?.length) {
4663
- const E = F[0];
4664
- f.has(E) || f.set(E, new Map);
4665
- const y = f.get(E), T = I.projectedCRS;
4666
- let O = !1;
4667
- if (T.name !== void 0 && (y.set("Name", String(T.name)), O = !0), T.description !== void 0 && (y.set("Description", String(T.description)), O = !0), T.geodeticDatum !== void 0 && (y.set("GeodeticDatum", String(T.geodeticDatum)), O = !0), T.verticalDatum !== void 0 && (y.set("VerticalDatum", String(T.verticalDatum)), O = !0), T.mapProjection !== void 0 && (y.set("MapProjection", String(T.mapProjection)), O = !0), T.mapZone !== void 0 && (y.set("MapZone", String(T.mapZone)), O = !0), T.mapUnit !== void 0) {
4668
- const V = this.resolveMapUnitReference(String(T.mapUnit), M);
4669
- y.set("MapUnit", `#${V}`), O = !0;
4692
+ const E = t.georefMutations, N = this.dataStore.entityIndex.byType.get("IFCPROJECTEDCRS"), S = this.dataStore.entityIndex.byType.get("IFCMAPCONVERSION");
4693
+ if (E.projectedCRS && N?.length) {
4694
+ const b = N[0];
4695
+ _.has(b) || _.set(b, new Map);
4696
+ const y = _.get(b), T = E.projectedCRS;
4697
+ let I = !1;
4698
+ if (T.name !== void 0 && (y.set("Name", String(T.name)), I = !0), T.description !== void 0 && (y.set("Description", String(T.description)), I = !0), T.geodeticDatum !== void 0 && (y.set("GeodeticDatum", String(T.geodeticDatum)), I = !0), T.verticalDatum !== void 0 && (y.set("VerticalDatum", String(T.verticalDatum)), I = !0), T.mapProjection !== void 0 && (y.set("MapProjection", String(T.mapProjection)), I = !0), T.mapZone !== void 0 && (y.set("MapZone", String(T.mapZone)), I = !0), T.mapUnit !== void 0) {
4699
+ const M = this.resolveMapUnitReference(String(T.mapUnit), P);
4700
+ y.set("MapUnit", `#${M}`), I = !0;
4670
4701
  }
4671
- O && !d.has(E) && (d.add(E), s++);
4702
+ I && !d.has(b) && (d.add(b), s++);
4672
4703
  }
4673
- if (I.mapConversion && R?.length) {
4674
- const E = R[0];
4675
- f.has(E) || f.set(E, new Map);
4676
- const y = f.get(E), T = I.mapConversion;
4677
- let O = !1;
4678
- T.eastings !== void 0 && (y.set("Eastings", String(T.eastings)), O = !0), T.northings !== void 0 && (y.set("Northings", String(T.northings)), O = !0), T.orthogonalHeight !== void 0 && (y.set("OrthogonalHeight", String(T.orthogonalHeight)), O = !0), T.xAxisAbscissa !== void 0 && (y.set("XAxisAbscissa", String(T.xAxisAbscissa)), O = !0), T.xAxisOrdinate !== void 0 && (y.set("XAxisOrdinate", String(T.xAxisOrdinate)), O = !0), T.scale !== void 0 && (y.set("Scale", String(T.scale)), O = !0), O && !d.has(E) && (d.add(E), s++);
4704
+ if (E.mapConversion && S?.length) {
4705
+ const b = S[0];
4706
+ _.has(b) || _.set(b, new Map);
4707
+ const y = _.get(b), T = E.mapConversion;
4708
+ let I = !1;
4709
+ T.eastings !== void 0 && (y.set("Eastings", String(T.eastings)), I = !0), T.northings !== void 0 && (y.set("Northings", String(T.northings)), I = !0), T.orthogonalHeight !== void 0 && (y.set("OrthogonalHeight", String(T.orthogonalHeight)), I = !0), T.xAxisAbscissa !== void 0 && (y.set("XAxisAbscissa", String(T.xAxisAbscissa)), I = !0), T.xAxisOrdinate !== void 0 && (y.set("XAxisOrdinate", String(T.xAxisOrdinate)), I = !0), T.scale !== void 0 && (y.set("Scale", String(T.scale)), I = !0), I && !d.has(b) && (d.add(b), s++);
4679
4710
  }
4680
- if (I.projectedCRS && !F?.length) {
4681
- const E = I.projectedCRS, y = this.nextExpressId++, T = E.name ? `'${nt(String(E.name))}'` : "$", O = E.description ? `'${nt(String(E.description))}'` : "$", V = E.geodeticDatum ? `'${nt(String(E.geodeticDatum))}'` : "$", U = E.verticalDatum ? `'${nt(String(E.verticalDatum))}'` : "$", Q = E.mapProjection ? `'${nt(String(E.mapProjection))}'` : "$", H = E.mapZone ? `'${nt(String(E.mapZone))}'` : "$", k = E.mapUnit ? `#${this.resolveMapUnitReference(String(E.mapUnit), M)}` : "$";
4682
- M.push(`#${y}=IFCPROJECTEDCRS(${T},${O},${V},${U},${Q},${H},${k});`), n++;
4683
- const W = this.findPreferredGeometricRepresentationContextId();
4684
- if (W) {
4685
- const X = I.mapConversion || {}, ft = this.nextExpressId++, st = K(Number(X.eastings) || 0), at = K(Number(X.northings) || 0), It = K(Number(X.orthogonalHeight) || 0), Zt = X.xAxisAbscissa !== void 0 ? K(Number(X.xAxisAbscissa)) : "$", St = X.xAxisOrdinate !== void 0 ? K(Number(X.xAxisOrdinate)) : "$", oe = X.scale !== void 0 ? K(Number(X.scale)) : "$";
4686
- M.push(`#${ft}=IFCMAPCONVERSION(#${W},#${y},${st},${at},${It},${Zt},${St},${oe});`), n++;
4711
+ if (E.projectedCRS && !N?.length) {
4712
+ const b = E.projectedCRS, y = this.nextExpressId++, T = b.name ? `'${rt(String(b.name))}'` : "$", I = b.description ? `'${rt(String(b.description))}'` : "$", M = b.geodeticDatum ? `'${rt(String(b.geodeticDatum))}'` : "$", R = b.verticalDatum ? `'${rt(String(b.verticalDatum))}'` : "$", j = b.mapProjection ? `'${rt(String(b.mapProjection))}'` : "$", H = b.mapZone ? `'${rt(String(b.mapZone))}'` : "$", k = b.mapUnit ? `#${this.resolveMapUnitReference(String(b.mapUnit), P)}` : "$";
4713
+ P.push(`#${y}=IFCPROJECTEDCRS(${T},${I},${M},${R},${j},${H},${k});`), n++;
4714
+ const Y = this.findPreferredGeometricRepresentationContextId();
4715
+ if (Y) {
4716
+ const W = E.mapConversion || {}, at = this.nextExpressId++, q = Z(Number(W.eastings) || 0), st = Z(Number(W.northings) || 0), ut = Z(Number(W.orthogonalHeight) || 0), lt = W.xAxisAbscissa !== void 0 ? Z(Number(W.xAxisAbscissa)) : "$", dt = W.xAxisOrdinate !== void 0 ? Z(Number(W.xAxisOrdinate)) : "$", pt = W.scale !== void 0 ? Z(Number(W.scale)) : "$";
4717
+ P.push(`#${at}=IFCMAPCONVERSION(#${Y},#${y},${q},${st},${ut},${lt},${dt},${pt});`), n++;
4687
4718
  } else console.warn("[StepExporter] Cannot create IfcMapConversion: no IfcGeometricRepresentationContext found in source file");
4688
- } else if (I.mapConversion && !R?.length && F?.length) {
4689
- const E = this.findPreferredGeometricRepresentationContextId();
4690
- if (E) {
4691
- const y = I.mapConversion, T = this.nextExpressId++, O = K(Number(y.eastings) || 0), V = K(Number(y.northings) || 0), U = K(Number(y.orthogonalHeight) || 0), Q = y.xAxisAbscissa !== void 0 ? K(Number(y.xAxisAbscissa)) : "$", H = y.xAxisOrdinate !== void 0 ? K(Number(y.xAxisOrdinate)) : "$", k = y.scale !== void 0 ? K(Number(y.scale)) : "$";
4692
- M.push(`#${T}=IFCMAPCONVERSION(#${E},#${F[0]},${O},${V},${U},${Q},${H},${k});`), n++;
4719
+ } else if (E.mapConversion && !S?.length && N?.length) {
4720
+ const b = this.findPreferredGeometricRepresentationContextId();
4721
+ if (b) {
4722
+ const y = E.mapConversion, T = this.nextExpressId++, I = Z(Number(y.eastings) || 0), M = Z(Number(y.northings) || 0), R = Z(Number(y.orthogonalHeight) || 0), j = y.xAxisAbscissa !== void 0 ? Z(Number(y.xAxisAbscissa)) : "$", H = y.xAxisOrdinate !== void 0 ? Z(Number(y.xAxisOrdinate)) : "$", k = y.scale !== void 0 ? Z(Number(y.scale)) : "$";
4723
+ P.push(`#${T}=IFCMAPCONVERSION(#${b},#${N[0]},${I},${M},${R},${j},${H},${k});`), n++;
4693
4724
  } else console.warn("[StepExporter] Cannot create IfcMapConversion: no IfcGeometricRepresentationContext found in source file");
4694
4725
  }
4695
4726
  }
4696
4727
  const z = this.mutationView && t.applyMutations !== !1 && typeof this.mutationView.getNewEntities == "function" ? this.mutationView.getNewEntities().length : 0;
4697
- if (t.deltaOnly && d.size === 0 && z === 0 && M.length === 0) {
4698
- const I = new TextEncoder().encode(l + `DATA;
4728
+ if (t.deltaOnly && d.size === 0 && z === 0 && P.length === 0) {
4729
+ const E = new TextEncoder().encode(l + `DATA;
4699
4730
  ENDSEC;
4700
4731
  END-ISO-10303-21;
4701
4732
  `);
4702
4733
  return {
4703
- content: I,
4734
+ content: E,
4704
4735
  stats: {
4705
4736
  entityCount: 0,
4706
4737
  newEntityCount: 0,
4707
4738
  modifiedEntityCount: 0,
4708
- fileSize: I.byteLength
4739
+ fileSize: E.byteLength
4709
4740
  }
4710
4741
  };
4711
4742
  }
4712
- let m = null;
4743
+ let x = null;
4713
4744
  if (t.visibleOnly && this.dataStore.source) {
4714
- const { roots: I, hiddenProductIds: F } = Te(this.dataStore, t.hiddenEntityIds ?? new Set, t.isolatedEntityIds ?? null);
4715
- m = Ce(I, this.dataStore.source, this.dataStore.entityIndex.byId, F), Fe(m, this.dataStore.source, this.dataStore.entityIndex);
4745
+ const { roots: E, hiddenProductIds: N } = Fe(this.dataStore, t.hiddenEntityIds ?? new Set, t.isolatedEntityIds ?? null);
4746
+ x = Te(E, this.dataStore.source, this.dataStore.entityIndex.byId, N), Re(x, this.dataStore.source, this.dataStore.entityIndex);
4716
4747
  }
4717
4748
  if (!t.deltaOnly && this.dataStore.source) {
4718
- const I = this.dataStore.source, F = !!this.mutationView && t.applyMutations !== !1;
4719
- for (const [R, E] of this.dataStore.entityIndex.byId){
4720
- if (F && typeof this.mutationView.isDeleted == "function" && this.mutationView.isDeleted(R) || E.byteLength === 0 || E.byteOffset < 0 || m !== null && !m.has(R) || w.has(R) || A.has(R) || b.has(R)) continue;
4721
- const y = E.type.toUpperCase();
4749
+ const E = this.dataStore.source, N = !!this.mutationView && t.applyMutations !== !1;
4750
+ for (const [S, b] of this.dataStore.entityIndex.byId){
4751
+ if (N && typeof this.mutationView.isDeleted == "function" && this.mutationView.isDeleted(S) || b.byteLength === 0 || b.byteOffset < 0 || x !== null && !x.has(S) || C.has(S) || A.has(S) || m.has(S)) continue;
4752
+ const y = b.type.toUpperCase();
4722
4753
  if (t.includeGeometry === !1 && this.isGeometryEntity(y)) continue;
4723
- const T = Z(I, E.byteOffset, E.byteOffset + E.byteLength);
4724
- let O = f.has(R) ? this.applyAttributeMutations(T, y, f.get(R)) : T;
4725
- const V = F && typeof this.mutationView.getPositionalMutationsForEntity == "function" ? this.mutationView.getPositionalMutationsForEntity(R) : null;
4726
- if (V && V.size > 0 && (O = this.applyPositionalMutations(O, V), d.has(R) || (d.add(R), s++)), c) {
4727
- const U = ie(O, a, r);
4728
- U !== null && e.push(U);
4729
- } else e.push(O);
4754
+ const T = tt(E, b.byteOffset, b.byteOffset + b.byteLength);
4755
+ let I = _.has(S) ? this.applyAttributeMutations(T, y, _.get(S)) : T;
4756
+ const M = N && typeof this.mutationView.getPositionalMutationsForEntity == "function" ? this.mutationView.getPositionalMutationsForEntity(S) : null;
4757
+ if (M && M.size > 0 && (I = this.applyPositionalMutations(I, M), d.has(S) || (d.add(S), s++)), c) {
4758
+ const R = ae(I, a, r);
4759
+ R !== null && e.push(R);
4760
+ } else e.push(I);
4730
4761
  }
4731
4762
  }
4732
- for (const { entityId: I, psets: F } of p){
4733
- const R = this.generatePropertySetEntities(I, F, u.get(I));
4734
- e.push(...R.lines), n += R.count;
4735
- const E = u.get(I);
4736
- if (E && E.size > 0) {
4737
- const y = this.rewriteTypeEntityHasPropertySets(I, h.get(I) ?? [], E, R.generatedTypeOwnedPsetIds);
4738
- y && C.set(I, y);
4763
+ for (const { entityId: E, psets: N } of p){
4764
+ const S = this.generatePropertySetEntities(E, N, u.get(E));
4765
+ e.push(...S.lines), n += S.count;
4766
+ const b = u.get(E);
4767
+ if (b && b.size > 0) {
4768
+ const y = this.rewriteTypeEntityHasPropertySets(E, h.get(E) ?? [], b, S.generatedTypeOwnedPsetIds);
4769
+ y && w.set(E, y);
4739
4770
  }
4740
4771
  }
4741
- for (const [I, F] of u){
4742
- if (C.has(I)) continue;
4743
- const R = this.rewriteTypeEntityHasPropertySets(I, h.get(I) ?? [], F, new Map);
4744
- R && C.set(I, R);
4745
- }
4746
- for (const { entityId: I, qsets: F } of g){
4747
- const R = this.generateQuantitySetEntities(I, F);
4748
- e.push(...R.lines), n += R.count;
4749
- }
4750
- for (const I of C.values())e.push(I);
4751
- for (const I of M)e.push(I);
4752
- if (this.mutationView && t.applyMutations !== !1 && typeof this.mutationView.getNewEntities == "function") for (const I of this.mutationView.getNewEntities()){
4753
- const F = I.type.toUpperCase();
4754
- if (t.includeGeometry === !1 && this.isGeometryEntity(F) || m !== null && !m.has(I.expressId)) continue;
4755
- const R = `#${I.expressId}=${F}(${ms(I.attributes)});`;
4772
+ for (const [E, N] of u){
4773
+ if (w.has(E)) continue;
4774
+ const S = this.rewriteTypeEntityHasPropertySets(E, h.get(E) ?? [], N, new Map);
4775
+ S && w.set(E, S);
4776
+ }
4777
+ for (const { entityId: E, qsets: N } of g){
4778
+ const S = this.generateQuantitySetEntities(E, N);
4779
+ e.push(...S.lines), n += S.count;
4780
+ }
4781
+ for (const E of w.values())e.push(E);
4782
+ for (const E of P)e.push(E);
4783
+ if (this.mutationView && t.applyMutations !== !1 && typeof this.mutationView.getNewEntities == "function") for (const E of this.mutationView.getNewEntities()){
4784
+ const N = E.type.toUpperCase();
4785
+ if (t.includeGeometry === !1 && this.isGeometryEntity(N) || x !== null && !x.has(E.expressId)) continue;
4786
+ const S = `#${E.expressId}=${N}(${ms(E.attributes)});`;
4756
4787
  if (c) {
4757
- const E = ie(R, a, r);
4758
- E !== null && (e.push(E), n++);
4759
- } else e.push(R), n++;
4788
+ const b = ae(S, a, r);
4789
+ b !== null && (e.push(b), n++);
4790
+ } else e.push(S), n++;
4760
4791
  }
4761
- const N = ws(l, e);
4792
+ const v = ws(l, e);
4762
4793
  return {
4763
- content: N,
4794
+ content: v,
4764
4795
  stats: {
4765
4796
  entityCount: e.length,
4766
4797
  newEntityCount: n,
4767
4798
  modifiedEntityCount: s,
4768
- fileSize: N.byteLength
4799
+ fileSize: v.byteLength
4769
4800
  }
4770
4801
  };
4771
4802
  }
@@ -4806,12 +4837,12 @@ END-ISO-10303-21;
4806
4837
  for (const g of c.properties){
4807
4838
  const u = this.nextExpressId++;
4808
4839
  r++;
4809
- const h = un(g.value, g.type), b = g.unit ? this.findUnitId(g.unit) : null, C = b !== null ? bn(b) : null, w = `#${u}=IFCPROPERTYSINGLEVALUE('${nt(g.name)}',$,${h},${C ? an(C) : "$"});`;
4810
- s.push(w), l.push(u);
4840
+ const h = un(g.value, g.type), m = g.unit ? this.findUnitId(g.unit) : null, w = m !== null ? bn(m) : null, C = `#${u}=IFCPROPERTYSINGLEVALUE('${rt(g.name)}',$,${h},${w ? an(w) : "$"});`;
4841
+ s.push(C), l.push(u);
4811
4842
  }
4812
4843
  const d = this.nextExpressId++;
4813
4844
  r++;
4814
- const _ = l.map((g)=>`#${g}`).join(","), f = this.generateGlobalId(), p = `#${d}=IFCPROPERTYSET('${f}',$,'${nt(c.name)}',$,(${_}));`;
4845
+ const f = l.map((g)=>`#${g}`).join(","), _ = this.generateGlobalId(), p = `#${d}=IFCPROPERTYSET('${_}',$,'${rt(c.name)}',$,(${f}));`;
4815
4846
  if (s.push(p), n?.has(c.name)) a.set(c.name, d);
4816
4847
  else {
4817
4848
  const g = this.nextExpressId++;
@@ -4834,16 +4865,16 @@ END-ISO-10303-21;
4834
4865
  for (const u of r.quantities){
4835
4866
  const h = this.nextExpressId++;
4836
4867
  s++;
4837
- const b = Is(u.type), C = K(u.value), w = `#${h}=${b}('${nt(u.name)}',$,$,${C},$);`;
4838
- n.push(w), a.push(h);
4868
+ const m = Is(u.type), w = Z(u.value), C = `#${h}=${m}('${rt(u.name)}',$,$,${w},$);`;
4869
+ n.push(C), a.push(h);
4839
4870
  }
4840
4871
  const c = this.nextExpressId++;
4841
4872
  s++;
4842
- const l = a.map((u)=>`#${u}`).join(","), d = this.generateGlobalId(), _ = `#${c}=IFCELEMENTQUANTITY('${d}',$,'${nt(r.name)}',$,$,(${l}));`;
4843
- n.push(_);
4844
- const f = this.nextExpressId++;
4873
+ const l = a.map((u)=>`#${u}`).join(","), d = this.generateGlobalId(), f = `#${c}=IFCELEMENTQUANTITY('${d}',$,'${rt(r.name)}',$,$,(${l}));`;
4874
+ n.push(f);
4875
+ const _ = this.nextExpressId++;
4845
4876
  s++;
4846
- const p = this.generateGlobalId(), g = `#${f}=IFCRELDEFINESBYPROPERTIES('${p}',$,$,$,(#${t}),#${c});`;
4877
+ const p = this.generateGlobalId(), g = `#${_}=IFCRELDEFINESBYPROPERTIES('${p}',$,$,$,(#${t}),#${c});`;
4847
4878
  n.push(g);
4848
4879
  }
4849
4880
  return {
@@ -4858,9 +4889,9 @@ END-ISO-10303-21;
4858
4889
  if (a.length === 0) return t;
4859
4890
  const c = nn(t.slice(s + 1, r));
4860
4891
  let l = !1;
4861
- for (const [d, _] of n){
4862
- const f = a.indexOf(d);
4863
- f < 0 || f >= c.length || (c[f] = ys(_, c[f]), l = !0);
4892
+ for (const [d, f] of n){
4893
+ const _ = a.indexOf(d);
4894
+ _ < 0 || _ >= c.length || (c[_] = ys(f, c[_]), l = !0);
4864
4895
  }
4865
4896
  return l ? `${t.slice(0, s + 1)}${c.join(",")}${t.slice(r)}` : t;
4866
4897
  }
@@ -4869,7 +4900,7 @@ END-ISO-10303-21;
4869
4900
  if (n < 0 || s < n) return t;
4870
4901
  const r = nn(t.slice(n + 1, s));
4871
4902
  let a = !1;
4872
- for (const [c, l] of e)c < 0 || c >= r.length || (r[c] = Se(l), a = !0);
4903
+ for (const [c, l] of e)c < 0 || c >= r.length || (r[c] = Ne(l), a = !0);
4873
4904
  return a ? `${t.slice(0, n + 1)}${r.join(",")}${t.slice(s)}` : t;
4874
4905
  }
4875
4906
  resolveMapUnitReference(t, e) {
@@ -4880,8 +4911,8 @@ END-ISO-10303-21;
4880
4911
  return e.push(`#${a}=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);`), a;
4881
4912
  }
4882
4913
  if (n === "FOOT" || n === "US SURVEY FOOT") {
4883
- const a = this.nextExpressId++, c = this.nextExpressId++, l = this.nextExpressId++, d = this.nextExpressId++, _ = n === "US SURVEY FOOT" ? 1200 / 3937 : .3048, f = n === "US SURVEY FOOT" ? "US SURVEY FOOT" : "FOOT";
4884
- return e.push(`#${a}=IFCDIMENSIONALEXPONENTS(1,0,0,0,0,0,0);`), e.push(`#${c}=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);`), e.push(`#${l}=IFCMEASUREWITHUNIT(IFCLENGTHMEASURE(${K(_)}),#${c});`), e.push(`#${d}=IFCCONVERSIONBASEDUNIT(#${a},.LENGTHUNIT.,'${f}',#${l});`), d;
4914
+ const a = this.nextExpressId++, c = this.nextExpressId++, l = this.nextExpressId++, d = this.nextExpressId++, f = n === "US SURVEY FOOT" ? 1200 / 3937 : .3048, _ = n === "US SURVEY FOOT" ? "US SURVEY FOOT" : "FOOT";
4915
+ return e.push(`#${a}=IFCDIMENSIONALEXPONENTS(1,0,0,0,0,0,0);`), e.push(`#${c}=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);`), e.push(`#${l}=IFCMEASUREWITHUNIT(IFCLENGTHMEASURE(${Z(f)}),#${c});`), e.push(`#${d}=IFCCONVERSIONBASEDUNIT(#${a},.LENGTHUNIT.,'${_}',#${l});`), d;
4885
4916
  }
4886
4917
  const r = this.nextExpressId++;
4887
4918
  return e.push(`#${r}=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);`), r;
@@ -4898,13 +4929,13 @@ END-ISO-10303-21;
4898
4929
  if (!Array.isArray(l)) return null;
4899
4930
  for (const d of l){
4900
4931
  if (typeof d != "number") continue;
4901
- const _ = this.dataStore.entityIndex.byId.get(d), f = _ ? this.entityExtractor.extractEntity(_) : null;
4902
- if (!f) continue;
4903
- const p = f.type.toUpperCase(), g = f.attributes ?? [];
4932
+ const f = this.dataStore.entityIndex.byId.get(d), _ = f ? this.entityExtractor.extractEntity(f) : null;
4933
+ if (!_) continue;
4934
+ const p = _.type.toUpperCase(), g = _.attributes ?? [];
4904
4935
  if ((typeof g[1] == "string" ? g[1].replace(/\./g, "").toUpperCase() : "") === "LENGTHUNIT") {
4905
4936
  if (p === "IFCSIUNIT") {
4906
- const h = typeof g[2] == "string" ? g[2].replace(/\./g, "").toUpperCase() : "", b = typeof g[3] == "string" ? g[3].replace(/\./g, "").toUpperCase() : "", C = h ? `${h}${b}` : b;
4907
- if (t === "METRE" && (C === "METRE" || C === "METER")) return d;
4937
+ const h = typeof g[2] == "string" ? g[2].replace(/\./g, "").toUpperCase() : "", m = typeof g[3] == "string" ? g[3].replace(/\./g, "").toUpperCase() : "", w = h ? `${h}${m}` : m;
4938
+ if (t === "METRE" && (w === "METRE" || w === "METER")) return d;
4908
4939
  }
4909
4940
  if (p === "IFCCONVERSIONBASEDUNIT" && (typeof g[2] == "string" ? this.normalizeMapUnitName(g[2]) : "") === t) return d;
4910
4941
  }
@@ -4987,7 +5018,7 @@ END-ISO-10303-21;
4987
5018
  getRelatedEntities(t) {
4988
5019
  const e = this.dataStore.entityIndex.byId.get(t);
4989
5020
  if (!e || !this.dataStore.source) return [];
4990
- const s = Z(this.dataStore.source, e.byteOffset, e.byteOffset + e.byteLength).match(/\(([^)]+)\)\s*,\s*#(\d+)\s*\)\s*;/);
5021
+ const s = tt(this.dataStore.source, e.byteOffset, e.byteOffset + e.byteLength).match(/\(([^)]+)\)\s*,\s*#(\d+)\s*\)\s*;/);
4991
5022
  if (!s) return [];
4992
5023
  const r = s[1], a = [], c = r.matchAll(/#(\d+)/g);
4993
5024
  for (const l of c)a.push(parseInt(l[1], 10));
@@ -4996,25 +5027,25 @@ END-ISO-10303-21;
4996
5027
  getRelatedPropertySet(t) {
4997
5028
  const e = this.dataStore.entityIndex.byId.get(t);
4998
5029
  if (!e || !this.dataStore.source) return null;
4999
- const s = Z(this.dataStore.source, e.byteOffset, e.byteOffset + e.byteLength).match(/,\s*#(\d+)\s*\)\s*;$/);
5030
+ const s = tt(this.dataStore.source, e.byteOffset, e.byteOffset + e.byteLength).match(/,\s*#(\d+)\s*\)\s*;$/);
5000
5031
  return s ? parseInt(s[1], 10) : null;
5001
5032
  }
5002
5033
  getPropertySetName(t) {
5003
5034
  const e = this.dataStore.entityIndex.byId.get(t);
5004
5035
  if (!e || !this.dataStore.source) return null;
5005
- const s = Z(this.dataStore.source, e.byteOffset, e.byteOffset + e.byteLength).match(/IFCPROPERTYSET\s*\([^,]*,[^,]*,'([^']*)'/i);
5036
+ const s = tt(this.dataStore.source, e.byteOffset, e.byteOffset + e.byteLength).match(/IFCPROPERTYSET\s*\([^,]*,[^,]*,'([^']*)'/i);
5006
5037
  return s ? s[1] : null;
5007
5038
  }
5008
5039
  getElementQuantityName(t) {
5009
5040
  const e = this.dataStore.entityIndex.byId.get(t);
5010
5041
  if (!e || !this.dataStore.source) return null;
5011
- const s = Z(this.dataStore.source, e.byteOffset, e.byteOffset + e.byteLength).match(/IFCELEMENTQUANTITY\s*\([^,]*,[^,]*,'([^']*)'/i);
5042
+ const s = tt(this.dataStore.source, e.byteOffset, e.byteOffset + e.byteLength).match(/IFCELEMENTQUANTITY\s*\([^,]*,[^,]*,'([^']*)'/i);
5012
5043
  return s ? s[1] : null;
5013
5044
  }
5014
5045
  getPropertyIdsInSet(t) {
5015
5046
  const e = this.dataStore.entityIndex.byId.get(t);
5016
5047
  if (!e || !this.dataStore.source) return [];
5017
- const s = Z(this.dataStore.source, e.byteOffset, e.byteOffset + e.byteLength).match(/\(\s*(#[^)]+)\s*\)\s*\)\s*;$/);
5048
+ const s = tt(this.dataStore.source, e.byteOffset, e.byteOffset + e.byteLength).match(/\(\s*(#[^)]+)\s*\)\s*\)\s*;$/);
5018
5049
  if (!s) return [];
5019
5050
  const r = s[1], a = [], c = r.matchAll(/#(\d+)/g);
5020
5051
  for (const l of c)a.push(parseInt(l[1], 10));
@@ -5035,8 +5066,8 @@ END-ISO-10303-21;
5035
5066
  for (const l of e){
5036
5067
  const d = this.getPropertySetName(l);
5037
5068
  if (d && n.has(d)) {
5038
- const _ = s.get(d);
5039
- _ !== void 0 && (r.push(_), a.add(d));
5069
+ const f = s.get(d);
5070
+ f !== void 0 && (r.push(f), a.add(d));
5040
5071
  continue;
5041
5072
  }
5042
5073
  r.push(l);
@@ -5048,10 +5079,10 @@ END-ISO-10303-21;
5048
5079
  replaceEntityAttribute(t, e, n) {
5049
5080
  const s = this.dataStore.entityIndex.byId.get(t);
5050
5081
  if (!s || !this.dataStore.source) return null;
5051
- const a = Z(this.dataStore.source, s.byteOffset, s.byteOffset + s.byteLength).match(/^(#\d+\s*=\s*\w+\()([\s\S]*)(\)\s*;)\s*$/);
5082
+ const a = tt(this.dataStore.source, s.byteOffset, s.byteOffset + s.byteLength).match(/^(#\d+\s*=\s*\w+\()([\s\S]*)(\)\s*;)\s*$/);
5052
5083
  if (!a) return null;
5053
- const [, c, l, d] = a, _ = bs(l);
5054
- return e >= _.length ? null : (_[e] = n, `${c}${_.join(",")}${d}`);
5084
+ const [, c, l, d] = a, f = bs(l);
5085
+ return e >= f.length ? null : (f[e] = n, `${c}${f.join(",")}${d}`);
5055
5086
  }
5056
5087
  };
5057
5088
  Ms = function(i, t) {
@@ -5069,11 +5100,11 @@ END-ISO-10303-21;
5069
5100
  `);
5070
5101
  let a = n.byteLength + s.byteLength;
5071
5102
  const c = new Array(t.length);
5072
- for(let _ = 0; _ < t.length; _++)c[_] = e.encode(t[_]), a += c[_].byteLength + r.byteLength;
5103
+ for(let f = 0; f < t.length; f++)c[f] = e.encode(t[f]), a += c[f].byteLength + r.byteLength;
5073
5104
  const l = new Uint8Array(a);
5074
5105
  let d = 0;
5075
5106
  l.set(n, d), d += n.byteLength;
5076
- for(let _ = 0; _ < c.length; _++)l.set(c[_], d), d += c[_].byteLength, l.set(r, d), d += r.byteLength;
5107
+ for(let f = 0; f < c.length; f++)l.set(c[f], d), d += c[f].byteLength, l.set(r, d), d += r.byteLength;
5077
5108
  return l.set(s, d), l;
5078
5109
  }
5079
5110
  const Cs = /#(\d+)/g, Ts = new Set([
@@ -5088,7 +5119,7 @@ END-ISO-10303-21;
5088
5119
  this.models = t;
5089
5120
  }
5090
5121
  export(t) {
5091
- const e = t.onProgress, n = t.schema || "IFC4", s = me({
5122
+ const e = t.onProgress, n = t.schema || "IFC4", s = be({
5092
5123
  schema: n,
5093
5124
  description: t.description || `Merged export of ${this.models.length} models from ifc-lite`,
5094
5125
  author: t.author || "",
@@ -5100,41 +5131,41 @@ END-ISO-10303-21;
5100
5131
  const c = new Map;
5101
5132
  for (const h of this.models){
5102
5133
  c.set(h.id, a - 1);
5103
- let b = 0;
5104
- for (const [C] of h.dataStore.entityIndex.byId)C > b && (b = C);
5105
- a += b;
5134
+ let m = 0;
5135
+ for (const [w] of h.dataStore.entityIndex.byId)w > m && (m = w);
5136
+ a += m;
5106
5137
  }
5107
- const l = this.models[0], d = c.get(l.id), _ = this.findInfrastructureEntities(l.dataStore), f = this.findEntitiesByType(l.dataStore, "IFCPROJECT"), p = this.buildSpatialLookup(l.dataStore);
5138
+ const l = this.models[0], d = c.get(l.id), f = this.findInfrastructureEntities(l.dataStore), _ = this.findEntitiesByType(l.dataStore, "IFCPROJECT"), p = this.buildSpatialLookup(l.dataStore);
5108
5139
  let g = !0;
5109
5140
  for (const h of this.models){
5110
- const b = c.get(h.id), C = h.dataStore.source;
5111
- if (!C || C.length === 0) continue;
5112
- let w = null;
5141
+ const m = c.get(h.id), w = h.dataStore.source;
5142
+ if (!w || w.length === 0) continue;
5143
+ let C = null;
5113
5144
  if (t.visibleOnly) {
5114
- const z = t.hiddenEntityIdsByModel?.get(h.id) ?? new Set, m = t.isolatedEntityIdsByModel?.get(h.id) ?? null, { roots: N, hiddenProductIds: I } = Te(h.dataStore, z, m);
5115
- w = Ce(N, C, h.dataStore.entityIndex.byId, I), Fe(w, C, h.dataStore.entityIndex);
5145
+ const z = t.hiddenEntityIdsByModel?.get(h.id) ?? new Set, x = t.isolatedEntityIdsByModel?.get(h.id) ?? null, { roots: v, hiddenProductIds: E } = Fe(h.dataStore, z, x);
5146
+ C = Te(v, w, h.dataStore.entityIndex.byId, E), Re(C, w, h.dataStore.entityIndex);
5116
5147
  }
5117
- const A = new Map, M = new Set;
5148
+ const A = new Map, P = new Set;
5118
5149
  if (!g) {
5119
5150
  const z = this.findEntitiesByType(h.dataStore, "IFCPROJECT");
5120
- if (f.length > 0) for (const N of z)A.set(N, f[0] + d), M.add(N);
5121
- const m = this.findInfrastructureEntities(h.dataStore);
5122
- for (const [N, I] of _){
5123
- const F = m.get(N);
5124
- F && I.length > 0 && F.length > 0 && (A.set(F[0], I[0] + d), M.add(F[0]));
5151
+ if (_.length > 0) for (const v of z)A.set(v, _[0] + d), P.add(v);
5152
+ const x = this.findInfrastructureEntities(h.dataStore);
5153
+ for (const [v, E] of f){
5154
+ const N = x.get(v);
5155
+ N && E.length > 0 && N.length > 0 && (A.set(N[0], E[0] + d), P.add(N[0]));
5125
5156
  }
5126
- this.unifySpatialEntities(h.dataStore, p, d, A, M), this.skipRedundantRelAggregates(h.dataStore, A, M);
5157
+ this.unifySpatialEntities(h.dataStore, p, d, A, P), this.skipRedundantRelAggregates(h.dataStore, A, P);
5127
5158
  }
5128
- for (const [z, m] of h.dataStore.entityIndex.byId){
5129
- if (w !== null && !w.has(z) || M.has(z)) continue;
5130
- const N = Z(C, m.byteOffset, m.byteOffset + m.byteLength);
5131
- let I;
5132
- b === 0 && A.size === 0 ? I = N : I = this.remapEntityText(N, b, A);
5133
- const F = h.dataStore.schemaVersion || "IFC4";
5134
- if (Re(F, n)) {
5135
- const R = ie(I, F, n);
5136
- R !== null && r.push(R);
5137
- } else r.push(I);
5159
+ for (const [z, x] of h.dataStore.entityIndex.byId){
5160
+ if (C !== null && !C.has(z) || P.has(z)) continue;
5161
+ const v = tt(w, x.byteOffset, x.byteOffset + x.byteLength);
5162
+ let E;
5163
+ m === 0 && A.size === 0 ? E = v : E = this.remapEntityText(v, m, A);
5164
+ const N = h.dataStore.schemaVersion || "IFC4";
5165
+ if (Se(N, n)) {
5166
+ const S = ae(E, N, n);
5167
+ S !== null && r.push(S);
5168
+ } else r.push(E);
5138
5169
  }
5139
5170
  g = !1;
5140
5171
  }
@@ -5155,7 +5186,7 @@ END-ISO-10303-21;
5155
5186
  };
5156
5187
  }
5157
5188
  async exportAsync(t) {
5158
- const e = t.onProgress, n = t.schema || "IFC4", s = me({
5189
+ const e = t.onProgress, n = t.schema || "IFC4", s = be({
5159
5190
  schema: n,
5160
5191
  description: t.description || `Merged export of ${this.models.length} models from ifc-lite`,
5161
5192
  author: t.author || "",
@@ -5164,68 +5195,68 @@ END-ISO-10303-21;
5164
5195
  filename: t.filename || "merged.ifc"
5165
5196
  }), r = [];
5166
5197
  let a = 0;
5167
- for (const w of this.models)a += w.dataStore.entityIndex.byId.size;
5198
+ for (const C of this.models)a += C.dataStore.entityIndex.byId.size;
5168
5199
  let c = 1;
5169
5200
  const l = new Map;
5170
- for (const w of this.models){
5171
- l.set(w.id, c - 1);
5201
+ for (const C of this.models){
5202
+ l.set(C.id, c - 1);
5172
5203
  let A = 0;
5173
- for (const [M] of w.dataStore.entityIndex.byId)M > A && (A = M);
5204
+ for (const [P] of C.dataStore.entityIndex.byId)P > A && (A = P);
5174
5205
  c += A;
5175
5206
  }
5176
- const d = this.models[0], _ = l.get(d.id), f = this.findInfrastructureEntities(d.dataStore), p = this.findEntitiesByType(d.dataStore, "IFCPROJECT"), g = this.buildSpatialLookup(d.dataStore);
5207
+ const d = this.models[0], f = l.get(d.id), _ = this.findInfrastructureEntities(d.dataStore), p = this.findEntitiesByType(d.dataStore, "IFCPROJECT"), g = this.buildSpatialLookup(d.dataStore);
5177
5208
  let u = !0, h = 0;
5178
- const b = 2e3;
5209
+ const m = 2e3;
5179
5210
  e && e({
5180
5211
  phase: "preparing",
5181
5212
  percent: 0,
5182
5213
  entitiesProcessed: 0,
5183
5214
  entitiesTotal: a
5184
5215
  });
5185
- for (const w of this.models){
5186
- const A = l.get(w.id), M = w.dataStore.source;
5187
- if (!M || M.length === 0) continue;
5216
+ for (const C of this.models){
5217
+ const A = l.get(C.id), P = C.dataStore.source;
5218
+ if (!P || P.length === 0) continue;
5188
5219
  e && e({
5189
5220
  phase: "entities",
5190
5221
  percent: a > 0 ? h / a * .85 : 0,
5191
5222
  entitiesProcessed: h,
5192
5223
  entitiesTotal: a,
5193
- currentModel: w.name
5224
+ currentModel: C.name
5194
5225
  });
5195
5226
  let z = null;
5196
5227
  if (t.visibleOnly) {
5197
- const F = t.hiddenEntityIdsByModel?.get(w.id) ?? new Set, R = t.isolatedEntityIdsByModel?.get(w.id) ?? null, { roots: E, hiddenProductIds: y } = Te(w.dataStore, F, R);
5198
- z = Ce(E, M, w.dataStore.entityIndex.byId, y), Fe(z, M, w.dataStore.entityIndex);
5228
+ const N = t.hiddenEntityIdsByModel?.get(C.id) ?? new Set, S = t.isolatedEntityIdsByModel?.get(C.id) ?? null, { roots: b, hiddenProductIds: y } = Fe(C.dataStore, N, S);
5229
+ z = Te(b, P, C.dataStore.entityIndex.byId, y), Re(z, P, C.dataStore.entityIndex);
5199
5230
  }
5200
- const m = new Map, N = new Set;
5231
+ const x = new Map, v = new Set;
5201
5232
  if (!u) {
5202
- const F = this.findEntitiesByType(w.dataStore, "IFCPROJECT");
5203
- if (p.length > 0) for (const E of F)m.set(E, p[0] + _), N.add(E);
5204
- const R = this.findInfrastructureEntities(w.dataStore);
5205
- for (const [E, y] of f){
5206
- const T = R.get(E);
5207
- T && y.length > 0 && T.length > 0 && (m.set(T[0], y[0] + _), N.add(T[0]));
5233
+ const N = this.findEntitiesByType(C.dataStore, "IFCPROJECT");
5234
+ if (p.length > 0) for (const b of N)x.set(b, p[0] + f), v.add(b);
5235
+ const S = this.findInfrastructureEntities(C.dataStore);
5236
+ for (const [b, y] of _){
5237
+ const T = S.get(b);
5238
+ T && y.length > 0 && T.length > 0 && (x.set(T[0], y[0] + f), v.add(T[0]));
5208
5239
  }
5209
- this.unifySpatialEntities(w.dataStore, g, _, m, N), this.skipRedundantRelAggregates(w.dataStore, m, N);
5240
+ this.unifySpatialEntities(C.dataStore, g, f, x, v), this.skipRedundantRelAggregates(C.dataStore, x, v);
5210
5241
  }
5211
- let I = 0;
5212
- for (const [F, R] of w.dataStore.entityIndex.byId){
5213
- if (z !== null && !z.has(F) || N.has(F)) continue;
5214
- const E = Z(M, R.byteOffset, R.byteOffset + R.byteLength);
5242
+ let E = 0;
5243
+ for (const [N, S] of C.dataStore.entityIndex.byId){
5244
+ if (z !== null && !z.has(N) || v.has(N)) continue;
5245
+ const b = tt(P, S.byteOffset, S.byteOffset + S.byteLength);
5215
5246
  let y;
5216
- A === 0 && m.size === 0 ? y = E : y = this.remapEntityText(E, A, m);
5217
- const T = w.dataStore.schemaVersion || "IFC4";
5218
- if (Re(T, n)) {
5219
- const O = ie(y, T, n);
5220
- O !== null && r.push(O);
5247
+ A === 0 && x.size === 0 ? y = b : y = this.remapEntityText(b, A, x);
5248
+ const T = C.dataStore.schemaVersion || "IFC4";
5249
+ if (Se(T, n)) {
5250
+ const I = ae(y, T, n);
5251
+ I !== null && r.push(I);
5221
5252
  } else r.push(y);
5222
- I++, h++, I % b === 0 && (e && e({
5253
+ E++, h++, E % m === 0 && (e && e({
5223
5254
  phase: "entities",
5224
5255
  percent: a > 0 ? h / a * .85 : 0,
5225
5256
  entitiesProcessed: h,
5226
5257
  entitiesTotal: a,
5227
- currentModel: w.name
5228
- }), await new Promise((O)=>setTimeout(O, 0)));
5258
+ currentModel: C.name
5259
+ }), await new Promise((I)=>setTimeout(I, 0)));
5229
5260
  }
5230
5261
  u = !1;
5231
5262
  }
@@ -5234,19 +5265,19 @@ END-ISO-10303-21;
5234
5265
  percent: .9,
5235
5266
  entitiesProcessed: a,
5236
5267
  entitiesTotal: a
5237
- }), await new Promise((w)=>setTimeout(w, 0));
5238
- const C = sn(s, r);
5268
+ }), await new Promise((C)=>setTimeout(C, 0));
5269
+ const w = sn(s, r);
5239
5270
  return e && e({
5240
5271
  phase: "assembling",
5241
5272
  percent: 1,
5242
5273
  entitiesProcessed: a,
5243
5274
  entitiesTotal: a
5244
5275
  }), {
5245
- content: C,
5276
+ content: w,
5246
5277
  stats: {
5247
5278
  modelCount: this.models.length,
5248
5279
  totalEntityCount: r.length,
5249
- fileSize: C.byteLength
5280
+ fileSize: w.byteLength
5250
5281
  }
5251
5282
  };
5252
5283
  }
@@ -5302,36 +5333,36 @@ END-ISO-10303-21;
5302
5333
  unifySpatialEntities(t, e, n, s, r) {
5303
5334
  const a = this.findEntitiesByType(t, "IFCSITE");
5304
5335
  for (const d of a){
5305
- const _ = this.extractEntityName(d, t);
5306
- let f;
5307
- _ && (f = e.sitesByName.get(_.toLowerCase())), f === void 0 && a.length === 1 && e.siteIds.length === 1 && (f = e.siteIds[0]), f !== void 0 && (s.set(d, f + n), r.add(d));
5336
+ const f = this.extractEntityName(d, t);
5337
+ let _;
5338
+ f && (_ = e.sitesByName.get(f.toLowerCase())), _ === void 0 && a.length === 1 && e.siteIds.length === 1 && (_ = e.siteIds[0]), _ !== void 0 && (s.set(d, _ + n), r.add(d));
5308
5339
  }
5309
5340
  const c = this.findEntitiesByType(t, "IFCBUILDING");
5310
5341
  for (const d of c){
5311
- const _ = this.extractEntityName(d, t);
5312
- let f;
5313
- _ && (f = e.buildingsByName.get(_.toLowerCase())), f === void 0 && c.length === 1 && e.buildingIds.length === 1 && (f = e.buildingIds[0]), f !== void 0 && (s.set(d, f + n), r.add(d));
5342
+ const f = this.extractEntityName(d, t);
5343
+ let _;
5344
+ f && (_ = e.buildingsByName.get(f.toLowerCase())), _ === void 0 && c.length === 1 && e.buildingIds.length === 1 && (_ = e.buildingIds[0]), _ !== void 0 && (s.set(d, _ + n), r.add(d));
5314
5345
  }
5315
5346
  const l = new Set;
5316
5347
  for (const d of this.findEntitiesByType(t, "IFCBUILDINGSTOREY")){
5317
- const _ = this.extractEntityName(d, t);
5318
- let f;
5319
- if (_) {
5320
- const p = e.storeysByName.get(_.toLowerCase());
5321
- p !== void 0 && !l.has(p) && (f = p);
5348
+ const f = this.extractEntityName(d, t);
5349
+ let _;
5350
+ if (f) {
5351
+ const p = e.storeysByName.get(f.toLowerCase());
5352
+ p !== void 0 && !l.has(p) && (_ = p);
5322
5353
  }
5323
- if (f === void 0) {
5354
+ if (_ === void 0) {
5324
5355
  const p = this.extractStoreyElevation(d, t);
5325
5356
  if (p !== void 0) for (const g of e.storeysByElevation){
5326
5357
  if (l.has(g.expressId)) continue;
5327
5358
  const u = Math.max(.5, Math.abs(g.elevation) * .01);
5328
5359
  if (Math.abs(p - g.elevation) <= u) {
5329
- f = g.expressId;
5360
+ _ = g.expressId;
5330
5361
  break;
5331
5362
  }
5332
5363
  }
5333
5364
  }
5334
- f !== void 0 && (l.add(f), s.set(d, f + n), r.add(d));
5365
+ _ !== void 0 && (l.add(_), s.set(d, _ + n), r.add(d));
5335
5366
  }
5336
5367
  }
5337
5368
  skipRedundantRelAggregates(t, e, n) {
@@ -5343,9 +5374,9 @@ END-ISO-10303-21;
5343
5374
  const c = this.extractStepAttribute(s, t, 5);
5344
5375
  if (!c) continue;
5345
5376
  const l = [], d = /#(\d+)/g;
5346
- let _;
5347
- for(; (_ = d.exec(c)) !== null;)l.push(parseInt(_[1], 10));
5348
- l.length !== 0 && l.every((f)=>e.has(f)) && n.add(s);
5377
+ let f;
5378
+ for(; (f = d.exec(c)) !== null;)l.push(parseInt(f[1], 10));
5379
+ l.length !== 0 && l.every((_)=>e.has(_)) && n.add(s);
5349
5380
  }
5350
5381
  }
5351
5382
  extractEntityName(t, e) {
@@ -5368,26 +5399,26 @@ END-ISO-10303-21;
5368
5399
  if (!s) return null;
5369
5400
  const r = e.entityIndex.byId.get(t);
5370
5401
  if (!r) return null;
5371
- const a = Z(s, r.byteOffset, r.byteOffset + r.byteLength), c = a.indexOf("(");
5402
+ const a = tt(s, r.byteOffset, r.byteOffset + r.byteLength), c = a.indexOf("(");
5372
5403
  if (c === -1) return null;
5373
- let l = 0, d = 0, _ = c + 1, f = !1;
5404
+ let l = 0, d = 0, f = c + 1, _ = !1;
5374
5405
  for(let p = c + 1; p < a.length; p++){
5375
5406
  const g = a[p];
5376
- if (g === "'" && !f) f = !0;
5377
- else if (g === "'" && f) {
5407
+ if (g === "'" && !_) _ = !0;
5408
+ else if (g === "'" && _) {
5378
5409
  if (p + 1 < a.length && a[p + 1] === "'") {
5379
5410
  p++;
5380
5411
  continue;
5381
5412
  }
5382
- f = !1;
5383
- } else if (!f) {
5413
+ _ = !1;
5414
+ } else if (!_) {
5384
5415
  if (g === "(") l++;
5385
5416
  else if (g === ")") {
5386
- if (l === 0) return d === n ? a.substring(_, p).trim() : null;
5417
+ if (l === 0) return d === n ? a.substring(f, p).trim() : null;
5387
5418
  l--;
5388
5419
  } else if (g === "," && l === 0) {
5389
- if (d === n) return a.substring(_, p).trim();
5390
- d++, _ = p + 1;
5420
+ if (d === n) return a.substring(f, p).trim();
5421
+ d++, f = p + 1;
5391
5422
  }
5392
5423
  }
5393
5424
  }
@@ -5402,15 +5433,15 @@ END-ISO-10303-21;
5402
5433
  `);
5403
5434
  let a = n.byteLength + s.byteLength;
5404
5435
  const c = new Array(t.length);
5405
- for(let _ = 0; _ < t.length; _++)c[_] = e.encode(t[_]), a += c[_].byteLength + r.byteLength;
5436
+ for(let f = 0; f < t.length; f++)c[f] = e.encode(t[f]), a += c[f].byteLength + r.byteLength;
5406
5437
  const l = new Uint8Array(a);
5407
5438
  let d = 0;
5408
5439
  l.set(n, d), d += n.byteLength;
5409
- for(let _ = 0; _ < c.length; _++)l.set(c[_], d), d += c[_].byteLength, l.set(r, d), d += r.byteLength;
5440
+ for(let f = 0; f < c.length; f++)l.set(c[f], d), d += c[f].byteLength, l.set(r, d), d += r.byteLength;
5410
5441
  return l.set(s, d), l;
5411
5442
  }
5412
- let Ie;
5413
- Ie = {
5443
+ let ye;
5444
+ ye = {
5414
5445
  IFC_CORE: "https://ifcx.dev/@standards.buildingsmart.org/ifc/core/ifc@v5a.ifcx",
5415
5446
  IFC_PROP: "https://ifcx.dev/@standards.buildingsmart.org/ifc/core/prop@v5a.ifcx",
5416
5447
  USD: "https://ifcx.dev/@openusd.org/usd@v1.ifcx"
@@ -5451,51 +5482,51 @@ END-ISO-10303-21;
5451
5482
  this.buildEntityMaps();
5452
5483
  const n = this.buildMeshLookup(t), s = this.buildVisibleSet(t), r = t.onlyTreeEntities !== !1 ? this.buildTreeEntitySet() : null, a = [];
5453
5484
  let c = 0, l = 0;
5454
- const { entities: d, strings: _ } = this.dataStore;
5455
- let f = null;
5485
+ const { entities: d, strings: f } = this.dataStore;
5486
+ let _ = null;
5456
5487
  for(let h = 0; h < d.count; h++){
5457
- const b = d.expressId[h];
5458
- if (s && !s.has(b) || r && !r.has(b)) continue;
5459
- const C = d.typeEnum[h], w = be(C) || "IfcElement", A = fn(w.toUpperCase(), e, "IFC5"), M = Rs(A);
5460
- M === "IfcProject" && (f = b);
5461
- const z = this.entityUuids.get(b) || ye(b), m = {};
5462
- m["bsi::ifc::class"] = {
5463
- code: M,
5464
- uri: `https://identifier.buildingsmart.org/uri/buildingsmart/ifc/5/class/${M}`
5488
+ const m = d.expressId[h];
5489
+ if (s && !s.has(m) || r && !r.has(m)) continue;
5490
+ const w = d.typeEnum[h], C = Ee(w) || "IfcElement", A = fn(C.toUpperCase(), e, "IFC5"), P = Rs(A);
5491
+ P === "IfcProject" && (_ = m);
5492
+ const z = this.entityUuids.get(m) || me(m), x = {};
5493
+ x["bsi::ifc::class"] = {
5494
+ code: P,
5495
+ uri: `https://identifier.buildingsmart.org/uri/buildingsmart/ifc/5/class/${P}`
5465
5496
  };
5466
- const N = _.get(d.name[h]) || this.spatialNodeNames.get(b);
5467
- N && (m["bsi::ifc::prop::Name"] = N);
5468
- const I = _.get(d.description[h]);
5469
- if (I && (m["bsi::ifc::prop::Description"] = I), t.includeProperties !== !1) {
5470
- const E = this.getPropertiesForEntity(b, t);
5471
- for (const [y, T] of Object.entries(E))m[y] = T, c++;
5497
+ const v = f.get(d.name[h]) || this.spatialNodeNames.get(m);
5498
+ v && (x["bsi::ifc::prop::Name"] = v);
5499
+ const E = f.get(d.description[h]);
5500
+ if (E && (x["bsi::ifc::prop::Description"] = E), t.includeProperties !== !1) {
5501
+ const b = this.getPropertiesForEntity(m, t);
5502
+ for (const [y, T] of Object.entries(b))x[y] = T, c++;
5472
5503
  }
5473
- const F = {
5504
+ const N = {
5474
5505
  path: z
5475
- }, R = this.getChildrenForEntity(b);
5476
- if (Object.keys(R).length > 0 && (F.children = R), t.includeGeometry !== !1) {
5477
- const E = n.get(b);
5478
- if (E && E.length > 0) {
5479
- const y = this.convertToUsdMesh(E);
5480
- m["usd::usdgeom::mesh"] = y;
5481
- const [T, O, V, U] = E[0].color;
5482
- m["bsi::ifc::presentation::diffuseColor"] = [
5506
+ }, S = this.getChildrenForEntity(m);
5507
+ if (Object.keys(S).length > 0 && (N.children = S), t.includeGeometry !== !1) {
5508
+ const b = n.get(m);
5509
+ if (b && b.length > 0) {
5510
+ const y = this.convertToUsdMesh(b);
5511
+ x["usd::usdgeom::mesh"] = y;
5512
+ const [T, I, M, R] = b[0].color;
5513
+ x["bsi::ifc::presentation::diffuseColor"] = [
5483
5514
  T,
5484
- O,
5485
- V
5486
- ], U < 1 && (m["bsi::ifc::presentation::opacity"] = U), l++;
5515
+ I,
5516
+ M
5517
+ ], R < 1 && (x["bsi::ifc::presentation::opacity"] = R), l++;
5487
5518
  }
5488
5519
  }
5489
- Object.keys(m).length > 0 && (F.attributes = m), a.push(F);
5520
+ Object.keys(x).length > 0 && (N.attributes = x), a.push(N);
5490
5521
  }
5491
- if (f !== null) {
5492
- const h = this.entityUuids.get(f);
5522
+ if (_ !== null) {
5523
+ const h = this.entityUuids.get(_);
5493
5524
  if (h) {
5494
- const b = this.childNames.get(f) || _.get(d.name[this.findEntityIndex(f)]) || "Project", C = ye(0);
5525
+ const m = this.childNames.get(_) || f.get(d.name[this.findEntityIndex(_)]) || "Project", w = me(0);
5495
5526
  a.unshift({
5496
- path: C,
5527
+ path: w,
5497
5528
  children: {
5498
- [b]: h
5529
+ [m]: h
5499
5530
  },
5500
5531
  attributes: {}
5501
5532
  });
@@ -5532,18 +5563,18 @@ END-ISO-10303-21;
5532
5563
  const { spatialHierarchy: t, entities: e, strings: n } = this.dataStore;
5533
5564
  this.entityUuids.clear();
5534
5565
  for(let l = 0; l < e.count; l++){
5535
- const d = e.expressId[l], _ = n.get(e.globalId[l]);
5536
- this.entityUuids.set(d, _ || ye(d));
5566
+ const d = e.expressId[l], f = n.get(e.globalId[l]);
5567
+ this.entityUuids.set(d, f || me(d));
5537
5568
  }
5538
5569
  const s = new Map, r = (l, d)=>{
5539
- if (d) for (const _ of d)s.set(_, l);
5570
+ if (d) for (const f of d)s.set(f, l);
5540
5571
  };
5541
5572
  if (this.spatialChildIds.clear(), this.spatialNodeNames.clear(), t?.project) {
5542
5573
  const l = (d)=>{
5543
5574
  d.name && this.spatialNodeNames.set(d.expressId, d.name);
5544
- const _ = [];
5545
- for (const f of d.children)s.set(f.expressId, d.expressId), _.push(f.expressId), l(f);
5546
- this.spatialChildIds.set(d.expressId, _);
5575
+ const f = [];
5576
+ for (const _ of d.children)s.set(_.expressId, d.expressId), f.push(_.expressId), l(_);
5577
+ this.spatialChildIds.set(d.expressId, f);
5547
5578
  };
5548
5579
  l(t.project);
5549
5580
  }
@@ -5553,17 +5584,17 @@ END-ISO-10303-21;
5553
5584
  t.byBuilding,
5554
5585
  t.byStorey,
5555
5586
  t.bySpace
5556
- ])if (l) for (const [d, _] of l)r(d, _);
5587
+ ])if (l) for (const [d, f] of l)r(d, f);
5557
5588
  }
5558
5589
  const a = new Map;
5559
5590
  for(let l = 0; l < e.count; l++){
5560
5591
  const d = e.expressId[l];
5561
- let _ = n.get(e.name[l]) || "";
5562
- if (_ || (_ = this.spatialNodeNames.get(d) || ""), !_) {
5563
- const f = be(e.typeEnum[l]);
5564
- f !== "Unknown" && (_ = f);
5592
+ let f = n.get(e.name[l]) || "";
5593
+ if (f || (f = this.spatialNodeNames.get(d) || ""), !f) {
5594
+ const _ = Ee(e.typeEnum[l]);
5595
+ _ !== "Unknown" && (f = _);
5565
5596
  }
5566
- a.set(d, _);
5597
+ a.set(d, f);
5567
5598
  }
5568
5599
  const c = new Map;
5569
5600
  for (const [l, d] of s)c.has(d) || c.set(d, []), c.get(d).push(l);
@@ -5574,13 +5605,13 @@ END-ISO-10303-21;
5574
5605
  this.childNames.clear();
5575
5606
  for (const [, l] of c){
5576
5607
  const d = new Map;
5577
- for (const _ of l){
5578
- const p = (a.get(_) || `e${_}`).replace(/[/\\]/g, "_").replace(/\s+/g, "_");
5608
+ for (const f of l){
5609
+ const p = (a.get(f) || `e${f}`).replace(/[/\\]/g, "_").replace(/\s+/g, "_");
5579
5610
  d.set(p, (d.get(p) || 0) + 1);
5580
5611
  }
5581
- for (const _ of l){
5582
- const p = (a.get(_) || `e${_}`).replace(/[/\\]/g, "_").replace(/\s+/g, "_");
5583
- this.childNames.set(_, d.get(p) > 1 ? `${p}_${_}` : p);
5612
+ for (const f of l){
5613
+ const p = (a.get(f) || `e${f}`).replace(/[/\\]/g, "_").replace(/\s+/g, "_");
5614
+ this.childNames.set(f, d.get(p) > 1 ? `${p}_${f}` : p);
5584
5615
  }
5585
5616
  }
5586
5617
  }
@@ -5606,12 +5637,12 @@ END-ISO-10303-21;
5606
5637
  convertPropertyValue(t, e) {
5607
5638
  if (t == null) return null;
5608
5639
  switch(e){
5609
- case et.Real:
5640
+ case nt.Real:
5610
5641
  return Number(t);
5611
- case et.Integer:
5642
+ case nt.Integer:
5612
5643
  return Math.round(Number(t));
5613
- case et.Boolean:
5614
- case et.Logical:
5644
+ case nt.Boolean:
5645
+ case nt.Logical:
5615
5646
  return !!t;
5616
5647
  default:
5617
5648
  return t;
@@ -5703,21 +5734,21 @@ END-ISO-10303-21;
5703
5734
  }
5704
5735
  const s = [];
5705
5736
  return t && s.push({
5706
- uri: Ie.IFC_CORE
5737
+ uri: ye.IFC_CORE
5707
5738
  }), e && s.push({
5708
- uri: Ie.IFC_PROP
5739
+ uri: ye.IFC_PROP
5709
5740
  }), n && s.push({
5710
- uri: Ie.USD
5741
+ uri: ye.USD
5711
5742
  }), s;
5712
5743
  }
5713
- function ye(i) {
5744
+ function me(i) {
5714
5745
  return `00000000-0000-4000-8000-${i.toString(16).padStart(12, "0")}`;
5715
5746
  }
5716
5747
  function Rs(i) {
5717
- const t = wn(i), e = be(t);
5748
+ const t = wn(i), e = Ee(t);
5718
5749
  if (e !== "Unknown") return e;
5719
5750
  const n = i.toLowerCase();
5720
5751
  return n.startsWith("ifc") ? "Ifc" + n.charAt(3).toUpperCase() + n.slice(4) : i;
5721
5752
  }
5722
5753
  });
5723
- export { xs as C, Os as G, rn as I, Ls as M, Es as S, dn as _, we as a, $n as b, Bs as c, Ee as d, Un as e, ee as f, As as g, Ms as h, Ns as i, __tla };
5754
+ export { xs as C, Os as G, rn as I, Ls as M, Es as S, dn as _, Ce as a, $n as b, Bs as c, we as d, Un as e, se as f, As as g, Ms as h, Ns as i, __tla };