@ridp/threejs 1.3.2 → 1.4.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.
@@ -0,0 +1,1444 @@
1
+ import { t as pn } from "./PredictiveLoader--_3bEnce.js";
2
+ import { DataTextureLoader as fn, HalfFloatType as Ue, FloatType as Be, RGBAFormat as jn, LinearSRGBColorSpace as tn, RedFormat as et, NoColorSpace as nt, LinearFilter as qe, DataUtils as Fe, 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, De = Uint16Array, rt = Int32Array, wn = 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
+ ]), En = 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]), mn = function(h, u) {
79
+ for (var w = new De(31), _ = 0; _ < 31; ++_)
80
+ w[_] = u += 1 << h[_ - 1];
81
+ for (var I = new rt(w[30]), _ = 1; _ < 30; ++_)
82
+ for (var W = w[_]; W < w[_ + 1]; ++W)
83
+ I[W] = W - w[_] << 5 | _;
84
+ return { b: w, r: I };
85
+ }, gn = mn(wn, 2), vn = gn.b, lt = gn.r;
86
+ vn[28] = 258, lt[258] = 28;
87
+ var it = mn(En, 0), ct = it.b, rn = new De(32768);
88
+ for (var H = 0; H < 32768; ++H) {
89
+ var de = (H & 43690) >> 1 | (H & 21845) << 1;
90
+ de = (de & 52428) >> 2 | (de & 13107) << 2, de = (de & 61680) >> 4 | (de & 3855) << 4, rn[H] = ((de & 65280) >> 8 | (de & 255) << 8) >> 1;
91
+ }
92
+ var ze = function(h, u, w) {
93
+ for (var _ = h.length, I = 0, W = new De(u); I < _; ++I)
94
+ h[I] && ++W[h[I] - 1];
95
+ var d = new De(u);
96
+ for (I = 1; I < u; ++I)
97
+ d[I] = d[I - 1] + W[I - 1] << 1;
98
+ var V;
99
+ if (w) {
100
+ V = new De(1 << u);
101
+ var _e = 15 - u;
102
+ for (I = 0; I < _; ++I)
103
+ if (h[I])
104
+ for (var Te = I << 4 | h[I], ce = u - h[I], R = d[h[I] - 1]++ << ce, B = R | (1 << ce) - 1; R <= B; ++R)
105
+ V[rn[R] >> _e] = Te;
106
+ } else
107
+ for (V = new De(_), I = 0; I < _; ++I)
108
+ h[I] && (V[I] = rn[d[h[I] - 1]++] >> 15 - h[I]);
109
+ return V;
110
+ }, Ge = new ie(288);
111
+ for (var H = 0; H < 144; ++H)
112
+ Ge[H] = 8;
113
+ for (var H = 144; H < 256; ++H)
114
+ Ge[H] = 9;
115
+ for (var H = 256; H < 280; ++H)
116
+ Ge[H] = 7;
117
+ for (var H = 280; H < 288; ++H)
118
+ Ge[H] = 8;
119
+ var Sn = new ie(32);
120
+ for (var H = 0; H < 32; ++H)
121
+ Sn[H] = 5;
122
+ var st = /* @__PURE__ */ ze(Ge, 9, 1), at = /* @__PURE__ */ ze(Sn, 5, 1), je = function(h) {
123
+ for (var u = h[0], w = 1; w < h.length; ++w)
124
+ h[w] > u && (u = h[w]);
125
+ return u;
126
+ }, ae = function(h, u, w) {
127
+ var _ = u / 8 | 0;
128
+ return (h[_] | h[_ + 1] << 8) >> (u & 7) & w;
129
+ }, en = function(h, u) {
130
+ var w = u / 8 | 0;
131
+ return (h[w] | h[w + 1] << 8 | h[w + 2] << 16) >> (u & 7);
132
+ }, ut = function(h) {
133
+ return (h + 7) / 8 | 0;
134
+ }, ht = function(h, u, w) {
135
+ return (w == null || w > h.length) && (w = h.length), new ie(h.subarray(u, w));
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(h, u, w) {
153
+ var _ = new Error(u || pt[h]);
154
+ if (_.code = h, Error.captureStackTrace && Error.captureStackTrace(_, ue), !w)
155
+ throw _;
156
+ return _;
157
+ }, ft = function(h, u, w, _) {
158
+ var I = h.length, W = 0;
159
+ if (!I || u.f && !u.l)
160
+ return w || new ie(0);
161
+ var d = !w, V = d || u.i != 2, _e = u.i;
162
+ d && (w = new ie(I * 3));
163
+ var Te = function(Le) {
164
+ var We = w.length;
165
+ if (Le > We) {
166
+ var Pe = new ie(Math.max(We * 2, Le));
167
+ Pe.set(w), w = Pe;
168
+ }
169
+ }, ce = u.f || 0, R = u.p || 0, B = u.b || 0, he = u.l, Ne = u.d, ye = u.m, se = u.n, pe = I * 8;
170
+ do {
171
+ if (!he) {
172
+ ce = ae(h, R, 1);
173
+ var Me = ae(h, R + 1, 3);
174
+ if (R += 3, Me)
175
+ if (Me == 1)
176
+ he = st, Ne = at, ye = 9, se = 5;
177
+ else if (Me == 2) {
178
+ var Ce = ae(h, R, 31) + 257, fe = ae(h, R + 10, 15) + 4, C = Ce + ae(h, R + 5, 31) + 1;
179
+ R += 14;
180
+ for (var T = new ie(C), x = new ie(19), U = 0; U < fe; ++U)
181
+ x[ot[U]] = ae(h, R + U * 3, 7);
182
+ R += fe * 3;
183
+ for (var O = je(x), P = (1 << O) - 1, A = ze(x, O, 1), U = 0; U < C; ) {
184
+ var z = A[ae(h, R, P)];
185
+ R += z & 15;
186
+ var j = z >> 4;
187
+ if (j < 16)
188
+ T[U++] = j;
189
+ else {
190
+ var N = 0, ee = 0;
191
+ for (j == 16 ? (ee = 3 + ae(h, R, 3), R += 2, N = T[U - 1]) : j == 17 ? (ee = 3 + ae(h, R, 7), R += 3) : j == 18 && (ee = 11 + ae(h, R, 127), R += 7); ee--; )
192
+ T[U++] = N;
193
+ }
194
+ }
195
+ var be = T.subarray(0, Ce), J = T.subarray(Ce);
196
+ ye = je(be), se = je(J), he = ze(be, ye, 1), Ne = ze(J, se, 1);
197
+ } else
198
+ ue(1);
199
+ else {
200
+ var j = ut(R) + 4, me = h[j - 4] | h[j - 3] << 8, Ie = j + me;
201
+ if (Ie > I) {
202
+ _e && ue(0);
203
+ break;
204
+ }
205
+ V && Te(B + me), w.set(h.subarray(j, Ie), B), u.b = B += me, u.p = R = Ie * 8, u.f = ce;
206
+ continue;
207
+ }
208
+ if (R > pe) {
209
+ _e && ue(0);
210
+ break;
211
+ }
212
+ }
213
+ V && Te(B + 131072);
214
+ for (var X = (1 << ye) - 1, Oe = (1 << se) - 1, Y = R; ; Y = R) {
215
+ var N = he[en(h, 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
+ w[B++] = K;
222
+ else if (K == 256) {
223
+ Y = R, he = null;
224
+ break;
225
+ } else {
226
+ var ge = K - 254;
227
+ if (K > 264) {
228
+ var U = K - 257, Re = wn[U];
229
+ ge = ae(h, R, (1 << Re) - 1) + vn[U], R += Re;
230
+ }
231
+ var F = Ne[en(h, R) & Oe], we = F >> 4;
232
+ F || ue(3), R += F & 15;
233
+ var J = ct[we];
234
+ if (we > 3) {
235
+ var Re = En[we];
236
+ J += en(h, R) & (1 << Re) - 1, R += Re;
237
+ }
238
+ if (R > pe) {
239
+ _e && ue(0);
240
+ break;
241
+ }
242
+ V && Te(B + 131072);
243
+ var ve = B + ge;
244
+ if (B < J) {
245
+ var Ye = W - J, Ve = Math.min(J, ve);
246
+ for (Ye + B < 0 && ue(3); B < Ve; ++B)
247
+ w[B] = _[Ye + B];
248
+ }
249
+ for (; B < ve; ++B)
250
+ w[B] = w[B - J];
251
+ }
252
+ }
253
+ u.l = he, u.p = Y, u.b = B, u.f = ce, he && (ce = 1, u.m = ye, u.d = Ne, u.n = se);
254
+ } while (!ce);
255
+ return B != w.length && d ? ht(w, 0, B) : w.subarray(0, B);
256
+ }, wt = /* @__PURE__ */ new ie(0), Et = function(h, u) {
257
+ return ((h[0] & 15) != 8 || h[0] >> 4 > 7 || (h[0] << 8 | h[1]) % 31) && ue(6, "invalid zlib data"), (h[1] >> 5 & 1) == 1 && ue(6, "invalid zlib data: " + (h[1] & 32 ? "need" : "unexpected") + " dictionary"), (h[1] >> 3 & 4) + 2;
258
+ };
259
+ function $e(h, u) {
260
+ return ft(h.subarray(Et(h), -4), { i: 2 }, u, u);
261
+ }
262
+ var mt = typeof TextDecoder < "u" && /* @__PURE__ */ new TextDecoder(), gt = 0;
263
+ try {
264
+ mt.decode(wt, { 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(u) {
274
+ super(u), this.type = Ue;
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(u) {
283
+ const T = 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 U(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 P(e, n, t, r, l) {
298
+ for (; t < e; )
299
+ n = n << 8 | sn(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 z(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 s = n;
318
+ let p = 0, a = 0;
319
+ for (; r <= l; r++) {
320
+ if (s.value - n.value > t) return !1;
321
+ P(6, p, a, e, s);
322
+ const c = O.l;
323
+ if (p = O.c, a = O.lc, o[r] = c, c == 63) {
324
+ if (s.value - n.value > t)
325
+ throw new Error("Something wrong with hufUnpackEncTable");
326
+ P(8, p, a, e, s);
327
+ let i = O.l + 6;
328
+ if (p = O.c, a = O.lc, r + i > l + 1)
329
+ throw new Error("Something wrong with hufUnpackEncTable");
330
+ for (; i--; ) o[r++] = 0;
331
+ r--;
332
+ } else if (c >= 59) {
333
+ let i = c - 59 + 2;
334
+ if (r + i > l + 1)
335
+ throw new Error("Something wrong with hufUnpackEncTable");
336
+ for (; i--; ) o[r++] = 0;
337
+ r--;
338
+ }
339
+ }
340
+ z(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 s = r[l >> o - 14];
355
+ if (s.len)
356
+ throw new Error("Invalid table entry");
357
+ if (s.lit++, s.p) {
358
+ const p = s.p;
359
+ s.p = new Array(s.lit);
360
+ for (let a = 0; a < s.lit - 1; ++a)
361
+ s.p[a] = p[a];
362
+ } else
363
+ s.p = new Array(1);
364
+ s.p[s.lit - 1] = n;
365
+ } else if (o) {
366
+ let s = 0;
367
+ for (let p = 1 << 14 - o; p > 0; p--) {
368
+ const a = r[(l << 14 - o) + s];
369
+ if (a.len || a.p)
370
+ throw new Error("Invalid table entry");
371
+ a.len = o, a.lit = n, s++;
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 | sn(t, r), n += 8, X.c = e, X.lc = n;
380
+ }
381
+ const Y = { c: 0, lc: 0 };
382
+ function K(e, n, t, r, l, o, s, p, a) {
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], p.value + c > a)
387
+ return !1;
388
+ const i = s[p.value - 1];
389
+ for (; c-- > 0; )
390
+ s[p.value++] = i;
391
+ } else if (p.value < a)
392
+ s[p.value++] = e;
393
+ else
394
+ return !1;
395
+ Y.c = t, Y.lc = r;
396
+ }
397
+ function ge(e) {
398
+ return e & 65535;
399
+ }
400
+ function Re(e) {
401
+ const n = ge(e);
402
+ return n > 32767 ? n - 65536 : n;
403
+ }
404
+ const F = { a: 0, b: 0 };
405
+ function we(e, n) {
406
+ const t = Re(e), l = Re(n), o = t + (l & 1) + (l >> 1), s = o, p = o - l;
407
+ F.a = s, F.b = p;
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, s) {
414
+ const p = s < 16384, a = t > l ? l : t;
415
+ let c = 1, i, f;
416
+ for (; c <= a; ) c <<= 1;
417
+ for (c >>= 1, i = c, c >>= 1; c >= 1; ) {
418
+ f = 0;
419
+ const v = f + o * (l - i), E = o * c, y = o * i, m = r * c, S = r * i;
420
+ let b, D, G, te;
421
+ for (; f <= v; f += y) {
422
+ let Z = f;
423
+ const M = f + r * (t - i);
424
+ for (; Z <= M; Z += S) {
425
+ const $ = Z + m, le = Z + E, q = le + m;
426
+ p ? (we(e[Z + n], e[le + n]), b = F.a, G = F.b, we(e[$ + n], e[q + n]), D = F.a, te = F.b, we(b, D), e[Z + n] = F.a, e[$ + n] = F.b, we(G, te), e[le + n] = F.a, e[q + n] = F.b) : (ve(e[Z + n], e[le + n]), b = F.a, G = F.b, ve(e[$ + n], e[q + n]), D = F.a, te = F.b, ve(b, D), e[Z + n] = F.a, e[$ + n] = F.b, ve(G, te), e[le + n] = F.a, e[q + n] = F.b);
427
+ }
428
+ if (t & c) {
429
+ const $ = Z + E;
430
+ p ? we(e[Z + n], e[$ + n]) : ve(e[Z + n], e[$ + n]), b = F.a, e[$ + n] = F.b, e[Z + n] = b;
431
+ }
432
+ }
433
+ if (l & c) {
434
+ let Z = f;
435
+ const M = f + r * (t - i);
436
+ for (; Z <= M; Z += S) {
437
+ const $ = Z + m;
438
+ p ? we(e[Z + n], e[$ + n]) : ve(e[Z + n], e[$ + n]), b = F.a, e[$ + n] = F.b, e[Z + n] = b;
439
+ }
440
+ }
441
+ i = c, c >>= 1;
442
+ }
443
+ return f;
444
+ }
445
+ function Ve(e, n, t, r, l, o, s, p, a) {
446
+ let c = 0, i = 0;
447
+ const f = s, v = Math.trunc(r.value + (l + 7) / 8);
448
+ for (; r.value < v; )
449
+ for (Oe(c, i, t, r), c = X.c, i = X.lc; i >= 14; ) {
450
+ const y = c >> i - 14 & 16383, m = n[y];
451
+ if (m.len)
452
+ i -= m.len, K(m.lit, o, c, i, t, r, p, a, f), c = Y.c, i = Y.lc;
453
+ else {
454
+ if (!m.p)
455
+ throw new Error("hufDecode issues");
456
+ let S;
457
+ for (S = 0; S < m.lit; S++) {
458
+ const b = ee(e[m.p[S]]);
459
+ for (; i < b && r.value < v; )
460
+ Oe(c, i, t, r), c = X.c, i = X.lc;
461
+ if (i >= b && be(e[m.p[S]]) == (c >> i - b & (1 << b) - 1)) {
462
+ i -= b, K(m.p[S], o, c, i, t, r, p, a, f), c = Y.c, i = Y.lc;
463
+ break;
464
+ }
465
+ }
466
+ if (S == m.lit)
467
+ throw new Error("hufDecode issues");
468
+ }
469
+ }
470
+ const E = 8 - l & 7;
471
+ for (c >>= E, i -= E; i > 0; ) {
472
+ const y = n[c << 14 - i & 16383];
473
+ if (y.len)
474
+ i -= y.len, K(y.lit, o, c, i, t, r, p, a, f), c = Y.c, i = Y.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 s = { value: 0 }, p = t.value, a = oe(n, t), c = oe(n, t);
482
+ t.value += 4;
483
+ const i = oe(n, t);
484
+ if (t.value += 4, a < 0 || a >= 65537 || c < 0 || c >= 65537)
485
+ throw new Error("Something wrong with HUF_ENCSIZE");
486
+ const f = new Array(65537), v = new Array(16384);
487
+ U(v);
488
+ const E = r - (t.value - p);
489
+ if (N(e, t, E, a, c, f), i > 8 * (r - (t.value - p)))
490
+ throw new Error("Something wrong with hufUncompress");
491
+ J(f, a, c, v), Ve(f, v, e, t, i, c, o, l, s);
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 s = -o;
518
+ n -= s + 1;
519
+ for (let p = 0; p < s; p++)
520
+ t.push(l.getUint8(r++));
521
+ } else {
522
+ const s = o;
523
+ n -= 2;
524
+ const p = l.getUint8(r++);
525
+ for (let a = 0; a < s + 1; a++)
526
+ t.push(p);
527
+ }
528
+ }
529
+ return t;
530
+ }
531
+ function yn(e, n, t, r, l, o) {
532
+ let s = new DataView(o.buffer);
533
+ const p = t[e.idx[0]].width, a = t[e.idx[0]].height, c = 3, i = Math.floor(p / 8), f = Math.ceil(p / 8), v = Math.ceil(a / 8), E = p - (f - 1) * 8, y = a - (v - 1) * 8, m = { value: 0 }, S = new Array(c), b = new Array(c), D = new Array(c), G = new Array(c), te = new Array(c);
534
+ for (let M = 0; M < c; ++M)
535
+ te[M] = n[e.idx[M]], S[M] = M < 1 ? 0 : S[M - 1] + f * v, b[M] = new Float32Array(64), D[M] = new Uint16Array(64), G[M] = new Uint16Array(f * 64);
536
+ for (let M = 0; M < v; ++M) {
537
+ let $ = 8;
538
+ M == v - 1 && ($ = y);
539
+ let le = 8;
540
+ for (let k = 0; k < f; ++k) {
541
+ k == f - 1 && (le = E);
542
+ for (let L = 0; L < c; ++L)
543
+ D[L].fill(0), D[L][0] = l[S[L]++], In(m, r, D[L]), Cn(D[L], b[L]), bn(b[L]);
544
+ Rn(b);
545
+ for (let L = 0; L < c; ++L)
546
+ An(b[L], G[L], k * 64);
547
+ }
548
+ let q = 0;
549
+ for (let k = 0; k < c; ++k) {
550
+ const L = t[e.idx[k]].type;
551
+ for (let Se = 8 * M; Se < 8 * M + $; ++Se) {
552
+ q = te[k][Se];
553
+ for (let He = 0; He < i; ++He) {
554
+ const Ee = He * 64 + (Se & 7) * 8;
555
+ s.setUint16(q + 0 * 2 * L, G[k][Ee + 0], !0), s.setUint16(q + 1 * 2 * L, G[k][Ee + 1], !0), s.setUint16(q + 2 * 2 * L, G[k][Ee + 2], !0), s.setUint16(q + 3 * 2 * L, G[k][Ee + 3], !0), s.setUint16(q + 4 * 2 * L, G[k][Ee + 4], !0), s.setUint16(q + 5 * 2 * L, G[k][Ee + 5], !0), s.setUint16(q + 6 * 2 * L, G[k][Ee + 6], !0), s.setUint16(q + 7 * 2 * L, G[k][Ee + 7], !0), q += 8 * 2 * L;
556
+ }
557
+ }
558
+ if (i != f)
559
+ for (let Se = 8 * M; Se < 8 * M + $; ++Se) {
560
+ const He = te[k][Se] + 8 * i * 2 * L, Ee = i * 64 + (Se & 7) * 8;
561
+ for (let Ke = 0; Ke < le; ++Ke)
562
+ s.setUint16(He + Ke * 2 * L, G[k][Ee + Ke], !0);
563
+ }
564
+ }
565
+ }
566
+ const Z = new Uint16Array(p);
567
+ s = new DataView(o.buffer);
568
+ for (let M = 0; M < c; ++M) {
569
+ t[e.idx[M]].decoded = !0;
570
+ const $ = t[e.idx[M]].type;
571
+ if (t[M].type == 2)
572
+ for (let le = 0; le < a; ++le) {
573
+ const q = te[M][le];
574
+ for (let k = 0; k < p; ++k)
575
+ Z[k] = s.getUint16(q + k * 2 * $, !0);
576
+ for (let k = 0; k < p; ++k)
577
+ s.setFloat32(q + k * 2 * $, g(Z[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), s = 0.5 * Math.cos(3 * 3.14159 / 8), p = 0.5 * Math.cos(7 * 3.14159 / 16), a = new Array(4), c = new Array(4), i = new Array(4), f = new Array(4);
591
+ for (let v = 0; v < 8; ++v) {
592
+ const E = v * 8;
593
+ a[0] = r * e[E + 2], a[1] = s * e[E + 2], a[2] = r * e[E + 6], a[3] = s * e[E + 6], c[0] = t * e[E + 1] + l * e[E + 3] + o * e[E + 5] + p * e[E + 7], c[1] = l * e[E + 1] - p * e[E + 3] - t * e[E + 5] - o * e[E + 7], c[2] = o * e[E + 1] - t * e[E + 3] + p * e[E + 5] + l * e[E + 7], c[3] = p * e[E + 1] - o * e[E + 3] + l * e[E + 5] - t * e[E + 7], i[0] = n * (e[E + 0] + e[E + 4]), i[3] = n * (e[E + 0] - e[E + 4]), i[1] = a[0] + a[3], i[2] = a[1] - a[2], f[0] = i[0] + i[1], f[1] = i[3] + i[2], f[2] = i[3] - i[2], f[3] = i[0] - i[1], e[E + 0] = f[0] + c[0], e[E + 1] = f[1] + c[1], e[E + 2] = f[2] + c[2], e[E + 3] = f[3] + c[3], e[E + 4] = f[3] - c[3], e[E + 5] = f[2] - c[2], e[E + 6] = f[1] - c[1], e[E + 7] = f[0] - c[0];
594
+ }
595
+ for (let v = 0; v < 8; ++v)
596
+ a[0] = r * e[16 + v], a[1] = s * e[16 + v], a[2] = r * e[48 + v], a[3] = s * e[48 + v], c[0] = t * e[8 + v] + l * e[24 + v] + o * e[40 + v] + p * e[56 + v], c[1] = l * e[8 + v] - p * e[24 + v] - t * e[40 + v] - o * e[56 + v], c[2] = o * e[8 + v] - t * e[24 + v] + p * e[40 + v] + l * e[56 + v], c[3] = p * e[8 + v] - o * e[24 + v] + l * e[40 + v] - t * e[56 + v], i[0] = n * (e[v] + e[32 + v]), i[3] = n * (e[v] - e[32 + v]), i[1] = a[0] + a[3], i[2] = a[1] - a[2], f[0] = i[0] + i[1], f[1] = i[3] + i[2], f[2] = i[3] - i[2], f[3] = i[0] - i[1], e[0 + v] = f[0] + c[0], e[8 + v] = f[1] + c[1], e[16 + v] = f[2] + c[2], e[24 + v] = f[3] + c[3], e[32 + v] = f[3] - c[3], e[40 + v] = f[2] - c[2], e[48 + v] = f[1] - c[1], e[56 + v] = f[0] - c[0];
597
+ }
598
+ function Rn(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 An(e, n, t) {
605
+ for (let r = 0; r < 64; ++r)
606
+ n[t + r] = Fe.toHalfFloat(dn(e[r]));
607
+ }
608
+ function dn(e) {
609
+ return e <= 1 ? Math.sign(e) * Math.pow(Math.abs(e), 2.2) : Math.sign(e) * Math.pow(T, Math.abs(e) - 1);
610
+ }
611
+ function Je(e) {
612
+ return new DataView(e.array.buffer, e.offset.value, e.size);
613
+ }
614
+ function Un(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 = $e(n), r = new Uint8Array(t.length);
620
+ return Pe(t), on(t, r), new DataView(r.buffer);
621
+ }
622
+ function Tn(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 s = new Array(e.inputChannels.length);
626
+ for (let y = 0, m = e.inputChannels.length; y < m; y++)
627
+ s[y] = {}, s[y].start = o, s[y].end = s[y].start, s[y].nx = e.columns, s[y].ny = e.lines, s[y].size = e.type, o += s[y].nx * s[y].ny * s[y].size;
628
+ const p = Ze(n, t), a = Ze(n, t);
629
+ if (a >= 8192)
630
+ throw new Error("Something is wrong with PIZ_COMPRESSION BITMAP_SIZE");
631
+ if (p <= a)
632
+ for (let y = 0; y < a - p + 1; y++)
633
+ l[y + p] = Ae(n, t);
634
+ const c = new Uint16Array(65536), i = x(l, c), f = oe(n, t);
635
+ Le(e.array, n, t, f, r, o);
636
+ for (let y = 0; y < e.inputChannels.length; ++y) {
637
+ const m = s[y];
638
+ for (let S = 0; S < s[y].size; ++S)
639
+ Ye(
640
+ r,
641
+ m.start + S,
642
+ m.nx,
643
+ m.size,
644
+ m.ny,
645
+ m.nx * m.size,
646
+ i
647
+ );
648
+ }
649
+ We(c, r, o);
650
+ let v = 0;
651
+ const E = new Uint8Array(r.buffer.byteLength);
652
+ for (let y = 0; y < e.lines; y++)
653
+ for (let m = 0; m < e.inputChannels.length; m++) {
654
+ const S = s[m], b = S.nx * S.size, D = new Uint8Array(r.buffer, S.end * 2, b * 2);
655
+ E.set(D, v), v += b * 2, S.end += b;
656
+ }
657
+ return new DataView(E.buffer);
658
+ }
659
+ function Nn(e) {
660
+ const n = e.array.slice(e.offset.value, e.offset.value + e.size), t = $e(n), r = e.inputChannels.length * e.lines * e.columns * e.totalBytes, l = new ArrayBuffer(r), o = new DataView(l);
661
+ let s = 0, p = 0;
662
+ const a = new Array(4);
663
+ for (let c = 0; c < e.lines; c++)
664
+ for (let i = 0; i < e.inputChannels.length; i++) {
665
+ let f = 0;
666
+ switch (e.inputChannels[i].pixelType) {
667
+ case 1:
668
+ a[0] = s, a[1] = a[0] + e.columns, s = a[1] + e.columns;
669
+ for (let E = 0; E < e.columns; ++E) {
670
+ const y = t[a[0]++] << 8 | t[a[1]++];
671
+ f += y, o.setUint16(p, f, !0), p += 2;
672
+ }
673
+ break;
674
+ case 2:
675
+ a[0] = s, a[1] = a[0] + e.columns, a[2] = a[1] + e.columns, s = a[2] + e.columns;
676
+ for (let E = 0; E < e.columns; ++E) {
677
+ const y = t[a[0]++] << 24 | t[a[1]++] << 16 | t[a[2]++] << 8;
678
+ f += y, o.setUint32(p, f, !0), p += 4;
679
+ }
680
+ break;
681
+ }
682
+ }
683
+ return o;
684
+ }
685
+ function cn(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 s = Ze(n, t) - 2;
703
+ for (; s > 0; ) {
704
+ const m = Xe(n.buffer, t), S = Ae(n, t), b = S >> 2 & 3, D = (S >> 4) - 1, G = new Int8Array([D])[0], te = Ae(n, t);
705
+ o.push({
706
+ name: m,
707
+ index: G,
708
+ type: te,
709
+ compression: b
710
+ }), s -= m.length + 3;
711
+ }
712
+ const p = xe.channels, a = new Array(e.inputChannels.length);
713
+ for (let m = 0; m < e.inputChannels.length; ++m) {
714
+ const S = a[m] = {}, b = p[m];
715
+ S.name = b.name, S.compression = 0, S.decoded = !1, S.type = b.pixelType, S.pLinear = b.pLinear, S.width = e.columns, S.height = e.lines;
716
+ }
717
+ const c = {
718
+ idx: new Array(3)
719
+ };
720
+ for (let m = 0; m < e.inputChannels.length; ++m) {
721
+ const S = a[m];
722
+ for (let b = 0; b < o.length; ++b) {
723
+ const D = o[b];
724
+ S.name == D.name && (S.compression = D.compression, D.index >= 0 && (c.idx[D.index] = m), S.offset = m);
725
+ }
726
+ }
727
+ let i, f, v;
728
+ if (l.acCompressedSize > 0)
729
+ switch (l.acCompression) {
730
+ case 0:
731
+ i = new Uint16Array(l.totalAcUncompressedCount), Le(e.array, n, t, l.acCompressedSize, i, l.totalAcUncompressedCount);
732
+ break;
733
+ case 1:
734
+ const m = e.array.slice(t.value, t.value + l.totalAcUncompressedCount), S = $e(m);
735
+ i = new Uint16Array(S.buffer), t.value += l.totalAcUncompressedCount;
736
+ break;
737
+ }
738
+ if (l.dcCompressedSize > 0) {
739
+ const m = {
740
+ array: e.array,
741
+ offset: t,
742
+ size: l.dcCompressedSize
743
+ };
744
+ f = new Uint16Array(Qe(m).buffer), t.value += l.dcCompressedSize;
745
+ }
746
+ if (l.rleRawSize > 0) {
747
+ const m = e.array.slice(t.value, t.value + l.rleCompressedSize), S = $e(m);
748
+ v = ln(S.buffer), t.value += l.rleCompressedSize;
749
+ }
750
+ let E = 0;
751
+ const y = new Array(a.length);
752
+ for (let m = 0; m < y.length; ++m)
753
+ y[m] = new Array();
754
+ for (let m = 0; m < e.lines; ++m)
755
+ for (let S = 0; S < a.length; ++S)
756
+ y[S].push(E), E += a[S].width * e.type * 2;
757
+ yn(c, y, a, i, f, r);
758
+ for (let m = 0; m < a.length; ++m) {
759
+ const S = a[m];
760
+ if (!S.decoded)
761
+ switch (S.compression) {
762
+ case 2:
763
+ let b = 0, D = 0;
764
+ for (let G = 0; G < e.lines; ++G) {
765
+ let te = y[m][b];
766
+ for (let Z = 0; Z < S.width; ++Z) {
767
+ for (let M = 0; M < 2 * S.type; ++M)
768
+ r[te++] = v[D + M * S.width * S.height];
769
+ D++;
770
+ }
771
+ b++;
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 sn(e, n) {
815
+ const t = e[n.value];
816
+ return n.value = n.value + 1, t;
817
+ }
818
+ function Ae(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 Fe.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 Fn(e, n) {
842
+ return g(Ze(e, n));
843
+ }
844
+ function Dn(e, n, t, r) {
845
+ const l = t.value, o = [];
846
+ for (; t.value < l + r - 1; ) {
847
+ const s = Xe(n, t), p = re(e, t), a = Ae(e, t);
848
+ t.value += 3;
849
+ const c = re(e, t), i = re(e, t);
850
+ o.push({
851
+ name: s,
852
+ pixelType: p,
853
+ pLinear: a,
854
+ xSampling: c,
855
+ ySampling: i
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), s = Q(e, n), p = Q(e, n), a = Q(e, n), c = Q(e, n);
862
+ return { redX: t, redY: r, greenX: l, greenY: o, blueX: s, blueY: p, whiteX: a, 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 = Ae(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 = Ae(e, n);
889
+ return t[r];
890
+ }
891
+ function Hn(e, n) {
892
+ const t = [
893
+ "ENVMAP_LATLONG",
894
+ "ENVMAP_CUBE"
895
+ ], r = Ae(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), s = Ae(e, n);
907
+ return {
908
+ xSize: l,
909
+ ySize: o,
910
+ levelMode: t[s & 15],
911
+ roundingMode: r[s >> 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 Dn(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 s = 1 << o;
977
+ let p = n / s | 0;
978
+ r == "ROUND_UP" && p * s < n && (p += 1);
979
+ const a = Math.max(p, 1);
980
+ l[o] = (a + t - 1) / t | 0;
981
+ }
982
+ return l;
983
+ }
984
+ function $n() {
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 s = l * e.blockWidth, p = o * e.blockHeight;
990
+ e.columns = s + e.blockWidth > e.width ? e.width - s : e.blockWidth, e.lines = p + e.blockHeight > e.height ? e.height - p : e.blockHeight;
991
+ const a = e.columns * e.totalBytes, i = e.size < e.lines * a ? e.uncompress(e) : Je(e);
992
+ n.value += e.size;
993
+ for (let f = 0; f < e.lines; f++) {
994
+ const v = f * e.columns * e.totalBytes;
995
+ for (let E = 0; E < e.inputChannels.length; E++) {
996
+ const y = xe.channels[E].name, m = e.channelByteOffsets[y] * e.columns, S = e.decodeChannels[y];
997
+ if (S === void 0) continue;
998
+ t.value = v + m;
999
+ const b = (e.height - (1 + p + f)) * e.outLineWidth;
1000
+ for (let D = 0; D < e.columns; D++) {
1001
+ const G = b + (D + s) * e.outputChannels + S;
1002
+ e.byteArray[G] = e.getter(i, t);
1003
+ }
1004
+ }
1005
+ }
1006
+ }
1007
+ }
1008
+ function qn() {
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, p = e.size < e.lines * o ? e.uncompress(e) : Je(e);
1014
+ n.value += e.size;
1015
+ for (let a = 0; a < e.blockHeight; a++) {
1016
+ const c = r * e.blockHeight, i = a + e.scanOrder(c);
1017
+ if (i >= e.height) continue;
1018
+ const f = a * o, v = (e.height - 1 - i) * e.outLineWidth;
1019
+ for (let E = 0; E < e.inputChannels.length; E++) {
1020
+ const y = xe.channels[E].name, m = e.channelByteOffsets[y] * e.columns, S = e.decodeChannels[y];
1021
+ if (S !== void 0) {
1022
+ t.value = f + m;
1023
+ for (let b = 0; b < e.columns; b++) {
1024
+ const D = v + b * e.outputChannels + S;
1025
+ e.byteArray[D] = e.getter(p, 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 s = Xe(n, t);
1047
+ if (s === "")
1048
+ o = !1;
1049
+ else {
1050
+ const p = Xe(n, t), a = oe(e, t), c = Wn(e, n, t, p, a);
1051
+ c === void 0 ? console.warn(`THREE.EXRLoader: Skipped unknown header attribute type '${p}'.`) : r[s] = 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 = Un;
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 = Tn;
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 = cn;
1099
+ break;
1100
+ case "DWAB_COMPRESSION":
1101
+ o.blockHeight = 256, o.uncompress = cn;
1102
+ break;
1103
+ default:
1104
+ throw new Error("EXRLoader.parse: " + e.compression + " is unsupported");
1105
+ }
1106
+ const s = {};
1107
+ for (const i of e.channels)
1108
+ switch (i.name) {
1109
+ case "Y":
1110
+ case "R":
1111
+ case "G":
1112
+ case "B":
1113
+ case "A":
1114
+ s[i.name] = !0, o.type = i.pixelType;
1115
+ }
1116
+ let p = !1;
1117
+ if (s.R && s.G && s.B)
1118
+ p = !s.A, o.outputChannels = 4, o.decodeChannels = { R: 0, G: 1, B: 2, A: 3 };
1119
+ else if (s.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 = Fn;
1127
+ break;
1128
+ case Ue:
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 Ue:
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 a = o.width * o.height * o.outputChannels;
1144
+ switch (l) {
1145
+ case Be:
1146
+ o.byteArray = new Float32Array(a), p && o.byteArray.fill(1, 0, a);
1147
+ break;
1148
+ case Ue:
1149
+ o.byteArray = new Uint16Array(a), p && o.byteArray.fill(15360, 0, a);
1150
+ break;
1151
+ default:
1152
+ console.error("THREE.EXRLoader: unsupported type: ", l);
1153
+ break;
1154
+ }
1155
+ let c = 0;
1156
+ for (const i of e.channels)
1157
+ o.decodeChannels[i.name] !== void 0 && (o.channelByteOffsets[i.name] = c), c += i.pixelType * 2;
1158
+ if (o.totalBytes = c, o.outLineWidth = o.width * o.outputChannels, e.lineOrder === "INCREASING_Y" ? o.scanOrder = (i) => i : o.scanOrder = (i) => o.height - 1 - i, 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 i = Kn(e.tiles, o.width, o.height), f = an(i, o.width, e.tiles.xSize, e.tiles.roundingMode), v = an(i, o.height, e.tiles.ySize, e.tiles.roundingMode);
1161
+ o.tileCount = f[0] * v[0];
1162
+ for (let E = 0; E < i; E++)
1163
+ for (let y = 0; y < v[E]; y++)
1164
+ for (let m = 0; m < f[E]; m++)
1165
+ ne(n, r);
1166
+ o.decode = $n.bind(o);
1167
+ } else {
1168
+ o.blockWidth = o.width;
1169
+ const i = Math.ceil(o.height / o.blockHeight);
1170
+ for (let f = 0; f < i; f++)
1171
+ ne(n, r);
1172
+ o.decode = qn.bind(o);
1173
+ }
1174
+ return o;
1175
+ }
1176
+ const un = { value: 0 }, hn = new DataView(u), Qn = new Uint8Array(u), xe = Vn(hn, u, 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(u) {
1194
+ return this.type = u, this;
1195
+ }
1196
+ load(u, w, _, I) {
1197
+ function W(d, V) {
1198
+ d.colorSpace = V.colorSpace, d.minFilter = qe, d.magFilter = qe, d.generateMipmaps = !1, d.flipY = !1, w && w(d, V);
1199
+ }
1200
+ return super.load(u, W, _, I);
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(u) {
1210
+ super(u), this.type = Ue;
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(u) {
1219
+ const d = function(C, T) {
1220
+ switch (C) {
1221
+ case 1:
1222
+ throw new Error("THREE.RGBELoader: Read Error: " + (T || ""));
1223
+ case 2:
1224
+ throw new Error("THREE.RGBELoader: Write Error: " + (T || ""));
1225
+ case 3:
1226
+ throw new Error("THREE.RGBELoader: Bad File Format: " + (T || ""));
1227
+ default:
1228
+ case 4:
1229
+ throw new Error("THREE.RGBELoader: Memory Error: " + (T || ""));
1230
+ }
1231
+ }, ce = `
1232
+ `, R = function(C, T, x) {
1233
+ T = T || 1024;
1234
+ let O = C.pos, P = -1, A = 0, z = "", N = String.fromCharCode.apply(null, new Uint16Array(C.subarray(O, O + 128)));
1235
+ for (; 0 > (P = N.indexOf(ce)) && A < T && O < C.byteLength; )
1236
+ z += N, A += N.length, O += 128, N += String.fromCharCode.apply(null, new Uint16Array(C.subarray(O, O + 128)));
1237
+ return -1 < P ? (C.pos += A + P + 1, z + N.slice(0, P)) : !1;
1238
+ }, B = function(C) {
1239
+ const T = /^#\?(\S+)/, x = /^\s*GAMMA\s*=\s*(\d+(\.\d+)?)\s*$/, U = /^\s*EXPOSURE\s*=\s*(\d+(\.\d+)?)\s*$/, O = /^\s*FORMAT=(\S+)\s*$/, P = /^\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 z, N;
1259
+ for ((C.pos >= C.byteLength || !(z = R(C))) && d(1, "no header found"), (N = z.match(T)) || d(3, "bad initial token"), A.valid |= 1, A.programtype = N[1], A.string += z + `
1260
+ `; z = R(C), z !== !1; ) {
1261
+ if (A.string += z + `
1262
+ `, z.charAt(0) === "#") {
1263
+ A.comments += z + `
1264
+ `;
1265
+ continue;
1266
+ }
1267
+ if ((N = z.match(x)) && (A.gamma = parseFloat(N[1])), (N = z.match(U)) && (A.exposure = parseFloat(N[1])), (N = z.match(O)) && (A.valid |= 2, A.format = N[1]), (N = z.match(P)) && (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 || d(3, "missing format specifier"), A.valid & 4 || d(3, "missing image size specifier"), A;
1270
+ }, he = function(C, T, x) {
1271
+ const U = T;
1272
+ if (
1273
+ // run length encoding is not allowed so read flat
1274
+ U < 8 || U > 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
+ U !== (C[2] << 8 | C[3]) && d(3, "wrong scanline width");
1279
+ const O = new Uint8Array(4 * T * x);
1280
+ O.length || d(4, "unable to allocate buffer space");
1281
+ let P = 0, A = 0;
1282
+ const z = 4 * U, N = new Uint8Array(4), ee = new Uint8Array(z);
1283
+ let be = x;
1284
+ for (; be > 0 && A < C.byteLength; ) {
1285
+ A + 4 > C.byteLength && d(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]) != U) && d(3, "bad rgbe scanline format");
1286
+ let J = 0, X;
1287
+ for (; J < z && A < C.byteLength; ) {
1288
+ X = C[A++];
1289
+ const Y = X > 128;
1290
+ if (Y && (X -= 128), (X === 0 || J + X > z) && d(3, "bad scanline data"), Y) {
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 = U;
1298
+ for (let Y = 0; Y < Oe; Y++) {
1299
+ let K = 0;
1300
+ O[P] = ee[Y + K], K += U, O[P + 1] = ee[Y + K], K += U, O[P + 2] = ee[Y + K], K += U, O[P + 3] = ee[Y + K], P += 4;
1301
+ }
1302
+ be--;
1303
+ }
1304
+ return O;
1305
+ }, Ne = function(C, T, x, U) {
1306
+ const O = C[T + 3], P = Math.pow(2, O - 128) / 255;
1307
+ x[U + 0] = C[T + 0] * P, x[U + 1] = C[T + 1] * P, x[U + 2] = C[T + 2] * P, x[U + 3] = 1;
1308
+ }, ye = function(C, T, x, U) {
1309
+ const O = C[T + 3], P = Math.pow(2, O - 128) / 255;
1310
+ x[U + 0] = Fe.toHalfFloat(Math.min(C[T + 0] * P, 65504)), x[U + 1] = Fe.toHalfFloat(Math.min(C[T + 1] * P, 65504)), x[U + 2] = Fe.toHalfFloat(Math.min(C[T + 2] * P, 65504)), x[U + 3] = Fe.toHalfFloat(1);
1311
+ }, se = new Uint8Array(u);
1312
+ se.pos = 0;
1313
+ const pe = B(se), Me = pe.width, j = pe.height, me = he(se.subarray(se.pos), Me, j);
1314
+ let Ie, Ce, fe;
1315
+ switch (this.type) {
1316
+ case Be:
1317
+ fe = me.length / 4;
1318
+ const C = new Float32Array(fe * 4);
1319
+ for (let x = 0; x < fe; x++)
1320
+ Ne(me, x * 4, C, x * 4);
1321
+ Ie = C, Ce = Be;
1322
+ break;
1323
+ case Ue:
1324
+ fe = me.length / 4;
1325
+ const T = new Uint16Array(fe * 4);
1326
+ for (let x = 0; x < fe; x++)
1327
+ ye(me, x * 4, T, x * 4);
1328
+ Ie = T, Ce = Ue;
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(u) {
1350
+ return this.type = u, this;
1351
+ }
1352
+ load(u, w, _, I) {
1353
+ function W(d, V) {
1354
+ switch (d.type) {
1355
+ case Be:
1356
+ case Ue:
1357
+ d.colorSpace = tn, d.minFilter = qe, d.magFilter = qe, d.generateMipmaps = !1, d.flipY = !0;
1358
+ break;
1359
+ }
1360
+ w && w(d, V);
1361
+ }
1362
+ return super.load(u, W, _, I);
1363
+ }
1364
+ }
1365
+ function Ct(h, u = [0.3, 0.3, 0.3]) {
1366
+ const w = document.querySelector(`#${h}`);
1367
+ if (!w) {
1368
+ console.log(" 获取 infoPlane 元素失败 (id) =====> :", h);
1369
+ return;
1370
+ }
1371
+ const _ = w.cloneNode(!0);
1372
+ _.style.display = "block";
1373
+ const I = new pn(_);
1374
+ return I.visible = !1, I.scale.set(...u), I;
1375
+ }
1376
+ function bt(h, u) {
1377
+ const w = _t(h);
1378
+ w.style.display = "block";
1379
+ const _ = new pn(w);
1380
+ return _.visible = !1, _.scale.set(u, u, u), _;
1381
+ }
1382
+ const _t = (h) => {
1383
+ const u = document.createElement("div");
1384
+ u.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 w = document.createElement("span");
1394
+ return w.style.cssText = `
1395
+ font-size: 40px;
1396
+ line-height: 1;
1397
+ white-space: nowrap;
1398
+ color: #fff;
1399
+ font-weight: 700;
1400
+ `, w.innerText = h, u.appendChild(w), u;
1401
+ }, Rt = (h, u) => {
1402
+ const w = {};
1403
+ h.forEach((W) => {
1404
+ let d = W.parent;
1405
+ for (; d; )
1406
+ w[d.uuid] ? w[d.uuid]++ : w[d.uuid] = 1, d = d.parent;
1407
+ });
1408
+ let _ = null, I = 0;
1409
+ for (const W in w)
1410
+ w[W] > I && (I = w[W], _ = u.getObjectByProperty("uuid", W));
1411
+ return _;
1412
+ }, nn = {};
1413
+ async function At(h, u) {
1414
+ if (!u) return;
1415
+ if (nn[u]) {
1416
+ const _ = nn[u];
1417
+ h.environment = _;
1418
+ return;
1419
+ }
1420
+ let w = _n(u);
1421
+ return new Promise((_, I) => {
1422
+ w.load(u, _, void 0, I);
1423
+ }).then((_) => {
1424
+ _.mapping = tt, h.environment = _, nn[u] = _;
1425
+ }).catch((_) => {
1426
+ console.log(" =====> e:", _);
1427
+ });
1428
+ }
1429
+ async function dt(h) {
1430
+ let u = _n(h);
1431
+ return new Promise((w, _) => {
1432
+ u.load(h, w, void 0, _);
1433
+ });
1434
+ }
1435
+ function _n(h) {
1436
+ return h.split(".").pop() === "exr" ? new vt() : new St();
1437
+ }
1438
+ export {
1439
+ dt as I,
1440
+ bt as a,
1441
+ Ct as c,
1442
+ Rt as g,
1443
+ At as i
1444
+ };