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