@ridp/threejs 1.5.1 → 1.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1473 @@
1
+ import { z as pn } from "./PredictiveLoader-Ce8DXwbW.js";
2
+ import { DataTextureLoader as fn, HalfFloatType as Te, FloatType as Be, RGBAFormat as jn, LinearSRGBColorSpace as tn, RedFormat as et, NoColorSpace as nt, LinearFilter as $e, DataUtils as De, EquirectangularReflectionMapping as tt } from "three";
3
+ /*!
4
+ fflate - fast JavaScript compression/decompression
5
+ <https://101arrowz.github.io/fflate>
6
+ Licensed under MIT. https://github.com/101arrowz/fflate/blob/master/LICENSE
7
+ version 0.8.2
8
+ */
9
+ var ie = Uint8Array, Fe = Uint16Array, rt = Int32Array, mn = new ie([
10
+ 0,
11
+ 0,
12
+ 0,
13
+ 0,
14
+ 0,
15
+ 0,
16
+ 0,
17
+ 0,
18
+ 1,
19
+ 1,
20
+ 1,
21
+ 1,
22
+ 2,
23
+ 2,
24
+ 2,
25
+ 2,
26
+ 3,
27
+ 3,
28
+ 3,
29
+ 3,
30
+ 4,
31
+ 4,
32
+ 4,
33
+ 4,
34
+ 5,
35
+ 5,
36
+ 5,
37
+ 5,
38
+ 0,
39
+ /* unused */
40
+ 0,
41
+ 0,
42
+ /* impossible */
43
+ 0
44
+ ]), wn = new ie([
45
+ 0,
46
+ 0,
47
+ 0,
48
+ 0,
49
+ 1,
50
+ 1,
51
+ 2,
52
+ 2,
53
+ 3,
54
+ 3,
55
+ 4,
56
+ 4,
57
+ 5,
58
+ 5,
59
+ 6,
60
+ 6,
61
+ 7,
62
+ 7,
63
+ 8,
64
+ 8,
65
+ 9,
66
+ 9,
67
+ 10,
68
+ 10,
69
+ 11,
70
+ 11,
71
+ 12,
72
+ 12,
73
+ 13,
74
+ 13,
75
+ /* unused */
76
+ 0,
77
+ 0
78
+ ]), ot = new ie([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), En = function(i, h) {
79
+ for (var p = new Fe(31), S = 0; S < 31; ++S)
80
+ p[S] = h += 1 << i[S - 1];
81
+ for (var y = new rt(p[30]), S = 1; S < 30; ++S)
82
+ for (var D = p[S]; D < p[S + 1]; ++D)
83
+ y[D] = D - p[S] << 5 | S;
84
+ return { b: p, r: y };
85
+ }, gn = En(mn, 2), vn = gn.b, lt = gn.r;
86
+ vn[28] = 258, lt[258] = 28;
87
+ var it = En(wn, 0), st = it.b, rn = new Fe(32768);
88
+ for (var z = 0; z < 32768; ++z) {
89
+ var Ae = (z & 43690) >> 1 | (z & 21845) << 1;
90
+ Ae = (Ae & 52428) >> 2 | (Ae & 13107) << 2, Ae = (Ae & 61680) >> 4 | (Ae & 3855) << 4, rn[z] = ((Ae & 65280) >> 8 | (Ae & 255) << 8) >> 1;
91
+ }
92
+ var ze = function(i, h, p) {
93
+ for (var S = i.length, y = 0, D = new Fe(h); y < S; ++y)
94
+ i[y] && ++D[i[y] - 1];
95
+ var b = new Fe(h);
96
+ for (y = 1; y < h; ++y)
97
+ b[y] = b[y - 1] + D[y - 1] << 1;
98
+ var V;
99
+ if (p) {
100
+ V = new Fe(1 << h);
101
+ var _e = 15 - h;
102
+ for (y = 0; y < S; ++y)
103
+ if (i[y])
104
+ for (var Ue = y << 4 | i[y], se = h - i[y], R = b[i[y] - 1]++ << se, L = R | (1 << se) - 1; R <= L; ++R)
105
+ V[rn[R] >> _e] = Ue;
106
+ } else
107
+ for (V = new Fe(S), y = 0; y < S; ++y)
108
+ i[y] && (V[y] = rn[b[i[y] - 1]++] >> 15 - i[y]);
109
+ return V;
110
+ }, Ge = new ie(288);
111
+ for (var z = 0; z < 144; ++z)
112
+ Ge[z] = 8;
113
+ for (var z = 144; z < 256; ++z)
114
+ Ge[z] = 9;
115
+ for (var z = 256; z < 280; ++z)
116
+ Ge[z] = 7;
117
+ for (var z = 280; z < 288; ++z)
118
+ Ge[z] = 8;
119
+ var Sn = new ie(32);
120
+ for (var z = 0; z < 32; ++z)
121
+ Sn[z] = 5;
122
+ var ct = /* @__PURE__ */ ze(Ge, 9, 1), at = /* @__PURE__ */ ze(Sn, 5, 1), je = function(i) {
123
+ for (var h = i[0], p = 1; p < i.length; ++p)
124
+ i[p] > h && (h = i[p]);
125
+ return h;
126
+ }, ae = function(i, h, p) {
127
+ var S = h / 8 | 0;
128
+ return (i[S] | i[S + 1] << 8) >> (h & 7) & p;
129
+ }, en = function(i, h) {
130
+ var p = h / 8 | 0;
131
+ return (i[p] | i[p + 1] << 8 | i[p + 2] << 16) >> (h & 7);
132
+ }, ut = function(i) {
133
+ return (i + 7) / 8 | 0;
134
+ }, ht = function(i, h, p) {
135
+ return (p == null || p > i.length) && (p = i.length), new ie(i.subarray(h, p));
136
+ }, pt = [
137
+ "unexpected EOF",
138
+ "invalid block type",
139
+ "invalid length/literal",
140
+ "invalid distance",
141
+ "stream finished",
142
+ "no stream handler",
143
+ ,
144
+ "no callback",
145
+ "invalid UTF-8 data",
146
+ "extra field too long",
147
+ "date not in range 1980-2099",
148
+ "filename too long",
149
+ "stream finishing",
150
+ "invalid zip data"
151
+ // determined by unknown compression method
152
+ ], ue = function(i, h, p) {
153
+ var S = new Error(h || pt[i]);
154
+ if (S.code = i, Error.captureStackTrace && Error.captureStackTrace(S, ue), !p)
155
+ throw S;
156
+ return S;
157
+ }, ft = function(i, h, p, S) {
158
+ var y = i.length, D = 0;
159
+ if (!y || h.f && !h.l)
160
+ return p || new ie(0);
161
+ var b = !p, V = b || h.i != 2, _e = h.i;
162
+ b && (p = new ie(y * 3));
163
+ var Ue = function(Le) {
164
+ var We = p.length;
165
+ if (Le > We) {
166
+ var Pe = new ie(Math.max(We * 2, Le));
167
+ Pe.set(p), p = Pe;
168
+ }
169
+ }, se = h.f || 0, R = h.p || 0, L = h.b || 0, he = h.l, Ne = h.d, ye = h.m, ce = h.n, pe = y * 8;
170
+ do {
171
+ if (!he) {
172
+ se = ae(i, R, 1);
173
+ var Me = ae(i, R + 1, 3);
174
+ if (R += 3, Me)
175
+ if (Me == 1)
176
+ he = ct, Ne = at, ye = 9, ce = 5;
177
+ else if (Me == 2) {
178
+ var Ce = ae(i, R, 31) + 257, fe = ae(i, R + 10, 15) + 4, C = Ce + ae(i, R + 5, 31) + 1;
179
+ R += 14;
180
+ for (var U = new ie(C), x = new ie(19), T = 0; T < fe; ++T)
181
+ x[ot[T]] = ae(i, R + T * 3, 7);
182
+ R += fe * 3;
183
+ for (var O = je(x), Z = (1 << O) - 1, A = ze(x, O, 1), T = 0; T < C; ) {
184
+ var G = A[ae(i, R, Z)];
185
+ R += G & 15;
186
+ var j = G >> 4;
187
+ if (j < 16)
188
+ U[T++] = j;
189
+ else {
190
+ var N = 0, ee = 0;
191
+ for (j == 16 ? (ee = 3 + ae(i, R, 3), R += 2, N = U[T - 1]) : j == 17 ? (ee = 3 + ae(i, R, 7), R += 3) : j == 18 && (ee = 11 + ae(i, R, 127), R += 7); ee--; )
192
+ U[T++] = N;
193
+ }
194
+ }
195
+ var be = U.subarray(0, Ce), J = U.subarray(Ce);
196
+ ye = je(be), ce = je(J), he = ze(be, ye, 1), Ne = ze(J, ce, 1);
197
+ } else
198
+ ue(1);
199
+ else {
200
+ var j = ut(R) + 4, Ee = i[j - 4] | i[j - 3] << 8, Ie = j + Ee;
201
+ if (Ie > y) {
202
+ _e && ue(0);
203
+ break;
204
+ }
205
+ V && Ue(L + Ee), p.set(i.subarray(j, Ie), L), h.b = L += Ee, h.p = R = Ie * 8, h.f = se;
206
+ continue;
207
+ }
208
+ if (R > pe) {
209
+ _e && ue(0);
210
+ break;
211
+ }
212
+ }
213
+ V && Ue(L + 131072);
214
+ for (var X = (1 << ye) - 1, Oe = (1 << ce) - 1, W = R; ; W = R) {
215
+ var N = he[en(i, R) & X], K = N >> 4;
216
+ if (R += N & 15, R > pe) {
217
+ _e && ue(0);
218
+ break;
219
+ }
220
+ if (N || ue(2), K < 256)
221
+ p[L++] = K;
222
+ else if (K == 256) {
223
+ W = R, he = null;
224
+ break;
225
+ } else {
226
+ var ge = K - 254;
227
+ if (K > 264) {
228
+ var T = K - 257, de = mn[T];
229
+ ge = ae(i, R, (1 << de) - 1) + vn[T], R += de;
230
+ }
231
+ var F = Ne[en(i, R) & Oe], me = F >> 4;
232
+ F || ue(3), R += F & 15;
233
+ var J = st[me];
234
+ if (me > 3) {
235
+ var de = wn[me];
236
+ J += en(i, R) & (1 << de) - 1, R += de;
237
+ }
238
+ if (R > pe) {
239
+ _e && ue(0);
240
+ break;
241
+ }
242
+ V && Ue(L + 131072);
243
+ var ve = L + ge;
244
+ if (L < J) {
245
+ var Ye = D - J, Ve = Math.min(J, ve);
246
+ for (Ye + L < 0 && ue(3); L < Ve; ++L)
247
+ p[L] = S[Ye + L];
248
+ }
249
+ for (; L < ve; ++L)
250
+ p[L] = p[L - J];
251
+ }
252
+ }
253
+ h.l = he, h.p = W, h.b = L, h.f = se, he && (se = 1, h.m = ye, h.d = Ne, h.n = ce);
254
+ } while (!se);
255
+ return L != p.length && b ? ht(p, 0, L) : p.subarray(0, L);
256
+ }, mt = /* @__PURE__ */ new ie(0), wt = function(i, h) {
257
+ return ((i[0] & 15) != 8 || i[0] >> 4 > 7 || (i[0] << 8 | i[1]) % 31) && ue(6, "invalid zlib data"), (i[1] >> 5 & 1) == 1 && ue(6, "invalid zlib data: " + (i[1] & 32 ? "need" : "unexpected") + " dictionary"), (i[1] >> 3 & 4) + 2;
258
+ };
259
+ function qe(i, h) {
260
+ return ft(i.subarray(wt(i), -4), { i: 2 }, h, h);
261
+ }
262
+ var Et = typeof TextDecoder < "u" && /* @__PURE__ */ new TextDecoder(), gt = 0;
263
+ try {
264
+ Et.decode(mt, { stream: !0 }), gt = 1;
265
+ } catch {
266
+ }
267
+ class vt extends fn {
268
+ /**
269
+ * Constructs a new EXR loader.
270
+ *
271
+ * @param {LoadingManager} [manager] - The loading manager.
272
+ */
273
+ constructor(h) {
274
+ super(h), this.type = Te;
275
+ }
276
+ /**
277
+ * Parses the given EXR texture data.
278
+ *
279
+ * @param {ArrayBuffer} buffer - The raw texture data.
280
+ * @return {DataTextureLoader~TexData} An object representing the parsed texture data.
281
+ */
282
+ parse(h) {
283
+ const U = Math.pow(2.7182818, 2.2);
284
+ function x(e, n) {
285
+ let t = 0;
286
+ for (let l = 0; l < 65536; ++l)
287
+ (l == 0 || e[l >> 3] & 1 << (l & 7)) && (n[t++] = l);
288
+ const r = t - 1;
289
+ for (; t < 65536; ) n[t++] = 0;
290
+ return r;
291
+ }
292
+ function T(e) {
293
+ for (let n = 0; n < 16384; n++)
294
+ e[n] = {}, e[n].len = 0, e[n].lit = 0, e[n].p = null;
295
+ }
296
+ const O = { l: 0, c: 0, lc: 0 };
297
+ function Z(e, n, t, r, l) {
298
+ for (; t < e; )
299
+ n = n << 8 | cn(r, l), t += 8;
300
+ t -= e, O.l = n >> t & (1 << e) - 1, O.c = n, O.lc = t;
301
+ }
302
+ const A = new Array(59);
303
+ function G(e) {
304
+ for (let t = 0; t <= 58; ++t) A[t] = 0;
305
+ for (let t = 0; t < 65537; ++t) A[e[t]] += 1;
306
+ let n = 0;
307
+ for (let t = 58; t > 0; --t) {
308
+ const r = n + A[t] >> 1;
309
+ A[t] = n, n = r;
310
+ }
311
+ for (let t = 0; t < 65537; ++t) {
312
+ const r = e[t];
313
+ r > 0 && (e[t] = r | A[r]++ << 6);
314
+ }
315
+ }
316
+ function N(e, n, t, r, l, o) {
317
+ const a = n;
318
+ let f = 0, u = 0;
319
+ for (; r <= l; r++) {
320
+ if (a.value - n.value > t) return !1;
321
+ Z(6, f, u, e, a);
322
+ const c = O.l;
323
+ if (f = O.c, u = O.lc, o[r] = c, c == 63) {
324
+ if (a.value - n.value > t)
325
+ throw new Error("Something wrong with hufUnpackEncTable");
326
+ Z(8, f, u, e, a);
327
+ let s = O.l + 6;
328
+ if (f = O.c, u = O.lc, r + s > l + 1)
329
+ throw new Error("Something wrong with hufUnpackEncTable");
330
+ for (; s--; ) o[r++] = 0;
331
+ r--;
332
+ } else if (c >= 59) {
333
+ let s = c - 59 + 2;
334
+ if (r + s > l + 1)
335
+ throw new Error("Something wrong with hufUnpackEncTable");
336
+ for (; s--; ) o[r++] = 0;
337
+ r--;
338
+ }
339
+ }
340
+ G(o);
341
+ }
342
+ function ee(e) {
343
+ return e & 63;
344
+ }
345
+ function be(e) {
346
+ return e >> 6;
347
+ }
348
+ function J(e, n, t, r) {
349
+ for (; n <= t; n++) {
350
+ const l = be(e[n]), o = ee(e[n]);
351
+ if (l >> o)
352
+ throw new Error("Invalid table entry");
353
+ if (o > 14) {
354
+ const a = r[l >> o - 14];
355
+ if (a.len)
356
+ throw new Error("Invalid table entry");
357
+ if (a.lit++, a.p) {
358
+ const f = a.p;
359
+ a.p = new Array(a.lit);
360
+ for (let u = 0; u < a.lit - 1; ++u)
361
+ a.p[u] = f[u];
362
+ } else
363
+ a.p = new Array(1);
364
+ a.p[a.lit - 1] = n;
365
+ } else if (o) {
366
+ let a = 0;
367
+ for (let f = 1 << 14 - o; f > 0; f--) {
368
+ const u = r[(l << 14 - o) + a];
369
+ if (u.len || u.p)
370
+ throw new Error("Invalid table entry");
371
+ u.len = o, u.lit = n, a++;
372
+ }
373
+ }
374
+ }
375
+ return !0;
376
+ }
377
+ const X = { c: 0, lc: 0 };
378
+ function Oe(e, n, t, r) {
379
+ e = e << 8 | cn(t, r), n += 8, X.c = e, X.lc = n;
380
+ }
381
+ const W = { c: 0, lc: 0 };
382
+ function K(e, n, t, r, l, o, a, f, u) {
383
+ if (e == n) {
384
+ r < 8 && (Oe(t, r, l, o), t = X.c, r = X.lc), r -= 8;
385
+ let c = t >> r;
386
+ if (c = new Uint8Array([c])[0], f.value + c > u)
387
+ return !1;
388
+ const s = a[f.value - 1];
389
+ for (; c-- > 0; )
390
+ a[f.value++] = s;
391
+ } else if (f.value < u)
392
+ a[f.value++] = e;
393
+ else
394
+ return !1;
395
+ W.c = t, W.lc = r;
396
+ }
397
+ function ge(e) {
398
+ return e & 65535;
399
+ }
400
+ function de(e) {
401
+ const n = ge(e);
402
+ return n > 32767 ? n - 65536 : n;
403
+ }
404
+ const F = { a: 0, b: 0 };
405
+ function me(e, n) {
406
+ const t = de(e), l = de(n), o = t + (l & 1) + (l >> 1), a = o, f = o - l;
407
+ F.a = a, F.b = f;
408
+ }
409
+ function ve(e, n) {
410
+ const t = ge(e), r = ge(n), l = t - (r >> 1) & 65535, o = r + l - 32768 & 65535;
411
+ F.a = o, F.b = l;
412
+ }
413
+ function Ye(e, n, t, r, l, o, a) {
414
+ const f = a < 16384, u = t > l ? l : t;
415
+ let c = 1, s, m;
416
+ for (; c <= u; ) c <<= 1;
417
+ for (c >>= 1, s = c, c >>= 1; c >= 1; ) {
418
+ m = 0;
419
+ const v = m + o * (l - s), w = o * c, I = o * s, E = r * c, _ = r * s;
420
+ let d, B, Y, te;
421
+ for (; m <= v; m += I) {
422
+ let H = m;
423
+ const M = m + r * (t - s);
424
+ for (; H <= M; H += _) {
425
+ const q = H + E, le = H + w, $ = le + E;
426
+ f ? (me(e[H + n], e[le + n]), d = F.a, Y = F.b, me(e[q + n], e[$ + n]), B = F.a, te = F.b, me(d, B), e[H + n] = F.a, e[q + n] = F.b, me(Y, te), e[le + n] = F.a, e[$ + n] = F.b) : (ve(e[H + n], e[le + n]), d = F.a, Y = F.b, ve(e[q + n], e[$ + n]), B = F.a, te = F.b, ve(d, B), e[H + n] = F.a, e[q + n] = F.b, ve(Y, te), e[le + n] = F.a, e[$ + n] = F.b);
427
+ }
428
+ if (t & c) {
429
+ const q = H + w;
430
+ f ? me(e[H + n], e[q + n]) : ve(e[H + n], e[q + n]), d = F.a, e[q + n] = F.b, e[H + n] = d;
431
+ }
432
+ }
433
+ if (l & c) {
434
+ let H = m;
435
+ const M = m + r * (t - s);
436
+ for (; H <= M; H += _) {
437
+ const q = H + E;
438
+ f ? me(e[H + n], e[q + n]) : ve(e[H + n], e[q + n]), d = F.a, e[q + n] = F.b, e[H + n] = d;
439
+ }
440
+ }
441
+ s = c, c >>= 1;
442
+ }
443
+ return m;
444
+ }
445
+ function Ve(e, n, t, r, l, o, a, f, u) {
446
+ let c = 0, s = 0;
447
+ const m = a, v = Math.trunc(r.value + (l + 7) / 8);
448
+ for (; r.value < v; )
449
+ for (Oe(c, s, t, r), c = X.c, s = X.lc; s >= 14; ) {
450
+ const I = c >> s - 14 & 16383, E = n[I];
451
+ if (E.len)
452
+ s -= E.len, K(E.lit, o, c, s, t, r, f, u, m), c = W.c, s = W.lc;
453
+ else {
454
+ if (!E.p)
455
+ throw new Error("hufDecode issues");
456
+ let _;
457
+ for (_ = 0; _ < E.lit; _++) {
458
+ const d = ee(e[E.p[_]]);
459
+ for (; s < d && r.value < v; )
460
+ Oe(c, s, t, r), c = X.c, s = X.lc;
461
+ if (s >= d && be(e[E.p[_]]) == (c >> s - d & (1 << d) - 1)) {
462
+ s -= d, K(E.p[_], o, c, s, t, r, f, u, m), c = W.c, s = W.lc;
463
+ break;
464
+ }
465
+ }
466
+ if (_ == E.lit)
467
+ throw new Error("hufDecode issues");
468
+ }
469
+ }
470
+ const w = 8 - l & 7;
471
+ for (c >>= w, s -= w; s > 0; ) {
472
+ const I = n[c << 14 - s & 16383];
473
+ if (I.len)
474
+ s -= I.len, K(I.lit, o, c, s, t, r, f, u, m), c = W.c, s = W.lc;
475
+ else
476
+ throw new Error("hufDecode issues");
477
+ }
478
+ return !0;
479
+ }
480
+ function Le(e, n, t, r, l, o) {
481
+ const a = { value: 0 }, f = t.value, u = oe(n, t), c = oe(n, t);
482
+ t.value += 4;
483
+ const s = oe(n, t);
484
+ if (t.value += 4, u < 0 || u >= 65537 || c < 0 || c >= 65537)
485
+ throw new Error("Something wrong with HUF_ENCSIZE");
486
+ const m = new Array(65537), v = new Array(16384);
487
+ T(v);
488
+ const w = r - (t.value - f);
489
+ if (N(e, t, w, u, c, m), s > 8 * (r - (t.value - f)))
490
+ throw new Error("Something wrong with hufUncompress");
491
+ J(m, u, c, v), Ve(m, v, e, t, s, c, o, l, a);
492
+ }
493
+ function We(e, n, t) {
494
+ for (let r = 0; r < t; ++r)
495
+ n[r] = e[n[r]];
496
+ }
497
+ function Pe(e) {
498
+ for (let n = 1; n < e.length; n++) {
499
+ const t = e[n - 1] + e[n] - 128;
500
+ e[n] = t;
501
+ }
502
+ }
503
+ function on(e, n) {
504
+ let t = 0, r = Math.floor((e.length + 1) / 2), l = 0;
505
+ const o = e.length - 1;
506
+ for (; !(l > o || (n[l++] = e[t++], l > o)); )
507
+ n[l++] = e[r++];
508
+ }
509
+ function ln(e) {
510
+ let n = e.byteLength;
511
+ const t = new Array();
512
+ let r = 0;
513
+ const l = new DataView(e);
514
+ for (; n > 0; ) {
515
+ const o = l.getInt8(r++);
516
+ if (o < 0) {
517
+ const a = -o;
518
+ n -= a + 1;
519
+ for (let f = 0; f < a; f++)
520
+ t.push(l.getUint8(r++));
521
+ } else {
522
+ const a = o;
523
+ n -= 2;
524
+ const f = l.getUint8(r++);
525
+ for (let u = 0; u < a + 1; u++)
526
+ t.push(f);
527
+ }
528
+ }
529
+ return t;
530
+ }
531
+ function yn(e, n, t, r, l, o) {
532
+ let a = new DataView(o.buffer);
533
+ const f = t[e.idx[0]].width, u = t[e.idx[0]].height, c = 3, s = Math.floor(f / 8), m = Math.ceil(f / 8), v = Math.ceil(u / 8), w = f - (m - 1) * 8, I = u - (v - 1) * 8, E = { value: 0 }, _ = new Array(c), d = new Array(c), B = new Array(c), Y = new Array(c), te = new Array(c);
534
+ for (let M = 0; M < c; ++M)
535
+ te[M] = n[e.idx[M]], _[M] = M < 1 ? 0 : _[M - 1] + m * v, d[M] = new Float32Array(64), B[M] = new Uint16Array(64), Y[M] = new Uint16Array(m * 64);
536
+ for (let M = 0; M < v; ++M) {
537
+ let q = 8;
538
+ M == v - 1 && (q = I);
539
+ let le = 8;
540
+ for (let k = 0; k < m; ++k) {
541
+ k == m - 1 && (le = w);
542
+ for (let P = 0; P < c; ++P)
543
+ B[P].fill(0), B[P][0] = l[_[P]++], In(E, r, B[P]), Cn(B[P], d[P]), bn(d[P]);
544
+ dn(d);
545
+ for (let P = 0; P < c; ++P)
546
+ Rn(d[P], Y[P], k * 64);
547
+ }
548
+ let $ = 0;
549
+ for (let k = 0; k < c; ++k) {
550
+ const P = t[e.idx[k]].type;
551
+ for (let Se = 8 * M; Se < 8 * M + q; ++Se) {
552
+ $ = te[k][Se];
553
+ for (let He = 0; He < s; ++He) {
554
+ const we = He * 64 + (Se & 7) * 8;
555
+ a.setUint16($ + 0 * 2 * P, Y[k][we + 0], !0), a.setUint16($ + 1 * 2 * P, Y[k][we + 1], !0), a.setUint16($ + 2 * 2 * P, Y[k][we + 2], !0), a.setUint16($ + 3 * 2 * P, Y[k][we + 3], !0), a.setUint16($ + 4 * 2 * P, Y[k][we + 4], !0), a.setUint16($ + 5 * 2 * P, Y[k][we + 5], !0), a.setUint16($ + 6 * 2 * P, Y[k][we + 6], !0), a.setUint16($ + 7 * 2 * P, Y[k][we + 7], !0), $ += 8 * 2 * P;
556
+ }
557
+ }
558
+ if (s != m)
559
+ for (let Se = 8 * M; Se < 8 * M + q; ++Se) {
560
+ const He = te[k][Se] + 8 * s * 2 * P, we = s * 64 + (Se & 7) * 8;
561
+ for (let Ke = 0; Ke < le; ++Ke)
562
+ a.setUint16(He + Ke * 2 * P, Y[k][we + Ke], !0);
563
+ }
564
+ }
565
+ }
566
+ const H = new Uint16Array(f);
567
+ a = new DataView(o.buffer);
568
+ for (let M = 0; M < c; ++M) {
569
+ t[e.idx[M]].decoded = !0;
570
+ const q = t[e.idx[M]].type;
571
+ if (t[M].type == 2)
572
+ for (let le = 0; le < u; ++le) {
573
+ const $ = te[M][le];
574
+ for (let k = 0; k < f; ++k)
575
+ H[k] = a.getUint16($ + k * 2 * q, !0);
576
+ for (let k = 0; k < f; ++k)
577
+ a.setFloat32($ + k * 2 * q, g(H[k]), !0);
578
+ }
579
+ }
580
+ }
581
+ function In(e, n, t) {
582
+ let r, l = 1;
583
+ for (; l < 64; )
584
+ r = n[e.value], r == 65280 ? l = 64 : r >> 8 == 255 ? l += r & 255 : (t[l] = r, l++), e.value++;
585
+ }
586
+ function Cn(e, n) {
587
+ n[0] = g(e[0]), n[1] = g(e[1]), n[2] = g(e[5]), n[3] = g(e[6]), n[4] = g(e[14]), n[5] = g(e[15]), n[6] = g(e[27]), n[7] = g(e[28]), n[8] = g(e[2]), n[9] = g(e[4]), n[10] = g(e[7]), n[11] = g(e[13]), n[12] = g(e[16]), n[13] = g(e[26]), n[14] = g(e[29]), n[15] = g(e[42]), n[16] = g(e[3]), n[17] = g(e[8]), n[18] = g(e[12]), n[19] = g(e[17]), n[20] = g(e[25]), n[21] = g(e[30]), n[22] = g(e[41]), n[23] = g(e[43]), n[24] = g(e[9]), n[25] = g(e[11]), n[26] = g(e[18]), n[27] = g(e[24]), n[28] = g(e[31]), n[29] = g(e[40]), n[30] = g(e[44]), n[31] = g(e[53]), n[32] = g(e[10]), n[33] = g(e[19]), n[34] = g(e[23]), n[35] = g(e[32]), n[36] = g(e[39]), n[37] = g(e[45]), n[38] = g(e[52]), n[39] = g(e[54]), n[40] = g(e[20]), n[41] = g(e[22]), n[42] = g(e[33]), n[43] = g(e[38]), n[44] = g(e[46]), n[45] = g(e[51]), n[46] = g(e[55]), n[47] = g(e[60]), n[48] = g(e[21]), n[49] = g(e[34]), n[50] = g(e[37]), n[51] = g(e[47]), n[52] = g(e[50]), n[53] = g(e[56]), n[54] = g(e[59]), n[55] = g(e[61]), n[56] = g(e[35]), n[57] = g(e[36]), n[58] = g(e[48]), n[59] = g(e[49]), n[60] = g(e[57]), n[61] = g(e[58]), n[62] = g(e[62]), n[63] = g(e[63]);
588
+ }
589
+ function bn(e) {
590
+ const n = 0.5 * Math.cos(0.7853975), t = 0.5 * Math.cos(3.14159 / 16), r = 0.5 * Math.cos(3.14159 / 8), l = 0.5 * Math.cos(3 * 3.14159 / 16), o = 0.5 * Math.cos(5 * 3.14159 / 16), a = 0.5 * Math.cos(3 * 3.14159 / 8), f = 0.5 * Math.cos(7 * 3.14159 / 16), u = new Array(4), c = new Array(4), s = new Array(4), m = new Array(4);
591
+ for (let v = 0; v < 8; ++v) {
592
+ const w = v * 8;
593
+ u[0] = r * e[w + 2], u[1] = a * e[w + 2], u[2] = r * e[w + 6], u[3] = a * e[w + 6], c[0] = t * e[w + 1] + l * e[w + 3] + o * e[w + 5] + f * e[w + 7], c[1] = l * e[w + 1] - f * e[w + 3] - t * e[w + 5] - o * e[w + 7], c[2] = o * e[w + 1] - t * e[w + 3] + f * e[w + 5] + l * e[w + 7], c[3] = f * e[w + 1] - o * e[w + 3] + l * e[w + 5] - t * e[w + 7], s[0] = n * (e[w + 0] + e[w + 4]), s[3] = n * (e[w + 0] - e[w + 4]), s[1] = u[0] + u[3], s[2] = u[1] - u[2], m[0] = s[0] + s[1], m[1] = s[3] + s[2], m[2] = s[3] - s[2], m[3] = s[0] - s[1], e[w + 0] = m[0] + c[0], e[w + 1] = m[1] + c[1], e[w + 2] = m[2] + c[2], e[w + 3] = m[3] + c[3], e[w + 4] = m[3] - c[3], e[w + 5] = m[2] - c[2], e[w + 6] = m[1] - c[1], e[w + 7] = m[0] - c[0];
594
+ }
595
+ for (let v = 0; v < 8; ++v)
596
+ u[0] = r * e[16 + v], u[1] = a * e[16 + v], u[2] = r * e[48 + v], u[3] = a * e[48 + v], c[0] = t * e[8 + v] + l * e[24 + v] + o * e[40 + v] + f * e[56 + v], c[1] = l * e[8 + v] - f * e[24 + v] - t * e[40 + v] - o * e[56 + v], c[2] = o * e[8 + v] - t * e[24 + v] + f * e[40 + v] + l * e[56 + v], c[3] = f * e[8 + v] - o * e[24 + v] + l * e[40 + v] - t * e[56 + v], s[0] = n * (e[v] + e[32 + v]), s[3] = n * (e[v] - e[32 + v]), s[1] = u[0] + u[3], s[2] = u[1] - u[2], m[0] = s[0] + s[1], m[1] = s[3] + s[2], m[2] = s[3] - s[2], m[3] = s[0] - s[1], e[0 + v] = m[0] + c[0], e[8 + v] = m[1] + c[1], e[16 + v] = m[2] + c[2], e[24 + v] = m[3] + c[3], e[32 + v] = m[3] - c[3], e[40 + v] = m[2] - c[2], e[48 + v] = m[1] - c[1], e[56 + v] = m[0] - c[0];
597
+ }
598
+ function dn(e) {
599
+ for (let n = 0; n < 64; ++n) {
600
+ const t = e[0][n], r = e[1][n], l = e[2][n];
601
+ e[0][n] = t + 1.5747 * l, e[1][n] = t - 0.1873 * r - 0.4682 * l, e[2][n] = t + 1.8556 * r;
602
+ }
603
+ }
604
+ function Rn(e, n, t) {
605
+ for (let r = 0; r < 64; ++r)
606
+ n[t + r] = De.toHalfFloat(An(e[r]));
607
+ }
608
+ function An(e) {
609
+ return e <= 1 ? Math.sign(e) * Math.pow(Math.abs(e), 2.2) : Math.sign(e) * Math.pow(U, Math.abs(e) - 1);
610
+ }
611
+ function Je(e) {
612
+ return new DataView(e.array.buffer, e.offset.value, e.size);
613
+ }
614
+ function Tn(e) {
615
+ const n = e.viewer.buffer.slice(e.offset.value, e.offset.value + e.size), t = new Uint8Array(ln(n)), r = new Uint8Array(t.length);
616
+ return Pe(t), on(t, r), new DataView(r.buffer);
617
+ }
618
+ function Qe(e) {
619
+ const n = e.array.slice(e.offset.value, e.offset.value + e.size), t = qe(n), r = new Uint8Array(t.length);
620
+ return Pe(t), on(t, r), new DataView(r.buffer);
621
+ }
622
+ function Un(e) {
623
+ const n = e.viewer, t = { value: e.offset.value }, r = new Uint16Array(e.columns * e.lines * (e.inputChannels.length * e.type)), l = new Uint8Array(8192);
624
+ let o = 0;
625
+ const a = new Array(e.inputChannels.length);
626
+ for (let I = 0, E = e.inputChannels.length; I < E; I++)
627
+ a[I] = {}, a[I].start = o, a[I].end = a[I].start, a[I].nx = e.columns, a[I].ny = e.lines, a[I].size = e.type, o += a[I].nx * a[I].ny * a[I].size;
628
+ const f = Ze(n, t), u = Ze(n, t);
629
+ if (u >= 8192)
630
+ throw new Error("Something is wrong with PIZ_COMPRESSION BITMAP_SIZE");
631
+ if (f <= u)
632
+ for (let I = 0; I < u - f + 1; I++)
633
+ l[I + f] = Re(n, t);
634
+ const c = new Uint16Array(65536), s = x(l, c), m = oe(n, t);
635
+ Le(e.array, n, t, m, r, o);
636
+ for (let I = 0; I < e.inputChannels.length; ++I) {
637
+ const E = a[I];
638
+ for (let _ = 0; _ < a[I].size; ++_)
639
+ Ye(
640
+ r,
641
+ E.start + _,
642
+ E.nx,
643
+ E.size,
644
+ E.ny,
645
+ E.nx * E.size,
646
+ s
647
+ );
648
+ }
649
+ We(c, r, o);
650
+ let v = 0;
651
+ const w = new Uint8Array(r.buffer.byteLength);
652
+ for (let I = 0; I < e.lines; I++)
653
+ for (let E = 0; E < e.inputChannels.length; E++) {
654
+ const _ = a[E], d = _.nx * _.size, B = new Uint8Array(r.buffer, _.end * 2, d * 2);
655
+ w.set(B, v), v += d * 2, _.end += d;
656
+ }
657
+ return new DataView(w.buffer);
658
+ }
659
+ function Nn(e) {
660
+ const n = e.array.slice(e.offset.value, e.offset.value + e.size), t = qe(n), r = e.inputChannels.length * e.lines * e.columns * e.totalBytes, l = new ArrayBuffer(r), o = new DataView(l);
661
+ let a = 0, f = 0;
662
+ const u = new Array(4);
663
+ for (let c = 0; c < e.lines; c++)
664
+ for (let s = 0; s < e.inputChannels.length; s++) {
665
+ let m = 0;
666
+ switch (e.inputChannels[s].pixelType) {
667
+ case 1:
668
+ u[0] = a, u[1] = u[0] + e.columns, a = u[1] + e.columns;
669
+ for (let w = 0; w < e.columns; ++w) {
670
+ const I = t[u[0]++] << 8 | t[u[1]++];
671
+ m += I, o.setUint16(f, m, !0), f += 2;
672
+ }
673
+ break;
674
+ case 2:
675
+ u[0] = a, u[1] = u[0] + e.columns, u[2] = u[1] + e.columns, a = u[2] + e.columns;
676
+ for (let w = 0; w < e.columns; ++w) {
677
+ const I = t[u[0]++] << 24 | t[u[1]++] << 16 | t[u[2]++] << 8;
678
+ m += I, o.setUint32(f, m, !0), f += 4;
679
+ }
680
+ break;
681
+ }
682
+ }
683
+ return o;
684
+ }
685
+ function sn(e) {
686
+ const n = e.viewer, t = { value: e.offset.value }, r = new Uint8Array(e.columns * e.lines * (e.inputChannels.length * e.type * 2)), l = {
687
+ version: ne(n, t),
688
+ unknownUncompressedSize: ne(n, t),
689
+ unknownCompressedSize: ne(n, t),
690
+ acCompressedSize: ne(n, t),
691
+ dcCompressedSize: ne(n, t),
692
+ rleCompressedSize: ne(n, t),
693
+ rleUncompressedSize: ne(n, t),
694
+ rleRawSize: ne(n, t),
695
+ totalAcUncompressedCount: ne(n, t),
696
+ totalDcUncompressedCount: ne(n, t),
697
+ acCompression: ne(n, t)
698
+ };
699
+ if (l.version < 2)
700
+ throw new Error("EXRLoader.parse: " + xe.compression + " version " + l.version + " is unsupported");
701
+ const o = new Array();
702
+ let a = Ze(n, t) - 2;
703
+ for (; a > 0; ) {
704
+ const E = Xe(n.buffer, t), _ = Re(n, t), d = _ >> 2 & 3, B = (_ >> 4) - 1, Y = new Int8Array([B])[0], te = Re(n, t);
705
+ o.push({
706
+ name: E,
707
+ index: Y,
708
+ type: te,
709
+ compression: d
710
+ }), a -= E.length + 3;
711
+ }
712
+ const f = xe.channels, u = new Array(e.inputChannels.length);
713
+ for (let E = 0; E < e.inputChannels.length; ++E) {
714
+ const _ = u[E] = {}, d = f[E];
715
+ _.name = d.name, _.compression = 0, _.decoded = !1, _.type = d.pixelType, _.pLinear = d.pLinear, _.width = e.columns, _.height = e.lines;
716
+ }
717
+ const c = {
718
+ idx: new Array(3)
719
+ };
720
+ for (let E = 0; E < e.inputChannels.length; ++E) {
721
+ const _ = u[E];
722
+ for (let d = 0; d < o.length; ++d) {
723
+ const B = o[d];
724
+ _.name == B.name && (_.compression = B.compression, B.index >= 0 && (c.idx[B.index] = E), _.offset = E);
725
+ }
726
+ }
727
+ let s, m, v;
728
+ if (l.acCompressedSize > 0)
729
+ switch (l.acCompression) {
730
+ case 0:
731
+ s = new Uint16Array(l.totalAcUncompressedCount), Le(e.array, n, t, l.acCompressedSize, s, l.totalAcUncompressedCount);
732
+ break;
733
+ case 1:
734
+ const E = e.array.slice(t.value, t.value + l.totalAcUncompressedCount), _ = qe(E);
735
+ s = new Uint16Array(_.buffer), t.value += l.totalAcUncompressedCount;
736
+ break;
737
+ }
738
+ if (l.dcCompressedSize > 0) {
739
+ const E = {
740
+ array: e.array,
741
+ offset: t,
742
+ size: l.dcCompressedSize
743
+ };
744
+ m = new Uint16Array(Qe(E).buffer), t.value += l.dcCompressedSize;
745
+ }
746
+ if (l.rleRawSize > 0) {
747
+ const E = e.array.slice(t.value, t.value + l.rleCompressedSize), _ = qe(E);
748
+ v = ln(_.buffer), t.value += l.rleCompressedSize;
749
+ }
750
+ let w = 0;
751
+ const I = new Array(u.length);
752
+ for (let E = 0; E < I.length; ++E)
753
+ I[E] = new Array();
754
+ for (let E = 0; E < e.lines; ++E)
755
+ for (let _ = 0; _ < u.length; ++_)
756
+ I[_].push(w), w += u[_].width * e.type * 2;
757
+ yn(c, I, u, s, m, r);
758
+ for (let E = 0; E < u.length; ++E) {
759
+ const _ = u[E];
760
+ if (!_.decoded)
761
+ switch (_.compression) {
762
+ case 2:
763
+ let d = 0, B = 0;
764
+ for (let Y = 0; Y < e.lines; ++Y) {
765
+ let te = I[E][d];
766
+ for (let H = 0; H < _.width; ++H) {
767
+ for (let M = 0; M < 2 * _.type; ++M)
768
+ r[te++] = v[B + M * _.width * _.height];
769
+ B++;
770
+ }
771
+ d++;
772
+ }
773
+ break;
774
+ case 1:
775
+ // skip
776
+ default:
777
+ throw new Error("EXRLoader.parse: unsupported channel compression");
778
+ }
779
+ }
780
+ return new DataView(r.buffer);
781
+ }
782
+ function Xe(e, n) {
783
+ const t = new Uint8Array(e);
784
+ let r = 0;
785
+ for (; t[n.value + r] != 0; )
786
+ r += 1;
787
+ const l = new TextDecoder().decode(
788
+ t.slice(n.value, n.value + r)
789
+ );
790
+ return n.value = n.value + r + 1, l;
791
+ }
792
+ function Mn(e, n, t) {
793
+ const r = new TextDecoder().decode(
794
+ new Uint8Array(e).slice(n.value, n.value + t)
795
+ );
796
+ return n.value = n.value + t, r;
797
+ }
798
+ function On(e, n) {
799
+ const t = re(e, n), r = oe(e, n);
800
+ return [t, r];
801
+ }
802
+ function xn(e, n) {
803
+ const t = oe(e, n), r = oe(e, n);
804
+ return [t, r];
805
+ }
806
+ function re(e, n) {
807
+ const t = e.getInt32(n.value, !0);
808
+ return n.value = n.value + 4, t;
809
+ }
810
+ function oe(e, n) {
811
+ const t = e.getUint32(n.value, !0);
812
+ return n.value = n.value + 4, t;
813
+ }
814
+ function cn(e, n) {
815
+ const t = e[n.value];
816
+ return n.value = n.value + 1, t;
817
+ }
818
+ function Re(e, n) {
819
+ const t = e.getUint8(n.value);
820
+ return n.value = n.value + 1, t;
821
+ }
822
+ const ne = function(e, n) {
823
+ let t;
824
+ return "getBigInt64" in DataView.prototype ? t = Number(e.getBigInt64(n.value, !0)) : t = e.getUint32(n.value + 4, !0) + Number(e.getUint32(n.value, !0) << 32), n.value += 8, t;
825
+ };
826
+ function Q(e, n) {
827
+ const t = e.getFloat32(n.value, !0);
828
+ return n.value += 4, t;
829
+ }
830
+ function kn(e, n) {
831
+ return De.toHalfFloat(Q(e, n));
832
+ }
833
+ function g(e) {
834
+ const n = (e & 31744) >> 10, t = e & 1023;
835
+ return (e >> 15 ? -1 : 1) * (n ? n === 31 ? t ? NaN : 1 / 0 : Math.pow(2, n - 15) * (1 + t / 1024) : 6103515625e-14 * (t / 1024));
836
+ }
837
+ function Ze(e, n) {
838
+ const t = e.getUint16(n.value, !0);
839
+ return n.value += 2, t;
840
+ }
841
+ function Dn(e, n) {
842
+ return g(Ze(e, n));
843
+ }
844
+ function Fn(e, n, t, r) {
845
+ const l = t.value, o = [];
846
+ for (; t.value < l + r - 1; ) {
847
+ const a = Xe(n, t), f = re(e, t), u = Re(e, t);
848
+ t.value += 3;
849
+ const c = re(e, t), s = re(e, t);
850
+ o.push({
851
+ name: a,
852
+ pixelType: f,
853
+ pLinear: u,
854
+ xSampling: c,
855
+ ySampling: s
856
+ });
857
+ }
858
+ return t.value += 1, o;
859
+ }
860
+ function Bn(e, n) {
861
+ const t = Q(e, n), r = Q(e, n), l = Q(e, n), o = Q(e, n), a = Q(e, n), f = Q(e, n), u = Q(e, n), c = Q(e, n);
862
+ return { redX: t, redY: r, greenX: l, greenY: o, blueX: a, blueY: f, whiteX: u, whiteY: c };
863
+ }
864
+ function Ln(e, n) {
865
+ const t = [
866
+ "NO_COMPRESSION",
867
+ "RLE_COMPRESSION",
868
+ "ZIPS_COMPRESSION",
869
+ "ZIP_COMPRESSION",
870
+ "PIZ_COMPRESSION",
871
+ "PXR24_COMPRESSION",
872
+ "B44_COMPRESSION",
873
+ "B44A_COMPRESSION",
874
+ "DWAA_COMPRESSION",
875
+ "DWAB_COMPRESSION"
876
+ ], r = Re(e, n);
877
+ return t[r];
878
+ }
879
+ function Pn(e, n) {
880
+ const t = re(e, n), r = re(e, n), l = re(e, n), o = re(e, n);
881
+ return { xMin: t, yMin: r, xMax: l, yMax: o };
882
+ }
883
+ function Zn(e, n) {
884
+ const t = [
885
+ "INCREASING_Y",
886
+ "DECREASING_Y",
887
+ "RANDOM_Y"
888
+ ], r = Re(e, n);
889
+ return t[r];
890
+ }
891
+ function Hn(e, n) {
892
+ const t = [
893
+ "ENVMAP_LATLONG",
894
+ "ENVMAP_CUBE"
895
+ ], r = Re(e, n);
896
+ return t[r];
897
+ }
898
+ function zn(e, n) {
899
+ const t = [
900
+ "ONE_LEVEL",
901
+ "MIPMAP_LEVELS",
902
+ "RIPMAP_LEVELS"
903
+ ], r = [
904
+ "ROUND_DOWN",
905
+ "ROUND_UP"
906
+ ], l = oe(e, n), o = oe(e, n), a = Re(e, n);
907
+ return {
908
+ xSize: l,
909
+ ySize: o,
910
+ levelMode: t[a & 15],
911
+ roundingMode: r[a >> 4]
912
+ };
913
+ }
914
+ function Gn(e, n) {
915
+ const t = Q(e, n), r = Q(e, n);
916
+ return [t, r];
917
+ }
918
+ function Yn(e, n) {
919
+ const t = Q(e, n), r = Q(e, n), l = Q(e, n);
920
+ return [t, r, l];
921
+ }
922
+ function Wn(e, n, t, r, l) {
923
+ if (r === "string" || r === "stringvector" || r === "iccProfile")
924
+ return Mn(n, t, l);
925
+ if (r === "chlist")
926
+ return Fn(e, n, t, l);
927
+ if (r === "chromaticities")
928
+ return Bn(e, t);
929
+ if (r === "compression")
930
+ return Ln(e, t);
931
+ if (r === "box2i")
932
+ return Pn(e, t);
933
+ if (r === "envmap")
934
+ return Hn(e, t);
935
+ if (r === "tiledesc")
936
+ return zn(e, t);
937
+ if (r === "lineOrder")
938
+ return Zn(e, t);
939
+ if (r === "float")
940
+ return Q(e, t);
941
+ if (r === "v2f")
942
+ return Gn(e, t);
943
+ if (r === "v3f")
944
+ return Yn(e, t);
945
+ if (r === "int")
946
+ return re(e, t);
947
+ if (r === "rational")
948
+ return On(e, t);
949
+ if (r === "timecode")
950
+ return xn(e, t);
951
+ if (r === "preview")
952
+ return t.value += l, "skipped";
953
+ t.value += l;
954
+ }
955
+ function Xn(e, n) {
956
+ const t = Math.log2(e);
957
+ return n == "ROUND_DOWN" ? Math.floor(t) : Math.ceil(t);
958
+ }
959
+ function Kn(e, n, t) {
960
+ let r = 0;
961
+ switch (e.levelMode) {
962
+ case "ONE_LEVEL":
963
+ r = 1;
964
+ break;
965
+ case "MIPMAP_LEVELS":
966
+ r = Xn(Math.max(n, t), e.roundingMode) + 1;
967
+ break;
968
+ case "RIPMAP_LEVELS":
969
+ throw new Error("THREE.EXRLoader: RIPMAP_LEVELS tiles currently unsupported.");
970
+ }
971
+ return r;
972
+ }
973
+ function an(e, n, t, r) {
974
+ const l = new Array(e);
975
+ for (let o = 0; o < e; o++) {
976
+ const a = 1 << o;
977
+ let f = n / a | 0;
978
+ r == "ROUND_UP" && f * a < n && (f += 1);
979
+ const u = Math.max(f, 1);
980
+ l[o] = (u + t - 1) / t | 0;
981
+ }
982
+ return l;
983
+ }
984
+ function qn() {
985
+ const e = this, n = e.offset, t = { value: 0 };
986
+ for (let r = 0; r < e.tileCount; r++) {
987
+ const l = re(e.viewer, n), o = re(e.viewer, n);
988
+ n.value += 8, e.size = oe(e.viewer, n);
989
+ const a = l * e.blockWidth, f = o * e.blockHeight;
990
+ e.columns = a + e.blockWidth > e.width ? e.width - a : e.blockWidth, e.lines = f + e.blockHeight > e.height ? e.height - f : e.blockHeight;
991
+ const u = e.columns * e.totalBytes, s = e.size < e.lines * u ? e.uncompress(e) : Je(e);
992
+ n.value += e.size;
993
+ for (let m = 0; m < e.lines; m++) {
994
+ const v = m * e.columns * e.totalBytes;
995
+ for (let w = 0; w < e.inputChannels.length; w++) {
996
+ const I = xe.channels[w].name, E = e.channelByteOffsets[I] * e.columns, _ = e.decodeChannels[I];
997
+ if (_ === void 0) continue;
998
+ t.value = v + E;
999
+ const d = (e.height - (1 + f + m)) * e.outLineWidth;
1000
+ for (let B = 0; B < e.columns; B++) {
1001
+ const Y = d + (B + a) * e.outputChannels + _;
1002
+ e.byteArray[Y] = e.getter(s, t);
1003
+ }
1004
+ }
1005
+ }
1006
+ }
1007
+ }
1008
+ function $n() {
1009
+ const e = this, n = e.offset, t = { value: 0 };
1010
+ for (let r = 0; r < e.height / e.blockHeight; r++) {
1011
+ const l = re(e.viewer, n) - xe.dataWindow.yMin;
1012
+ e.size = oe(e.viewer, n), e.lines = l + e.blockHeight > e.height ? e.height - l : e.blockHeight;
1013
+ const o = e.columns * e.totalBytes, f = e.size < e.lines * o ? e.uncompress(e) : Je(e);
1014
+ n.value += e.size;
1015
+ for (let u = 0; u < e.blockHeight; u++) {
1016
+ const c = r * e.blockHeight, s = u + e.scanOrder(c);
1017
+ if (s >= e.height) continue;
1018
+ const m = u * o, v = (e.height - 1 - s) * e.outLineWidth;
1019
+ for (let w = 0; w < e.inputChannels.length; w++) {
1020
+ const I = xe.channels[w].name, E = e.channelByteOffsets[I] * e.columns, _ = e.decodeChannels[I];
1021
+ if (_ !== void 0) {
1022
+ t.value = m + E;
1023
+ for (let d = 0; d < e.columns; d++) {
1024
+ const B = v + d * e.outputChannels + _;
1025
+ e.byteArray[B] = e.getter(f, t);
1026
+ }
1027
+ }
1028
+ }
1029
+ }
1030
+ }
1031
+ }
1032
+ function Vn(e, n, t) {
1033
+ const r = {};
1034
+ if (e.getUint32(0, !0) != 20000630)
1035
+ throw new Error("THREE.EXRLoader: Provided file doesn't appear to be in OpenEXR format.");
1036
+ r.version = e.getUint8(4);
1037
+ const l = e.getUint8(5);
1038
+ r.spec = {
1039
+ singleTile: !!(l & 2),
1040
+ longName: !!(l & 4),
1041
+ deepFormat: !!(l & 8),
1042
+ multiPart: !!(l & 16)
1043
+ }, t.value = 8;
1044
+ let o = !0;
1045
+ for (; o; ) {
1046
+ const a = Xe(n, t);
1047
+ if (a === "")
1048
+ o = !1;
1049
+ else {
1050
+ const f = Xe(n, t), u = oe(e, t), c = Wn(e, n, t, f, u);
1051
+ c === void 0 ? console.warn(`THREE.EXRLoader: Skipped unknown header attribute type '${f}'.`) : r[a] = c;
1052
+ }
1053
+ }
1054
+ if ((l & -7) != 0)
1055
+ throw console.error("THREE.EXRHeader:", r), new Error("THREE.EXRLoader: Provided file is currently unsupported.");
1056
+ return r;
1057
+ }
1058
+ function Jn(e, n, t, r, l) {
1059
+ const o = {
1060
+ size: 0,
1061
+ viewer: n,
1062
+ array: t,
1063
+ offset: r,
1064
+ width: e.dataWindow.xMax - e.dataWindow.xMin + 1,
1065
+ height: e.dataWindow.yMax - e.dataWindow.yMin + 1,
1066
+ inputChannels: e.channels,
1067
+ channelByteOffsets: {},
1068
+ scanOrder: null,
1069
+ totalBytes: null,
1070
+ columns: null,
1071
+ lines: null,
1072
+ type: null,
1073
+ uncompress: null,
1074
+ getter: null,
1075
+ format: null,
1076
+ colorSpace: tn
1077
+ };
1078
+ switch (e.compression) {
1079
+ case "NO_COMPRESSION":
1080
+ o.blockHeight = 1, o.uncompress = Je;
1081
+ break;
1082
+ case "RLE_COMPRESSION":
1083
+ o.blockHeight = 1, o.uncompress = Tn;
1084
+ break;
1085
+ case "ZIPS_COMPRESSION":
1086
+ o.blockHeight = 1, o.uncompress = Qe;
1087
+ break;
1088
+ case "ZIP_COMPRESSION":
1089
+ o.blockHeight = 16, o.uncompress = Qe;
1090
+ break;
1091
+ case "PIZ_COMPRESSION":
1092
+ o.blockHeight = 32, o.uncompress = Un;
1093
+ break;
1094
+ case "PXR24_COMPRESSION":
1095
+ o.blockHeight = 16, o.uncompress = Nn;
1096
+ break;
1097
+ case "DWAA_COMPRESSION":
1098
+ o.blockHeight = 32, o.uncompress = sn;
1099
+ break;
1100
+ case "DWAB_COMPRESSION":
1101
+ o.blockHeight = 256, o.uncompress = sn;
1102
+ break;
1103
+ default:
1104
+ throw new Error("EXRLoader.parse: " + e.compression + " is unsupported");
1105
+ }
1106
+ const a = {};
1107
+ for (const s of e.channels)
1108
+ switch (s.name) {
1109
+ case "Y":
1110
+ case "R":
1111
+ case "G":
1112
+ case "B":
1113
+ case "A":
1114
+ a[s.name] = !0, o.type = s.pixelType;
1115
+ }
1116
+ let f = !1;
1117
+ if (a.R && a.G && a.B)
1118
+ f = !a.A, o.outputChannels = 4, o.decodeChannels = { R: 0, G: 1, B: 2, A: 3 };
1119
+ else if (a.Y)
1120
+ o.outputChannels = 1, o.decodeChannels = { Y: 0 };
1121
+ else
1122
+ throw new Error("EXRLoader.parse: file contains unsupported data channels.");
1123
+ if (o.type == 1)
1124
+ switch (l) {
1125
+ case Be:
1126
+ o.getter = Dn;
1127
+ break;
1128
+ case Te:
1129
+ o.getter = Ze;
1130
+ break;
1131
+ }
1132
+ else if (o.type == 2)
1133
+ switch (l) {
1134
+ case Be:
1135
+ o.getter = Q;
1136
+ break;
1137
+ case Te:
1138
+ o.getter = kn;
1139
+ }
1140
+ else
1141
+ throw new Error("EXRLoader.parse: unsupported pixelType " + o.type + " for " + e.compression + ".");
1142
+ o.columns = o.width;
1143
+ const u = o.width * o.height * o.outputChannels;
1144
+ switch (l) {
1145
+ case Be:
1146
+ o.byteArray = new Float32Array(u), f && o.byteArray.fill(1, 0, u);
1147
+ break;
1148
+ case Te:
1149
+ o.byteArray = new Uint16Array(u), f && o.byteArray.fill(15360, 0, u);
1150
+ break;
1151
+ default:
1152
+ console.error("THREE.EXRLoader: unsupported type: ", l);
1153
+ break;
1154
+ }
1155
+ let c = 0;
1156
+ for (const s of e.channels)
1157
+ o.decodeChannels[s.name] !== void 0 && (o.channelByteOffsets[s.name] = c), c += s.pixelType * 2;
1158
+ if (o.totalBytes = c, o.outLineWidth = o.width * o.outputChannels, e.lineOrder === "INCREASING_Y" ? o.scanOrder = (s) => s : o.scanOrder = (s) => o.height - 1 - s, o.outputChannels == 4 ? (o.format = jn, o.colorSpace = tn) : (o.format = et, o.colorSpace = nt), e.spec.singleTile) {
1159
+ o.blockHeight = e.tiles.ySize, o.blockWidth = e.tiles.xSize;
1160
+ const s = Kn(e.tiles, o.width, o.height), m = an(s, o.width, e.tiles.xSize, e.tiles.roundingMode), v = an(s, o.height, e.tiles.ySize, e.tiles.roundingMode);
1161
+ o.tileCount = m[0] * v[0];
1162
+ for (let w = 0; w < s; w++)
1163
+ for (let I = 0; I < v[w]; I++)
1164
+ for (let E = 0; E < m[w]; E++)
1165
+ ne(n, r);
1166
+ o.decode = qn.bind(o);
1167
+ } else {
1168
+ o.blockWidth = o.width;
1169
+ const s = Math.ceil(o.height / o.blockHeight);
1170
+ for (let m = 0; m < s; m++)
1171
+ ne(n, r);
1172
+ o.decode = $n.bind(o);
1173
+ }
1174
+ return o;
1175
+ }
1176
+ const un = { value: 0 }, hn = new DataView(h), Qn = new Uint8Array(h), xe = Vn(hn, h, un), ke = Jn(xe, hn, Qn, un, this.type);
1177
+ return ke.decode(), {
1178
+ header: xe,
1179
+ width: ke.width,
1180
+ height: ke.height,
1181
+ data: ke.byteArray,
1182
+ format: ke.format,
1183
+ colorSpace: ke.colorSpace,
1184
+ type: this.type
1185
+ };
1186
+ }
1187
+ /**
1188
+ * Sets the texture type.
1189
+ *
1190
+ * @param {(HalfFloatType|FloatType)} value - The texture type to set.
1191
+ * @return {RGBMLoader} A reference to this loader.
1192
+ */
1193
+ setDataType(h) {
1194
+ return this.type = h, this;
1195
+ }
1196
+ load(h, p, S, y) {
1197
+ function D(b, V) {
1198
+ b.colorSpace = V.colorSpace, b.minFilter = $e, b.magFilter = $e, b.generateMipmaps = !1, b.flipY = !1, p && p(b, V);
1199
+ }
1200
+ return super.load(h, D, S, y);
1201
+ }
1202
+ }
1203
+ class St extends fn {
1204
+ /**
1205
+ * Constructs a new RGBE loader.
1206
+ *
1207
+ * @param {LoadingManager} [manager] - The loading manager.
1208
+ */
1209
+ constructor(h) {
1210
+ super(h), this.type = Te;
1211
+ }
1212
+ /**
1213
+ * Parses the given RGBE texture data.
1214
+ *
1215
+ * @param {ArrayBuffer} buffer - The raw texture data.
1216
+ * @return {DataTextureLoader~TexData} An object representing the parsed texture data.
1217
+ */
1218
+ parse(h) {
1219
+ const b = function(C, U) {
1220
+ switch (C) {
1221
+ case 1:
1222
+ throw new Error("THREE.RGBELoader: Read Error: " + (U || ""));
1223
+ case 2:
1224
+ throw new Error("THREE.RGBELoader: Write Error: " + (U || ""));
1225
+ case 3:
1226
+ throw new Error("THREE.RGBELoader: Bad File Format: " + (U || ""));
1227
+ default:
1228
+ case 4:
1229
+ throw new Error("THREE.RGBELoader: Memory Error: " + (U || ""));
1230
+ }
1231
+ }, se = `
1232
+ `, R = function(C, U, x) {
1233
+ U = U || 1024;
1234
+ let O = C.pos, Z = -1, A = 0, G = "", N = String.fromCharCode.apply(null, new Uint16Array(C.subarray(O, O + 128)));
1235
+ for (; 0 > (Z = N.indexOf(se)) && A < U && O < C.byteLength; )
1236
+ G += N, A += N.length, O += 128, N += String.fromCharCode.apply(null, new Uint16Array(C.subarray(O, O + 128)));
1237
+ return -1 < Z ? (C.pos += A + Z + 1, G + N.slice(0, Z)) : !1;
1238
+ }, L = function(C) {
1239
+ const U = /^#\?(\S+)/, x = /^\s*GAMMA\s*=\s*(\d+(\.\d+)?)\s*$/, T = /^\s*EXPOSURE\s*=\s*(\d+(\.\d+)?)\s*$/, O = /^\s*FORMAT=(\S+)\s*$/, Z = /^\s*\-Y\s+(\d+)\s+\+X\s+(\d+)\s*$/, A = {
1240
+ valid: 0,
1241
+ /* indicate which fields are valid */
1242
+ string: "",
1243
+ /* the actual header string */
1244
+ comments: "",
1245
+ /* comments found in header */
1246
+ programtype: "RGBE",
1247
+ /* listed at beginning of file to identify it after "#?". defaults to "RGBE" */
1248
+ format: "",
1249
+ /* RGBE format, default 32-bit_rle_rgbe */
1250
+ gamma: 1,
1251
+ /* image has already been gamma corrected with given gamma. defaults to 1.0 (no correction) */
1252
+ exposure: 1,
1253
+ /* a value of 1.0 in an image corresponds to <exposure> watts/steradian/m^2. defaults to 1.0 */
1254
+ width: 0,
1255
+ height: 0
1256
+ /* image dimensions, width/height */
1257
+ };
1258
+ let G, N;
1259
+ for ((C.pos >= C.byteLength || !(G = R(C))) && b(1, "no header found"), (N = G.match(U)) || b(3, "bad initial token"), A.valid |= 1, A.programtype = N[1], A.string += G + `
1260
+ `; G = R(C), G !== !1; ) {
1261
+ if (A.string += G + `
1262
+ `, G.charAt(0) === "#") {
1263
+ A.comments += G + `
1264
+ `;
1265
+ continue;
1266
+ }
1267
+ if ((N = G.match(x)) && (A.gamma = parseFloat(N[1])), (N = G.match(T)) && (A.exposure = parseFloat(N[1])), (N = G.match(O)) && (A.valid |= 2, A.format = N[1]), (N = G.match(Z)) && (A.valid |= 4, A.height = parseInt(N[1], 10), A.width = parseInt(N[2], 10)), A.valid & 2 && A.valid & 4) break;
1268
+ }
1269
+ return A.valid & 2 || b(3, "missing format specifier"), A.valid & 4 || b(3, "missing image size specifier"), A;
1270
+ }, he = function(C, U, x) {
1271
+ const T = U;
1272
+ if (
1273
+ // run length encoding is not allowed so read flat
1274
+ T < 8 || T > 32767 || // this file is not run length encoded
1275
+ C[0] !== 2 || C[1] !== 2 || C[2] & 128
1276
+ )
1277
+ return new Uint8Array(C);
1278
+ T !== (C[2] << 8 | C[3]) && b(3, "wrong scanline width");
1279
+ const O = new Uint8Array(4 * U * x);
1280
+ O.length || b(4, "unable to allocate buffer space");
1281
+ let Z = 0, A = 0;
1282
+ const G = 4 * T, N = new Uint8Array(4), ee = new Uint8Array(G);
1283
+ let be = x;
1284
+ for (; be > 0 && A < C.byteLength; ) {
1285
+ A + 4 > C.byteLength && b(1), N[0] = C[A++], N[1] = C[A++], N[2] = C[A++], N[3] = C[A++], (N[0] != 2 || N[1] != 2 || (N[2] << 8 | N[3]) != T) && b(3, "bad rgbe scanline format");
1286
+ let J = 0, X;
1287
+ for (; J < G && A < C.byteLength; ) {
1288
+ X = C[A++];
1289
+ const W = X > 128;
1290
+ if (W && (X -= 128), (X === 0 || J + X > G) && b(3, "bad scanline data"), W) {
1291
+ const K = C[A++];
1292
+ for (let ge = 0; ge < X; ge++)
1293
+ ee[J++] = K;
1294
+ } else
1295
+ ee.set(C.subarray(A, A + X), J), J += X, A += X;
1296
+ }
1297
+ const Oe = T;
1298
+ for (let W = 0; W < Oe; W++) {
1299
+ let K = 0;
1300
+ O[Z] = ee[W + K], K += T, O[Z + 1] = ee[W + K], K += T, O[Z + 2] = ee[W + K], K += T, O[Z + 3] = ee[W + K], Z += 4;
1301
+ }
1302
+ be--;
1303
+ }
1304
+ return O;
1305
+ }, Ne = function(C, U, x, T) {
1306
+ const O = C[U + 3], Z = Math.pow(2, O - 128) / 255;
1307
+ x[T + 0] = C[U + 0] * Z, x[T + 1] = C[U + 1] * Z, x[T + 2] = C[U + 2] * Z, x[T + 3] = 1;
1308
+ }, ye = function(C, U, x, T) {
1309
+ const O = C[U + 3], Z = Math.pow(2, O - 128) / 255;
1310
+ x[T + 0] = De.toHalfFloat(Math.min(C[U + 0] * Z, 65504)), x[T + 1] = De.toHalfFloat(Math.min(C[U + 1] * Z, 65504)), x[T + 2] = De.toHalfFloat(Math.min(C[U + 2] * Z, 65504)), x[T + 3] = De.toHalfFloat(1);
1311
+ }, ce = new Uint8Array(h);
1312
+ ce.pos = 0;
1313
+ const pe = L(ce), Me = pe.width, j = pe.height, Ee = he(ce.subarray(ce.pos), Me, j);
1314
+ let Ie, Ce, fe;
1315
+ switch (this.type) {
1316
+ case Be:
1317
+ fe = Ee.length / 4;
1318
+ const C = new Float32Array(fe * 4);
1319
+ for (let x = 0; x < fe; x++)
1320
+ Ne(Ee, x * 4, C, x * 4);
1321
+ Ie = C, Ce = Be;
1322
+ break;
1323
+ case Te:
1324
+ fe = Ee.length / 4;
1325
+ const U = new Uint16Array(fe * 4);
1326
+ for (let x = 0; x < fe; x++)
1327
+ ye(Ee, x * 4, U, x * 4);
1328
+ Ie = U, Ce = Te;
1329
+ break;
1330
+ default:
1331
+ throw new Error("THREE.RGBELoader: Unsupported type: " + this.type);
1332
+ }
1333
+ return {
1334
+ width: Me,
1335
+ height: j,
1336
+ data: Ie,
1337
+ header: pe.string,
1338
+ gamma: pe.gamma,
1339
+ exposure: pe.exposure,
1340
+ type: Ce
1341
+ };
1342
+ }
1343
+ /**
1344
+ * Sets the texture type.
1345
+ *
1346
+ * @param {(HalfFloatType|FloatType)} value - The texture type to set.
1347
+ * @return {RGBELoader} A reference to this loader.
1348
+ */
1349
+ setDataType(h) {
1350
+ return this.type = h, this;
1351
+ }
1352
+ load(h, p, S, y) {
1353
+ function D(b, V) {
1354
+ switch (b.type) {
1355
+ case Be:
1356
+ case Te:
1357
+ b.colorSpace = tn, b.minFilter = $e, b.magFilter = $e, b.generateMipmaps = !1, b.flipY = !0;
1358
+ break;
1359
+ }
1360
+ p && p(b, V);
1361
+ }
1362
+ return super.load(h, D, S, y);
1363
+ }
1364
+ }
1365
+ function bt(i, h = [0.3, 0.3, 0.3]) {
1366
+ const p = document.querySelector(`#${i}`);
1367
+ if (!p) {
1368
+ console.log(" 获取 infoPlane 元素失败 (id) =====> :", i);
1369
+ return;
1370
+ }
1371
+ const S = p.cloneNode(!0);
1372
+ S.style.display = "block";
1373
+ const y = new pn(S);
1374
+ return y.visible = !1, y.scale.set(...h), y;
1375
+ }
1376
+ function dt(i, h) {
1377
+ const p = _t(i);
1378
+ p.style.display = "block";
1379
+ const S = new pn(p);
1380
+ return S.visible = !1, S.scale.set(h, h, h), S;
1381
+ }
1382
+ const _t = (i) => {
1383
+ const h = document.createElement("div");
1384
+ h.style.cssText = `
1385
+ border-radius: 50px;
1386
+ border: 2px solid rgba(255, 255, 255, 0.5);
1387
+ background-color: rgba(15, 20, 22, 0.562);
1388
+ justify-content: flex-start;
1389
+ align-items: center;
1390
+ padding: 20px 30px;
1391
+ display: flex;
1392
+ transform-origin: center 0;`;
1393
+ const p = document.createElement("span");
1394
+ return p.style.cssText = `
1395
+ font-size: 40px;
1396
+ line-height: 1;
1397
+ white-space: nowrap;
1398
+ color: #fff;
1399
+ font-weight: 700;
1400
+ `, p.innerText = i, h.appendChild(p), h;
1401
+ }, Rt = (i, h) => {
1402
+ const p = {};
1403
+ i.forEach((D) => {
1404
+ let b = D.parent;
1405
+ for (; b; )
1406
+ p[b.uuid] ? p[b.uuid]++ : p[b.uuid] = 1, b = b.parent;
1407
+ });
1408
+ let S = null, y = 0;
1409
+ for (const D in p)
1410
+ p[D] > y && (y = p[D], S = h.getObjectByProperty("uuid", D));
1411
+ return S;
1412
+ }, At = (i, h = { timeout: 2e3 }) => typeof requestIdleCallback < "u" ? requestIdleCallback(i, h) : setTimeout(i, 1), Tt = (i) => {
1413
+ typeof cancelIdleCallback < "u" ? cancelIdleCallback(i) : clearTimeout(i);
1414
+ }, Ut = (i, h = 16) => {
1415
+ let p = !1;
1416
+ return function(...S) {
1417
+ p || (i.apply(this, S), p = !0, setTimeout(() => p = !1, h));
1418
+ };
1419
+ }, Nt = (i, h, p = 10) => new Promise((S) => {
1420
+ let y = 0;
1421
+ const D = () => {
1422
+ const b = Math.min(y + p, i.length);
1423
+ for (; y < b; y++)
1424
+ h(i[y], y);
1425
+ y < i.length ? requestAnimationFrame(D) : S();
1426
+ };
1427
+ D();
1428
+ }), nn = {};
1429
+ async function Mt(i, h) {
1430
+ if (!h) return;
1431
+ if (nn[h]) {
1432
+ const S = nn[h];
1433
+ i.environment = S;
1434
+ return;
1435
+ }
1436
+ let p = _n(h);
1437
+ return new Promise((S, y) => {
1438
+ p.load(h, S, void 0, y);
1439
+ }).then((S) => {
1440
+ S.mapping = tt, i.environment = S, nn[h] = S;
1441
+ }).catch((S) => {
1442
+ console.log(" =====> e:", S);
1443
+ });
1444
+ }
1445
+ async function Ot(i) {
1446
+ let h = _n(i);
1447
+ return new Promise((p, S) => {
1448
+ h.load(i, p, void 0, S);
1449
+ });
1450
+ }
1451
+ function _n(i) {
1452
+ return i.split(".").pop() === "exr" ? new vt() : new St();
1453
+ }
1454
+ const xt = (i, h, p) => {
1455
+ if (i.userData && i.userData[h] === p) return i;
1456
+ let S = !1, y = null;
1457
+ return i.traverse((D) => {
1458
+ S || D.userData && D.userData[h] === p && (y = D, S = !0);
1459
+ }), y;
1460
+ }, yt = (i, h, p) => i ? i.userData && i.userData[h] === p ? i : yt(i.parent, h, p) : null;
1461
+ export {
1462
+ Ot as I,
1463
+ dt as a,
1464
+ Tt as b,
1465
+ bt as c,
1466
+ xt as d,
1467
+ yt as e,
1468
+ Rt as g,
1469
+ Mt as i,
1470
+ Nt as p,
1471
+ At as r,
1472
+ Ut as t
1473
+ };