@ifc-lite/viewer 1.28.0 → 1.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/.turbo/turbo-build.log +34 -41
  2. package/CHANGELOG.md +10 -0
  3. package/dist/assets/{basketViewActivator-BNRDNuUJ.js → basketViewActivator-Ce38DhXd.js} +7 -7
  4. package/dist/assets/{bcf-DCwCuP7n.js → bcf-Cv_O3JfD.js} +1 -1
  5. package/dist/assets/{deflate-DNGgs8Ur.js → deflate-HbyMq59o.js} +1 -1
  6. package/dist/assets/drawing-2d-DW98umlt.js +257 -0
  7. package/dist/assets/{exporters-B9v81gi9.js → exporters-BuD3XRzB.js} +463 -416
  8. package/dist/assets/geometry.worker-TH3fCCoY.js +1 -0
  9. package/dist/assets/{geotiff-D-YCLS4g.js → geotiff-B2HA8Bwm.js} +10 -10
  10. package/dist/assets/{ids-CCpq-5d3.js → ids-DYUFMd5f.js} +4 -4
  11. package/dist/assets/{ifc-lite_bg-DbgS5EUA.wasm → ifc-lite_bg-BEA5DLmg.wasm} +0 -0
  12. package/dist/assets/index-E9wB0zWt.css +1 -0
  13. package/dist/assets/{index-Bgb3_Pu_.js → index-n5O1QJMM.js} +36808 -39415
  14. package/dist/assets/{index.es-CWfqZyyr.js → index.es-BKVIpZgL.js} +8 -8
  15. package/dist/assets/{jpeg-DGOAeUqU.js → jpeg-C7hjKjPX.js} +1 -1
  16. package/dist/assets/{jspdf.es.min-XPLU2Wkq.js → jspdf.es.min-oWlFc42Y.js} +4 -4
  17. package/dist/assets/{lerc-1PMSCHwX.js → lerc-BfIOGhQz.js} +1 -1
  18. package/dist/assets/{lzw-C65U9lNM.js → lzw-B0jRuuW5.js} +1 -1
  19. package/dist/assets/{native-bridge-XxXos6yI.js → native-bridge-DpB-dtEn.js} +5 -2
  20. package/dist/assets/{packbits-BdMWXC3m.js → packbits-DVvBTC39.js} +1 -1
  21. package/dist/assets/{parser.worker-Ddwo3_06.js → parser.worker-BDsWQ6rc.js} +1 -1
  22. package/dist/assets/{pdf-CRwaZf3s.js → pdf-dVIqI5ac.js} +9 -9
  23. package/dist/assets/raw-C0ZJYGmN.js +1 -0
  24. package/dist/assets/{sandbox-0sDo3g3m.js → sandbox-qpJlrNN0.js} +8 -8
  25. package/dist/assets/{server-client-cTCJ-853.js → server-client-DVZ2huNS.js} +1 -1
  26. package/dist/assets/{webimage-BtakWX7W.js → webimage-B394g0Tw.js} +1 -1
  27. package/dist/assets/{xlsx-B1YOg2QB.js → xlsx-D-oHO76J.js} +7 -7
  28. package/dist/assets/{zstd-CmwsbxmM.js → zstd-Bf38MwV2.js} +1 -1
  29. package/dist/index.html +8 -8
  30. package/package.json +5 -5
  31. package/src/App.tsx +1 -3
  32. package/src/components/viewer/BCFPanel.tsx +1 -16
  33. package/src/components/viewer/ChatPanel.tsx +11 -46
  34. package/src/components/viewer/HierarchyPanel.tsx +2 -176
  35. package/src/components/viewer/IDSPanel.tsx +1 -26
  36. package/src/components/viewer/MainToolbar.tsx +75 -185
  37. package/src/components/viewer/MobileToolbar.tsx +1 -9
  38. package/src/components/viewer/PropertiesPanel.tsx +28 -126
  39. package/src/components/viewer/ScriptPanel.tsx +8 -34
  40. package/src/components/viewer/Section2DPanel.tsx +32 -1
  41. package/src/components/viewer/ViewerLayout.tsx +0 -2
  42. package/src/components/viewer/ViewportContainer.tsx +24 -42
  43. package/src/components/viewer/ViewportOverlays.tsx +1 -4
  44. package/src/components/viewer/useGeometryStreaming.ts +0 -2
  45. package/src/hooks/ingest/federationAlign.ts +7 -0
  46. package/src/hooks/useDrawingGeneration.ts +211 -13
  47. package/src/hooks/useIfcCache.ts +94 -41
  48. package/src/hooks/useIfcFederation.ts +2 -3
  49. package/src/hooks/useIfcLoader.ts +10 -1051
  50. package/src/services/cacheService.ts +9 -25
  51. package/src/services/desktop-export.ts +2 -59
  52. package/src/services/file-dialog.ts +8 -142
  53. package/src/store/constants.ts +23 -0
  54. package/src/store/index.ts +3 -5
  55. package/src/store/slices/drawing2DSlice.ts +8 -0
  56. package/src/store/slices/visibilitySlice.ts +22 -1
  57. package/src/store/types.ts +1 -71
  58. package/src/utils/ifcConfig.ts +0 -12
  59. package/vite.config.ts +6 -3
  60. package/DESKTOP_CONTRACT_VERSION +0 -1
  61. package/dist/assets/drawing-2d-D0dDf6Lh.js +0 -257
  62. package/dist/assets/event-B0kAzHa-.js +0 -1
  63. package/dist/assets/geometry.worker-Bpa3115V.js +0 -1
  64. package/dist/assets/index-BtbXFKsX.css +0 -1
  65. package/dist/assets/raw-CJgQdyuZ.js +0 -1
  66. package/dist/assets/tauri-core-stub-D8Fa-u43.js +0 -1
  67. package/dist/assets/tauri-dialog-stub-r7Wksg7o.js +0 -1
  68. package/dist/assets/tauri-fs-stub-BdeRC7aK.js +0 -1
  69. package/src/components/viewer/DesktopEntitlementBanner.tsx +0 -74
  70. package/src/components/viewer/SettingsPage.tsx +0 -581
  71. package/src/lib/desktop/desktopEntitlementEvents.ts +0 -39
  72. package/src/lib/desktop-entitlement.ts +0 -43
  73. package/src/lib/desktop-product.ts +0 -130
  74. package/src/lib/platform.ts +0 -23
  75. package/src/services/desktop-cache.ts +0 -186
  76. package/src/services/desktop-harness.ts +0 -196
  77. package/src/services/desktop-logger.ts +0 -20
  78. package/src/services/desktop-native-metadata.ts +0 -230
  79. package/src/services/desktop-panel-actions.ts +0 -43
  80. package/src/services/desktop-preferences.ts +0 -44
  81. package/src/services/fs-cache.ts +0 -212
  82. package/src/services/tauri-core-stub.ts +0 -7
  83. package/src/services/tauri-dialog-stub.ts +0 -7
  84. package/src/services/tauri-fs-stub.ts +0 -7
  85. package/src/services/tauri-modules.d.ts +0 -50
  86. package/src/store/slices/desktopEntitlementSlice.ts +0 -86
  87. package/src/utils/desktopModelSnapshot.ts +0 -359
  88. package/src/utils/nativeSpatialDataStore.ts +0 -277
  89. package/src-tauri/Cargo.toml +0 -29
  90. package/src-tauri/build.rs +0 -7
  91. package/src-tauri/capabilities/default.json +0 -18
  92. package/src-tauri/icons/128x128.png +0 -0
  93. package/src-tauri/icons/128x128@2x.png +0 -0
  94. package/src-tauri/icons/32x32.png +0 -0
  95. package/src-tauri/icons/Square107x107Logo.png +0 -0
  96. package/src-tauri/icons/Square142x142Logo.png +0 -0
  97. package/src-tauri/icons/Square150x150Logo.png +0 -0
  98. package/src-tauri/icons/Square284x284Logo.png +0 -0
  99. package/src-tauri/icons/Square30x30Logo.png +0 -0
  100. package/src-tauri/icons/Square310x310Logo.png +0 -0
  101. package/src-tauri/icons/Square44x44Logo.png +0 -0
  102. package/src-tauri/icons/Square71x71Logo.png +0 -0
  103. package/src-tauri/icons/Square89x89Logo.png +0 -0
  104. package/src-tauri/icons/StoreLogo.png +0 -0
  105. package/src-tauri/icons/icon.icns +0 -0
  106. package/src-tauri/icons/icon.ico +0 -0
  107. package/src-tauri/icons/icon.png +0 -0
  108. package/src-tauri/src/lib.rs +0 -21
  109. package/src-tauri/src/main.rs +0 -10
  110. package/src-tauri/tauri.conf.json +0 -39
@@ -1,6 +1,6 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/native-bridge-XxXos6yI.js","assets/sandbox-0sDo3g3m.js","assets/lens-C4p1kQ0p.js"])))=>i.map(i=>d[i]);
2
- import { W as We, _ as je, aX as it, ac as ke, ad as Ye, k as st, l as Et, a_ as De, E as Xe, ao as ie, as as qe, ap as Qe, aS as Je, Y as Ke, j as re, i as Ze, __tla as __tla_0 } from "./sandbox-0sDo3g3m.js";
3
- let ps, hs, Ue, _s, rs, $e, us, wn, Is, ae, gs, fs;
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/native-bridge-DpB-dtEn.js","assets/sandbox-qpJlrNN0.js","assets/lens-C4p1kQ0p.js"])))=>i.map(i=>d[i]);
2
+ import { U as Ye, _ as Xe, aV as it, aa as qe, ab as Qe, P as st, Q as Et, aY as Ge, E as Je, am as re, aq as Ke, an as Ze, aQ as tn, W as en, j as oe, i as nn, __tla as __tla_0 } from "./sandbox-qpJlrNN0.js";
3
+ let ps, hs, De, _s, is, us, Rn, Is, gs, fs, ds;
4
4
  let __tla = Promise.all([
5
5
  (()=>{
6
6
  try {
@@ -9,39 +9,39 @@ let __tla = Promise.all([
9
9
  })()
10
10
  ]).then(async ()=>{
11
11
  let a;
12
- function P(r) {
12
+ function B(r) {
13
13
  Ot === ct.length && ct.push(ct.length + 1);
14
14
  const t = Ot;
15
15
  return Ot = ct[t], ct[t] = r, t;
16
16
  }
17
- function tn(r) {
18
- if (kt == 1) throw new Error("out of js stack");
19
- return ct[--kt] = r, kt;
17
+ function sn(r) {
18
+ if (Yt == 1) throw new Error("out of js stack");
19
+ return ct[--Yt] = r, Yt;
20
20
  }
21
- const he = typeof FinalizationRegistry > "u" ? {
21
+ const pe = typeof FinalizationRegistry > "u" ? {
22
22
  register: ()=>{},
23
23
  unregister: ()=>{}
24
24
  } : new FinalizationRegistry((r)=>r.dtor(r.a, r.b));
25
- function en(r) {
25
+ function rn(r) {
26
26
  r < 132 || (ct[r] = Ot, Ot = r);
27
27
  }
28
- function oe(r, t) {
29
- return r = r >>> 0, an().subarray(r / 4, r / 4 + t);
28
+ function ae(r, t) {
29
+ return r = r >>> 0, Ve().subarray(r / 4, r / 4 + t);
30
30
  }
31
- function nn(r, t) {
32
- return r = r >>> 0, cn().subarray(r / 8, r / 8 + t);
31
+ function on(r, t) {
32
+ return r = r >>> 0, dn().subarray(r / 8, r / 8 + t);
33
33
  }
34
- function ve(r, t) {
35
- return r = r >>> 0, Ge().subarray(r / 4, r / 4 + t);
34
+ function $e(r, t) {
35
+ return r = r >>> 0, ze().subarray(r / 4, r / 4 + t);
36
36
  }
37
- function sn(r, t) {
38
- return r = r >>> 0, on().subarray(r / 8, r / 8 + t);
37
+ function an(r, t) {
38
+ return r = r >>> 0, ln().subarray(r / 8, r / 8 + t);
39
39
  }
40
- function rn(r, t) {
40
+ function cn(r, t) {
41
41
  return r = r >>> 0, Ct().subarray(r / 1, r / 1 + t);
42
42
  }
43
43
  let Ft = null;
44
- function on() {
44
+ function ln() {
45
45
  return (Ft === null || Ft.byteLength === 0) && (Ft = new BigUint64Array(a.memory.buffer)), Ft;
46
46
  }
47
47
  let _t = null;
@@ -49,32 +49,32 @@ let __tla = Promise.all([
49
49
  return (_t === null || _t.buffer.detached === !0 || _t.buffer.detached === void 0 && _t.buffer !== a.memory.buffer) && (_t = new DataView(a.memory.buffer)), _t;
50
50
  }
51
51
  let Rt = null;
52
- function an() {
52
+ function Ve() {
53
53
  return (Rt === null || Rt.byteLength === 0) && (Rt = new Float32Array(a.memory.buffer)), Rt;
54
54
  }
55
55
  let St = null;
56
- function cn() {
56
+ function dn() {
57
57
  return (St === null || St.byteLength === 0) && (St = new Float64Array(a.memory.buffer)), St;
58
58
  }
59
59
  function K(r, t) {
60
- return r = r >>> 0, fn(r, t);
60
+ return r = r >>> 0, pn(r, t);
61
61
  }
62
62
  let Nt = null;
63
- function Ge() {
63
+ function ze() {
64
64
  return (Nt === null || Nt.byteLength === 0) && (Nt = new Uint32Array(a.memory.buffer)), Nt;
65
65
  }
66
66
  let At = null;
67
67
  function Ct() {
68
68
  return (At === null || At.byteLength === 0) && (At = new Uint8Array(a.memory.buffer)), At;
69
69
  }
70
- function j(r) {
70
+ function W(r) {
71
71
  return ct[r];
72
72
  }
73
- function Jt(r, t) {
73
+ function Kt(r, t) {
74
74
  try {
75
75
  return r.apply(this, t);
76
76
  } catch (e) {
77
- a.__wbindgen_export(P(e));
77
+ a.__wbindgen_export(B(e));
78
78
  }
79
79
  }
80
80
  let ct = new Array(128).fill(void 0);
@@ -83,7 +83,7 @@ let __tla = Promise.all([
83
83
  function bt(r) {
84
84
  return r == null;
85
85
  }
86
- function ln(r, t, e, n) {
86
+ function fn(r, t, e, n) {
87
87
  const s = {
88
88
  a: r,
89
89
  b: t,
@@ -100,17 +100,21 @@ let __tla = Promise.all([
100
100
  }
101
101
  };
102
102
  return i._wbg_cb_unref = ()=>{
103
- --s.cnt === 0 && (s.dtor(s.a, s.b), s.a = 0, he.unregister(s));
104
- }, he.register(i, s, s), i;
103
+ --s.cnt === 0 && (s.dtor(s.a, s.b), s.a = 0, pe.unregister(s));
104
+ }, pe.register(i, s, s), i;
105
105
  }
106
- function ut(r, t) {
106
+ function ft(r, t) {
107
107
  const e = t(r.length * 4, 4) >>> 0;
108
- return Ge().set(r, e / 4), v = r.length, e;
108
+ return ze().set(r, e / 4), v = r.length, e;
109
109
  }
110
110
  function gt(r, t) {
111
111
  const e = t(r.length * 1, 1) >>> 0;
112
112
  return Ct().set(r, e / 1), v = r.length, e;
113
113
  }
114
+ function un(r, t) {
115
+ const e = t(r.length * 4, 4) >>> 0;
116
+ return Ve().set(r, e / 4), v = r.length, e;
117
+ }
114
118
  function lt(r, t, e) {
115
119
  if (e === void 0) {
116
120
  const c = xt.encode(r), l = t(c.length, 1) >>> 0;
@@ -131,23 +135,23 @@ let __tla = Promise.all([
131
135
  }
132
136
  return v = o, s;
133
137
  }
134
- let kt = 128;
135
- function B(r) {
136
- const t = j(r);
137
- return en(r), t;
138
+ let Yt = 128;
139
+ function P(r) {
140
+ const t = W(r);
141
+ return rn(r), t;
138
142
  }
139
- let Yt = new TextDecoder("utf-8", {
143
+ let Xt = new TextDecoder("utf-8", {
140
144
  ignoreBOM: !0,
141
145
  fatal: !0
142
146
  });
143
- Yt.decode();
144
- const dn = 2146435072;
145
- let Kt = 0;
146
- function fn(r, t) {
147
- return Kt += t, Kt >= dn && (Yt = new TextDecoder("utf-8", {
147
+ Xt.decode();
148
+ const hn = 2146435072;
149
+ let Zt = 0;
150
+ function pn(r, t) {
151
+ return Zt += t, Zt >= hn && (Xt = new TextDecoder("utf-8", {
148
152
  ignoreBOM: !0,
149
153
  fatal: !0
150
- }), Yt.decode(), Kt = t), Yt.decode(Ct().subarray(r, r + t));
154
+ }), Xt.decode(), Zt = t), Xt.decode(Ct().subarray(r, r + t));
151
155
  }
152
156
  const xt = new TextEncoder;
153
157
  "encodeInto" in xt || (xt.encodeInto = function(r, t) {
@@ -158,48 +162,51 @@ let __tla = Promise.all([
158
162
  };
159
163
  });
160
164
  let v = 0;
161
- function un(r, t, e) {
162
- a.__wasm_bindgen_func_elem_666(r, t, P(e));
165
+ function gn(r, t, e) {
166
+ a.__wasm_bindgen_func_elem_675(r, t, B(e));
163
167
  }
164
- function hn(r, t, e, n) {
165
- a.__wasm_bindgen_func_elem_700(r, t, P(e), P(n));
168
+ function _n(r, t, e, n) {
169
+ a.__wasm_bindgen_func_elem_709(r, t, B(e), B(n));
166
170
  }
167
171
  typeof FinalizationRegistry > "u" || new FinalizationRegistry((r)=>a.__wbg_clashrunresult_free(r >>> 0, 1));
168
172
  typeof FinalizationRegistry > "u" || new FinalizationRegistry((r)=>a.__wbg_clashsession_free(r >>> 0, 1));
169
- const pe = typeof FinalizationRegistry > "u" ? {
173
+ const ge = typeof FinalizationRegistry > "u" ? {
170
174
  register: ()=>{},
171
175
  unregister: ()=>{}
172
- } : new FinalizationRegistry((r)=>a.__wbg_gridaxiscollection_free(r >>> 0, 1)), ge = typeof FinalizationRegistry > "u" ? {
176
+ } : new FinalizationRegistry((r)=>a.__wbg_gridaxiscollection_free(r >>> 0, 1)), _e = typeof FinalizationRegistry > "u" ? {
173
177
  register: ()=>{},
174
178
  unregister: ()=>{}
175
- } : new FinalizationRegistry((r)=>a.__wbg_gridaxisjs_free(r >>> 0, 1)), _e = typeof FinalizationRegistry > "u" ? {
179
+ } : new FinalizationRegistry((r)=>a.__wbg_gridaxisjs_free(r >>> 0, 1)), Ie = typeof FinalizationRegistry > "u" ? {
176
180
  register: ()=>{},
177
181
  unregister: ()=>{}
178
- } : new FinalizationRegistry((r)=>a.__wbg_ifcapi_free(r >>> 0, 1)), Ie = typeof FinalizationRegistry > "u" ? {
182
+ } : new FinalizationRegistry((r)=>a.__wbg_ifcapi_free(r >>> 0, 1)), ye = typeof FinalizationRegistry > "u" ? {
179
183
  register: ()=>{},
180
184
  unregister: ()=>{}
181
- } : new FinalizationRegistry((r)=>a.__wbg_meshcollection_free(r >>> 0, 1)), ye = typeof FinalizationRegistry > "u" ? {
185
+ } : new FinalizationRegistry((r)=>a.__wbg_meshcollection_free(r >>> 0, 1)), me = typeof FinalizationRegistry > "u" ? {
182
186
  register: ()=>{},
183
187
  unregister: ()=>{}
184
- } : new FinalizationRegistry((r)=>a.__wbg_meshdatajs_free(r >>> 0, 1)), me = typeof FinalizationRegistry > "u" ? {
188
+ } : new FinalizationRegistry((r)=>a.__wbg_meshdatajs_free(r >>> 0, 1)), Ee = typeof FinalizationRegistry > "u" ? {
185
189
  register: ()=>{},
186
190
  unregister: ()=>{}
187
- } : new FinalizationRegistry((r)=>a.__wbg_profilecollection_free(r >>> 0, 1)), Ee = typeof FinalizationRegistry > "u" ? {
191
+ } : new FinalizationRegistry((r)=>a.__wbg_meshoutlinejs_free(r >>> 0, 1)), be = typeof FinalizationRegistry > "u" ? {
188
192
  register: ()=>{},
189
193
  unregister: ()=>{}
190
- } : new FinalizationRegistry((r)=>a.__wbg_profileentryjs_free(r >>> 0, 1)), be = typeof FinalizationRegistry > "u" ? {
194
+ } : new FinalizationRegistry((r)=>a.__wbg_profilecollection_free(r >>> 0, 1)), Ce = typeof FinalizationRegistry > "u" ? {
191
195
  register: ()=>{},
192
196
  unregister: ()=>{}
193
- } : new FinalizationRegistry((r)=>a.__wbg_symboliccircle_free(r >>> 0, 1)), Ce = typeof FinalizationRegistry > "u" ? {
197
+ } : new FinalizationRegistry((r)=>a.__wbg_profileentryjs_free(r >>> 0, 1)), we = typeof FinalizationRegistry > "u" ? {
194
198
  register: ()=>{},
195
199
  unregister: ()=>{}
196
- } : new FinalizationRegistry((r)=>a.__wbg_symbolicfillarea_free(r >>> 0, 1)), we = typeof FinalizationRegistry > "u" ? {
200
+ } : new FinalizationRegistry((r)=>a.__wbg_symboliccircle_free(r >>> 0, 1)), Te = typeof FinalizationRegistry > "u" ? {
197
201
  register: ()=>{},
198
202
  unregister: ()=>{}
199
- } : new FinalizationRegistry((r)=>a.__wbg_symbolicpolyline_free(r >>> 0, 1)), Te = typeof FinalizationRegistry > "u" ? {
203
+ } : new FinalizationRegistry((r)=>a.__wbg_symbolicfillarea_free(r >>> 0, 1)), Fe = typeof FinalizationRegistry > "u" ? {
200
204
  register: ()=>{},
201
205
  unregister: ()=>{}
202
- } : new FinalizationRegistry((r)=>a.__wbg_symbolicrepresentationcollection_free(r >>> 0, 1)), Fe = typeof FinalizationRegistry > "u" ? {
206
+ } : new FinalizationRegistry((r)=>a.__wbg_symbolicpolyline_free(r >>> 0, 1)), Re = typeof FinalizationRegistry > "u" ? {
207
+ register: ()=>{},
208
+ unregister: ()=>{}
209
+ } : new FinalizationRegistry((r)=>a.__wbg_symbolicrepresentationcollection_free(r >>> 0, 1)), Se = typeof FinalizationRegistry > "u" ? {
203
210
  register: ()=>{},
204
211
  unregister: ()=>{}
205
212
  } : new FinalizationRegistry((r)=>a.__wbg_symbolictext_free(r >>> 0, 1));
@@ -207,11 +214,11 @@ let __tla = Promise.all([
207
214
  static __wrap(t) {
208
215
  t = t >>> 0;
209
216
  const e = Object.create(Lt.prototype);
210
- return e.__wbg_ptr = t, pe.register(e, e.__wbg_ptr, e), e;
217
+ return e.__wbg_ptr = t, ge.register(e, e.__wbg_ptr, e), e;
211
218
  }
212
219
  __destroy_into_raw() {
213
220
  const t = this.__wbg_ptr;
214
- return this.__wbg_ptr = 0, pe.unregister(this), t;
221
+ return this.__wbg_ptr = 0, ge.unregister(this), t;
215
222
  }
216
223
  free() {
217
224
  const t = this.__destroy_into_raw();
@@ -233,11 +240,11 @@ let __tla = Promise.all([
233
240
  static __wrap(t) {
234
241
  t = t >>> 0;
235
242
  const e = Object.create(Mt.prototype);
236
- return e.__wbg_ptr = t, ge.register(e, e.__wbg_ptr, e), e;
243
+ return e.__wbg_ptr = t, _e.register(e, e.__wbg_ptr, e), e;
237
244
  }
238
245
  __destroy_into_raw() {
239
246
  const t = this.__wbg_ptr;
240
- return this.__wbg_ptr = 0, ge.unregister(this), t;
247
+ return this.__wbg_ptr = 0, _e.unregister(this), t;
241
248
  }
242
249
  free() {
243
250
  const t = this.__destroy_into_raw();
@@ -245,7 +252,7 @@ let __tla = Promise.all([
245
252
  }
246
253
  get end() {
247
254
  const t = a.gridaxisjs_end(this.__wbg_ptr);
248
- return B(t);
255
+ return P(t);
249
256
  }
250
257
  get tag() {
251
258
  let t, e;
@@ -260,7 +267,7 @@ let __tla = Promise.all([
260
267
  }
261
268
  get start() {
262
269
  const t = a.gridaxisjs_start(this.__wbg_ptr);
263
- return B(t);
270
+ return P(t);
264
271
  }
265
272
  get axisId() {
266
273
  return a.gridaxisjs_axisId(this.__wbg_ptr) >>> 0;
@@ -270,10 +277,10 @@ let __tla = Promise.all([
270
277
  }
271
278
  }
272
279
  Symbol.dispose && (Mt.prototype[Symbol.dispose] = Mt.prototype.free);
273
- ae = class {
280
+ class ce {
274
281
  __destroy_into_raw() {
275
282
  const t = this.__wbg_ptr;
276
- return this.__wbg_ptr = 0, _e.unregister(this), t;
283
+ return this.__wbg_ptr = 0, Ie.unregister(this), t;
277
284
  }
278
285
  free() {
279
286
  const t = this.__destroy_into_raw();
@@ -281,25 +288,25 @@ let __tla = Promise.all([
281
288
  }
282
289
  buildPrePassFast(t) {
283
290
  const e = gt(t, a.__wbindgen_export3), n = v, s = a.ifcapi_buildPrePassFast(this.__wbg_ptr, e, n);
284
- return B(s);
291
+ return P(s);
285
292
  }
286
293
  buildPrePassOnce(t) {
287
294
  const e = gt(t, a.__wbindgen_export3), n = v, s = a.ifcapi_buildPrePassOnce(this.__wbg_ptr, e, n);
288
- return B(s);
295
+ return P(s);
289
296
  }
290
297
  processGeometryBatch(t, e, n, s, i, o, c, l, d, f, u, p) {
291
- const I = gt(t, a.__wbindgen_export3), h = v, y = ut(e, a.__wbindgen_export3), E = v, C = ut(l, a.__wbindgen_export3), T = v, G = ut(d, a.__wbindgen_export3), x = v, k = ut(f, a.__wbindgen_export3), O = v, D = ut(u, a.__wbindgen_export3), b = v, S = gt(p, a.__wbindgen_export3), F = v, m = a.ifcapi_processGeometryBatch(this.__wbg_ptr, I, h, y, E, n, s, i, o, c, C, T, G, x, k, O, D, b, S, F);
292
- return Bt.__wrap(m);
298
+ const I = gt(t, a.__wbindgen_export3), h = v, y = ft(e, a.__wbindgen_export3), E = v, C = ft(l, a.__wbindgen_export3), T = v, G = ft(d, a.__wbindgen_export3), x = v, k = ft(f, a.__wbindgen_export3), O = v, D = ft(u, a.__wbindgen_export3), b = v, S = gt(p, a.__wbindgen_export3), F = v, m = a.ifcapi_processGeometryBatch(this.__wbg_ptr, I, h, y, E, n, s, i, o, c, C, T, G, x, k, O, D, b, S, F);
299
+ return Pt.__wrap(m);
293
300
  }
294
301
  buildPrePassStreaming(t, e, n) {
295
302
  try {
296
303
  const c = a.__wbindgen_add_to_stack_pointer(-16), l = gt(t, a.__wbindgen_export3), d = v;
297
- a.ifcapi_buildPrePassStreaming(c, this.__wbg_ptr, l, d, tn(e), n);
304
+ a.ifcapi_buildPrePassStreaming(c, this.__wbg_ptr, l, d, sn(e), n);
298
305
  var s = A().getInt32(c + 0, !0), i = A().getInt32(c + 4, !0), o = A().getInt32(c + 8, !0);
299
- if (o) throw B(i);
300
- return B(s);
306
+ if (o) throw P(i);
307
+ return P(s);
301
308
  } finally{
302
- a.__wbindgen_add_to_stack_pointer(16), ct[kt++] = void 0;
309
+ a.__wbindgen_add_to_stack_pointer(16), ct[Yt++] = void 0;
303
310
  }
304
311
  }
305
312
  parseGridAxes(t) {
@@ -308,22 +315,22 @@ let __tla = Promise.all([
308
315
  }
309
316
  parseGridLines(t) {
310
317
  const e = lt(t, a.__wbindgen_export3, a.__wbindgen_export4), n = v, s = a.ifcapi_parseGridLines(this.__wbg_ptr, e, n);
311
- return B(s);
318
+ return P(s);
312
319
  }
313
320
  parseAlignmentLines(t) {
314
321
  const e = lt(t, a.__wbindgen_export3, a.__wbindgen_export4), n = v, s = a.ifcapi_parseAlignmentLines(this.__wbg_ptr, e, n);
315
- return B(s);
322
+ return P(s);
316
323
  }
317
324
  extractProfiles(t, e) {
318
325
  const n = lt(t, a.__wbindgen_export3, a.__wbindgen_export4), s = v, i = a.ifcapi_extractProfiles(this.__wbg_ptr, n, s, e);
319
- return Ut.__wrap(i);
326
+ return vt.__wrap(i);
320
327
  }
321
328
  getMemory() {
322
329
  const t = a.ifcapi_getMemory(this.__wbg_ptr);
323
- return B(t);
330
+ return P(t);
324
331
  }
325
332
  setEntityIndex(t, e, n) {
326
- const s = ut(t, a.__wbindgen_export3), i = v, o = ut(e, a.__wbindgen_export3), c = v, l = ut(n, a.__wbindgen_export3), d = v;
333
+ const s = ft(t, a.__wbindgen_export3), i = v, o = ft(e, a.__wbindgen_export3), c = v, l = ft(n, a.__wbindgen_export3), d = v;
327
334
  a.ifcapi_setEntityIndex(this.__wbg_ptr, s, i, o, c, l, d);
328
335
  }
329
336
  setMergeLayers(t) {
@@ -337,7 +344,7 @@ let __tla = Promise.all([
337
344
  }
338
345
  constructor(){
339
346
  const t = a.ifcapi_new();
340
- return this.__wbg_ptr = t >>> 0, _e.register(this, this.__wbg_ptr, this), this;
347
+ return this.__wbg_ptr = t >>> 0, Ie.register(this, this.__wbg_ptr, this), this;
341
348
  }
342
349
  get version() {
343
350
  let t, e;
@@ -354,44 +361,44 @@ let __tla = Promise.all([
354
361
  return a.ifcapi_is_ready(this.__wbg_ptr) !== 0;
355
362
  }
356
363
  parseStreaming(t, e) {
357
- const n = lt(t, a.__wbindgen_export3, a.__wbindgen_export4), s = v, i = a.ifcapi_parseStreaming(this.__wbg_ptr, n, s, P(e));
358
- return B(i);
364
+ const n = lt(t, a.__wbindgen_export3, a.__wbindgen_export4), s = v, i = a.ifcapi_parseStreaming(this.__wbg_ptr, n, s, B(e));
365
+ return P(i);
359
366
  }
360
367
  scanEntitiesFast(t) {
361
368
  const e = lt(t, a.__wbindgen_export3, a.__wbindgen_export4), n = v, s = a.ifcapi_scanEntitiesFast(this.__wbg_ptr, e, n);
362
- return B(s);
369
+ return P(s);
363
370
  }
364
371
  scanEntitiesFastBytes(t) {
365
372
  const e = gt(t, a.__wbindgen_export3), n = v, s = a.ifcapi_scanEntitiesFastBytes(this.__wbg_ptr, e, n);
366
- return B(s);
373
+ return P(s);
367
374
  }
368
375
  scanGeometryEntitiesFast(t) {
369
376
  const e = lt(t, a.__wbindgen_export3, a.__wbindgen_export4), n = v, s = a.ifcapi_scanGeometryEntitiesFast(this.__wbg_ptr, e, n);
370
- return B(s);
377
+ return P(s);
371
378
  }
372
379
  scanRelevantEntitiesFastBytes(t) {
373
380
  const e = gt(t, a.__wbindgen_export3), n = v, s = a.ifcapi_scanRelevantEntitiesFastBytes(this.__wbg_ptr, e, n);
374
- return B(s);
381
+ return P(s);
375
382
  }
376
383
  parse(t) {
377
384
  const e = lt(t, a.__wbindgen_export3, a.__wbindgen_export4), n = v, s = a.ifcapi_parse(this.__wbg_ptr, e, n);
378
- return B(s);
385
+ return P(s);
379
386
  }
380
387
  parseSymbolicRepresentations(t) {
381
388
  const e = lt(t, a.__wbindgen_export3, a.__wbindgen_export4), n = v, s = a.ifcapi_parseSymbolicRepresentations(this.__wbg_ptr, e, n);
382
- return Vt.__wrap(s);
389
+ return zt.__wrap(s);
383
390
  }
384
- };
385
- Symbol.dispose && (ae.prototype[Symbol.dispose] = ae.prototype.free);
386
- class Bt {
391
+ }
392
+ Symbol.dispose && (ce.prototype[Symbol.dispose] = ce.prototype.free);
393
+ class Pt {
387
394
  static __wrap(t) {
388
395
  t = t >>> 0;
389
- const e = Object.create(Bt.prototype);
390
- return e.__wbg_ptr = t, Ie.register(e, e.__wbg_ptr, e), e;
396
+ const e = Object.create(Pt.prototype);
397
+ return e.__wbg_ptr = t, ye.register(e, e.__wbg_ptr, e), e;
391
398
  }
392
399
  __destroy_into_raw() {
393
400
  const t = this.__wbg_ptr;
394
- return this.__wbg_ptr = 0, Ie.unregister(this), t;
401
+ return this.__wbg_ptr = 0, ye.unregister(this), t;
395
402
  }
396
403
  free() {
397
404
  const t = this.__destroy_into_raw();
@@ -413,7 +420,7 @@ let __tla = Promise.all([
413
420
  try {
414
421
  const c = a.__wbindgen_add_to_stack_pointer(-16);
415
422
  a.meshcollection_localToWorld(c, this.__wbg_ptr, t, e, n);
416
- var s = A().getInt32(c + 0, !0), i = A().getInt32(c + 4, !0), o = nn(s, i).slice();
423
+ var s = A().getInt32(c + 0, !0), i = A().getInt32(c + 4, !0), o = on(s, i).slice();
417
424
  return a.__wbindgen_export2(s, i * 8, 8), o;
418
425
  } finally{
419
426
  a.__wbindgen_add_to_stack_pointer(16);
@@ -437,33 +444,33 @@ let __tla = Promise.all([
437
444
  }
438
445
  get geometryHashIds() {
439
446
  const t = a.meshcollection_geometryHashIds(this.__wbg_ptr);
440
- return B(t);
447
+ return P(t);
441
448
  }
442
449
  get geometryHashCount() {
443
450
  return a.meshcollection_geometryHashCount(this.__wbg_ptr) >>> 0;
444
451
  }
445
452
  get geometryHashValues() {
446
453
  const t = a.meshcollection_geometryHashValues(this.__wbg_ptr);
447
- return B(t);
454
+ return P(t);
448
455
  }
449
456
  get(t) {
450
457
  const e = a.meshcollection_get(this.__wbg_ptr, t);
451
- return e === 0 ? void 0 : Pt.__wrap(e);
458
+ return e === 0 ? void 0 : Bt.__wrap(e);
452
459
  }
453
460
  get length() {
454
461
  return a.meshcollection_length(this.__wbg_ptr) >>> 0;
455
462
  }
456
463
  }
457
- Symbol.dispose && (Bt.prototype[Symbol.dispose] = Bt.prototype.free);
458
- class Pt {
464
+ Symbol.dispose && (Pt.prototype[Symbol.dispose] = Pt.prototype.free);
465
+ class Bt {
459
466
  static __wrap(t) {
460
467
  t = t >>> 0;
461
- const e = Object.create(Pt.prototype);
462
- return e.__wbg_ptr = t, ye.register(e, e.__wbg_ptr, e), e;
468
+ const e = Object.create(Bt.prototype);
469
+ return e.__wbg_ptr = t, me.register(e, e.__wbg_ptr, e), e;
463
470
  }
464
471
  __destroy_into_raw() {
465
472
  const t = this.__wbg_ptr;
466
- return this.__wbg_ptr = 0, ye.unregister(this), t;
473
+ return this.__wbg_ptr = 0, me.unregister(this), t;
467
474
  }
468
475
  free() {
469
476
  const t = this.__destroy_into_raw();
@@ -477,7 +484,7 @@ let __tla = Promise.all([
477
484
  }
478
485
  get textureRgba() {
479
486
  const t = a.meshdatajs_textureRgba(this.__wbg_ptr);
480
- return B(t);
487
+ return P(t);
481
488
  }
482
489
  get vertexCount() {
483
490
  return a.meshdatajs_vertexCount(this.__wbg_ptr) >>> 0;
@@ -488,7 +495,7 @@ let __tla = Promise.all([
488
495
  a.meshdatajs_shadingColor(n, this.__wbg_ptr);
489
496
  var t = A().getInt32(n + 0, !0), e = A().getInt32(n + 4, !0);
490
497
  let s;
491
- return t !== 0 && (s = oe(t, e).slice(), a.__wbindgen_export2(t, e * 4, 4)), s;
498
+ return t !== 0 && (s = ae(t, e).slice(), a.__wbindgen_export2(t, e * 4, 4)), s;
492
499
  } finally{
493
500
  a.__wbindgen_add_to_stack_pointer(16);
494
501
  }
@@ -496,6 +503,9 @@ let __tla = Promise.all([
496
503
  get textureWidth() {
497
504
  return a.meshdatajs_textureWidth(this.__wbg_ptr) >>> 0;
498
505
  }
506
+ get geometryClass() {
507
+ return a.meshdatajs_geometryClass(this.__wbg_ptr);
508
+ }
499
509
  get textureHeight() {
500
510
  return a.meshdatajs_textureHeight(this.__wbg_ptr) >>> 0;
501
511
  }
@@ -510,13 +520,13 @@ let __tla = Promise.all([
510
520
  }
511
521
  get uvs() {
512
522
  const t = a.meshdatajs_uvs(this.__wbg_ptr);
513
- return B(t);
523
+ return P(t);
514
524
  }
515
525
  get color() {
516
526
  try {
517
527
  const s = a.__wbindgen_add_to_stack_pointer(-16);
518
528
  a.meshdatajs_color(s, this.__wbg_ptr);
519
- var t = A().getInt32(s + 0, !0), e = A().getInt32(s + 4, !0), n = oe(t, e).slice();
529
+ var t = A().getInt32(s + 0, !0), e = A().getInt32(s + 4, !0), n = ae(t, e).slice();
520
530
  return a.__wbindgen_export2(t, e * 4, 4), n;
521
531
  } finally{
522
532
  a.__wbindgen_add_to_stack_pointer(16);
@@ -524,11 +534,11 @@ let __tla = Promise.all([
524
534
  }
525
535
  get indices() {
526
536
  const t = a.meshdatajs_indices(this.__wbg_ptr);
527
- return B(t);
537
+ return P(t);
528
538
  }
529
539
  get normals() {
530
540
  const t = a.meshdatajs_normals(this.__wbg_ptr);
531
- return B(t);
541
+ return P(t);
532
542
  }
533
543
  get ifcType() {
534
544
  let t, e;
@@ -543,19 +553,48 @@ let __tla = Promise.all([
543
553
  }
544
554
  get positions() {
545
555
  const t = a.meshdatajs_positions(this.__wbg_ptr);
546
- return B(t);
556
+ return P(t);
547
557
  }
548
558
  }
549
- Symbol.dispose && (Pt.prototype[Symbol.dispose] = Pt.prototype.free);
559
+ Symbol.dispose && (Bt.prototype[Symbol.dispose] = Bt.prototype.free);
550
560
  class Ut {
551
561
  static __wrap(t) {
552
562
  t = t >>> 0;
553
563
  const e = Object.create(Ut.prototype);
554
- return e.__wbg_ptr = t, me.register(e, e.__wbg_ptr, e), e;
564
+ return e.__wbg_ptr = t, Ee.register(e, e.__wbg_ptr, e), e;
555
565
  }
556
566
  __destroy_into_raw() {
557
567
  const t = this.__wbg_ptr;
558
- return this.__wbg_ptr = 0, me.unregister(this), t;
568
+ return this.__wbg_ptr = 0, Ee.unregister(this), t;
569
+ }
570
+ free() {
571
+ const t = this.__destroy_into_raw();
572
+ a.__wbg_meshoutlinejs_free(t, 0);
573
+ }
574
+ get contourCount() {
575
+ return a.meshoutlinejs_contourCount(this.__wbg_ptr) >>> 0;
576
+ }
577
+ contour(t) {
578
+ const e = a.meshoutlinejs_contour(this.__wbg_ptr, t);
579
+ return P(e);
580
+ }
581
+ get axisMax() {
582
+ return a.meshoutlinejs_axisMax(this.__wbg_ptr);
583
+ }
584
+ get axisMin() {
585
+ return a.meshoutlinejs_axisMin(this.__wbg_ptr);
586
+ }
587
+ }
588
+ Symbol.dispose && (Ut.prototype[Symbol.dispose] = Ut.prototype.free);
589
+ class vt {
590
+ static __wrap(t) {
591
+ t = t >>> 0;
592
+ const e = Object.create(vt.prototype);
593
+ return e.__wbg_ptr = t, be.register(e, e.__wbg_ptr, e), e;
594
+ }
595
+ __destroy_into_raw() {
596
+ const t = this.__wbg_ptr;
597
+ return this.__wbg_ptr = 0, be.unregister(this), t;
559
598
  }
560
599
  free() {
561
600
  const t = this.__destroy_into_raw();
@@ -569,16 +608,16 @@ let __tla = Promise.all([
569
608
  return a.profilecollection_length(this.__wbg_ptr) >>> 0;
570
609
  }
571
610
  }
572
- Symbol.dispose && (Ut.prototype[Symbol.dispose] = Ut.prototype.free);
611
+ Symbol.dispose && (vt.prototype[Symbol.dispose] = vt.prototype.free);
573
612
  class Dt {
574
613
  static __wrap(t) {
575
614
  t = t >>> 0;
576
615
  const e = Object.create(Dt.prototype);
577
- return e.__wbg_ptr = t, Ee.register(e, e.__wbg_ptr, e), e;
616
+ return e.__wbg_ptr = t, Ce.register(e, e.__wbg_ptr, e), e;
578
617
  }
579
618
  __destroy_into_raw() {
580
619
  const t = this.__wbg_ptr;
581
- return this.__wbg_ptr = 0, Ee.unregister(this), t;
620
+ return this.__wbg_ptr = 0, Ce.unregister(this), t;
582
621
  }
583
622
  free() {
584
623
  const t = this.__destroy_into_raw();
@@ -589,22 +628,22 @@ let __tla = Promise.all([
589
628
  }
590
629
  get holeCounts() {
591
630
  const t = a.profileentryjs_holeCounts(this.__wbg_ptr);
592
- return B(t);
631
+ return P(t);
593
632
  }
594
633
  get holePoints() {
595
634
  const t = a.profileentryjs_holePoints(this.__wbg_ptr);
596
- return B(t);
635
+ return P(t);
597
636
  }
598
637
  get modelIndex() {
599
638
  return a.profileentryjs_modelIndex(this.__wbg_ptr) >>> 0;
600
639
  }
601
640
  get outerPoints() {
602
641
  const t = a.profileentryjs_outerPoints(this.__wbg_ptr);
603
- return B(t);
642
+ return P(t);
604
643
  }
605
644
  get extrusionDir() {
606
645
  const t = a.profileentryjs_extrusionDir(this.__wbg_ptr);
607
- return B(t);
646
+ return P(t);
608
647
  }
609
648
  get extrusionDepth() {
610
649
  return a.profileentryjs_extrusionDepth(this.__wbg_ptr);
@@ -622,19 +661,19 @@ let __tla = Promise.all([
622
661
  }
623
662
  get transform() {
624
663
  const t = a.profileentryjs_transform(this.__wbg_ptr);
625
- return B(t);
664
+ return P(t);
626
665
  }
627
666
  }
628
667
  Symbol.dispose && (Dt.prototype[Symbol.dispose] = Dt.prototype.free);
629
- class vt {
668
+ class Gt {
630
669
  static __wrap(t) {
631
670
  t = t >>> 0;
632
- const e = Object.create(vt.prototype);
633
- return e.__wbg_ptr = t, be.register(e, e.__wbg_ptr, e), e;
671
+ const e = Object.create(Gt.prototype);
672
+ return e.__wbg_ptr = t, we.register(e, e.__wbg_ptr, e), e;
634
673
  }
635
674
  __destroy_into_raw() {
636
675
  const t = this.__wbg_ptr;
637
- return this.__wbg_ptr = 0, be.unregister(this), t;
676
+ return this.__wbg_ptr = 0, we.unregister(this), t;
638
677
  }
639
678
  free() {
640
679
  const t = this.__destroy_into_raw();
@@ -687,16 +726,16 @@ let __tla = Promise.all([
687
726
  return a.symboliccircle_endAngle(this.__wbg_ptr);
688
727
  }
689
728
  }
690
- Symbol.dispose && (vt.prototype[Symbol.dispose] = vt.prototype.free);
691
- class Gt {
729
+ Symbol.dispose && (Gt.prototype[Symbol.dispose] = Gt.prototype.free);
730
+ class $t {
692
731
  static __wrap(t) {
693
732
  t = t >>> 0;
694
- const e = Object.create(Gt.prototype);
695
- return e.__wbg_ptr = t, Ce.register(e, e.__wbg_ptr, e), e;
733
+ const e = Object.create($t.prototype);
734
+ return e.__wbg_ptr = t, Te.register(e, e.__wbg_ptr, e), e;
696
735
  }
697
736
  __destroy_into_raw() {
698
737
  const t = this.__wbg_ptr;
699
- return this.__wbg_ptr = 0, Ce.unregister(this), t;
738
+ return this.__wbg_ptr = 0, Te.unregister(this), t;
700
739
  }
701
740
  free() {
702
741
  const t = this.__destroy_into_raw();
@@ -722,7 +761,7 @@ let __tla = Promise.all([
722
761
  }
723
762
  get holesOffsets() {
724
763
  const t = a.symbolicfillarea_holesOffsets(this.__wbg_ptr);
725
- return B(t);
764
+ return P(t);
726
765
  }
727
766
  get repIdentifier() {
728
767
  let t, e;
@@ -755,7 +794,7 @@ let __tla = Promise.all([
755
794
  }
756
795
  get points() {
757
796
  const t = a.symbolicfillarea_points(this.__wbg_ptr);
758
- return B(t);
797
+ return P(t);
759
798
  }
760
799
  get worldY() {
761
800
  return a.symbolicfillarea_worldY(this.__wbg_ptr);
@@ -772,16 +811,16 @@ let __tla = Promise.all([
772
811
  }
773
812
  }
774
813
  }
775
- Symbol.dispose && (Gt.prototype[Symbol.dispose] = Gt.prototype.free);
776
- class $t {
814
+ Symbol.dispose && ($t.prototype[Symbol.dispose] = $t.prototype.free);
815
+ class Vt {
777
816
  static __wrap(t) {
778
817
  t = t >>> 0;
779
- const e = Object.create($t.prototype);
780
- return e.__wbg_ptr = t, we.register(e, e.__wbg_ptr, e), e;
818
+ const e = Object.create(Vt.prototype);
819
+ return e.__wbg_ptr = t, Fe.register(e, e.__wbg_ptr, e), e;
781
820
  }
782
821
  __destroy_into_raw() {
783
822
  const t = this.__wbg_ptr;
784
- return this.__wbg_ptr = 0, we.unregister(this), t;
823
+ return this.__wbg_ptr = 0, Fe.unregister(this), t;
785
824
  }
786
825
  free() {
787
826
  const t = this.__destroy_into_raw();
@@ -806,7 +845,7 @@ let __tla = Promise.all([
806
845
  }
807
846
  get points() {
808
847
  const t = a.symbolicpolyline_points(this.__wbg_ptr);
809
- return B(t);
848
+ return P(t);
810
849
  }
811
850
  get worldY() {
812
851
  return a.symboliccircle_worldY(this.__wbg_ptr);
@@ -826,16 +865,16 @@ let __tla = Promise.all([
826
865
  return a.symbolicpolyline_isClosed(this.__wbg_ptr) !== 0;
827
866
  }
828
867
  }
829
- Symbol.dispose && ($t.prototype[Symbol.dispose] = $t.prototype.free);
830
- class Vt {
868
+ Symbol.dispose && (Vt.prototype[Symbol.dispose] = Vt.prototype.free);
869
+ class zt {
831
870
  static __wrap(t) {
832
871
  t = t >>> 0;
833
- const e = Object.create(Vt.prototype);
834
- return e.__wbg_ptr = t, Te.register(e, e.__wbg_ptr, e), e;
872
+ const e = Object.create(zt.prototype);
873
+ return e.__wbg_ptr = t, Re.register(e, e.__wbg_ptr, e), e;
835
874
  }
836
875
  __destroy_into_raw() {
837
876
  const t = this.__wbg_ptr;
838
- return this.__wbg_ptr = 0, Te.unregister(this), t;
877
+ return this.__wbg_ptr = 0, Re.unregister(this), t;
839
878
  }
840
879
  free() {
841
880
  const t = this.__destroy_into_raw();
@@ -846,7 +885,7 @@ let __tla = Promise.all([
846
885
  }
847
886
  getCircle(t) {
848
887
  const e = a.symbolicrepresentationcollection_getCircle(this.__wbg_ptr, t);
849
- return e === 0 ? void 0 : vt.__wrap(e);
888
+ return e === 0 ? void 0 : Gt.__wrap(e);
850
889
  }
851
890
  get textCount() {
852
891
  return a.symbolicrepresentationcollection_textCount(this.__wbg_ptr) >>> 0;
@@ -859,7 +898,7 @@ let __tla = Promise.all([
859
898
  }
860
899
  getPolyline(t) {
861
900
  const e = a.symbolicrepresentationcollection_getPolyline(this.__wbg_ptr, t);
862
- return e === 0 ? void 0 : $t.__wrap(e);
901
+ return e === 0 ? void 0 : Vt.__wrap(e);
863
902
  }
864
903
  get polylineCount() {
865
904
  return a.symbolicrepresentationcollection_polylineCount(this.__wbg_ptr) >>> 0;
@@ -868,7 +907,7 @@ let __tla = Promise.all([
868
907
  try {
869
908
  const s = a.__wbindgen_add_to_stack_pointer(-16);
870
909
  a.symbolicrepresentationcollection_getExpressIds(s, this.__wbg_ptr);
871
- var t = A().getInt32(s + 0, !0), e = A().getInt32(s + 4, !0), n = ve(t, e).slice();
910
+ var t = A().getInt32(s + 0, !0), e = A().getInt32(s + 4, !0), n = $e(t, e).slice();
872
911
  return a.__wbindgen_export2(t, e * 4, 4), n;
873
912
  } finally{
874
913
  a.__wbindgen_add_to_stack_pointer(16);
@@ -876,26 +915,26 @@ let __tla = Promise.all([
876
915
  }
877
916
  getFill(t) {
878
917
  const e = a.symbolicrepresentationcollection_getFill(this.__wbg_ptr, t);
879
- return e === 0 ? void 0 : Gt.__wrap(e);
918
+ return e === 0 ? void 0 : $t.__wrap(e);
880
919
  }
881
920
  getText(t) {
882
921
  const e = a.symbolicrepresentationcollection_getText(this.__wbg_ptr, t);
883
- return e === 0 ? void 0 : zt.__wrap(e);
922
+ return e === 0 ? void 0 : Ht.__wrap(e);
884
923
  }
885
924
  get isEmpty() {
886
925
  return a.symbolicrepresentationcollection_isEmpty(this.__wbg_ptr) !== 0;
887
926
  }
888
927
  }
889
- Symbol.dispose && (Vt.prototype[Symbol.dispose] = Vt.prototype.free);
890
- class zt {
928
+ Symbol.dispose && (zt.prototype[Symbol.dispose] = zt.prototype.free);
929
+ class Ht {
891
930
  static __wrap(t) {
892
931
  t = t >>> 0;
893
- const e = Object.create(zt.prototype);
894
- return e.__wbg_ptr = t, Fe.register(e, e.__wbg_ptr, e), e;
932
+ const e = Object.create(Ht.prototype);
933
+ return e.__wbg_ptr = t, Se.register(e, e.__wbg_ptr, e), e;
895
934
  }
896
935
  __destroy_into_raw() {
897
936
  const t = this.__wbg_ptr;
898
- return this.__wbg_ptr = 0, Fe.unregister(this), t;
937
+ return this.__wbg_ptr = 0, Se.unregister(this), t;
899
938
  }
900
939
  free() {
901
940
  const t = this.__destroy_into_raw();
@@ -982,18 +1021,22 @@ let __tla = Promise.all([
982
1021
  return a.symbolictext_targetPx(this.__wbg_ptr);
983
1022
  }
984
1023
  }
985
- Symbol.dispose && (zt.prototype[Symbol.dispose] = zt.prototype.free);
986
- const pn = new Set([
1024
+ Symbol.dispose && (Ht.prototype[Symbol.dispose] = Ht.prototype.free);
1025
+ ds = function(r, t, e, n) {
1026
+ const s = un(r, a.__wbindgen_export3), i = v, o = ft(t, a.__wbindgen_export3), c = v, l = a.meshOutline2d(s, i, o, c, e, n);
1027
+ return l === 0 ? void 0 : Ut.__wrap(l);
1028
+ };
1029
+ const In = new Set([
987
1030
  "basic",
988
1031
  "cors",
989
1032
  "default"
990
1033
  ]);
991
- async function gn(r, t) {
1034
+ async function yn(r, t) {
992
1035
  if (typeof Response == "function" && r instanceof Response) {
993
1036
  if (typeof WebAssembly.instantiateStreaming == "function") try {
994
1037
  return await WebAssembly.instantiateStreaming(r, t);
995
1038
  } catch (n) {
996
- if (r.ok && pn.has(r.type) && r.headers.get("Content-Type") !== "application/wasm") console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", n);
1039
+ if (r.ok && In.has(r.type) && r.headers.get("Content-Type") !== "application/wasm") console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", n);
997
1040
  else throw n;
998
1041
  }
999
1042
  const e = await r.arrayBuffer();
@@ -1006,31 +1049,31 @@ let __tla = Promise.all([
1006
1049
  } : e;
1007
1050
  }
1008
1051
  }
1009
- function _n() {
1052
+ function mn() {
1010
1053
  const r = {};
1011
1054
  return r.wbg = {}, r.wbg.__wbg_Error_52673b7de5a0ca89 = function(t, e) {
1012
1055
  const n = Error(K(t, e));
1013
- return P(n);
1056
+ return B(n);
1014
1057
  }, r.wbg.__wbg___wbindgen_is_function_8d400b8b1af978cd = function(t) {
1015
- return typeof j(t) == "function";
1058
+ return typeof W(t) == "function";
1016
1059
  }, r.wbg.__wbg___wbindgen_is_undefined_f6b95eab589e0269 = function(t) {
1017
- return j(t) === void 0;
1060
+ return W(t) === void 0;
1018
1061
  }, r.wbg.__wbg___wbindgen_memory_a342e963fbcabd68 = function() {
1019
1062
  const t = a.memory;
1020
- return P(t);
1063
+ return B(t);
1021
1064
  }, r.wbg.__wbg___wbindgen_throw_dd24417ed36fc46e = function(t, e) {
1022
1065
  throw new Error(K(t, e));
1023
1066
  }, r.wbg.__wbg__wbg_cb_unref_87dfb5aaa0cbcea7 = function(t) {
1024
- j(t)._wbg_cb_unref();
1067
+ W(t)._wbg_cb_unref();
1025
1068
  }, r.wbg.__wbg_call_3020136f7a2d6e44 = function() {
1026
- return Jt(function(t, e, n) {
1027
- const s = j(t).call(j(e), j(n));
1028
- return P(s);
1069
+ return Kt(function(t, e, n) {
1070
+ const s = W(t).call(W(e), W(n));
1071
+ return B(s);
1029
1072
  }, arguments);
1030
1073
  }, r.wbg.__wbg_call_abb4ff46ce38be40 = function() {
1031
- return Jt(function(t, e) {
1032
- const n = j(t).call(j(e));
1033
- return P(n);
1074
+ return Kt(function(t, e) {
1075
+ const n = W(t).call(W(e));
1076
+ return B(n);
1034
1077
  }, arguments);
1035
1078
  }, r.wbg.__wbg_error_7534b8e9a36f1ab4 = function(t, e) {
1036
1079
  let n, s;
@@ -1040,16 +1083,16 @@ let __tla = Promise.all([
1040
1083
  a.__wbindgen_export2(n, s, 1);
1041
1084
  }
1042
1085
  }, r.wbg.__wbg_info_ce6bcc489c22f6f0 = function(t) {
1043
- console.info(j(t));
1086
+ console.info(W(t));
1044
1087
  }, r.wbg.__wbg_new_1ba21ce319a06297 = function() {
1045
1088
  const t = new Object;
1046
- return P(t);
1089
+ return B(t);
1047
1090
  }, r.wbg.__wbg_new_25f239778d6112b9 = function() {
1048
1091
  const t = new Array;
1049
- return P(t);
1092
+ return B(t);
1050
1093
  }, r.wbg.__wbg_new_8a6f238a6ece86ea = function() {
1051
1094
  const t = new Error;
1052
- return P(t);
1095
+ return B(t);
1053
1096
  }, r.wbg.__wbg_new_ff12d2b041fb48f1 = function(t, e) {
1054
1097
  try {
1055
1098
  var n = {
@@ -1059,114 +1102,114 @@ let __tla = Promise.all([
1059
1102
  const l = n.a;
1060
1103
  n.a = 0;
1061
1104
  try {
1062
- return hn(l, n.b, o, c);
1105
+ return _n(l, n.b, o, c);
1063
1106
  } finally{
1064
1107
  n.a = l;
1065
1108
  }
1066
1109
  };
1067
1110
  const i = new Promise(s);
1068
- return P(i);
1111
+ return B(i);
1069
1112
  } finally{
1070
1113
  n.a = n.b = 0;
1071
1114
  }
1072
1115
  }, r.wbg.__wbg_new_from_slice_41e2764a343e3cb1 = function(t, e) {
1073
- const n = new Float32Array(oe(t, e));
1074
- return P(n);
1116
+ const n = new Float32Array(ae(t, e));
1117
+ return B(n);
1075
1118
  }, r.wbg.__wbg_new_from_slice_883d10a76ca46292 = function(t, e) {
1076
- const n = new BigUint64Array(sn(t, e));
1077
- return P(n);
1119
+ const n = new BigUint64Array(an(t, e));
1120
+ return B(n);
1078
1121
  }, r.wbg.__wbg_new_from_slice_db0691b69e9d3891 = function(t, e) {
1079
- const n = new Uint32Array(ve(t, e));
1080
- return P(n);
1122
+ const n = new Uint32Array($e(t, e));
1123
+ return B(n);
1081
1124
  }, r.wbg.__wbg_new_from_slice_f9c22b9153b26992 = function(t, e) {
1082
- const n = new Uint8Array(rn(t, e));
1083
- return P(n);
1125
+ const n = new Uint8Array(cn(t, e));
1126
+ return B(n);
1084
1127
  }, r.wbg.__wbg_new_no_args_cb138f77cf6151ee = function(t, e) {
1085
1128
  const n = new Function(K(t, e));
1086
- return P(n);
1129
+ return B(n);
1087
1130
  }, r.wbg.__wbg_new_with_length_202b3db94ba5fc86 = function(t) {
1088
1131
  const e = new Uint32Array(t >>> 0);
1089
- return P(e);
1132
+ return B(e);
1090
1133
  }, r.wbg.__wbg_new_with_length_806b9e5b8290af7c = function(t) {
1091
1134
  const e = new Float64Array(t >>> 0);
1092
- return P(e);
1135
+ return B(e);
1093
1136
  }, r.wbg.__wbg_new_with_length_aa5eaf41d35235e5 = function(t) {
1094
1137
  const e = new Uint8Array(t >>> 0);
1095
- return P(e);
1138
+ return B(e);
1096
1139
  }, r.wbg.__wbg_queueMicrotask_9b549dfce8865860 = function(t) {
1097
- const e = j(t).queueMicrotask;
1098
- return P(e);
1140
+ const e = W(t).queueMicrotask;
1141
+ return B(e);
1099
1142
  }, r.wbg.__wbg_queueMicrotask_fca69f5bfad613a5 = function(t) {
1100
- queueMicrotask(j(t));
1143
+ queueMicrotask(W(t));
1101
1144
  }, r.wbg.__wbg_resolve_fd5bfbaa4ce36e1e = function(t) {
1102
- const e = Promise.resolve(j(t));
1103
- return P(e);
1145
+ const e = Promise.resolve(W(t));
1146
+ return B(e);
1104
1147
  }, r.wbg.__wbg_set_3f1d0b984ed272ed = function(t, e, n) {
1105
- j(t)[B(e)] = B(n);
1148
+ W(t)[P(e)] = P(n);
1106
1149
  }, r.wbg.__wbg_set_781438a03c0c3c81 = function() {
1107
- return Jt(function(t, e, n) {
1108
- return Reflect.set(j(t), j(e), j(n));
1150
+ return Kt(function(t, e, n) {
1151
+ return Reflect.set(W(t), W(e), W(n));
1109
1152
  }, arguments);
1110
1153
  }, r.wbg.__wbg_set_7df433eea03a5c14 = function(t, e, n) {
1111
- j(t)[e >>> 0] = B(n);
1154
+ W(t)[e >>> 0] = P(n);
1112
1155
  }, r.wbg.__wbg_set_index_021489b2916af13e = function(t, e, n) {
1113
- j(t)[e >>> 0] = n;
1156
+ W(t)[e >>> 0] = n;
1114
1157
  }, r.wbg.__wbg_set_index_04c4b93e64d08a52 = function(t, e, n) {
1115
- j(t)[e >>> 0] = n;
1158
+ W(t)[e >>> 0] = n;
1116
1159
  }, r.wbg.__wbg_set_index_42abe35f117e614e = function(t, e, n) {
1117
- j(t)[e >>> 0] = n >>> 0;
1160
+ W(t)[e >>> 0] = n >>> 0;
1118
1161
  }, r.wbg.__wbg_stack_0ed75d68575b0f3c = function(t, e) {
1119
- const n = j(e).stack, s = lt(n, a.__wbindgen_export3, a.__wbindgen_export4), i = v;
1162
+ const n = W(e).stack, s = lt(n, a.__wbindgen_export3, a.__wbindgen_export4), i = v;
1120
1163
  A().setInt32(t + 4, i, !0), A().setInt32(t + 0, s, !0);
1121
1164
  }, r.wbg.__wbg_static_accessor_GLOBAL_769e6b65d6557335 = function() {
1122
1165
  const t = typeof global > "u" ? null : global;
1123
- return bt(t) ? 0 : P(t);
1166
+ return bt(t) ? 0 : B(t);
1124
1167
  }, r.wbg.__wbg_static_accessor_GLOBAL_THIS_60cf02db4de8e1c1 = function() {
1125
1168
  const t = typeof globalThis > "u" ? null : globalThis;
1126
- return bt(t) ? 0 : P(t);
1169
+ return bt(t) ? 0 : B(t);
1127
1170
  }, r.wbg.__wbg_static_accessor_SELF_08f5a74c69739274 = function() {
1128
1171
  const t = typeof self > "u" ? null : self;
1129
- return bt(t) ? 0 : P(t);
1172
+ return bt(t) ? 0 : B(t);
1130
1173
  }, r.wbg.__wbg_static_accessor_WINDOW_a8924b26aa92d024 = function() {
1131
1174
  const t = typeof window > "u" ? null : window;
1132
- return bt(t) ? 0 : P(t);
1175
+ return bt(t) ? 0 : B(t);
1133
1176
  }, r.wbg.__wbg_then_4f95312d68691235 = function(t, e) {
1134
- const n = j(t).then(j(e));
1135
- return P(n);
1177
+ const n = W(t).then(W(e));
1178
+ return B(n);
1136
1179
  }, r.wbg.__wbg_warn_6e567d0d926ff881 = function(t) {
1137
- console.warn(j(t));
1180
+ console.warn(W(t));
1138
1181
  }, r.wbg.__wbindgen_cast_0093e2d96a856a3b = function(t, e) {
1139
- const n = ln(t, e, a.__wasm_bindgen_func_elem_665, un);
1140
- return P(n);
1182
+ const n = fn(t, e, a.__wasm_bindgen_func_elem_674, gn);
1183
+ return B(n);
1141
1184
  }, r.wbg.__wbindgen_cast_2241b6af4c4b2941 = function(t, e) {
1142
1185
  const n = K(t, e);
1143
- return P(n);
1186
+ return B(n);
1144
1187
  }, r.wbg.__wbindgen_cast_4625c577ab2ec9ee = function(t) {
1145
1188
  const e = BigInt.asUintN(64, t);
1146
- return P(e);
1189
+ return B(e);
1147
1190
  }, r.wbg.__wbindgen_cast_d6cd19b81560fd6e = function(t) {
1148
- return P(t);
1191
+ return B(t);
1149
1192
  }, r.wbg.__wbindgen_object_clone_ref = function(t) {
1150
- const e = j(t);
1151
- return P(e);
1193
+ const e = W(t);
1194
+ return B(e);
1152
1195
  }, r.wbg.__wbindgen_object_drop_ref = function(t) {
1153
- B(t);
1196
+ P(t);
1154
1197
  }, r;
1155
1198
  }
1156
- function In(r, t) {
1157
- return a = r.exports, $e.__wbindgen_wasm_module = t, Ft = null, _t = null, Rt = null, St = null, Nt = null, At = null, a.__wbindgen_start(), a;
1199
+ function En(r, t) {
1200
+ return a = r.exports, He.__wbindgen_wasm_module = t, Ft = null, _t = null, Rt = null, St = null, Nt = null, At = null, a.__wbindgen_start(), a;
1158
1201
  }
1159
- $e = async function(r) {
1202
+ async function He(r) {
1160
1203
  if (a !== void 0) return a;
1161
- typeof r < "u" && (Object.getPrototypeOf(r) === Object.prototype ? { module_or_path: r } = r : console.warn("using deprecated parameters for the initialization function; pass a single object instead")), typeof r > "u" && (r = new URL("/assets/ifc-lite_bg-DbgS5EUA.wasm", import.meta.url));
1162
- const t = _n();
1204
+ typeof r < "u" && (Object.getPrototypeOf(r) === Object.prototype ? { module_or_path: r } = r : console.warn("using deprecated parameters for the initialization function; pass a single object instead")), typeof r > "u" && (r = new URL("/assets/ifc-lite_bg-BEA5DLmg.wasm", import.meta.url));
1205
+ const t = mn();
1163
1206
  (typeof r == "string" || typeof Request == "function" && r instanceof Request || typeof URL == "function" && r instanceof URL) && (r = fetch(r));
1164
- const { instance: e, module: n } = await gn(await r, t);
1165
- return In(e, n);
1166
- };
1167
- const tt = We("Geometry"), yn = "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.";
1168
- let Zt = null;
1169
- class mn {
1207
+ const { instance: e, module: n } = await yn(await r, t);
1208
+ return En(e, n);
1209
+ }
1210
+ const tt = Ye("Geometry"), bn = "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.";
1211
+ let te = null;
1212
+ class Cn {
1170
1213
  ifcApi = null;
1171
1214
  initialized = !1;
1172
1215
  mergeLayers = !1;
@@ -1175,13 +1218,13 @@ let __tla = Promise.all([
1175
1218
  return t instanceof WebAssembly.RuntimeError;
1176
1219
  }
1177
1220
  markFatalWasmRuntimeError() {
1178
- Zt = new Error(yn), this.reset();
1221
+ te = new Error(bn), this.reset();
1179
1222
  }
1180
1223
  async init() {
1181
1224
  if (!this.initialized) {
1182
- if (Zt) throw Zt;
1225
+ if (te) throw te;
1183
1226
  try {
1184
- await $e(), tt.debug("Geometry processing: single-threaded WASM (N-worker pool handles parallelism)"), this.ifcApi = new ae, this.applyMergeLayers(), this.applyComputeGeometryHashes(), this.initialized = !0, tt.info("WASM geometry engine initialized");
1227
+ await He(), tt.debug("Geometry processing: single-threaded WASM (N-worker pool handles parallelism)"), this.ifcApi = new ce, this.applyMergeLayers(), this.applyComputeGeometryHashes(), this.initialized = !0, tt.info("WASM geometry engine initialized");
1185
1228
  } catch (t) {
1186
1229
  throw tt.error("Failed to initialize WASM geometry engine", t, {
1187
1230
  operation: "init"
@@ -1327,13 +1370,13 @@ let __tla = Promise.all([
1327
1370
  });
1328
1371
  }
1329
1372
  }
1330
- function Ve() {
1373
+ function je() {
1331
1374
  return typeof window < "u" && "__TAURI_INTERNALS__" in window;
1332
1375
  }
1333
- async function En() {
1334
- if (Ve()) {
1335
- const { NativeBridge: r } = await je(async ()=>{
1336
- const { NativeBridge: t } = await import("./native-bridge-XxXos6yI.js").then(async (m)=>{
1376
+ async function wn() {
1377
+ if (je()) {
1378
+ const { NativeBridge: r } = await Xe(async ()=>{
1379
+ const { NativeBridge: t } = await import("./native-bridge-DpB-dtEn.js").then(async (m)=>{
1337
1380
  await m.__tla;
1338
1381
  return m;
1339
1382
  });
@@ -1345,7 +1388,7 @@ let __tla = Promise.all([
1345
1388
  }
1346
1389
  throw new Error("createPlatformBridge() is native-only; the browser uses the WASM GeometryProcessor path directly.");
1347
1390
  }
1348
- class bn {
1391
+ class Tn {
1349
1392
  buildInterleavedBuffer(t) {
1350
1393
  const e = t.positions.length / 3, n = new Float32Array(e * 6);
1351
1394
  for(let s = 0; s < e; s++){
@@ -1364,7 +1407,7 @@ let __tla = Promise.all([
1364
1407
  };
1365
1408
  }
1366
1409
  }
1367
- class Cn {
1410
+ class Fn {
1368
1411
  originShift = {
1369
1412
  x: 0,
1370
1413
  y: 0,
@@ -1652,8 +1695,8 @@ let __tla = Promise.all([
1652
1695
  }, this.wasmRtcDetected = !1, this.activeThreshold = this.MAX_REASONABLE_COORD, this.appliedWasmRtcOffset = null, this.lengthUnitScale = void 0;
1653
1696
  }
1654
1697
  }
1655
- wn = ((r)=>(r.Fast = "fast", r.Balanced = "balanced", r.High = "high", r))(wn || {});
1656
- function Tn(r) {
1698
+ Rn = ((r)=>(r.Fast = "fast", r.Balanced = "balanced", r.High = "high", r))(Rn || {});
1699
+ function Sn(r) {
1657
1700
  const t = Math.max(0, r.fileSizeMB), e = Math.max(1, Math.floor(r.cores)), n = Math.max(1, r.deviceMemoryGB), s = e >= 10 ? Math.max(n, 16) : n, i = Math.max(0, Math.floor(r.totalJobs)), o = Math.max(1, Math.floor(r.minWorkers ?? 1)), c = Math.max(o, Math.floor(r.maxWorkers ?? 8));
1658
1701
  if (i === 0) return {
1659
1702
  count: 0,
@@ -1689,20 +1732,20 @@ let __tla = Promise.all([
1689
1732
  reason: E.reason
1690
1733
  };
1691
1734
  }
1692
- function Fn(r) {
1693
- return Tn(r).count;
1735
+ function Nn(r) {
1736
+ return Sn(r).count;
1694
1737
  }
1695
- const Rn = 3e4, Sn = 15e3, Nn = 15e3, An = 5e3, On = 60, xn = 30, Ln = 30, Mn = 15;
1738
+ const An = 3e4, On = 15e3, xn = 60, Ln = 30;
1696
1739
  fs = function(r) {
1697
- const t = r.desktopStableWasm === !0, e = Math.max(0, Math.floor(r.batchCount)), n = Math.max(0, r.fileSizeMB), s = e > 0 ? t ? An : Nn : t ? Sn : Rn, i = e > 0 ? t ? Mn : Ln : t ? xn : On;
1698
- return Math.max(s, Math.round(s + n * i));
1740
+ const t = Math.max(0, Math.floor(r.batchCount)), e = Math.max(0, r.fileSizeMB), n = t > 0 ? On : An, s = t > 0 ? Ln : xn;
1741
+ return Math.max(n, Math.round(n + e * s));
1699
1742
  };
1700
- function Bn(r, t) {
1743
+ function Mn(r, t) {
1701
1744
  if (typeof t == "number") return t;
1702
1745
  const e = t.fileSizeMB ? t.fileSizeMB : r.length / (1024 * 1024);
1703
1746
  return e < 10 ? 100 : e < 50 ? 200 : e < 100 ? 300 : e < 300 ? 500 : e < 500 ? 1500 : 3e3;
1704
1747
  }
1705
- function Re(r) {
1748
+ function Ne(r) {
1706
1749
  const t = [];
1707
1750
  try {
1708
1751
  const e = Pn(r);
@@ -1728,7 +1771,8 @@ let __tla = Promise.all([
1728
1771
  ],
1729
1772
  ...o ? {
1730
1773
  shadingColor: o
1731
- } : {}
1774
+ } : {},
1775
+ geometryClass: s.geometryClass ?? 0
1732
1776
  };
1733
1777
  s.hasTexture && (d.uvs = s.uvs, d.texture = {
1734
1778
  rgba: s.textureRgba,
@@ -1761,14 +1805,14 @@ let __tla = Promise.all([
1761
1805
  buildingRotation: t
1762
1806
  } : r;
1763
1807
  }
1764
- const Un = 8, Dn = 32768, vn = 4, Gn = 8192, $n = 10;
1765
- function Se() {
1808
+ const Bn = 8, Un = 32768, vn = 4, Dn = 8192, Gn = 10;
1809
+ function Ae() {
1766
1810
  const r = globalThis.scheduler;
1767
1811
  return typeof r?.yield == "function" ? r.yield() : new Promise((t)=>{
1768
1812
  globalThis.setTimeout(t, 0);
1769
1813
  });
1770
1814
  }
1771
- function Ne(r, t, e) {
1815
+ function Oe(r, t, e) {
1772
1816
  if (t.type === "colorUpdate") {
1773
1817
  const i = r[r.length - 1];
1774
1818
  if (i?.type === "colorUpdate") {
@@ -1779,17 +1823,17 @@ let __tla = Promise.all([
1779
1823
  return;
1780
1824
  }
1781
1825
  const n = r[r.length - 1];
1782
- if (n?.type === "batch" && (r.length >= Un || e.queuedMeshes >= Dn)) {
1826
+ if (n?.type === "batch" && (r.length >= Bn || e.queuedMeshes >= Un)) {
1783
1827
  for(let i = 0; i < t.meshes.length; i++)n.meshes.push(t.meshes[i]);
1784
1828
  n.nativeTelemetry = t.nativeTelemetry, e.coalescedBatchCount += 1;
1785
1829
  } else r.push(t);
1786
1830
  e.queuedMeshes += t.meshes.length;
1787
1831
  }
1788
- async function* Ae(r, t, e, n) {
1832
+ async function* xe(r, t, e, n) {
1789
1833
  e.reset(), yield {
1790
1834
  type: "start",
1791
1835
  totalEstimate: t
1792
- }, await Se(), yield {
1836
+ }, await Ae(), yield {
1793
1837
  type: "model-open",
1794
1838
  modelID: 0
1795
1839
  };
@@ -1802,14 +1846,14 @@ let __tla = Promise.all([
1802
1846
  o && (o(), o = null);
1803
1847
  }, p = r({
1804
1848
  onBatch: (h)=>{
1805
- Ne(s, {
1849
+ Oe(s, {
1806
1850
  type: "batch",
1807
1851
  meshes: h.meshes,
1808
1852
  nativeTelemetry: h.nativeTelemetry
1809
1853
  }, i), u();
1810
1854
  },
1811
1855
  onColorUpdate: (h)=>{
1812
- Ne(s, {
1856
+ Oe(s, {
1813
1857
  type: "colorUpdate",
1814
1858
  updates: new Map(h)
1815
1859
  }, i), u();
@@ -1841,7 +1885,7 @@ let __tla = Promise.all([
1841
1885
  totalSoFar: f,
1842
1886
  coordinateInfo: T || void 0,
1843
1887
  nativeTelemetry: C.nativeTelemetry
1844
- }, h += 1, y += C.meshes.length, s.length > 0 && (h >= vn || y >= Gn || performance.now() - E >= $n) && (await Se(), h = 0, y = 0, E = performance.now());
1888
+ }, h += 1, y += C.meshes.length, s.length > 0 && (h >= vn || y >= Dn || performance.now() - E >= Gn) && (await Ae(), h = 0, y = 0, E = performance.now());
1845
1889
  }
1846
1890
  if (l) throw l;
1847
1891
  c || await new Promise((C)=>{
@@ -1861,7 +1905,7 @@ let __tla = Promise.all([
1861
1905
  coordinateInfo: I
1862
1906
  };
1863
1907
  }
1864
- async function* Vn(r, t, e, n, s) {
1908
+ async function* $n(r, t, e, n, s) {
1865
1909
  t.reset(), yield {
1866
1910
  type: "start",
1867
1911
  totalEstimate: r.length / 1e3
@@ -1872,9 +1916,9 @@ let __tla = Promise.all([
1872
1916
  let i;
1873
1917
  const o = r.buffer;
1874
1918
  n && n.byteLength === r.byteLength ? i = n : typeof SharedArrayBuffer < "u" && o instanceof SharedArrayBuffer && r.byteOffset === 0 && r.byteLength === o.byteLength ? i = o : (i = new SharedArrayBuffer(r.byteLength), new Uint8Array(i).set(r));
1875
- const c = ()=>new Worker(new URL("/assets/geometry.worker-Bpa3115V.js", import.meta.url), {
1919
+ const c = ()=>new Worker(new URL("/assets/geometry.worker-TH3fCCoY.js", import.meta.url), {
1876
1920
  type: "module"
1877
- }), l = ()=>new Worker(new URL("/assets/geometry.worker-Bpa3115V.js", import.meta.url), {
1921
+ }), l = ()=>new Worker(new URL("/assets/geometry.worker-TH3fCCoY.js", import.meta.url), {
1878
1922
  type: "module"
1879
1923
  }), d = [];
1880
1924
  let f = null;
@@ -1884,24 +1928,24 @@ let __tla = Promise.all([
1884
1928
  let p = null, I = 0, h = !1, y = null, E = null, C = 0, T = 0, G = !1, x = !1;
1885
1929
  const k = [];
1886
1930
  let O = !1, D = !1;
1887
- const b = [], S = (L, W)=>{
1931
+ const b = [], S = (L, j)=>{
1888
1932
  L.onmessage = (X)=>{
1889
1933
  const U = X.data;
1890
1934
  if (U.type === "ready") {
1891
- console.log(`[stream] worker[${W}] WASM ready @ ${Q()}ms`);
1935
+ console.log(`[stream] worker[${j}] WASM ready @ ${Q()}ms`);
1892
1936
  return;
1893
1937
  }
1894
1938
  if (U.type === "memory") {
1895
1939
  d.push({
1896
1940
  type: "workerMemory",
1897
- workerIndex: W,
1941
+ workerIndex: j,
1898
1942
  wasmHeapBytes: U.wasmHeapBytes,
1899
1943
  meshBytes: U.meshBytes
1900
1944
  }), u();
1901
1945
  return;
1902
1946
  }
1903
1947
  if (U.type === "batch") {
1904
- b[W] === void 0 && (b[W] = Q(), console.log(`[stream] worker[${W}] first batch @ ${Q()}ms (${U.meshes?.length ?? 0} meshes)`));
1948
+ b[j] === void 0 && (b[j] = Q(), console.log(`[stream] worker[${j}] first batch @ ${Q()}ms (${U.meshes?.length ?? 0} meshes)`));
1905
1949
  const q = U.meshes.map((M)=>({
1906
1950
  expressId: M.expressId,
1907
1951
  ifcType: M.ifcType,
@@ -1917,6 +1961,9 @@ let __tla = Promise.all([
1917
1961
  } : {},
1918
1962
  ...M.geometryHash !== void 0 ? {
1919
1963
  geometryHash: M.geometryHash
1964
+ } : {},
1965
+ ...M.geometryClass !== void 0 ? {
1966
+ geometryClass: M.geometryClass
1920
1967
  } : {}
1921
1968
  }));
1922
1969
  if (q.length > 0) {
@@ -1942,25 +1989,25 @@ let __tla = Promise.all([
1942
1989
  }, L.onerror = (X)=>{
1943
1990
  E = new Error(`Geometry worker failed: ${X.message}`), C++, L.terminate(), u();
1944
1991
  };
1945
- }, F = typeof navigator < "u" ? navigator.hardwareConcurrency ?? 2 : 2, m = typeof navigator < "u" ? navigator.deviceMemory ?? 8 : 8, _ = r.byteLength / (1024 * 1024), w = Math.max(1, Math.ceil(_ * 100)), g = Fn({
1992
+ }, F = typeof navigator < "u" ? navigator.hardwareConcurrency ?? 2 : 2, m = typeof navigator < "u" ? navigator.deviceMemory ?? 8 : 8, _ = r.byteLength / (1024 * 1024), w = Math.max(1, Math.ceil(_ * 100)), g = Nn({
1946
1993
  fileSizeMB: _,
1947
1994
  cores: F,
1948
1995
  deviceMemoryGB: m,
1949
1996
  totalJobs: w
1950
1997
  }), R = [];
1951
1998
  for(let L = 0; L < g; L++){
1952
- const W = c();
1953
- R.push(W), S(W, L);
1999
+ const j = c();
2000
+ R.push(j), S(j, L);
1954
2001
  const X = s?.wasmUrls?.wasm;
1955
- W.postMessage({
2002
+ j.postMessage({
1956
2003
  type: "init",
1957
2004
  ...X ? {
1958
2005
  wasmUrl: X
1959
2006
  } : {}
1960
- }), W.postMessage({
2007
+ }), j.postMessage({
1961
2008
  type: "set-merge-layers",
1962
2009
  enabled: s?.mergeLayers === !0
1963
- }), W.postMessage({
2010
+ }), j.postMessage({
1964
2011
  type: "set-compute-geometry-hashes",
1965
2012
  tolerance: s?.geometryHashTolerance ?? null
1966
2013
  });
@@ -1977,15 +2024,15 @@ let __tla = Promise.all([
1977
2024
  }, $ = ()=>{
1978
2025
  if (x || !p) return;
1979
2026
  x = !0;
1980
- const L = e != null, W = L ? e.x : p.rtcOffset[0], X = L ? e.y : p.rtcOffset[1], U = L ? e.z : p.rtcOffset[2], q = L ? !0 : p.needsShift;
2027
+ const L = e != null, j = L ? e.x : p.rtcOffset[0], X = L ? e.y : p.rtcOffset[1], U = L ? e.z : p.rtcOffset[2], q = L ? !0 : p.needsShift;
1981
2028
  t.setWasmMetadata(p.unitScale, q ? {
1982
- x: W,
2029
+ x: j,
1983
2030
  y: X,
1984
2031
  z: U
1985
2032
  } : null), d.push({
1986
2033
  type: "rtcOffset",
1987
2034
  rtcOffset: {
1988
- x: W,
2035
+ x: j,
1989
2036
  y: X,
1990
2037
  z: U
1991
2038
  },
@@ -1996,7 +2043,7 @@ let __tla = Promise.all([
1996
2043
  type: "stream-start",
1997
2044
  sharedBuffer: i,
1998
2045
  unitScale: p.unitScale,
1999
- rtcX: W,
2046
+ rtcX: j,
2000
2047
  rtcY: X,
2001
2048
  rtcZ: U,
2002
2049
  needsShift: q,
@@ -2009,9 +2056,9 @@ let __tla = Promise.all([
2009
2056
  };
2010
2057
  function V(L) {
2011
2058
  if (R.length === 0 || L.length === 0) return;
2012
- const W = Math.floor(L.length / 3);
2013
- if (W === 0) return;
2014
- const X = Math.ceil(W / R.length);
2059
+ const j = Math.floor(L.length / 3);
2060
+ if (j === 0) return;
2061
+ const X = Math.ceil(j / R.length);
2015
2062
  try {
2016
2063
  for(let U = 0; U < R.length; U++){
2017
2064
  const q = U * X * 3, M = Math.min(q + X * 3, L.length);
@@ -2044,7 +2091,7 @@ let __tla = Promise.all([
2044
2091
  type: "init",
2045
2092
  wasmUrl: s.wasmUrls.wasm
2046
2093
  });
2047
- let L = 0, W = 0, X = -1;
2094
+ let L = 0, j = 0, X = -1;
2048
2095
  Z.onmessage = (nt)=>{
2049
2096
  const dt = nt.data;
2050
2097
  if (dt.type === "prepass-progress") {
@@ -2064,47 +2111,47 @@ let __tla = Promise.all([
2064
2111
  }, console.log(`[stream] meta @ ${Q()}ms unitScale=${p.unitScale} rtc=[${p.rtcOffset[0].toFixed(0)},${p.rtcOffset[1].toFixed(0)},${p.rtcOffset[2].toFixed(0)}]`), $(), u();
2065
2112
  else if (J.type === "jobs") {
2066
2113
  const ot = J.jobs, at = Math.floor(ot.length / 3);
2067
- L++, W += at, X < 0 && (X = Q(), console.log(`[stream] first jobs chunk @ ${X}ms (${at} jobs)`)), (L % 10 === 1 || at < 1e3) && console.log(`[stream] chunk #${L} @ ${Q()}ms (+${at} jobs, total ${W})`), z(ot);
2114
+ L++, j += at, X < 0 && (X = Q(), console.log(`[stream] first jobs chunk @ ${X}ms (${at} jobs)`)), (L % 10 === 1 || at < 1e3) && console.log(`[stream] chunk #${L} @ ${Q()}ms (+${at} jobs, total ${j})`), z(ot);
2068
2115
  } else if (J.type === "styles") {
2069
2116
  const ot = J.styleIds, at = J.styleColors, ht = J.voidKeys, pt = J.voidCounts, wt = J.voidValues;
2070
2117
  console.log(`[stream] styles @ ${Q()}ms (${ot.length} styled, ${ht.length} void hosts), draining ${k.length} queued chunks`);
2071
- for (const Qt of R)try {
2072
- const ft = ot.slice(), It = at.slice(), yt = ht.slice(), mt = pt.slice(), Ht = wt.slice();
2073
- Qt.postMessage({
2118
+ for (const Jt of R)try {
2119
+ const ut = ot.slice(), It = at.slice(), yt = ht.slice(), mt = pt.slice(), jt = wt.slice();
2120
+ Jt.postMessage({
2074
2121
  type: "set-styles",
2075
- styleIds: ft,
2122
+ styleIds: ut,
2076
2123
  styleColors: It,
2077
2124
  voidKeys: yt,
2078
2125
  voidCounts: mt,
2079
- voidValues: Ht
2126
+ voidValues: jt
2080
2127
  }, [
2081
- ft.buffer,
2128
+ ut.buffer,
2082
2129
  It.buffer,
2083
2130
  yt.buffer,
2084
2131
  mt.buffer,
2085
- Ht.buffer
2132
+ jt.buffer
2086
2133
  ]);
2087
- } catch (ft) {
2088
- console.warn("[stream] set-styles dispatch failed:", ft);
2134
+ } catch (ut) {
2135
+ console.warn("[stream] set-styles dispatch failed:", ut);
2089
2136
  }
2090
2137
  O = !0, Y();
2091
2138
  } else if (J.type === "entity-index") {
2092
2139
  const ot = J.ids, at = J.starts, ht = J.lengths;
2093
2140
  if (console.log(`[stream] entity-index @ ${Q()}ms (${ot.length} entries)`), typeof SharedArrayBuffer < "u") {
2094
- const pt = ot.byteLength, wt = at.byteLength, Qt = ht.byteLength, ft = new SharedArrayBuffer(pt), It = new SharedArrayBuffer(wt), yt = new SharedArrayBuffer(Qt);
2095
- new Uint32Array(ft).set(ot), new Uint32Array(It).set(at), new Uint32Array(yt).set(ht);
2141
+ const pt = ot.byteLength, wt = at.byteLength, Jt = ht.byteLength, ut = new SharedArrayBuffer(pt), It = new SharedArrayBuffer(wt), yt = new SharedArrayBuffer(Jt);
2142
+ new Uint32Array(ut).set(ot), new Uint32Array(It).set(at), new Uint32Array(yt).set(ht);
2096
2143
  for (const mt of R)try {
2097
2144
  mt.postMessage({
2098
2145
  type: "set-entity-index",
2099
- ids: new Uint32Array(ft),
2146
+ ids: new Uint32Array(ut),
2100
2147
  starts: new Uint32Array(It),
2101
2148
  lengths: new Uint32Array(yt)
2102
2149
  });
2103
- } catch (Ht) {
2104
- console.warn("[stream] set-entity-index dispatch failed:", Ht);
2150
+ } catch (jt) {
2151
+ console.warn("[stream] set-entity-index dispatch failed:", jt);
2105
2152
  }
2106
2153
  if (s?.onEntityIndex) try {
2107
- s.onEntityIndex(new Uint32Array(ft), new Uint32Array(It), new Uint32Array(yt));
2154
+ s.onEntityIndex(new Uint32Array(ut), new Uint32Array(It), new Uint32Array(yt));
2108
2155
  } catch (mt) {
2109
2156
  console.warn("[stream] onEntityIndex callback failed:", mt);
2110
2157
  }
@@ -2193,9 +2240,9 @@ let __tla = Promise.all([
2193
2240
  } catch {}
2194
2241
  }
2195
2242
  }
2196
- const zn = .001;
2243
+ const Vn = .001;
2197
2244
  let Tt = null;
2198
- function Hn(r) {
2245
+ function zn(r) {
2199
2246
  if (Tt) throw new Error(`GeometryProcessor ${r} cannot start while ${Tt} is still running. Wait for the active stream to finish, or cancel it before starting another geometry operation.`);
2200
2247
  return Tt = r, ()=>{
2201
2248
  Tt === r && (Tt = null);
@@ -2211,10 +2258,10 @@ let __tla = Promise.all([
2211
2258
  lastNativeStats = null;
2212
2259
  mergeLayers;
2213
2260
  constructor(t = {}){
2214
- this.bufferBuilder = new bn, this.coordinateHandler = new Cn, this.isNative = t.preferNative !== !1 && Ve(), this.mergeLayers = t.mergeLayers === !0, t.quality, this.isNative || (this.bridge = new mn, this.bridge.setMergeLayers(this.mergeLayers));
2261
+ this.bufferBuilder = new Tn, this.coordinateHandler = new Fn, this.isNative = t.preferNative !== !1 && je(), this.mergeLayers = t.mergeLayers === !0, t.quality, this.isNative || (this.bridge = new Cn, this.bridge.setMergeLayers(this.mergeLayers));
2215
2262
  }
2216
2263
  async init() {
2217
- this.isNative ? (this.platformBridge = await En(), await this.platformBridge.init(), console.log("[GeometryProcessor] Native bridge initialized")) : this.bridge && await this.bridge.init();
2264
+ this.isNative ? (this.platformBridge = await wn(), await this.platformBridge.init(), console.log("[GeometryProcessor] Native bridge initialized")) : this.bridge && await this.bridge.init();
2218
2265
  }
2219
2266
  async process(t, e) {
2220
2267
  let n;
@@ -2268,7 +2315,7 @@ let __tla = Promise.all([
2268
2315
  const s = [], i = n.totalJobs ?? 0;
2269
2316
  if (n.jobs && i > 0) {
2270
2317
  const o = e.processGeometryBatch(t, n.jobs, n.unitScale, n.rtcOffset?.[0] ?? 0, n.rtcOffset?.[1] ?? 0, n.rtcOffset?.[2] ?? 0, n.needsShift, n.voidKeys, n.voidCounts, n.voidValues, n.styleIds, n.styleColors);
2271
- s.push(...Re(o));
2318
+ s.push(...Ne(o));
2272
2319
  }
2273
2320
  return {
2274
2321
  meshes: s,
@@ -2307,10 +2354,10 @@ let __tla = Promise.all([
2307
2354
  };
2308
2355
  return;
2309
2356
  }
2310
- const o = Bn(t, e), l = Math.max(o, Math.ceil(s.totalJobs / 30));
2357
+ const o = Mn(t, e), l = Math.max(o, Math.ceil(s.totalJobs / 30));
2311
2358
  let d = 0;
2312
2359
  for(let u = 0; u < s.totalJobs; u += l){
2313
- const p = Math.min(u + l, s.totalJobs), I = s.jobs.slice(u * 3, p * 3), h = n.processGeometryBatch(t, I, 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), y = Re(h);
2360
+ const p = Math.min(u + l, s.totalJobs), I = s.jobs.slice(u * 3, p * 3), h = n.processGeometryBatch(t, I, 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), y = Ne(h);
2314
2361
  if (y.length === 0) {
2315
2362
  await new Promise((T)=>setTimeout(T, 0));
2316
2363
  continue;
@@ -2335,7 +2382,7 @@ let __tla = Promise.all([
2335
2382
  }
2336
2383
  }
2337
2384
  async *processStreaming(t, e, n = 25, s) {
2338
- const i = this.isNative ? null : Hn("processStreaming");
2385
+ const i = this.isNative ? null : zn("processStreaming");
2339
2386
  try {
2340
2387
  yield* this.processStreamingUnlocked(t, e, n, s);
2341
2388
  } finally{
@@ -2421,19 +2468,19 @@ let __tla = Promise.all([
2421
2468
  async *processStreamingPath(t, e = 0, n) {
2422
2469
  if (!this.isNative) throw new Error("File-path geometry streaming is only available in native desktop builds");
2423
2470
  if (this.platformBridge || await this.init(), !this.platformBridge?.processGeometryStreamingPath) throw new Error("Native platform bridge does not support file-path streaming");
2424
- yield* Ae((s)=>this.platformBridge.processGeometryStreamingPath(t, s, n), e > 0 ? e / 1e3 : 0, this.coordinateHandler, (s)=>{
2471
+ yield* xe((s)=>this.platformBridge.processGeometryStreamingPath(t, s, n), e > 0 ? e / 1e3 : 0, this.coordinateHandler, (s)=>{
2425
2472
  this.lastNativeStats = s;
2426
2473
  });
2427
2474
  }
2428
2475
  async *processStreamingCache(t) {
2429
2476
  if (!this.isNative) throw new Error("Native cached geometry streaming is only available in native desktop builds");
2430
2477
  if (this.platformBridge || await this.init(), !this.platformBridge?.processGeometryStreamingCache) throw new Error("Native platform bridge does not support cached geometry streaming");
2431
- yield* Ae((e)=>this.platformBridge.processGeometryStreamingCache(t, e), 0, this.coordinateHandler, (e)=>{
2478
+ yield* xe((e)=>this.platformBridge.processGeometryStreamingCache(t, e), 0, this.coordinateHandler, (e)=>{
2432
2479
  this.lastNativeStats = e;
2433
2480
  });
2434
2481
  }
2435
2482
  async *processParallel(t, e, n, s, i) {
2436
- this.bridge?.isInitialized() || await this.init(), yield* Vn(t, this.coordinateHandler, e, n, {
2483
+ this.bridge?.isInitialized() || await this.init(), yield* $n(t, this.coordinateHandler, e, n, {
2437
2484
  onEntityIndex: s,
2438
2485
  mergeLayers: this.mergeLayers,
2439
2486
  geometryHashTolerance: this.bridge?.getComputeGeometryHashes() ?? null,
@@ -2470,7 +2517,7 @@ let __tla = Promise.all([
2470
2517
  };
2471
2518
  } else typeof SharedArrayBuffer < "u" && typeof Worker < "u" && typeof navigator < "u" && (navigator.hardwareConcurrency ?? 1) > 1 ? yield* this.processParallel(t, e.sharedRtcOffset, e.existingSab, e.onEntityIndex, e.wasmUrls) : yield* this.processStreaming(t, e.entityIndex, s, e.sharedRtcOffset);
2472
2519
  }
2473
- enableGeometryHashes(t = zn) {
2520
+ enableGeometryHashes(t = Vn) {
2474
2521
  this.bridge?.setComputeGeometryHashes(t);
2475
2522
  }
2476
2523
  getApi() {
@@ -2613,7 +2660,7 @@ let __tla = Promise.all([
2613
2660
  const U = N[X], q = N[X + 1], M = N[X + 2];
2614
2661
  U < z && (z = U), U > Q && (Q = U), q < Y && (Y = q), q > Z && (Z = q), M < H && (H = M), M > L && (L = M);
2615
2662
  }
2616
- const W = f(R);
2663
+ const j = f(R);
2617
2664
  y.push({
2618
2665
  meshIndex: g,
2619
2666
  posCount: N.length,
@@ -2634,7 +2681,7 @@ let __tla = Promise.all([
2634
2681
  L
2635
2682
  ]
2636
2683
  },
2637
- materialIdx: W ? h(W) : void 0
2684
+ materialIdx: j ? h(j) : void 0
2638
2685
  }), E += N.length, C += $.length, T += V.length;
2639
2686
  }
2640
2687
  if (E === 0 || C === 0 || T === 0) throw new Error("Cannot export GLB: no valid geometry data found");
@@ -2763,10 +2810,10 @@ let __tla = Promise.all([
2763
2810
  this.store = t;
2764
2811
  }
2765
2812
  getPropertiesForEntity(t) {
2766
- return this.store.onDemandPropertyMap && this.store.source?.length > 0 ? ke(this.store, t) : this.store.properties?.getForEntity(t) ?? [];
2813
+ return this.store.onDemandPropertyMap && this.store.source?.length > 0 ? qe(this.store, t) : this.store.properties?.getForEntity(t) ?? [];
2767
2814
  }
2768
2815
  getQuantitiesForEntity(t) {
2769
- return this.store.onDemandQuantityMap && this.store.source?.length > 0 ? Ye(this.store, t) : this.store.quantities?.getForEntity(t) ?? [];
2816
+ return this.store.onDemandQuantityMap && this.store.source?.length > 0 ? Qe(this.store, t) : this.store.quantities?.getForEntity(t) ?? [];
2770
2817
  }
2771
2818
  exportEntities(t, e = {}) {
2772
2819
  const n = e.delimiter ?? ",", s = e.includeProperties ?? !1, i = e.flattenProperties ?? !1, o = [
@@ -2928,7 +2975,7 @@ let __tla = Promise.all([
2928
2975
  return t.join(e);
2929
2976
  }
2930
2977
  };
2931
- const Wn = 35, jt = 48, Oe = 57, jn = new Set([
2978
+ const Hn = 35, kt = 48, Le = 57, jn = new Set([
2932
2979
  "IFCOWNERHISTORY",
2933
2980
  "IFCAPPLICATION",
2934
2981
  "IFCPERSON",
@@ -2944,7 +2991,7 @@ let __tla = Promise.all([
2944
2991
  "IFCMONETARYUNIT",
2945
2992
  "IFCGEOMETRICREPRESENTATIONCONTEXT",
2946
2993
  "IFCGEOMETRICREPRESENTATIONSUBCONTEXT"
2947
- ]), kn = new Set([
2994
+ ]), Wn = new Set([
2948
2995
  "IFCPROJECT",
2949
2996
  "IFCSITE",
2950
2997
  "IFCBUILDING",
@@ -2965,7 +3012,7 @@ let __tla = Promise.all([
2965
3012
  "IFCSPATIALZONE",
2966
3013
  "IFCEXTERNALSPATIALELEMENT",
2967
3014
  "IFCEXTERNALSPATIALSTRUCTUREELEMENT"
2968
- ]), Yn = new Set([
3015
+ ]), kn = new Set([
2969
3016
  "IFCBEAM",
2970
3017
  "IFCBEAMSTANDARDCASE",
2971
3018
  "IFCBUILDINGELEMENT",
@@ -3173,25 +3220,25 @@ let __tla = Promise.all([
3173
3220
  "IFCSTRUCTURALSURFACEMEMBERVARYING",
3174
3221
  "IFCSTRUCTURALSURFACEREACTION"
3175
3222
  ]);
3176
- function Xt(r, t, e, n) {
3223
+ function qt(r, t, e, n) {
3177
3224
  const s = t + e;
3178
3225
  let i = t;
3179
- for(; i < s;)if (r[i] === Wn) {
3180
- if (i++, i < s && r[i] >= jt && r[i] <= Oe) {
3181
- let o = r[i] - jt;
3182
- for(i++; i < s && r[i] >= jt && r[i] <= Oe;)o = o * 10 + (r[i] - jt), i++;
3226
+ for(; i < s;)if (r[i] === Hn) {
3227
+ if (i++, i < s && r[i] >= kt && r[i] <= Le) {
3228
+ let o = r[i] - kt;
3229
+ for(i++; i < s && r[i] >= kt && r[i] <= Le;)o = o * 10 + (r[i] - kt), i++;
3183
3230
  n.push(o);
3184
3231
  }
3185
3232
  } else i++;
3186
3233
  }
3187
- function ce(r, t, e, n) {
3234
+ function le(r, t, e, n) {
3188
3235
  const s = new Set, i = [];
3189
3236
  for (const c of r)e.has(c) && !s.has(c) && (s.add(c), i.push(c));
3190
3237
  const o = [];
3191
3238
  for(; i.length > 0;){
3192
3239
  const c = i.pop(), l = e.get(c);
3193
3240
  if (l) {
3194
- o.length = 0, Xt(t, l.byteOffset, l.byteLength, o);
3241
+ o.length = 0, qt(t, l.byteOffset, l.byteLength, o);
3195
3242
  for(let d = 0; d < o.length; d++){
3196
3243
  const f = o[d];
3197
3244
  if (!s.has(f) && e.has(f)) {
@@ -3203,7 +3250,7 @@ let __tla = Promise.all([
3203
3250
  }
3204
3251
  return s;
3205
3252
  }
3206
- function le(r, t, e) {
3253
+ function de(r, t, e) {
3207
3254
  const n = new Set, s = new Set;
3208
3255
  for (const [i, o] of r.entityIndex.byId){
3209
3256
  const c = o.type.toUpperCase();
@@ -3211,7 +3258,7 @@ let __tla = Promise.all([
3211
3258
  n.add(i);
3212
3259
  continue;
3213
3260
  }
3214
- if (kn.has(c)) {
3261
+ if (Wn.has(c)) {
3215
3262
  n.add(i);
3216
3263
  continue;
3217
3264
  }
@@ -3219,7 +3266,7 @@ let __tla = Promise.all([
3219
3266
  n.add(i);
3220
3267
  continue;
3221
3268
  }
3222
- if (Yn.has(c)) {
3269
+ if (kn.has(c)) {
3223
3270
  const l = t.has(i), d = e !== null && !e.has(i);
3224
3271
  l || d ? s.add(i) : n.add(i);
3225
3272
  continue;
@@ -3233,12 +3280,12 @@ let __tla = Promise.all([
3233
3280
  continue;
3234
3281
  }
3235
3282
  }
3236
- return Xn(r, n, s), {
3283
+ return Yn(r, n, s), {
3237
3284
  roots: n,
3238
3285
  hiddenProductIds: s
3239
3286
  };
3240
3287
  }
3241
- function Xn(r, t, e) {
3288
+ function Yn(r, t, e) {
3242
3289
  const n = r.source;
3243
3290
  if (!n) return;
3244
3291
  const s = r.entityIndex.byType.get("IFCRELVOIDSELEMENT") ?? [];
@@ -3250,12 +3297,12 @@ let __tla = Promise.all([
3250
3297
  let l = c.byteOffset;
3251
3298
  const d = c.byteOffset + c.byteLength;
3252
3299
  for(; l < d && n[l] !== 40;)l++;
3253
- if (l >= d || (i.length = 0, Xt(n, l, d - l, i), i.length < 2)) continue;
3300
+ if (l >= d || (i.length = 0, qt(n, l, d - l, i), i.length < 2)) continue;
3254
3301
  const f = i[i.length - 2], u = i[i.length - 1];
3255
3302
  e.has(f) && (e.add(u), t.delete(o), t.delete(u));
3256
3303
  }
3257
3304
  }
3258
- function de(r, t, e) {
3305
+ function fe(r, t, e) {
3259
3306
  const n = [], s = [], i = e.byType.get("IFCSTYLEDITEM") ?? [], o = e.byType.get("IFCSTYLEDREPRESENTATION") ?? [];
3260
3307
  for (const c of [
3261
3308
  i,
@@ -3264,7 +3311,7 @@ let __tla = Promise.all([
3264
3311
  if (r.has(l)) continue;
3265
3312
  const d = e.byId.get(l);
3266
3313
  if (!d) continue;
3267
- s.length = 0, Xt(t, d.byteOffset, d.byteLength, s);
3314
+ s.length = 0, qt(t, d.byteOffset, d.byteLength, s);
3268
3315
  let f = !1;
3269
3316
  for(let u = 0; u < s.length; u++)if (r.has(s[u])) {
3270
3317
  f = !0;
@@ -3275,7 +3322,7 @@ let __tla = Promise.all([
3275
3322
  for(; n.length > 0;){
3276
3323
  const c = n.pop(), l = e.byId.get(c);
3277
3324
  if (l) {
3278
- s.length = 0, Xt(t, l.byteOffset, l.byteLength, s);
3325
+ s.length = 0, qt(t, l.byteOffset, l.byteLength, s);
3279
3326
  for(let d = 0; d < s.length; d++){
3280
3327
  const f = s[d];
3281
3328
  !r.has(f) && e.byId.has(f) && (r.add(f), n.push(f));
@@ -3283,7 +3330,7 @@ let __tla = Promise.all([
3283
3330
  }
3284
3331
  }
3285
3332
  }
3286
- const xe = new Map([
3333
+ const Me = new Map([
3287
3334
  [
3288
3335
  "IFCELECTRICDISTRIBUTIONPOINT",
3289
3336
  "IFCELECTRICDISTRIBUTIONBOARD"
@@ -3296,7 +3343,7 @@ let __tla = Promise.all([
3296
3343
  "IFCEQUIPMENTELEMENT",
3297
3344
  "IFCBUILDINGELEMENTPROXY"
3298
3345
  ]
3299
- ]), Le = new Map([
3346
+ ]), Pe = new Map([
3300
3347
  [
3301
3348
  "IFCELECTRICDISTRIBUTIONBOARD",
3302
3349
  "IFCELECTRICDISTRIBUTIONPOINT"
@@ -3389,7 +3436,7 @@ let __tla = Promise.all([
3389
3436
  "IFCBUILTELEMENT",
3390
3437
  "IFCBUILDINGELEMENTPROXY"
3391
3438
  ]
3392
- ]), te = new Map([]), ee = new Map([
3439
+ ]), ee = new Map([]), ne = new Map([
3393
3440
  [
3394
3441
  "IFCFACILITY",
3395
3442
  "IFCBUILDING"
@@ -3534,7 +3581,7 @@ let __tla = Promise.all([
3534
3581
  "IFCELECTRICFLOWTREATMENTDEVICE",
3535
3582
  "IFCFLOWTREATMENTDEVICE"
3536
3583
  ]
3537
- ]), qn = new Map([
3584
+ ]), Xn = new Map([
3538
3585
  [
3539
3586
  "IFCWALL",
3540
3587
  8
@@ -3656,34 +3703,34 @@ let __tla = Promise.all([
3656
3703
  8
3657
3704
  ]
3658
3705
  ]);
3659
- function ze(r, t, e) {
3706
+ function We(r, t, e) {
3660
3707
  if (t === e) return r;
3661
3708
  const n = r.toUpperCase();
3662
- return Qn(t, e)?.get(n) ?? n;
3709
+ return qn(t, e)?.get(n) ?? n;
3663
3710
  }
3664
- function Qn(r, t) {
3665
- return r === "IFC2X3" && t === "IFC4" ? xe : r === "IFC4" && t === "IFC2X3" ? Le : r === "IFC4" && t === "IFC4X3" ? te : r === "IFC4X3" && t === "IFC4" ? ee : r === "IFC5" && t === "IFC4X3" || r === "IFC4X3" && t === "IFC5" ? null : r === "IFC5" && t === "IFC4" ? ee : r === "IFC4" && t === "IFC5" ? te : r === "IFC2X3" && (t === "IFC4X3" || t === "IFC5") ? Me(xe, te) : (r === "IFC4X3" || r === "IFC5") && t === "IFC2X3" ? Me(ee, Le) : null;
3711
+ function qn(r, t) {
3712
+ return r === "IFC2X3" && t === "IFC4" ? Me : r === "IFC4" && t === "IFC2X3" ? Pe : r === "IFC4" && t === "IFC4X3" ? ee : r === "IFC4X3" && t === "IFC4" ? ne : r === "IFC5" && t === "IFC4X3" || r === "IFC4X3" && t === "IFC5" ? null : r === "IFC5" && t === "IFC4" ? ne : r === "IFC4" && t === "IFC5" ? ee : r === "IFC2X3" && (t === "IFC4X3" || t === "IFC5") ? Be(Me, ee) : (r === "IFC4X3" || r === "IFC5") && t === "IFC2X3" ? Be(ne, Pe) : null;
3666
3713
  }
3667
- function Me(r, t) {
3714
+ function Be(r, t) {
3668
3715
  const e = new Map;
3669
3716
  for (const [n, s] of r)e.set(n, t.get(s) ?? s);
3670
3717
  for (const [n, s] of t)e.has(n) || e.set(n, s);
3671
3718
  return e;
3672
3719
  }
3673
- function qt(r, t, e) {
3720
+ function Qt(r, t, e) {
3674
3721
  if (t === e) return r;
3675
3722
  const n = r.match(/^(#\d+=)(\w+)\((.*)?\);?\s*$/);
3676
3723
  if (!n) return r;
3677
- const s = n[1], i = n[2].toUpperCase(), o = n[3] ?? "", c = ze(i, t, e);
3678
- if (Jn(c, e)) return `${s}IFCPROXY('${ts()}',$,'${i}',$,$,$,$,.NOTDEFINED.,$);`;
3724
+ const s = n[1], i = n[2].toUpperCase(), o = n[3] ?? "", c = We(i, t, e);
3725
+ if (Qn(c, e)) return `${s}IFCPROXY('${Zn()}',$,'${i}',$,$,$,$,.NOTDEFINED.,$);`;
3679
3726
  let l = o;
3680
3727
  if (e === "IFC2X3") {
3681
- const d = qn.get(c);
3682
- d !== void 0 && (l = Kn(o, d));
3728
+ const d = Xn.get(c);
3729
+ d !== void 0 && (l = Jn(o, d));
3683
3730
  }
3684
3731
  return `${s}${c}(${l});`;
3685
3732
  }
3686
- function Jn(r, t) {
3733
+ function Qn(r, t) {
3687
3734
  return t === "IFC4X3" || t === "IFC5" ? !1 : new Set([
3688
3735
  "IFCALIGNMENTCANT",
3689
3736
  "IFCALIGNMENTHORIZONTAL",
@@ -3691,7 +3738,7 @@ let __tla = Promise.all([
3691
3738
  "IFCALIGNMENTSEGMENT"
3692
3739
  ]).has(r);
3693
3740
  }
3694
- function Kn(r, t) {
3741
+ function Jn(r, t) {
3695
3742
  if (!r.trim()) return r;
3696
3743
  const e = [];
3697
3744
  let n = 0, s = !1, i = "";
@@ -3713,12 +3760,12 @@ let __tla = Promise.all([
3713
3760
  }
3714
3761
  return e.push(i), e.length > t ? e.slice(0, t).join(",") : e.join(",");
3715
3762
  }
3716
- function fe(r, t) {
3763
+ function ue(r, t) {
3717
3764
  return r !== t;
3718
3765
  }
3719
- let Zn = 0;
3720
- function ts() {
3721
- const r = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_$", t = Zn++;
3766
+ let Kn = 0;
3767
+ function Zn() {
3768
+ const r = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_$", t = Kn++;
3722
3769
  let e = "PROXY_", n = t;
3723
3770
  for(let s = 0; s < 16; s++)e += r[n % 64], n = Math.floor(n / 64) + s;
3724
3771
  return e;
@@ -3731,7 +3778,7 @@ let __tla = Promise.all([
3731
3778
  const t = r.toString();
3732
3779
  return t.includes(".") ? t : t + ".";
3733
3780
  }
3734
- function es(r) {
3781
+ function ts(r) {
3735
3782
  switch(r){
3736
3783
  case Et.Length:
3737
3784
  return "IFCQUANTITYLENGTH";
@@ -3749,7 +3796,7 @@ let __tla = Promise.all([
3749
3796
  return "IFCQUANTITYCOUNT";
3750
3797
  }
3751
3798
  }
3752
- function He(r, t) {
3799
+ function ke(r, t) {
3753
3800
  if (r == null) return "$";
3754
3801
  switch(t){
3755
3802
  case st.String:
@@ -3771,12 +3818,12 @@ let __tla = Promise.all([
3771
3818
  case st.Enum:
3772
3819
  return `.${String(r).toUpperCase()}.`;
3773
3820
  case st.List:
3774
- return Array.isArray(r) ? `(${r.map((n)=>He(n, st.String)).join(",")})` : "$";
3821
+ return Array.isArray(r) ? `(${r.map((n)=>ke(n, st.String)).join(",")})` : "$";
3775
3822
  default:
3776
3823
  return `IFCLABEL('${rt(String(r))}')`;
3777
3824
  }
3778
3825
  }
3779
- function ns(r, t) {
3826
+ function es(r, t) {
3780
3827
  const e = r.trim(), n = t.trim();
3781
3828
  if (r === "") return "$";
3782
3829
  if (e === "$" || e === "*" || /^#\d+$/.test(e)) return e;
@@ -3789,20 +3836,20 @@ let __tla = Promise.all([
3789
3836
  const s = Number(e);
3790
3837
  return Number.isFinite(s) ? n.includes(".") || /E/i.test(n) ? et(s) : String(s) : "$";
3791
3838
  }
3792
- return De(r);
3839
+ return Ge(r);
3793
3840
  }
3794
- function ue(r) {
3841
+ function he(r) {
3795
3842
  if (r == null) return "$";
3796
3843
  if (typeof r == "boolean") return r ? ".T." : ".F.";
3797
3844
  if (typeof r == "number") return Number.isFinite(r) ? Number.isInteger(r) ? String(r) : et(r) : "$";
3798
- if (Array.isArray(r)) return `(${r.map(ue).join(",")})`;
3845
+ if (Array.isArray(r)) return `(${r.map(he).join(",")})`;
3799
3846
  const t = String(r).trim();
3800
3847
  return t === "$" || t === "*" || /^#\d+$/.test(t) ? t : /^\.[A-Z0-9_]+\.$/i.test(t) ? t.toUpperCase() : `'${rt(String(r))}'`;
3801
3848
  }
3802
- function ss(r) {
3803
- return r.map(ue).join(",");
3849
+ function ns(r) {
3850
+ return r.map(he).join(",");
3804
3851
  }
3805
- function Be(r) {
3852
+ function Ue(r) {
3806
3853
  const t = [];
3807
3854
  let e = "", n = 0, s = !1;
3808
3855
  for(let i = 0; i < r.length; i++){
@@ -3827,7 +3874,7 @@ let __tla = Promise.all([
3827
3874
  }
3828
3875
  return e.trim() && t.push(e.trim()), t;
3829
3876
  }
3830
- function is(r) {
3877
+ function ss(r) {
3831
3878
  const t = [];
3832
3879
  let e = "", n = 0, s = !1;
3833
3880
  for(let i = 0; i < r.length; i++){
@@ -3852,7 +3899,7 @@ let __tla = Promise.all([
3852
3899
  }
3853
3900
  return t.push(e), t;
3854
3901
  }
3855
- rs = class {
3902
+ is = class {
3856
3903
  dataStore;
3857
3904
  mutationView;
3858
3905
  nextExpressId;
@@ -3860,14 +3907,14 @@ let __tla = Promise.all([
3860
3907
  constructor(t, e){
3861
3908
  this.dataStore = t, this.mutationView = e || null;
3862
3909
  const n = this.findMaxExpressId(), s = typeof e?.peekNextExpressId == "function" ? e.peekNextExpressId() - 1 : 0;
3863
- this.nextExpressId = Math.max(n, s) + 1, this.entityExtractor = t.source ? new Xe(t.source) : null;
3910
+ this.nextExpressId = Math.max(n, s) + 1, this.entityExtractor = t.source ? new Je(t.source) : null;
3864
3911
  }
3865
3912
  export(t) {
3866
3913
  const e = [];
3867
3914
  let n = 0, s = 0;
3868
- const i = t.schema || this.dataStore.schemaVersion || "IFC4", o = this.dataStore.schemaVersion || "IFC4", c = fe(o, i);
3915
+ const i = t.schema || this.dataStore.schemaVersion || "IFC4", o = this.dataStore.schemaVersion || "IFC4", c = ue(o, i);
3869
3916
  if (i === "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.");
3870
- const l = ie({
3917
+ const l = re({
3871
3918
  schema: i,
3872
3919
  description: t.description || "Exported from ifc-lite",
3873
3920
  author: t.author || "",
@@ -3962,8 +4009,8 @@ let __tla = Promise.all([
3962
4009
  x.push(`#${_}=IFCPROJECTEDCRS(${w},${g},${R},${N},${$},${V},${z});`), n++;
3963
4010
  const Y = this.findPreferredGeometricRepresentationContextId();
3964
4011
  if (Y) {
3965
- const H = b.mapConversion || {}, Q = this.nextExpressId++, Z = et(Number(H.eastings) || 0), L = et(Number(H.northings) || 0), W = et(Number(H.orthogonalHeight) || 0), X = H.xAxisAbscissa !== void 0 ? et(Number(H.xAxisAbscissa)) : "$", U = H.xAxisOrdinate !== void 0 ? et(Number(H.xAxisOrdinate)) : "$", q = H.scale !== void 0 ? et(Number(H.scale)) : "$";
3966
- x.push(`#${Q}=IFCMAPCONVERSION(#${Y},#${_},${Z},${L},${W},${X},${U},${q});`), n++;
4012
+ const H = b.mapConversion || {}, Q = this.nextExpressId++, Z = et(Number(H.eastings) || 0), L = et(Number(H.northings) || 0), j = et(Number(H.orthogonalHeight) || 0), X = H.xAxisAbscissa !== void 0 ? et(Number(H.xAxisAbscissa)) : "$", U = H.xAxisOrdinate !== void 0 ? et(Number(H.xAxisOrdinate)) : "$", q = H.scale !== void 0 ? et(Number(H.scale)) : "$";
4013
+ x.push(`#${Q}=IFCMAPCONVERSION(#${Y},#${_},${Z},${L},${j},${X},${U},${q});`), n++;
3967
4014
  } else console.warn("[StepExporter] Cannot create IfcMapConversion: no IfcGeometricRepresentationContext found in source file");
3968
4015
  } else if (b.mapConversion && !F?.length && S?.length) {
3969
4016
  const m = this.findPreferredGeometricRepresentationContextId();
@@ -3991,8 +4038,8 @@ END-ISO-10303-21;
3991
4038
  }
3992
4039
  let O = null;
3993
4040
  if (t.visibleOnly && this.dataStore.source) {
3994
- const { roots: b, hiddenProductIds: S } = le(this.dataStore, t.hiddenEntityIds ?? new Set, t.isolatedEntityIds ?? null);
3995
- O = ce(b, this.dataStore.source, this.dataStore.entityIndex.byId, S), de(O, this.dataStore.source, this.dataStore.entityIndex);
4041
+ const { roots: b, hiddenProductIds: S } = de(this.dataStore, t.hiddenEntityIds ?? new Set, t.isolatedEntityIds ?? null);
4042
+ O = le(b, this.dataStore.source, this.dataStore.entityIndex.byId, S), fe(O, this.dataStore.source, this.dataStore.entityIndex);
3996
4043
  }
3997
4044
  if (!t.deltaOnly && this.dataStore.source) {
3998
4045
  const b = this.dataStore.source, S = !!this.mutationView && t.applyMutations !== !1;
@@ -4004,7 +4051,7 @@ END-ISO-10303-21;
4004
4051
  let g = u.has(F) ? this.applyAttributeMutations(w, _, u.get(F)) : w;
4005
4052
  const R = S && typeof this.mutationView.getPositionalMutationsForEntity == "function" ? this.mutationView.getPositionalMutationsForEntity(F) : null;
4006
4053
  if (R && R.size > 0 && (g = this.applyPositionalMutations(g, R), d.has(F) || (d.add(F), s++)), c) {
4007
- const N = qt(g, o, i);
4054
+ const N = Qt(g, o, i);
4008
4055
  N !== null && e.push(N);
4009
4056
  } else e.push(g);
4010
4057
  }
@@ -4032,13 +4079,13 @@ END-ISO-10303-21;
4032
4079
  if (this.mutationView && t.applyMutations !== !1 && typeof this.mutationView.getNewEntities == "function") for (const b of this.mutationView.getNewEntities()){
4033
4080
  const S = b.type.toUpperCase();
4034
4081
  if (t.includeGeometry === !1 && this.isGeometryEntity(S) || O !== null && !O.has(b.expressId)) continue;
4035
- const F = `#${b.expressId}=${S}(${ss(b.attributes)});`;
4082
+ const F = `#${b.expressId}=${S}(${ns(b.attributes)});`;
4036
4083
  if (c) {
4037
- const m = qt(F, o, i);
4084
+ const m = Qt(F, o, i);
4038
4085
  m !== null && (e.push(m), n++);
4039
4086
  } else e.push(F), n++;
4040
4087
  }
4041
- const D = os(l, e);
4088
+ const D = rs(l, e);
4042
4089
  return {
4043
4090
  content: D,
4044
4091
  stats: {
@@ -4086,7 +4133,7 @@ END-ISO-10303-21;
4086
4133
  for (const I of c.properties){
4087
4134
  const h = this.nextExpressId++;
4088
4135
  i++;
4089
- const y = He(I.value, I.type), E = I.unit ? this.findUnitId(I.unit) : null, C = E !== null ? Je(E) : null, T = `#${h}=IFCPROPERTYSINGLEVALUE('${rt(I.name)}',$,${y},${C ? De(C) : "$"});`;
4136
+ const y = ke(I.value, I.type), E = I.unit ? this.findUnitId(I.unit) : null, C = E !== null ? tn(E) : null, T = `#${h}=IFCPROPERTYSINGLEVALUE('${rt(I.name)}',$,${y},${C ? Ge(C) : "$"});`;
4090
4137
  s.push(T), l.push(h);
4091
4138
  }
4092
4139
  const d = this.nextExpressId++;
@@ -4114,7 +4161,7 @@ END-ISO-10303-21;
4114
4161
  for (const h of i.quantities){
4115
4162
  const y = this.nextExpressId++;
4116
4163
  s++;
4117
- const E = es(h.type), C = et(h.value), T = `#${y}=${E}('${rt(h.name)}',$,$,${C},$);`;
4164
+ const E = ts(h.type), C = et(h.value), T = `#${y}=${E}('${rt(h.name)}',$,$,${C},$);`;
4118
4165
  n.push(T), o.push(y);
4119
4166
  }
4120
4167
  const c = this.nextExpressId++;
@@ -4134,22 +4181,22 @@ END-ISO-10303-21;
4134
4181
  applyAttributeMutations(t, e, n) {
4135
4182
  const s = t.indexOf("("), i = t.lastIndexOf(");");
4136
4183
  if (s < 0 || i < s) return t;
4137
- const o = qe(e);
4184
+ const o = Ke(e);
4138
4185
  if (o.length === 0) return t;
4139
- const c = Be(t.slice(s + 1, i));
4186
+ const c = Ue(t.slice(s + 1, i));
4140
4187
  let l = !1;
4141
4188
  for (const [d, f] of n){
4142
4189
  const u = o.indexOf(d);
4143
- u < 0 || u >= c.length || (c[u] = ns(f, c[u]), l = !0);
4190
+ u < 0 || u >= c.length || (c[u] = es(f, c[u]), l = !0);
4144
4191
  }
4145
4192
  return l ? `${t.slice(0, s + 1)}${c.join(",")}${t.slice(i)}` : t;
4146
4193
  }
4147
4194
  applyPositionalMutations(t, e) {
4148
4195
  const n = t.indexOf("("), s = t.lastIndexOf(");");
4149
4196
  if (n < 0 || s < n) return t;
4150
- const i = Be(t.slice(n + 1, s));
4197
+ const i = Ue(t.slice(n + 1, s));
4151
4198
  let o = !1;
4152
- for (const [c, l] of e)c < 0 || c >= i.length || (i[c] = ue(l), o = !0);
4199
+ for (const [c, l] of e)c < 0 || c >= i.length || (i[c] = he(l), o = !0);
4153
4200
  return o ? `${t.slice(0, n + 1)}${i.join(",")}${t.slice(s)}` : t;
4154
4201
  }
4155
4202
  resolveMapUnitReference(t, e) {
@@ -4204,7 +4251,7 @@ END-ISO-10303-21;
4204
4251
  return e ?? t[0] ?? null;
4205
4252
  }
4206
4253
  generateGlobalId() {
4207
- return Qe();
4254
+ return Ze();
4208
4255
  }
4209
4256
  findMaxExpressId() {
4210
4257
  let t = 0;
@@ -4330,18 +4377,18 @@ END-ISO-10303-21;
4330
4377
  if (!s || !this.dataStore.source) return null;
4331
4378
  const o = it(this.dataStore.source, s.byteOffset, s.byteOffset + s.byteLength).match(/^(#\d+\s*=\s*\w+\()([\s\S]*)(\)\s*;)\s*$/);
4332
4379
  if (!o) return null;
4333
- const [, c, l, d] = o, f = is(l);
4380
+ const [, c, l, d] = o, f = ss(l);
4334
4381
  return e >= f.length ? null : (f[e] = n, `${c}${f.join(",")}${d}`);
4335
4382
  }
4336
4383
  };
4337
4384
  gs = function(r, t) {
4338
- const n = new rs(r).export({
4385
+ const n = new is(r).export({
4339
4386
  schema: "IFC4",
4340
4387
  ...t
4341
4388
  });
4342
4389
  return new TextDecoder().decode(n.content);
4343
4390
  };
4344
- function os(r, t) {
4391
+ function rs(r, t) {
4345
4392
  const e = new TextEncoder, n = e.encode(`${r}DATA;
4346
4393
  `), s = e.encode(`ENDSEC;
4347
4394
  END-ISO-10303-21;
@@ -4356,7 +4403,7 @@ END-ISO-10303-21;
4356
4403
  for(let f = 0; f < c.length; f++)l.set(c[f], d), d += c[f].byteLength, l.set(i, d), d += i.byteLength;
4357
4404
  return l.set(s, d), l;
4358
4405
  }
4359
- const as = new Set([
4406
+ const os = new Set([
4360
4407
  "IFCUNITASSIGNMENT",
4361
4408
  "IFCGEOMETRICREPRESENTATIONCONTEXT",
4362
4409
  "IFCGEOMETRICREPRESENTATIONSUBCONTEXT"
@@ -4368,7 +4415,7 @@ END-ISO-10303-21;
4368
4415
  this.models = t;
4369
4416
  }
4370
4417
  export(t) {
4371
- const e = t.onProgress, n = t.schema || "IFC4", s = ie({
4418
+ const e = t.onProgress, n = t.schema || "IFC4", s = re({
4372
4419
  schema: n,
4373
4420
  description: t.description || `Merged export of ${this.models.length} models from ifc-lite`,
4374
4421
  author: t.author || "",
@@ -4391,8 +4438,8 @@ END-ISO-10303-21;
4391
4438
  if (!C || C.length === 0) continue;
4392
4439
  let T = null;
4393
4440
  if (t.visibleOnly) {
4394
- const k = t.hiddenEntityIdsByModel?.get(y.id) ?? new Set, O = t.isolatedEntityIdsByModel?.get(y.id) ?? null, { roots: D, hiddenProductIds: b } = le(y.dataStore, k, O);
4395
- T = ce(D, C, y.dataStore.entityIndex.byId, b), de(T, C, y.dataStore.entityIndex);
4441
+ const k = t.hiddenEntityIdsByModel?.get(y.id) ?? new Set, O = t.isolatedEntityIdsByModel?.get(y.id) ?? null, { roots: D, hiddenProductIds: b } = de(y.dataStore, k, O);
4442
+ T = le(D, C, y.dataStore.entityIndex.byId, b), fe(T, C, y.dataStore.entityIndex);
4396
4443
  }
4397
4444
  const G = new Map, x = new Set;
4398
4445
  if (!I) {
@@ -4411,8 +4458,8 @@ END-ISO-10303-21;
4411
4458
  let b;
4412
4459
  E === 0 && G.size === 0 ? b = D : b = this.remapEntityText(D, E, G);
4413
4460
  const S = y.dataStore.schemaVersion || "IFC4";
4414
- if (fe(S, n)) {
4415
- const F = qt(b, S, n);
4461
+ if (ue(S, n)) {
4462
+ const F = Qt(b, S, n);
4416
4463
  F !== null && i.push(F);
4417
4464
  } else i.push(b);
4418
4465
  }
@@ -4424,7 +4471,7 @@ END-ISO-10303-21;
4424
4471
  entitiesProcessed: i.length,
4425
4472
  entitiesTotal: i.length
4426
4473
  });
4427
- const h = Pe(s, i);
4474
+ const h = ve(s, i);
4428
4475
  return {
4429
4476
  content: h,
4430
4477
  stats: {
@@ -4435,7 +4482,7 @@ END-ISO-10303-21;
4435
4482
  };
4436
4483
  }
4437
4484
  async exportAsync(t) {
4438
- const e = t.onProgress, n = t.schema || "IFC4", s = ie({
4485
+ const e = t.onProgress, n = t.schema || "IFC4", s = re({
4439
4486
  schema: n,
4440
4487
  description: t.description || `Merged export of ${this.models.length} models from ifc-lite`,
4441
4488
  author: t.author || "",
@@ -4474,8 +4521,8 @@ END-ISO-10303-21;
4474
4521
  });
4475
4522
  let k = null;
4476
4523
  if (t.visibleOnly) {
4477
- const S = t.hiddenEntityIdsByModel?.get(T.id) ?? new Set, F = t.isolatedEntityIdsByModel?.get(T.id) ?? null, { roots: m, hiddenProductIds: _ } = le(T.dataStore, S, F);
4478
- k = ce(m, x, T.dataStore.entityIndex.byId, _), de(k, x, T.dataStore.entityIndex);
4524
+ const S = t.hiddenEntityIdsByModel?.get(T.id) ?? new Set, F = t.isolatedEntityIdsByModel?.get(T.id) ?? null, { roots: m, hiddenProductIds: _ } = de(T.dataStore, S, F);
4525
+ k = le(m, x, T.dataStore.entityIndex.byId, _), fe(k, x, T.dataStore.entityIndex);
4479
4526
  }
4480
4527
  const O = new Map, D = new Set;
4481
4528
  if (!h) {
@@ -4495,8 +4542,8 @@ END-ISO-10303-21;
4495
4542
  let _;
4496
4543
  G === 0 && O.size === 0 ? _ = m : _ = this.remapEntityText(m, G, O);
4497
4544
  const w = T.dataStore.schemaVersion || "IFC4";
4498
- if (fe(w, n)) {
4499
- const g = qt(_, w, n);
4545
+ if (ue(w, n)) {
4546
+ const g = Qt(_, w, n);
4500
4547
  g !== null && i.push(g);
4501
4548
  } else i.push(_);
4502
4549
  b++, y++, b % E === 0 && (e && e({
@@ -4515,7 +4562,7 @@ END-ISO-10303-21;
4515
4562
  entitiesProcessed: o,
4516
4563
  entitiesTotal: o
4517
4564
  }), await new Promise((T)=>setTimeout(T, 0));
4518
- const C = Pe(s, i);
4565
+ const C = ve(s, i);
4519
4566
  return e && e({
4520
4567
  phase: "assembling",
4521
4568
  percent: 1,
@@ -4559,7 +4606,7 @@ END-ISO-10303-21;
4559
4606
  }
4560
4607
  findInfrastructureEntities(t) {
4561
4608
  const e = new Map;
4562
- for (const n of as){
4609
+ for (const n of os){
4563
4610
  const s = t.entityIndex.byType.get(n) ?? [];
4564
4611
  s.length > 0 && e.set(n, [
4565
4612
  ...s
@@ -4654,7 +4701,7 @@ END-ISO-10303-21;
4654
4701
  if (!n || n === "$") return null;
4655
4702
  if (n.startsWith("'") && n.endsWith("'")) {
4656
4703
  const s = n.slice(1, -1).replace(/''/g, "'");
4657
- return Ke(s);
4704
+ return en(s);
4658
4705
  }
4659
4706
  return null;
4660
4707
  }
@@ -4695,7 +4742,7 @@ END-ISO-10303-21;
4695
4742
  return null;
4696
4743
  }
4697
4744
  };
4698
- function Pe(r, t) {
4745
+ function ve(r, t) {
4699
4746
  const e = new TextEncoder, n = e.encode(`${r}DATA;
4700
4747
  `), s = e.encode(`ENDSEC;
4701
4748
  END-ISO-10303-21;
@@ -4710,13 +4757,13 @@ END-ISO-10303-21;
4710
4757
  for(let f = 0; f < c.length; f++)l.set(c[f], d), d += c[f].byteLength, l.set(i, d), d += i.byteLength;
4711
4758
  return l.set(s, d), l;
4712
4759
  }
4713
- let ne;
4714
- ne = {
4760
+ let se;
4761
+ se = {
4715
4762
  IFC_CORE: "https://ifcx.dev/@standards.buildingsmart.org/ifc/core/ifc@v5a.ifcx",
4716
4763
  IFC_PROP: "https://ifcx.dev/@standards.buildingsmart.org/ifc/core/prop@v5a.ifcx",
4717
4764
  USD: "https://ifcx.dev/@openusd.org/usd@v1.ifcx"
4718
4765
  };
4719
- Ue = new Set([
4766
+ De = new Set([
4720
4767
  "UsageType",
4721
4768
  "TypeName",
4722
4769
  "IsExternal",
@@ -4757,9 +4804,9 @@ END-ISO-10303-21;
4757
4804
  for(let y = 0; y < d.count; y++){
4758
4805
  const E = d.expressId[y];
4759
4806
  if (s && !s.has(E) || i && !i.has(E)) continue;
4760
- const C = d.typeEnum[y], T = re(C) || "IfcElement", G = ze(T.toUpperCase(), e, "IFC5"), x = ls(G);
4807
+ const C = d.typeEnum[y], T = oe(C) || "IfcElement", G = We(T.toUpperCase(), e, "IFC5"), x = cs(G);
4761
4808
  x === "IfcProject" && (u = E);
4762
- const k = this.entityUuids.get(E) || se(E), O = {};
4809
+ const k = this.entityUuids.get(E) || ie(E), O = {};
4763
4810
  O["bsi::ifc::class"] = {
4764
4811
  code: x,
4765
4812
  uri: `https://identifier.buildingsmart.org/uri/buildingsmart/ifc/5/class/${x}`
@@ -4792,7 +4839,7 @@ END-ISO-10303-21;
4792
4839
  if (u !== null) {
4793
4840
  const y = this.entityUuids.get(u);
4794
4841
  if (y) {
4795
- const E = this.childNames.get(u) || f.get(d.name[this.findEntityIndex(u)]) || "Project", C = se(0);
4842
+ const E = this.childNames.get(u) || f.get(d.name[this.findEntityIndex(u)]) || "Project", C = ie(0);
4796
4843
  o.unshift({
4797
4844
  path: C,
4798
4845
  children: {
@@ -4802,7 +4849,7 @@ END-ISO-10303-21;
4802
4849
  });
4803
4850
  }
4804
4851
  }
4805
- const p = cs(o), I = {
4852
+ const p = as(o), I = {
4806
4853
  header: {
4807
4854
  id: `ifcx_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`,
4808
4855
  ifcxVersion: "ifcx_alpha",
@@ -4834,7 +4881,7 @@ END-ISO-10303-21;
4834
4881
  this.entityUuids.clear();
4835
4882
  for(let l = 0; l < e.count; l++){
4836
4883
  const d = e.expressId[l], f = n.get(e.globalId[l]);
4837
- this.entityUuids.set(d, f || se(d));
4884
+ this.entityUuids.set(d, f || ie(d));
4838
4885
  }
4839
4886
  const s = new Map, i = (l, d)=>{
4840
4887
  if (d) for (const f of d)s.set(f, l);
@@ -4861,7 +4908,7 @@ END-ISO-10303-21;
4861
4908
  const d = e.expressId[l];
4862
4909
  let f = n.get(e.name[l]) || "";
4863
4910
  if (f || (f = this.spatialNodeNames.get(d) || ""), !f) {
4864
- const u = re(e.typeEnum[l]);
4911
+ const u = oe(e.typeEnum[l]);
4865
4912
  u !== "Unknown" && (f = u);
4866
4913
  }
4867
4914
  o.set(d, f);
@@ -4890,14 +4937,14 @@ END-ISO-10303-21;
4890
4937
  if (this.mutationView && e.applyMutations !== !1) {
4891
4938
  const s = this.mutationView.getForEntity(t);
4892
4939
  for (const i of s)for (const o of i.properties){
4893
- if (e.onlyKnownProperties !== !1 && !Ue.has(o.name)) continue;
4940
+ if (e.onlyKnownProperties !== !1 && !De.has(o.name)) continue;
4894
4941
  const c = `bsi::ifc::prop::${o.name}`;
4895
4942
  n[c] = this.convertPropertyValue(o.value, o.type);
4896
4943
  }
4897
4944
  } else if (this.dataStore.properties) {
4898
4945
  const s = this.dataStore.properties.getForEntity(t);
4899
4946
  for (const i of s)for (const o of i.properties){
4900
- if (e.onlyKnownProperties !== !1 && !Ue.has(o.name)) continue;
4947
+ if (e.onlyKnownProperties !== !1 && !De.has(o.name)) continue;
4901
4948
  const c = `bsi::ifc::prop::${o.name}`;
4902
4949
  n[c] = this.convertPropertyValue(o.value, o.type);
4903
4950
  }
@@ -4996,7 +5043,7 @@ END-ISO-10303-21;
4996
5043
  return s;
4997
5044
  }
4998
5045
  };
4999
- function cs(r) {
5046
+ function as(r) {
5000
5047
  let t = !1, e = !1, n = !1;
5001
5048
  for (const i of r)if (i.attributes) {
5002
5049
  for (const o of Object.keys(i.attributes))if (!t && (o === "bsi::ifc::class" || o.startsWith("bsi::ifc::presentation::") || o === "bsi::ifc::material" || o === "bsi::ifc::spaceBoundary") && (t = !0), !e && o.startsWith("bsi::ifc::prop::") && (e = !0), !n && o.startsWith("usd::") && (n = !0), t && e && n) break;
@@ -5004,21 +5051,21 @@ END-ISO-10303-21;
5004
5051
  }
5005
5052
  const s = [];
5006
5053
  return t && s.push({
5007
- uri: ne.IFC_CORE
5054
+ uri: se.IFC_CORE
5008
5055
  }), e && s.push({
5009
- uri: ne.IFC_PROP
5056
+ uri: se.IFC_PROP
5010
5057
  }), n && s.push({
5011
- uri: ne.USD
5058
+ uri: se.USD
5012
5059
  }), s;
5013
5060
  }
5014
- function se(r) {
5061
+ function ie(r) {
5015
5062
  return `00000000-0000-4000-8000-${r.toString(16).padStart(12, "0")}`;
5016
5063
  }
5017
- function ls(r) {
5018
- const t = Ze(r), e = re(t);
5064
+ function cs(r) {
5065
+ const t = nn(r), e = oe(t);
5019
5066
  if (e !== "Unknown") return e;
5020
5067
  const n = r.toLowerCase();
5021
5068
  return n.startsWith("ifc") ? "Ifc" + n.charAt(3).toUpperCase() + n.slice(4) : r;
5022
5069
  }
5023
5070
  });
5024
- export { ps as C, hs as G, Ue as I, _s as M, rs as S, $e as _, us as a, wn as b, Is as c, ae as d, gs as e, fs as g, __tla };
5071
+ export { ps as C, hs as G, De as I, _s as M, is as S, us as a, Rn as b, Is as c, gs as e, fs as g, ds as m, __tla };