@soonspacejs/plugin-gs3d-loader 3.0.0-alpha.0 → 3.0.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as f from "three";
2
- import { Ray as Ws, Plane as Ks, MathUtils as js, EventDispatcher as Ys, Vector3 as ye, MOUSE as _e, TOUCH as Qe, Spherical as ts, Quaternion as Mt, Vector2 as ve } from "three";
2
+ import { Ray as Ks, Plane as js, MathUtils as Ys, EventDispatcher as Xs, Vector3 as ye, MOUSE as _e, TOUCH as Qe, Spherical as ts, Quaternion as Mt, Vector2 as ve } from "three";
3
+ import ss from "soonspacejs";
3
4
  class He {
4
5
  static idGen = 0;
5
6
  constructor(e, s) {
@@ -37,7 +38,7 @@ class He {
37
38
  this.abortHandler && this.abortHandler(e);
38
39
  }
39
40
  }
40
- class Ms extends Error {
41
+ class Rs extends Error {
41
42
  constructor(e) {
42
43
  super(e);
43
44
  }
@@ -57,7 +58,7 @@ const xt = (function() {
57
58
  return function(s) {
58
59
  return A[0] = s, e[0];
59
60
  };
60
- })(), Xs = function(A, e) {
61
+ })(), Js = function(A, e) {
61
62
  return A[e] + (A[e + 1] << 8) + (A[e + 2] << 16) + (A[e + 3] << 24);
62
63
  }, St = function(A, e, s = !0, t) {
63
64
  const n = new AbortController(), r = n.signal;
@@ -99,7 +100,7 @@ const xt = (function() {
99
100
  return;
100
101
  }
101
102
  }).catch((h) => {
102
- d(new Ms(h));
103
+ d(new Rs(h));
103
104
  });
104
105
  }, o);
105
106
  }, ne = function(A, e, s) {
@@ -145,7 +146,7 @@ const xt = (function() {
145
146
  reject: s
146
147
  };
147
148
  };
148
- class Js {
149
+ class Zs {
149
150
  constructor(e, s, t) {
150
151
  this.major = e, this.minor = s, this.patch = t;
151
152
  }
@@ -157,10 +158,10 @@ function kt() {
157
158
  const A = navigator.userAgent;
158
159
  return A.indexOf("iPhone") > 0 || A.indexOf("iPad") > 0;
159
160
  }
160
- function Rs() {
161
+ function Ps() {
161
162
  if (kt()) {
162
163
  const A = navigator.userAgent.match(/OS (\d+)_(\d+)_?(\d+)?/);
163
- return new Js(
164
+ return new Zs(
164
165
  parseInt(A[1] || 0, 10),
165
166
  parseInt(A[2] || 0, 10),
166
167
  parseInt(A[3] || 0, 10)
@@ -168,7 +169,7 @@ function Rs() {
168
169
  } else
169
170
  return null;
170
171
  }
171
- const Zs = 14;
172
+ const $s = 14;
172
173
  class P {
173
174
  static OFFSET = {
174
175
  X: 0,
@@ -211,7 +212,7 @@ class P {
211
212
  FRC23: 37
212
213
  };
213
214
  constructor(e = 0) {
214
- this.sphericalHarmonicsDegree = e, this.sphericalHarmonicsCount = Ke(this.sphericalHarmonicsDegree), this.componentCount = this.sphericalHarmonicsCount + Zs, this.defaultSphericalHarmonics = new Array(this.sphericalHarmonicsCount).fill(0), this.splats = [], this.splatCount = 0;
215
+ this.sphericalHarmonicsDegree = e, this.sphericalHarmonicsCount = Ke(this.sphericalHarmonicsDegree), this.componentCount = this.sphericalHarmonicsCount + $s, this.defaultSphericalHarmonics = new Array(this.sphericalHarmonicsCount).fill(0), this.splats = [], this.splatCount = 0;
215
216
  }
216
217
  static createSplat(e = 0) {
217
218
  const s = [0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];
@@ -252,7 +253,7 @@ class j {
252
253
  static ProgressiveLoadSectionDelayDuration = 15;
253
254
  static SphericalHarmonics8BitCompressionRange = 3;
254
255
  }
255
- const $s = j.SphericalHarmonics8BitCompressionRange, Le = $s / 2, fe = f.DataUtils.toHalfFloat.bind(f.DataUtils), Lt = f.DataUtils.fromHalfFloat.bind(f.DataUtils), se = (A, e, s = !1, t, n) => {
256
+ const en = j.SphericalHarmonics8BitCompressionRange, Le = en / 2, fe = f.DataUtils.toHalfFloat.bind(f.DataUtils), Lt = f.DataUtils.fromHalfFloat.bind(f.DataUtils), se = (A, e, s = !1, t, n) => {
256
257
  if (e === 0)
257
258
  return A;
258
259
  if (e === 1 || e === 2 && !s)
@@ -266,12 +267,12 @@ const $s = j.SphericalHarmonics8BitCompressionRange, Le = $s / 2, fe = f.DataUti
266
267
  }, Ht = (A, e, s) => {
267
268
  const t = s - e;
268
269
  return A / 255 * t + e;
269
- }, Ps = (A, e, s) => $e(Lt(A, e, s)), en = (A, e, s) => fe(Ht(A, e, s)), W = (A, e, s, t = !1) => s === 0 ? A.getFloat32(e * 4, !0) : s === 1 || s === 2 && !t ? A.getUint16(e * 2, !0) : A.getUint8(e, !0), tn = /* @__PURE__ */ (function() {
270
+ }, Os = (A, e, s) => $e(Lt(A, e, s)), tn = (A, e, s) => fe(Ht(A, e, s)), W = (A, e, s, t = !1) => s === 0 ? A.getFloat32(e * 4, !0) : s === 1 || s === 2 && !t ? A.getUint16(e * 2, !0) : A.getUint8(e, !0), sn = /* @__PURE__ */ (function() {
270
271
  const A = (e) => e;
271
272
  return function(e, s, t, n = !1) {
272
273
  if (s === t) return e;
273
274
  let r = A;
274
- return s === 2 && n ? t === 1 ? r = en : t == 0 && (r = Ht) : s === 2 || s === 1 ? t === 0 ? r = Lt : t == 2 && (n ? r = Ps : r = A) : s === 0 && (t === 1 ? r = fe : t == 2 && (n ? r = $e : r = fe)), r(e);
275
+ return s === 2 && n ? t === 1 ? r = tn : t == 0 && (r = Ht) : s === 2 || s === 1 ? t === 0 ? r = Lt : t == 2 && (n ? r = Os : r = A) : s === 0 && (t === 1 ? r = fe : t == 2 && (n ? r = $e : r = fe)), r(e);
275
276
  };
276
277
  })(), Ne = (A, e, s, t, n = 0) => {
277
278
  const r = new Uint8Array(A, e), i = new Uint8Array(s, t);
@@ -442,7 +443,7 @@ class T {
442
443
  return function(a, c, l, d, u, h, m, p) {
443
444
  const g = this.splatCount;
444
445
  d = d || 0, u = u || g - 1, h === void 0 && (h = d);
445
- const C = (S, I) => tn(S, I, m);
446
+ const C = (S, I) => sn(S, I, m);
446
447
  for (let S = d; S <= u; S++) {
447
448
  const I = this.globalSplatIndexToSectionMap[S], E = this.sections[I], x = S - E.splatCountOffset, w = E.bytesPerSplat * x + T.CompressionLevels[this.compressionLevel].ScaleOffsetBytes, y = (S - d + h) * T.ScaleComponentCount, v = (S - d + h) * T.RotationComponentCount, D = new DataView(this.bufferData, E.dataBase + w), b = p && p.x !== void 0 ? p.x : W(D, 0, this.compressionLevel), F = p && p.y !== void 0 ? p.y : W(D, 1, this.compressionLevel), R = p && p.z !== void 0 ? p.z : W(D, 2, this.compressionLevel), k = W(D, 3, this.compressionLevel), M = W(D, 4, this.compressionLevel), O = W(D, 5, this.compressionLevel), L = W(D, 6, this.compressionLevel);
448
449
  n.set(
@@ -505,7 +506,7 @@ class T {
505
506
  return function(M, O, L, U, _, H, Q) {
506
507
  const Z = this.splatCount;
507
508
  U = U || 0, _ = _ || Z - 1, H === void 0 && (H = U), L && O >= 1 && (s.copy(L), s.decompose(t, r, n), r.normalize(), s.makeRotationFromQuaternion(r), e.setFromMatrix4(s), D(i, e.elements[4], -e.elements[7], e.elements[1]), D(o, -e.elements[5], e.elements[8], -e.elements[2]), D(a, e.elements[3], -e.elements[6], e.elements[0]));
508
- const ie = (ee) => Ps(ee, this.minSphericalHarmonicsCoeff, this.maxSphericalHarmonicsCoeff), V = (ee) => $e(ee, this.minSphericalHarmonicsCoeff, this.maxSphericalHarmonicsCoeff);
509
+ const ie = (ee) => Os(ee, this.minSphericalHarmonicsCoeff, this.maxSphericalHarmonicsCoeff), V = (ee) => $e(ee, this.minSphericalHarmonicsCoeff, this.maxSphericalHarmonicsCoeff);
509
510
  for (let ee = U; ee <= _; ee++) {
510
511
  const X = this.globalSplatIndexToSectionMap[ee], N = this.sections[X];
511
512
  O = Math.min(O, N.sphericalHarmonicsDegree);
@@ -897,7 +898,7 @@ class T {
897
898
  };
898
899
  }
899
900
  }
900
- const ss = new Uint8Array([112, 108, 121, 10]), ns = new Uint8Array([10, 101, 110, 100, 95, 104, 101, 97, 100, 101, 114, 10]), Tt = "end_header", Bt = /* @__PURE__ */ new Map([
901
+ const ns = new Uint8Array([112, 108, 121, 10]), rs = new Uint8Array([10, 101, 110, 100, 95, 104, 101, 97, 100, 101, 114, 10]), Tt = "end_header", Bt = /* @__PURE__ */ new Map([
901
902
  ["char", Int8Array],
902
903
  ["uchar", Uint8Array],
903
904
  ["short", Int16Array],
@@ -909,11 +910,11 @@ const ss = new Uint8Array([112, 108, 121, 10]), ns = new Uint8Array([10, 101, 11
909
910
  ]), Fe = (A, e) => {
910
911
  const s = (1 << e) - 1;
911
912
  return (A & s) / s;
912
- }, rs = (A, e) => {
913
+ }, os = (A, e) => {
913
914
  A.x = Fe(e >>> 21, 11), A.y = Fe(e >>> 11, 10), A.z = Fe(e, 11);
914
- }, sn = (A, e) => {
915
- A.x = Fe(e >>> 24, 8), A.y = Fe(e >>> 16, 8), A.z = Fe(e >>> 8, 8), A.w = Fe(e, 8);
916
915
  }, nn = (A, e) => {
916
+ A.x = Fe(e >>> 24, 8), A.y = Fe(e >>> 16, 8), A.z = Fe(e >>> 8, 8), A.w = Fe(e, 8);
917
+ }, rn = (A, e) => {
917
918
  const s = 1 / (Math.sqrt(2) * 0.5), t = (Fe(e >>> 20, 10) - 0.5) * s, n = (Fe(e >>> 10, 10) - 0.5) * s, r = (Fe(e, 10) - 0.5) * s, i = Math.sqrt(1 - (t * t + n * n + r * r));
918
919
  switch (e >>> 30) {
919
920
  case 0:
@@ -1007,9 +1008,9 @@ class G {
1007
1008
  return !0;
1008
1009
  };
1009
1010
  let n = new Uint8Array(e), r;
1010
- if (n.length >= ss.length && !t(n, ss))
1011
+ if (n.length >= ns.length && !t(n, ns))
1011
1012
  throw new Error("Invalid PLY header");
1012
- if (r = s(n, ns), r === -1)
1013
+ if (r = s(n, rs), r === -1)
1013
1014
  throw new Error("End of PLY header not found");
1014
1015
  const i = new TextDecoder("ascii").decode(
1015
1016
  n.slice(0, r)
@@ -1022,7 +1023,7 @@ class G {
1022
1023
  bytesPerSplat: u
1023
1024
  } = G.decodeHeaderText(i);
1024
1025
  return {
1025
- headerSizeBytes: r + ns.length,
1026
+ headerSizeBytes: r + rs.length,
1026
1027
  bytesPerSplat: u,
1027
1028
  chunkElement: o,
1028
1029
  vertexElement: a,
@@ -1131,7 +1132,7 @@ class G {
1131
1132
  return function(i, o, a, c, l, d, u, h, m, p) {
1132
1133
  p = p || P.createSplat();
1133
1134
  const g = Math.floor((o + i) / 256);
1134
- return rs(e, a[i]), nn(s, u[i]), rs(t, l[i]), sn(n, m[i]), p[r.X] = Re(c.minX[g], c.maxX[g], e.x), p[r.Y] = Re(c.minY[g], c.maxY[g], e.y), p[r.Z] = Re(c.minZ[g], c.maxZ[g], e.z), p[r.ROTATION0] = s.x, p[r.ROTATION1] = s.y, p[r.ROTATION2] = s.z, p[r.ROTATION3] = s.w, p[r.SCALE0] = Math.exp(Re(d.minScaleX[g], d.maxScaleX[g], t.x)), p[r.SCALE1] = Math.exp(Re(d.minScaleY[g], d.maxScaleY[g], t.y)), p[r.SCALE2] = Math.exp(Re(d.minScaleZ[g], d.maxScaleZ[g], t.z)), h.minR && h.maxR ? p[r.FDC0] = ne(Math.round(Re(h.minR[g], h.maxR[g], n.x) * 255), 0, 255) : p[r.FDC0] = ne(Math.floor(n.x * 255), 0, 255), h.minG && h.maxG ? p[r.FDC1] = ne(Math.round(Re(h.minG[g], h.maxG[g], n.y) * 255), 0, 255) : p[r.FDC1] = ne(Math.floor(n.y * 255), 0, 255), h.minB && h.maxB ? p[r.FDC2] = ne(Math.round(Re(h.minB[g], h.maxB[g], n.z) * 255), 0, 255) : p[r.FDC2] = ne(Math.floor(n.z * 255), 0, 255), p[r.OPACITY] = ne(Math.floor(n.w * 255), 0, 255), p;
1135
+ return os(e, a[i]), rn(s, u[i]), os(t, l[i]), nn(n, m[i]), p[r.X] = Re(c.minX[g], c.maxX[g], e.x), p[r.Y] = Re(c.minY[g], c.maxY[g], e.y), p[r.Z] = Re(c.minZ[g], c.maxZ[g], e.z), p[r.ROTATION0] = s.x, p[r.ROTATION1] = s.y, p[r.ROTATION2] = s.z, p[r.ROTATION3] = s.w, p[r.SCALE0] = Math.exp(Re(d.minScaleX[g], d.maxScaleX[g], t.x)), p[r.SCALE1] = Math.exp(Re(d.minScaleY[g], d.maxScaleY[g], t.y)), p[r.SCALE2] = Math.exp(Re(d.minScaleZ[g], d.maxScaleZ[g], t.z)), h.minR && h.maxR ? p[r.FDC0] = ne(Math.round(Re(h.minR[g], h.maxR[g], n.x) * 255), 0, 255) : p[r.FDC0] = ne(Math.floor(n.x * 255), 0, 255), h.minG && h.maxG ? p[r.FDC1] = ne(Math.round(Re(h.minG[g], h.maxG[g], n.y) * 255), 0, 255) : p[r.FDC1] = ne(Math.floor(n.y * 255), 0, 255), h.minB && h.maxB ? p[r.FDC2] = ne(Math.round(Re(h.minB[g], h.maxB[g], n.z) * 255), 0, 255) : p[r.FDC2] = ne(Math.floor(n.z * 255), 0, 255), p[r.OPACITY] = ne(Math.floor(n.w * 255), 0, 255), p;
1135
1136
  };
1136
1137
  })();
1137
1138
  static decompressSphericalHarmonics = /* @__PURE__ */ (function() {
@@ -1320,23 +1321,23 @@ const Ce = {
1320
1321
  INRIAV2: 1,
1321
1322
  PlayCanvasCompressed: 2
1322
1323
  }, [
1323
- Os,
1324
+ ks,
1324
1325
  Ut,
1325
1326
  zt,
1326
1327
  _t,
1327
1328
  Qt,
1328
1329
  Vt,
1329
1330
  Nt
1330
- ] = [0, 1, 2, 3, 4, 5, 6], os = {
1331
- double: Os,
1331
+ ] = [0, 1, 2, 3, 4, 5, 6], is = {
1332
+ double: ks,
1332
1333
  int: Ut,
1333
1334
  uint: zt,
1334
1335
  float: _t,
1335
1336
  short: Qt,
1336
1337
  ushort: Vt,
1337
1338
  uchar: Nt
1338
- }, rn = {
1339
- [Os]: 8,
1339
+ }, on = {
1340
+ [ks]: 8,
1340
1341
  [Ut]: 4,
1341
1342
  [zt]: 4,
1342
1343
  [_t]: 4,
@@ -1372,7 +1373,7 @@ class q {
1372
1373
  u.push(x);
1373
1374
  const w = s[x];
1374
1375
  h[x] = E;
1375
- const y = os[E];
1376
+ const y = is[E];
1376
1377
  w !== void 0 && (l.push(w), d[w] = y);
1377
1378
  }
1378
1379
  }
@@ -1390,7 +1391,7 @@ class q {
1390
1391
  const I = s[C];
1391
1392
  I !== void 0 && (m[I] = p);
1392
1393
  }
1393
- p += rn[os[S]];
1394
+ p += on[is[S]];
1394
1395
  }
1395
1396
  const g = q.decodeSphericalHarmonicsFromSectionHeader(u, s);
1396
1397
  return {
@@ -1516,7 +1517,7 @@ class q {
1516
1517
  }
1517
1518
  }
1518
1519
  }
1519
- const ks = [
1520
+ const Ls = [
1520
1521
  "scale_0",
1521
1522
  "scale_1",
1522
1523
  "scale_2",
@@ -1535,9 +1536,8 @@ const ks = [
1535
1536
  "green",
1536
1537
  "blue",
1537
1538
  "f_rest_0"
1538
- ], on = ks.map((A, e) => e), [
1539
- is,
1540
- an,
1539
+ ], an = Ls.map((A, e) => e), [
1540
+ as,
1541
1541
  cn,
1542
1542
  ln,
1543
1543
  dn,
@@ -1546,15 +1546,16 @@ const ks = [
1546
1546
  pn,
1547
1547
  fn,
1548
1548
  mn,
1549
- as,
1550
1549
  An,
1551
- gn,
1552
1550
  cs,
1553
- ls,
1551
+ gn,
1554
1552
  Sn,
1553
+ ls,
1554
+ ds,
1555
1555
  Cn,
1556
- yn
1557
- ] = on;
1556
+ yn,
1557
+ xn
1558
+ ] = an;
1558
1559
  class Se {
1559
1560
  static decodeHeaderLines(e) {
1560
1561
  let s = 0;
@@ -1564,7 +1565,7 @@ class Se {
1564
1565
  let t = 0;
1565
1566
  s >= 45 ? t = 45 : s >= 24 ? t = 24 : s >= 9 && (t = 9);
1566
1567
  let r = Array.from(Array(Math.max(t - 1, 0))).map((l, d) => `f_rest_${d + 1}`);
1567
- const i = [...ks, ...r], o = i.map((l, d) => d), a = o.reduce((l, d) => (l[i[d]] = d, l), {}), c = q.decodeSectionHeader(e, a, 0);
1568
+ const i = [...Ls, ...r], o = i.map((l, d) => d), a = o.reduce((l, d) => (l[i[d]] = d, l), {}), c = q.decodeSectionHeader(e, a, 0);
1568
1569
  return c.splatCount = c.vertexCount, c.bytesPerSplat = c.bytesPerVertex, c.fieldsToReadIndexes = o, c;
1569
1570
  }
1570
1571
  static decodeHeaderText(e) {
@@ -1644,33 +1645,33 @@ class Se {
1644
1645
  return function(S, I, E, x = 0, w = 0) {
1645
1646
  w = Math.min(w, E.sphericalHarmonicsDegree), Se.readSplat(S, E, I, x, e);
1646
1647
  const y = P.createSplat(w);
1647
- if (e[is] !== void 0 ? (y[i] = Math.exp(e[is]), y[o] = Math.exp(e[an]), y[a] = Math.exp(e[cn])) : (y[i] = 0.01, y[o] = 0.01, y[a] = 0.01), e[as] !== void 0) {
1648
+ if (e[as] !== void 0 ? (y[i] = Math.exp(e[as]), y[o] = Math.exp(e[cn]), y[a] = Math.exp(e[ln])) : (y[i] = 0.01, y[o] = 0.01, y[a] = 0.01), e[cs] !== void 0) {
1648
1649
  const v = 0.28209479177387814;
1649
- y[h] = (0.5 + v * e[as]) * 255, y[m] = (0.5 + v * e[An]) * 255, y[p] = (0.5 + v * e[gn]) * 255;
1650
- } else e[ls] !== void 0 ? (y[h] = e[ls] * 255, y[m] = e[Sn] * 255, y[p] = e[Cn] * 255) : (y[h] = 0, y[m] = 0, y[p] = 0);
1651
- if (e[cs] !== void 0 && (y[g] = 1 / (1 + Math.exp(-e[cs])) * 255), y[h] = ne(Math.floor(y[h]), 0, 255), y[m] = ne(Math.floor(y[m]), 0, 255), y[p] = ne(Math.floor(y[p]), 0, 255), y[g] = ne(Math.floor(y[g]), 0, 255), w >= 1 && e[yn] !== void 0) {
1650
+ y[h] = (0.5 + v * e[cs]) * 255, y[m] = (0.5 + v * e[gn]) * 255, y[p] = (0.5 + v * e[Sn]) * 255;
1651
+ } else e[ds] !== void 0 ? (y[h] = e[ds] * 255, y[m] = e[Cn] * 255, y[p] = e[yn] * 255) : (y[h] = 0, y[m] = 0, y[p] = 0);
1652
+ if (e[ls] !== void 0 && (y[g] = 1 / (1 + Math.exp(-e[ls])) * 255), y[h] = ne(Math.floor(y[h]), 0, 255), y[m] = ne(Math.floor(y[m]), 0, 255), y[p] = ne(Math.floor(y[p]), 0, 255), y[g] = ne(Math.floor(y[g]), 0, 255), w >= 1 && e[xn] !== void 0) {
1652
1653
  for (let v = 0; v < 9; v++)
1653
1654
  y[C[v]] = e[E.sphericalHarmonicsDegree1Fields[v]];
1654
1655
  if (w >= 2)
1655
1656
  for (let v = 0; v < 15; v++)
1656
1657
  y[C[9 + v]] = e[E.sphericalHarmonicsDegree2Fields[v]];
1657
1658
  }
1658
- return s.set(e[ln], e[dn], e[hn], e[un]), s.normalize(), y[c] = s.x, y[l] = s.y, y[d] = s.z, y[u] = s.w, y[t] = e[pn], y[n] = e[fn], y[r] = e[mn], y;
1659
+ return s.set(e[dn], e[hn], e[un], e[pn]), s.normalize(), y[c] = s.x, y[l] = s.y, y[d] = s.z, y[u] = s.w, y[t] = e[fn], y[n] = e[mn], y[r] = e[An], y;
1659
1660
  };
1660
1661
  })();
1661
1662
  static readSplat(e, s, t, n, r) {
1662
1663
  return q.readVertex(e, s, t, n, s.fieldsToReadIndexes, r, !0);
1663
1664
  }
1664
1665
  static parseToUncompressedSplatArray(e, s = 0) {
1665
- const { header: t, splatCount: n, splatData: r } = ds(e);
1666
+ const { header: t, splatCount: n, splatData: r } = hs(e);
1666
1667
  return Se.decodeSectionSplatData(r, n, t, s, !0);
1667
1668
  }
1668
1669
  static parseToUncompressedSplatBuffer(e, s = 0) {
1669
- const { header: t, splatCount: n, splatData: r } = ds(e);
1670
+ const { header: t, splatCount: n, splatData: r } = hs(e);
1670
1671
  return Se.decodeSectionSplatData(r, n, t, s, !1);
1671
1672
  }
1672
1673
  }
1673
- function ds(A) {
1674
+ function hs(A) {
1674
1675
  const e = Se.decodeHeaderFromBuffer(A), s = e.splatCount, t = Se.findSplatData(A, e);
1675
1676
  return {
1676
1677
  header: e,
@@ -1678,7 +1679,7 @@ function ds(A) {
1678
1679
  splatData: t
1679
1680
  };
1680
1681
  }
1681
- const Ls = [
1682
+ const Hs = [
1682
1683
  "features_dc",
1683
1684
  "features_rest_0",
1684
1685
  "features_rest_1",
@@ -1699,15 +1700,15 @@ const Ls = [
1699
1700
  "scaling",
1700
1701
  "rotation_re",
1701
1702
  "rotation_im"
1702
- ], at = Ls.map((A, e) => e), [
1703
+ ], at = Hs.map((A, e) => e), [
1703
1704
  ct,
1704
- xn,
1705
1705
  In,
1706
- hs,
1707
- lt,
1708
1706
  Tn,
1707
+ us,
1708
+ lt,
1709
+ Bn,
1709
1710
  Et
1710
- ] = [0, 1, 4, 16, 17, 18, 19], Hs = [
1711
+ ] = [0, 1, 4, 16, 17, 18, 19], Us = [
1711
1712
  "scale_0",
1712
1713
  "scale_1",
1713
1714
  "scale_2",
@@ -1771,9 +1772,8 @@ const Ls = [
1771
1772
  "f_rest_43",
1772
1773
  "f_rest_44",
1773
1774
  "f_rest_45"
1774
- ], Rt = Hs.map((A, e) => e), [
1775
- us,
1776
- Bn,
1775
+ ], Rt = Us.map((A, e) => e), [
1776
+ ps,
1777
1777
  En,
1778
1778
  wn,
1779
1779
  vn,
@@ -1782,17 +1782,18 @@ const Ls = [
1782
1782
  bn,
1783
1783
  Mn,
1784
1784
  Rn,
1785
+ Pn,
1785
1786
  Pt,
1786
- Us,
1787
1787
  zs,
1788
- ps
1789
- ] = Rt, fs = Pt, Pn = Us, On = zs, dt = (A) => {
1788
+ _s,
1789
+ fs
1790
+ ] = Rt, ms = Pt, On = zs, kn = _s, dt = (A) => {
1790
1791
  const e = (31744 & A) >> 10, s = 1023 & A;
1791
1792
  return (A >> 15 ? -1 : 1) * (e ? e === 31 ? s ? NaN : 1 / 0 : Math.pow(2, e - 15) * (1 + s / 1024) : s / 1024 * 6103515625e-14);
1792
1793
  };
1793
1794
  class Be {
1794
1795
  static decodeSectionHeadersFromHeaderLines(e) {
1795
- const s = Rt.reduce((l, d) => (l[Hs[d]] = d, l), {}), t = at.reduce((l, d) => (l[Ls[d]] = d, l), {}), n = q.getHeaderSectionNames(e);
1796
+ const s = Rt.reduce((l, d) => (l[Us[d]] = d, l), {}), t = at.reduce((l, d) => (l[Hs[d]] = d, l), {}), n = q.getHeaderSectionNames(e);
1796
1797
  let r;
1797
1798
  for (let l = 0; l < n.length; l++)
1798
1799
  n[l] === "codebook_centers" && (r = l);
@@ -1849,7 +1850,7 @@ class Be {
1849
1850
  const i = n[r], o = 0.28209479177387814;
1850
1851
  for (let a = 0; a < i.length; a++) {
1851
1852
  const c = dt(i[a]);
1852
- r === hs ? i[a] = Math.round(1 / (1 + Math.exp(-c)) * 255) : r === ct ? i[a] = Math.round((0.5 + o * c) * 255) : r === lt ? i[a] = Math.exp(c) : i[a] = c;
1853
+ r === us ? i[a] = Math.round(1 / (1 + Math.exp(-c)) * 255) : r === ct ? i[a] = Math.round((0.5 + o * c) * 255) : r === lt ? i[a] = Math.exp(c) : i[a] = c;
1853
1854
  }
1854
1855
  }
1855
1856
  return n;
@@ -1878,19 +1879,19 @@ class Be {
1878
1879
  return function(S, I, E, x, w = 0, y = 0) {
1879
1880
  y = Math.min(y, E.sphericalHarmonicsDegree), Be.readSplat(S, E, I, w, e);
1880
1881
  const v = P.createSplat(y);
1881
- if (e[us] !== void 0 ? (v[i] = x[lt][e[us]], v[o] = x[lt][e[Bn]], v[a] = x[lt][e[En]]) : (v[i] = 0.01, v[o] = 0.01, v[a] = 0.01), e[Pt] !== void 0 ? (v[h] = x[ct][e[Pt]], v[m] = x[ct][e[Us]], v[p] = x[ct][e[zs]]) : e[fs] !== void 0 ? (v[h] = e[fs] * 255, v[m] = e[Pn] * 255, v[p] = e[On] * 255) : (v[h] = 0, v[m] = 0, v[p] = 0), e[ps] !== void 0 && (v[g] = x[hs][e[ps]]), v[h] = ne(Math.floor(v[h]), 0, 255), v[m] = ne(Math.floor(v[m]), 0, 255), v[p] = ne(Math.floor(v[p]), 0, 255), v[g] = ne(Math.floor(v[g]), 0, 255), y >= 1 && E.sphericalHarmonicsDegree >= 1) {
1882
+ if (e[ps] !== void 0 ? (v[i] = x[lt][e[ps]], v[o] = x[lt][e[En]], v[a] = x[lt][e[wn]]) : (v[i] = 0.01, v[o] = 0.01, v[a] = 0.01), e[Pt] !== void 0 ? (v[h] = x[ct][e[Pt]], v[m] = x[ct][e[zs]], v[p] = x[ct][e[_s]]) : e[ms] !== void 0 ? (v[h] = e[ms] * 255, v[m] = e[On] * 255, v[p] = e[kn] * 255) : (v[h] = 0, v[m] = 0, v[p] = 0), e[fs] !== void 0 && (v[g] = x[us][e[fs]]), v[h] = ne(Math.floor(v[h]), 0, 255), v[m] = ne(Math.floor(v[m]), 0, 255), v[p] = ne(Math.floor(v[p]), 0, 255), v[g] = ne(Math.floor(v[g]), 0, 255), y >= 1 && E.sphericalHarmonicsDegree >= 1) {
1882
1883
  for (let k = 0; k < 9; k++) {
1883
- const M = x[xn + k % 3];
1884
+ const M = x[In + k % 3];
1884
1885
  v[C[k]] = M[e[E.sphericalHarmonicsDegree1Fields[k]]];
1885
1886
  }
1886
1887
  if (y >= 2 && E.sphericalHarmonicsDegree >= 2)
1887
1888
  for (let k = 0; k < 15; k++) {
1888
- const M = x[In + k % 5];
1889
+ const M = x[Tn + k % 5];
1889
1890
  v[C[9 + k]] = M[e[E.sphericalHarmonicsDegree2Fields[k]]];
1890
1891
  }
1891
1892
  }
1892
- const D = x[Tn][e[wn]], b = x[Et][e[vn]], F = x[Et][e[Dn]], R = x[Et][e[Fn]];
1893
- return s.set(D, b, F, R), s.normalize(), v[c] = s.x, v[l] = s.y, v[d] = s.z, v[u] = s.w, v[t] = dt(e[bn]), v[n] = dt(e[Mn]), v[r] = dt(e[Rn]), v;
1893
+ const D = x[Bn][e[vn]], b = x[Et][e[Dn]], F = x[Et][e[Fn]], R = x[Et][e[bn]];
1894
+ return s.set(D, b, F, R), s.normalize(), v[c] = s.x, v[l] = s.y, v[d] = s.z, v[u] = s.w, v[t] = dt(e[Mn]), v[n] = dt(e[Rn]), v[r] = dt(e[Pn]), v;
1894
1895
  };
1895
1896
  })();
1896
1897
  static readSplat(e, s, t, n, r) {
@@ -1926,7 +1927,7 @@ class Be {
1926
1927
  return i;
1927
1928
  }
1928
1929
  }
1929
- class ms {
1930
+ class As {
1930
1931
  static parseToUncompressedSplatArray(e, s = 0) {
1931
1932
  const t = q.determineHeaderFormatFromPlyBuffer(e);
1932
1933
  if (t === Ce.PlayCanvasCompressed)
@@ -2046,7 +2047,7 @@ const $ = {
2046
2047
  ProgressiveToSplatArray: 1,
2047
2048
  DownloadBeforeProcessing: 2
2048
2049
  };
2049
- function As(A, e) {
2050
+ function gs(A, e) {
2050
2051
  let s = 0;
2051
2052
  for (let n of A) s += n.sizeBytes;
2052
2053
  (!e || e.byteLength < s) && (e = new ArrayBuffer(s));
@@ -2055,7 +2056,7 @@ function As(A, e) {
2055
2056
  new Uint8Array(e, t, n.sizeBytes).set(n.data), t += n.sizeBytes;
2056
2057
  return e;
2057
2058
  }
2058
- function gs(A, e, s, t, n, r, i, o) {
2059
+ function Ss(A, e, s, t, n, r, i, o) {
2059
2060
  return e ? rt.getStandardGenerator(
2060
2061
  s,
2061
2062
  t,
@@ -2086,7 +2087,7 @@ class qt {
2086
2087
  if (b) {
2087
2088
  if (S === Ce.PlayCanvasCompressed && !F) {
2088
2089
  const ae = H.headerSizeBytes + H.chunkElement.storageSizeBytes;
2089
- w = As(Q, w), w.byteLength >= ae && (G.readElementData(
2090
+ w = gs(Q, w), w.byteLength >= ae && (G.readElementData(
2090
2091
  H.chunkElement,
2091
2092
  w,
2092
2093
  H.headerSizeBytes
@@ -2125,7 +2126,7 @@ class qt {
2125
2126
  Z = new P(a);
2126
2127
  M = H.headerSizeBytes, O = H.headerSizeBytes, b = !0;
2127
2128
  }
2128
- if (b && F && Q.length > 0 && (I = As(Q, I), L - M > p || L >= U && !R || Y)) {
2129
+ if (b && F && Q.length > 0 && (I = gs(Q, I), L - M > p || L >= U && !R || Y)) {
2129
2130
  const ce = R ? H.sphericalHarmonicsPerSplat : H.bytesPerSplat, Ae = (R ? L : Math.min(U, L)) - O, he = Math.floor(Ae / ce), te = he * ce, ue = L - O - te, J = O - Q[0].startBytes, we = new DataView(I, J, te);
2130
2131
  if (R)
2131
2132
  S === Ce.PlayCanvasCompressed && m === $.ProgressiveToSplatArray && (G.parseSphericalHarmonicsToUncompressedSplatArraySection(
@@ -2222,7 +2223,7 @@ class qt {
2222
2223
  u,
2223
2224
  h
2224
2225
  ));
2225
- } else return m === $.ProgressiveToSplatBuffer ? ee : Ee(() => gs(
2226
+ } else return m === $.ProgressiveToSplatBuffer ? ee : Ee(() => Ss(
2226
2227
  ee,
2227
2228
  o,
2228
2229
  r,
@@ -2235,7 +2236,7 @@ class qt {
2235
2236
  })));
2236
2237
  }
2237
2238
  static loadFromFileData(e, s, t, n, r = 0, i, o, a, c) {
2238
- return n ? Ee(() => ms.parseToUncompressedSplatArray(e, r)).then((l) => gs(
2239
+ return n ? Ee(() => As.parseToUncompressedSplatArray(e, r)).then((l) => Ss(
2239
2240
  l,
2240
2241
  n,
2241
2242
  s,
@@ -2244,33 +2245,33 @@ class qt {
2244
2245
  o,
2245
2246
  a,
2246
2247
  c
2247
- )) : Ee(() => ms.parseToUncompressedSplatBuffer(e, r));
2248
+ )) : Ee(() => As.parseToUncompressedSplatBuffer(e, r));
2248
2249
  }
2249
2250
  }
2250
- const kn = (A) => new ReadableStream({
2251
+ const Ln = (A) => new ReadableStream({
2251
2252
  async start(e) {
2252
2253
  e.enqueue(A), e.close();
2253
2254
  }
2254
2255
  });
2255
- async function Ln(A) {
2256
+ async function Hn(A) {
2256
2257
  try {
2257
- const e = kn(A);
2258
+ const e = Ln(A);
2258
2259
  if (!e) throw new Error("Failed to create stream from data");
2259
- return await Hn(e);
2260
+ return await Un(e);
2260
2261
  } catch (e) {
2261
2262
  throw console.error("Error decompressing gzipped data:", e), e;
2262
2263
  }
2263
2264
  }
2264
- async function Hn(A) {
2265
+ async function Un(A) {
2265
2266
  const e = A.pipeThrough(new DecompressionStream("gzip")), t = await new Response(e).arrayBuffer();
2266
2267
  return new Uint8Array(t);
2267
2268
  }
2268
- const Un = 1347635022, zn = 1, _n = 0.15;
2269
- function Qn(A) {
2269
+ const zn = 1347635022, _n = 1, Qn = 0.15;
2270
+ function Vn(A) {
2270
2271
  const e = A >> 15 & 1, s = A >> 10 & 31, t = A & 1023, n = e === 1 ? -1 : 1;
2271
2272
  return s === 0 ? n * Math.pow(2, -14) * t / 1024 : s === 31 ? t !== 0 ? NaN : n * (1 / 0) : n * Math.pow(2, s - 15) * (1 + t / 1024);
2272
2273
  }
2273
- function Vn(A) {
2274
+ function Nn(A) {
2274
2275
  return (A - 128) / 128;
2275
2276
  }
2276
2277
  function Ue(A) {
@@ -2287,7 +2288,7 @@ function Ue(A) {
2287
2288
  return console.error(`[SPZ: ERROR] Unsupported SH degree: ${A}`), 0;
2288
2289
  }
2289
2290
  }
2290
- const Nn = (function() {
2291
+ const Gn = (function() {
2291
2292
  let A = [];
2292
2293
  const e = new f.Quaternion(), s = P.OFFSET.X, t = P.OFFSET.Y, n = P.OFFSET.Z, r = P.OFFSET.SCALE0, i = P.OFFSET.SCALE1, o = P.OFFSET.SCALE2, a = P.OFFSET.ROTATION0, c = P.OFFSET.ROTATION1, l = P.OFFSET.ROTATION2, d = P.OFFSET.ROTATION3, u = P.OFFSET.FDC0, h = P.OFFSET.FDC1, m = P.OFFSET.FDC2, p = P.OFFSET.OPACITY, g = [Ue(0), Ue(1), Ue(2), Ue(3)], C = [
2293
2294
  0,
@@ -2349,13 +2350,13 @@ const Nn = (function() {
2349
2350
  return e.set(S.rotation[3], S.rotation[0], S.rotation[1], S.rotation[2]), e.normalize(), x[a] = e.x, x[c] = e.y, x[l] = e.z, x[d] = e.w, x[s] = S.position[0], x[t] = S.position[1], x[n] = S.position[2], x;
2350
2351
  };
2351
2352
  })();
2352
- function Gn(A, e, s, t) {
2353
+ function qn(A, e, s, t) {
2353
2354
  return !(A.positions.length !== e * 3 * (t ? 2 : 3) || A.scales.length !== e * 3 || A.rotations.length !== e * 3 || A.alphas.length !== e || A.colors.length !== e * 3 || A.sh.length !== e * s * 3);
2354
2355
  }
2355
- function Ss(A, e, s, t, n) {
2356
+ function Cs(A, e, s, t, n) {
2356
2357
  e = Math.min(e, A.shDegree);
2357
2358
  const r = A.numPoints, i = Ue(A.shDegree), o = A.positions.length === r * 3 * 2;
2358
- if (!Gn(A, r, i, o))
2359
+ if (!qn(A, r, i, o))
2359
2360
  return null;
2360
2361
  const a = {
2361
2362
  position: [],
@@ -2371,7 +2372,7 @@ function Ss(A, e, s, t, n) {
2371
2372
  for (let h = 0; h < r; h++) {
2372
2373
  if (o)
2373
2374
  for (let S = 0; S < 3; S++)
2374
- a.position[S] = Qn(c[h * 3 + S]);
2375
+ a.position[S] = Vn(c[h * 3 + S]);
2375
2376
  else
2376
2377
  for (let S = 0; S < 3; S++) {
2377
2378
  const I = h * 9 + S * 3;
@@ -2389,11 +2390,11 @@ function Ss(A, e, s, t, n) {
2389
2390
  const g = p[0] * p[0] + p[1] * p[1] + p[2] * p[2];
2390
2391
  a.rotation[3] = Math.sqrt(Math.max(0, 1 - g)), a.alpha = Math.floor(A.alphas[h]);
2391
2392
  for (let S = 0; S < 3; S++)
2392
- a.color[S] = Math.floor(((A.colors[h * 3 + S] / 255 - 0.5) / _n * u + 0.5) * 255);
2393
+ a.color[S] = Math.floor(((A.colors[h * 3 + S] / 255 - 0.5) / Qn * u + 0.5) * 255);
2393
2394
  for (let S = 0; S < 3; S++)
2394
2395
  for (let I = 0; I < d; I++)
2395
- a.sh[S * d + I] = Vn(A.sh[d * 3 * h + I * 3 + S]);
2396
- const C = Nn(a, A.shDegree, e);
2396
+ a.sh[S * d + I] = Nn(A.sh[d * 3 * h + I * 3 + S]);
2397
+ const C = Gn(a, A.shDegree, e);
2397
2398
  if (s) {
2398
2399
  const S = T.CompressionLevels[0].SphericalHarmonicsDegrees[e].BytesPerSplat, I = h * S + n;
2399
2400
  T.writeSplatDataToSectionBuffer(C, t, I, 0, e);
@@ -2401,8 +2402,8 @@ function Ss(A, e, s, t, n) {
2401
2402
  t.addSplat(C);
2402
2403
  }
2403
2404
  }
2404
- const qn = 16, Wn = 1e7;
2405
- function Kn(A) {
2405
+ const Wn = 16, Kn = 1e7;
2406
+ function jn(A) {
2406
2407
  const e = new DataView(A);
2407
2408
  let s = 0;
2408
2409
  const t = {
@@ -2414,11 +2415,11 @@ function Kn(A) {
2414
2415
  flags: e.getUint8(s + 14),
2415
2416
  reserved: e.getUint8(s + 15)
2416
2417
  };
2417
- if (s += qn, t.magic !== Un)
2418
+ if (s += Wn, t.magic !== zn)
2418
2419
  return console.error("[SPZ ERROR] deserializePackedGaussians: header not found"), null;
2419
2420
  if (t.version < 1 || t.version > 2)
2420
2421
  return console.error(`[SPZ ERROR] deserializePackedGaussians: version not supported: ${t.version}`), null;
2421
- if (t.numPoints > Wn)
2422
+ if (t.numPoints > Kn)
2422
2423
  return console.error(`[SPZ ERROR] deserializePackedGaussians: Too many points: ${t.numPoints}`), null;
2423
2424
  if (t.shDegree > 3)
2424
2425
  return console.error(`[SPZ ERROR] deserializePackedGaussians: Unsupported SH degree: ${t.shDegree}`), null;
@@ -2426,7 +2427,7 @@ function Kn(A) {
2426
2427
  numPoints: n,
2427
2428
  shDegree: t.shDegree,
2428
2429
  fractionalBits: t.fractionalBits,
2429
- antialiased: (t.flags & zn) !== 0,
2430
+ antialiased: (t.flags & _n) !== 0,
2430
2431
  positions: new Uint8Array(n * 3 * (i ? 2 : 3)),
2431
2432
  scales: new Uint8Array(n * 3),
2432
2433
  rotations: new Uint8Array(n * 3),
@@ -2444,10 +2445,10 @@ function Kn(A) {
2444
2445
  }
2445
2446
  return o;
2446
2447
  }
2447
- async function jn(A) {
2448
+ async function Yn(A) {
2448
2449
  try {
2449
- const e = await Ln(A);
2450
- return Kn(e.buffer);
2450
+ const e = await Hn(A);
2451
+ return jn(e.buffer);
2451
2452
  } catch (e) {
2452
2453
  return console.error("[SPZ ERROR] loadSpzPacked: decompression error", e), null;
2453
2454
  }
@@ -2468,11 +2469,11 @@ class Wt {
2468
2469
  }
2469
2470
  static async loadFromFileData(e, s, t, n, r = 0, i, o, a, c) {
2470
2471
  await Ee();
2471
- const l = await jn(e);
2472
+ const l = await Yn(e);
2472
2473
  r = Math.min(l.shDegree, r);
2473
2474
  const d = new P(r);
2474
2475
  if (n)
2475
- return Ss(l, r, !1, d, 0), rt.getStandardGenerator(
2476
+ return Cs(l, r, !1, d, 0), rt.getStandardGenerator(
2476
2477
  s,
2477
2478
  t,
2478
2479
  i,
@@ -2485,7 +2486,7 @@ class Wt {
2485
2486
  splatBuffer: u,
2486
2487
  splatBufferDataOffsetBytes: h
2487
2488
  } = T.preallocateUncompressed(l.numPoints, r);
2488
- return Ss(l, r, !0, u.bufferData, h), u;
2489
+ return Cs(l, r, !0, u.bufferData, h), u;
2489
2490
  }
2490
2491
  }
2491
2492
  }
@@ -2564,7 +2565,7 @@ class K {
2564
2565
  return t;
2565
2566
  }
2566
2567
  }
2567
- function Cs(A, e, s, t, n, r, i, o) {
2568
+ function ys(A, e, s, t, n, r, i, o) {
2568
2569
  return e ? rt.getStandardGenerator(
2569
2570
  s,
2570
2571
  t,
@@ -2650,7 +2651,7 @@ class Kt {
2650
2651
  l,
2651
2652
  d,
2652
2653
  u
2653
- )) : h === $.ProgressiveToSplatBuffer ? R : Ee(() => Cs(
2654
+ )) : h === $.ProgressiveToSplatBuffer ? R : Ee(() => ys(
2654
2655
  R,
2655
2656
  o,
2656
2657
  r,
@@ -2664,7 +2665,7 @@ class Kt {
2664
2665
  static loadFromFileData(e, s, t, n, r, i, o, a) {
2665
2666
  return Ee(() => {
2666
2667
  const c = K.parseStandardSplatToUncompressedSplatArray(e);
2667
- return Cs(
2668
+ return ys(
2668
2669
  c,
2669
2670
  n,
2670
2671
  s,
@@ -2776,8 +2777,8 @@ const xe = {
2776
2777
  KSplat: 1,
2777
2778
  Ply: 2,
2778
2779
  Spz: 3
2779
- }, ys = (A) => A.endsWith(".ply") ? xe.Ply : A.endsWith(".splat") ? xe.Splat : A.endsWith(".ksplat") ? xe.KSplat : A.endsWith(".spz") ? xe.Spz : null, xs = { type: "change" }, wt = { type: "start" }, Is = { type: "end" }, ht = new Ws(), Ts = new Ks(), Yn = Math.cos(70 * js.DEG2RAD);
2780
- class ut extends Ys {
2780
+ }, xs = (A) => A.endsWith(".ply") ? xe.Ply : A.endsWith(".splat") ? xe.Splat : A.endsWith(".ksplat") ? xe.KSplat : A.endsWith(".spz") ? xe.Spz : null, Is = { type: "change" }, wt = { type: "start" }, Ts = { type: "end" }, ht = new Ks(), Bs = new js(), Xn = Math.cos(70 * Ys.DEG2RAD);
2781
+ class ut extends Xs {
2781
2782
  constructor(e, s) {
2782
2783
  super(), this.object = e, this.domElement = s, this.domElement.style.touchAction = "none", this.enabled = !0, this.target = new ye(), this.minDistance = 0, this.maxDistance = 1 / 0, this.minZoom = 0, this.maxZoom = 1 / 0, this.minPolarAngle = 0, this.maxPolarAngle = Math.PI, this.minAzimuthAngle = -1 / 0, this.maxAzimuthAngle = 1 / 0, this.enableDamping = !1, this.dampingFactor = 0.05, this.enableZoom = !0, this.zoomSpeed = 1, this.enableRotate = !0, this.rotateSpeed = 1, this.enablePan = !0, this.panSpeed = 1, this.screenSpacePanning = !0, this.keyPanSpeed = 7, this.zoomToCursor = !1, this.autoRotate = !1, this.autoRotateSpeed = 2, this.keys = { LEFT: "KeyA", UP: "KeyW", RIGHT: "KeyD", BOTTOM: "KeyS" }, this.mouseButtons = { LEFT: _e.ROTATE, MIDDLE: _e.DOLLY, RIGHT: _e.PAN }, this.touches = { ONE: Qe.ROTATE, TWO: Qe.DOLLY_PAN }, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this._domElementKeyEvents = null, this.getPolarAngle = function() {
2783
2784
  return o.phi;
@@ -2792,7 +2793,7 @@ class ut extends Ys {
2792
2793
  }, this.saveState = function() {
2793
2794
  t.target0.copy(t.target), t.position0.copy(t.object.position), t.zoom0 = t.object.zoom;
2794
2795
  }, this.reset = function() {
2795
- t.target.copy(t.target0), t.object.position.copy(t.position0), t.object.zoom = t.zoom0, this.clearDampedRotation(), this.clearDampedPan(), t.object.updateProjectionMatrix(), t.dispatchEvent(xs), t.update(), r = n.NONE;
2796
+ t.target.copy(t.target0), t.object.position.copy(t.position0), t.object.zoom = t.zoom0, this.clearDampedRotation(), this.clearDampedPan(), t.object.updateProjectionMatrix(), t.dispatchEvent(Is), t.update(), r = n.NONE;
2796
2797
  }, this.clearDampedRotation = function() {
2797
2798
  a.theta = 0, a.phi = 0;
2798
2799
  }, this.clearDampedPan = function() {
@@ -2820,9 +2821,9 @@ class ut extends Ys {
2820
2821
  it.unproject(t.object), t.object.position.sub(it).add(Ze), t.object.updateMatrixWorld(), Je = B.length();
2821
2822
  } else
2822
2823
  console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."), t.zoomToCursor = !1;
2823
- Je !== null && (this.screenSpacePanning ? t.target.set(0, 0, -1).transformDirection(t.object.matrix).multiplyScalar(Je).add(t.object.position) : (ht.origin.copy(t.object.position), ht.direction.set(0, 0, -1).transformDirection(t.object.matrix), Math.abs(t.object.up.dot(ht.direction)) < Yn ? e.lookAt(t.target) : (Ts.setFromNormalAndCoplanarPoint(t.object.up, t.target), ht.intersectPlane(Ts, t.target))));
2824
+ Je !== null && (this.screenSpacePanning ? t.target.set(0, 0, -1).transformDirection(t.object.matrix).multiplyScalar(Je).add(t.object.position) : (ht.origin.copy(t.object.position), ht.direction.set(0, 0, -1).transformDirection(t.object.matrix), Math.abs(t.object.up.dot(ht.direction)) < Xn ? e.lookAt(t.target) : (Bs.setFromNormalAndCoplanarPoint(t.object.up, t.target), ht.intersectPlane(Bs, t.target))));
2824
2825
  } else t.object.isOrthographicCamera && (t.object.zoom = Math.max(t.minZoom, Math.min(t.maxZoom, t.object.zoom / c)), t.object.updateProjectionMatrix(), ot = !0);
2825
- return c = 1, w = !1, ot || pe.distanceToSquared(t.object.position) > i || 8 * (1 - Te.dot(t.object.quaternion)) > i || ze.distanceToSquared(t.target) > 0 ? (t.dispatchEvent(xs), pe.copy(t.object.position), Te.copy(t.object.quaternion), ze.copy(t.target), ot = !1, !0) : !1;
2826
+ return c = 1, w = !1, ot || pe.distanceToSquared(t.object.position) > i || 8 * (1 - Te.dot(t.object.quaternion)) > i || ze.distanceToSquared(t.target) > 0 ? (t.dispatchEvent(Is), pe.copy(t.object.position), Te.copy(t.object.quaternion), ze.copy(t.target), ot = !1, !0) : !1;
2826
2827
  };
2827
2828
  })(), this.dispose = function() {
2828
2829
  t.domElement.removeEventListener("contextmenu", Zt), t.domElement.removeEventListener("pointerdown", me), t.domElement.removeEventListener("pointercancel", Oe), t.domElement.removeEventListener("wheel", Jt), t.domElement.removeEventListener("pointermove", Ie), t.domElement.removeEventListener("pointerup", Oe), t._domElementKeyEvents !== null && (t._domElementKeyEvents.removeEventListener("keydown", Ct), t._domElementKeyEvents = null);
@@ -2991,15 +2992,15 @@ class ut extends Ys {
2991
2992
  t.enableZoom && J(B), t.enableRotate && te(B);
2992
2993
  }
2993
2994
  function me(B) {
2994
- t.enabled !== !1 && (y.length === 0 && (t.domElement.setPointerCapture(B.pointerId), t.domElement.addEventListener("pointermove", Ie), t.domElement.addEventListener("pointerup", Oe)), Gs(B), B.pointerType === "touch" ? Vs(B) : _s(B));
2995
+ t.enabled !== !1 && (y.length === 0 && (t.domElement.setPointerCapture(B.pointerId), t.domElement.addEventListener("pointermove", Ie), t.domElement.addEventListener("pointerup", Oe)), qs(B), B.pointerType === "touch" ? Ns(B) : Qs(B));
2995
2996
  }
2996
2997
  function Ie(B) {
2997
- t.enabled !== !1 && (B.pointerType === "touch" ? Ns(B) : Qs(B));
2998
+ t.enabled !== !1 && (B.pointerType === "touch" ? Gs(B) : Vs(B));
2998
2999
  }
2999
3000
  function Oe(B) {
3000
- qs(B), y.length === 0 && (t.domElement.releasePointerCapture(B.pointerId), t.domElement.removeEventListener("pointermove", Ie), t.domElement.removeEventListener("pointerup", Oe)), t.dispatchEvent(Is), r = n.NONE;
3001
+ Ws(B), y.length === 0 && (t.domElement.releasePointerCapture(B.pointerId), t.domElement.removeEventListener("pointermove", Ie), t.domElement.removeEventListener("pointerup", Oe)), t.dispatchEvent(Ts), r = n.NONE;
3001
3002
  }
3002
- function _s(B) {
3003
+ function Qs(B) {
3003
3004
  let z;
3004
3005
  switch (B.button) {
3005
3006
  case 0:
@@ -3042,7 +3043,7 @@ class ut extends Ys {
3042
3043
  }
3043
3044
  r !== n.NONE && t.dispatchEvent(wt);
3044
3045
  }
3045
- function Qs(B) {
3046
+ function Vs(B) {
3046
3047
  switch (r) {
3047
3048
  case n.ROTATE:
3048
3049
  if (t.enableRotate === !1) return;
@@ -3059,12 +3060,12 @@ class ut extends Ys {
3059
3060
  }
3060
3061
  }
3061
3062
  function Jt(B) {
3062
- t.enabled === !1 || t.enableZoom === !1 || r !== n.NONE || (B.preventDefault(), t.dispatchEvent(wt), N(B), t.dispatchEvent(Is));
3063
+ t.enabled === !1 || t.enableZoom === !1 || r !== n.NONE || (B.preventDefault(), t.dispatchEvent(wt), N(B), t.dispatchEvent(Ts));
3063
3064
  }
3064
3065
  function Ct(B) {
3065
3066
  t.enabled === !1 || t.enablePan === !1 || Y(B);
3066
3067
  }
3067
- function Vs(B) {
3068
+ function Ns(B) {
3068
3069
  switch ($t(B), y.length) {
3069
3070
  case 1:
3070
3071
  switch (t.touches.ONE) {
@@ -3099,7 +3100,7 @@ class ut extends Ys {
3099
3100
  }
3100
3101
  r !== n.NONE && t.dispatchEvent(wt);
3101
3102
  }
3102
- function Ns(B) {
3103
+ function Gs(B) {
3103
3104
  switch ($t(B), r) {
3104
3105
  case n.TOUCH_ROTATE:
3105
3106
  if (t.enableRotate === !1) return;
@@ -3124,10 +3125,10 @@ class ut extends Ys {
3124
3125
  function Zt(B) {
3125
3126
  t.enabled !== !1 && B.preventDefault();
3126
3127
  }
3127
- function Gs(B) {
3128
+ function qs(B) {
3128
3129
  y.push(B);
3129
3130
  }
3130
- function qs(B) {
3131
+ function Ws(B) {
3131
3132
  delete v[B.pointerId];
3132
3133
  for (let z = 0; z < y.length; z++)
3133
3134
  if (y[z].pointerId == B.pointerId) {
@@ -3146,7 +3147,7 @@ class ut extends Ys {
3146
3147
  t.domElement.addEventListener("contextmenu", Zt), t.domElement.addEventListener("pointerdown", me), t.domElement.addEventListener("pointercancel", Oe), t.domElement.addEventListener("wheel", Jt, { passive: !1 }), this.update();
3147
3148
  }
3148
3149
  }
3149
- const Xn = (A, e, s, t, n) => {
3150
+ const Jn = (A, e, s, t, n) => {
3150
3151
  const r = performance.now();
3151
3152
  let i = A.style.display === "none" ? 0 : parseFloat(A.style.opacity);
3152
3153
  isNaN(i) && (i = 1);
@@ -3158,7 +3159,7 @@ const Xn = (A, e, s, t, n) => {
3158
3159
  e ? (d = (1 - l) * i, d < 1e-4 && (d = 0)) : d = (1 - i) * l + i, d > 0 ? (A.style.display = s, A.style.opacity = d) : A.style.display = "none", l >= 1 && (n && n(), window.clearInterval(o));
3159
3160
  }, 16);
3160
3161
  return o;
3161
- }, Jn = 500;
3162
+ }, Zn = 500;
3162
3163
  class jt {
3163
3164
  static elementIDGen = 0;
3164
3165
  constructor(e, s) {
@@ -3310,7 +3311,7 @@ class jt {
3310
3311
  }
3311
3312
  setMinimized(e, s) {
3312
3313
  const t = (n, r, i, o, a) => {
3313
- i ? n.style.display = r ? o : "none" : this.fadeTransitions[a] = Xn(n, !r, o, Jn, () => {
3314
+ i ? n.style.display = r ? o : "none" : this.fadeTransitions[a] = Jn(n, !r, o, Zn, () => {
3314
3315
  this.fadeTransitions[a] = null;
3315
3316
  });
3316
3317
  };
@@ -3320,7 +3321,7 @@ class jt {
3320
3321
  this.messageContainerPrimary.innerHTML = e, this.messageContainerMin.innerHTML = e;
3321
3322
  }
3322
3323
  }
3323
- class Zn {
3324
+ class $n {
3324
3325
  constructor(e) {
3325
3326
  this.idGen = 0, this.tasks = [], this.container = e || document.body, this.progressBarContainerOuter = document.createElement("div"), this.progressBarContainerOuter.className = "progressBarOuterContainer", this.progressBarContainerOuter.style.display = "none", this.progressBarBox = document.createElement("div"), this.progressBarBox.className = "progressBarBox", this.progressBarBackground = document.createElement("div"), this.progressBarBackground.className = "progressBarBackground", this.progressBar = document.createElement("div"), this.progressBar.className = "progressBar", this.progressBarBackground.appendChild(this.progressBar), this.progressBarBox.appendChild(this.progressBarBackground), this.progressBarContainerOuter.appendChild(this.progressBarBox);
3326
3327
  const s = document.createElement("style");
@@ -3384,7 +3385,7 @@ class Zn {
3384
3385
  this.container && this.progressBarContainerOuter.parentElement === this.container && this.container.removeChild(this.progressBarContainerOuter), e && (this.container = e, this.container.appendChild(this.progressBarContainerOuter), this.progressBarContainerOuter.style.zIndex = this.container.style.zIndex + 1);
3385
3386
  }
3386
3387
  }
3387
- class $n {
3388
+ class er {
3388
3389
  constructor(e) {
3389
3390
  this.container = e || document.body, this.infoCells = {};
3390
3391
  const s = [
@@ -3473,8 +3474,8 @@ class $n {
3473
3474
  this.infoPanelContainer.style.display = "none", this.visible = !1;
3474
3475
  }
3475
3476
  }
3476
- const Bs = new f.Vector3();
3477
- class er extends f.Object3D {
3477
+ const Es = new f.Vector3();
3478
+ class tr extends f.Object3D {
3478
3479
  constructor(e = new f.Vector3(0, 0, 1), s = new f.Vector3(0, 0, 0), t = 1, n = 0.1, r = 16776960, i = t * 0.2, o = i * 0.2) {
3479
3480
  super(), this.type = "ArrowHelper";
3480
3481
  const a = new f.CylinderGeometry(n, n, t, 32);
@@ -3488,9 +3489,9 @@ class er extends f.Object3D {
3488
3489
  else if (e.y < -0.99999)
3489
3490
  this.quaternion.set(1, 0, 0, 0);
3490
3491
  else {
3491
- Bs.set(e.z, 0, -e.x).normalize();
3492
+ Es.set(e.z, 0, -e.x).normalize();
3492
3493
  const s = Math.acos(e.y);
3493
- this.quaternion.setFromAxisAngle(Bs, s);
3494
+ this.quaternion.setFromAxisAngle(Es, s);
3494
3495
  }
3495
3496
  }
3496
3497
  setColor(e) {
@@ -3624,7 +3625,7 @@ class tt {
3624
3625
  s.transparent = !0, s.opacity = 0.6, s.depthTest = !1, s.depthWrite = !1, s.side = f.DoubleSide;
3625
3626
  const t = new f.Mesh(e, s), n = new f.Vector3(0, 1, 0);
3626
3627
  n.normalize();
3627
- const r = new f.Vector3(0, 0, 0), i = 0.5, o = 0.01, a = 56576, c = new er(n, r, i, o, a, 0.1, 0.03);
3628
+ const r = new f.Vector3(0, 0, 0), i = 0.5, o = 0.01, a = 56576, c = new tr(n, r, i, o, a, 0.1, 0.03);
3628
3629
  this.controlPlane = new f.Object3D(), this.controlPlane.add(t), this.controlPlane.add(c);
3629
3630
  }
3630
3631
  }
@@ -3790,7 +3791,7 @@ class tt {
3790
3791
  this.destroyMeshCursor(), this.destroyFocusMarker(), this.destroyDebugMeshes(), this.destroyControlPlane(), this.destroyRenderTargetCopyObjects(), this.destroySplatRendertarget();
3791
3792
  }
3792
3793
  }
3793
- const tr = new f.Vector3(1, 0, 0), sr = new f.Vector3(0, 1, 0), nr = new f.Vector3(0, 0, 1);
3794
+ const sr = new f.Vector3(1, 0, 0), nr = new f.Vector3(0, 1, 0), rr = new f.Vector3(0, 0, 1);
3794
3795
  class vt {
3795
3796
  constructor(e = new f.Vector3(), s = new f.Vector3()) {
3796
3797
  this.origin = new f.Vector3(), this.direction = new f.Vector3(), this.setParameters(e, s);
@@ -3808,7 +3809,7 @@ class vt {
3808
3809
  return i && (i.origin.copy(this.origin), i.normal.set(0, 0, 0), i.distance = -1), !0;
3809
3810
  for (let o = 0; o < 3; o++) {
3810
3811
  if (n[o] == 0) continue;
3811
- const a = o == 0 ? tr : o == 1 ? sr : nr, c = n[o] < 0 ? r.max : r.min;
3812
+ const a = o == 0 ? sr : o == 1 ? nr : rr, c = n[o] < 0 ? r.max : r.min;
3812
3813
  let l = -Math.sign(n[o]);
3813
3814
  s[0] = o == 0 ? c.x : o == 1 ? c.y : c.z;
3814
3815
  let d = s[0] - t[o];
@@ -3854,7 +3855,7 @@ const Pe = {
3854
3855
  ThreeD: 0,
3855
3856
  TwoD: 1
3856
3857
  };
3857
- class rr {
3858
+ class or {
3858
3859
  constructor(e, s, t = !1) {
3859
3860
  this.ray = new vt(e, s), this.raycastAgainstTrueSplatEllipsoid = t;
3860
3861
  }
@@ -4800,7 +4801,7 @@ class At {
4800
4801
  `;
4801
4802
  }
4802
4803
  }
4803
- class or {
4804
+ class ir {
4804
4805
  /**
4805
4806
  * Build the Three.js geometry that will be used to render the splats. The geometry is instanced and is made up of
4806
4807
  * vertices for a single quad as well as an attribute buffer for the splat indexes.
@@ -4816,7 +4817,7 @@ class or {
4816
4817
  return o.setUsage(f.DynamicDrawUsage), r.setAttribute("splatIndex", o), r.instanceCount = 0, r;
4817
4818
  }
4818
4819
  }
4819
- class ir extends f.Object3D {
4820
+ class ar extends f.Object3D {
4820
4821
  constructor(e, s = new f.Vector3(), t = new f.Quaternion(), n = new f.Vector3(1, 1, 1), r = 1, i = 1, o = !0) {
4821
4822
  super(), this.splatBuffer = e, this.position.copy(s), this.quaternion.copy(t), this.scale.copy(n), this.transform = new f.Matrix4(), this.minimumAlpha = r, this.opacity = i, this.visible = o;
4822
4823
  }
@@ -4864,7 +4865,7 @@ class st {
4864
4865
  }), t;
4865
4866
  }
4866
4867
  }
4867
- function ar(A) {
4868
+ function cr(A) {
4868
4869
  let e = 0;
4869
4870
  class s {
4870
4871
  constructor(a, c) {
@@ -4997,7 +4998,7 @@ function ar(A) {
4997
4998
  o.data.process && i(o.data.process.centers, o.data.process.maxDepth, o.data.process.maxCentersPerNode);
4998
4999
  };
4999
5000
  }
5000
- function cr(A, e, s, t, n) {
5001
+ function lr(A, e, s, t, n) {
5001
5002
  A.postMessage({
5002
5003
  process: {
5003
5004
  centers: e,
@@ -5006,16 +5007,16 @@ function cr(A, e, s, t, n) {
5006
5007
  }
5007
5008
  }, s);
5008
5009
  }
5009
- function lr() {
5010
+ function dr() {
5010
5011
  return new Worker(
5011
5012
  URL.createObjectURL(
5012
- new Blob(["(", ar.toString(), ")(self)"], {
5013
+ new Blob(["(", cr.toString(), ")(self)"], {
5013
5014
  type: "application/javascript"
5014
5015
  })
5015
5016
  )
5016
5017
  );
5017
5018
  }
5018
- class dr {
5019
+ class hr {
5019
5020
  constructor(e, s) {
5020
5021
  this.maxDepth = e, this.maxCentersPerNode = s, this.subTrees = [], this.splatMesh = null;
5021
5022
  }
@@ -5037,7 +5038,7 @@ class dr {
5037
5038
  * @return {undefined}
5038
5039
  */
5039
5040
  processSplatMesh = function(e, s = () => !0, t, n) {
5040
- this.splatTreeWorker || (this.splatTreeWorker = lr()), this.splatMesh = e, this.subTrees = [];
5041
+ this.splatTreeWorker || (this.splatTreeWorker = dr()), this.splatMesh = e, this.subTrees = [];
5041
5042
  const r = new f.Vector3(), i = (o, a) => {
5042
5043
  const c = new Float32Array(a * 4);
5043
5044
  let l = 0;
@@ -5082,7 +5083,7 @@ class dr {
5082
5083
  if (a()) return;
5083
5084
  t && t(!0);
5084
5085
  const l = c.map((d) => d.buffer);
5085
- cr(this.splatTreeWorker, c, l, this.maxDepth, this.maxCentersPerNode);
5086
+ lr(this.splatTreeWorker, c, l, this.maxDepth, this.maxCentersPerNode);
5086
5087
  });
5087
5088
  });
5088
5089
  });
@@ -5103,7 +5104,7 @@ class dr {
5103
5104
  s(t.rootNode, e);
5104
5105
  }
5105
5106
  }
5106
- function hr(A) {
5107
+ function ur(A) {
5107
5108
  const e = {};
5108
5109
  function s(t) {
5109
5110
  if (e[t] !== void 0)
@@ -5140,7 +5141,7 @@ function hr(A) {
5140
5141
  }
5141
5142
  };
5142
5143
  }
5143
- function ur(A, e, s) {
5144
+ function pr(A, e, s) {
5144
5145
  let t;
5145
5146
  function n() {
5146
5147
  if (t !== void 0) return t;
@@ -5191,10 +5192,10 @@ const nt = {
5191
5192
  }, Ye = {
5192
5193
  None: 0,
5193
5194
  Info: 3
5194
- }, Es = new f.BufferGeometry(), pr = new f.MeshBasicMaterial(), pt = 6, fr = 4, mr = 4, Ar = 4, gr = 6, Sr = 8, Dt = 4, Ft = 4, ws = 1, Cr = 0.012, yr = 3e-3, vs = 1, Ds = 16777216;
5195
+ }, ws = new f.BufferGeometry(), fr = new f.MeshBasicMaterial(), pt = 6, mr = 4, Ar = 4, gr = 4, Sr = 6, Cr = 8, Dt = 4, Ft = 4, vs = 1, yr = 0.012, xr = 3e-3, Ds = 1, Fs = 16777216;
5195
5196
  class ge extends f.Mesh {
5196
5197
  constructor(e = Pe.ThreeD, s = !1, t = !1, n = !1, r = 1, i = !0, o = !1, a = !1, c = 1024, l = Ye.None, d = 0, u = 1, h = 0.3) {
5197
- super(Es, pr), this.renderer = void 0, this.splatRenderMode = e, this.dynamicMode = s, this.enableOptionalEffects = t, this.halfPrecisionCovariancesOnGPU = n, this.devicePixelRatio = r, this.enableDistancesComputationOnGPU = i, this.integerBasedDistancesComputation = o, this.antialiased = a, this.kernel2DSize = h, this.maxScreenSpaceSplatSize = c, this.logLevel = l, this.sphericalHarmonicsDegree = d, this.minSphericalHarmonicsDegree = 0, this.sceneFadeInRateMultiplier = u, this.scenes = [], this.splatTree = null, this.baseSplatTree = null, this.splatDataTextures = {}, this.distancesTransformFeedback = {
5198
+ super(ws, fr), this.renderer = void 0, this.splatRenderMode = e, this.dynamicMode = s, this.enableOptionalEffects = t, this.halfPrecisionCovariancesOnGPU = n, this.devicePixelRatio = r, this.enableDistancesComputationOnGPU = i, this.integerBasedDistancesComputation = o, this.antialiased = a, this.kernel2DSize = h, this.maxScreenSpaceSplatSize = c, this.logLevel = l, this.sphericalHarmonicsDegree = d, this.minSphericalHarmonicsDegree = 0, this.sceneFadeInRateMultiplier = u, this.scenes = [], this.splatTree = null, this.baseSplatTree = null, this.splatDataTextures = {}, this.distancesTransformFeedback = {
5198
5199
  id: null,
5199
5200
  vertexShader: null,
5200
5201
  fragmentShader: null,
@@ -5242,7 +5243,7 @@ class ge extends f.Mesh {
5242
5243
  return n;
5243
5244
  }
5244
5245
  static createScene(e, s, t, n, r, i = 1, o = !0) {
5245
- return new ir(e, s, t, n, r, i, o);
5246
+ return new ar(e, s, t, n, r, i, o);
5246
5247
  }
5247
5248
  /**
5248
5249
  * Build data structures that map global splat indexes (based on a unified index across all splat buffers) to
@@ -5274,7 +5275,7 @@ class ge extends f.Mesh {
5274
5275
  */
5275
5276
  buildSplatTree = function(e = [], s, t) {
5276
5277
  return new Promise((n) => {
5277
- this.disposeSplatTree(), this.baseSplatTree = new dr(8, 1e3);
5278
+ this.disposeSplatTree(), this.baseSplatTree = new hr(8, 1e3);
5278
5279
  const r = performance.now(), i = new f.Vector4();
5279
5280
  this.baseSplatTree.processSplatMesh(this, (o) => {
5280
5281
  this.getSplatColor(o, i);
@@ -5345,7 +5346,7 @@ class ge extends f.Mesh {
5345
5346
  }
5346
5347
  let u = !0;
5347
5348
  if ((this.scenes.length !== 1 || this.lastBuildSceneCount !== this.scenes.length || this.lastBuildMaxSplatCount !== a || d) && (u = !1), !u) {
5348
- this.boundingBox = new f.Box3(), o || (this.maxSplatDistanceFromSceneCenter = 0, this.visibleRegionBufferRadius = 0, this.visibleRegionRadius = 0, this.visibleRegionFadeStartRadius = 0, this.firstRenderTime = -1), this.lastBuildScenes = [], this.lastBuildSplatCount = 0, this.lastBuildMaxSplatCount = 0, this.disposeMeshData(), this.geometry = or.build(a), this.splatRenderMode === Pe.ThreeD ? this.material = mt.build(
5349
+ this.boundingBox = new f.Box3(), o || (this.maxSplatDistanceFromSceneCenter = 0, this.visibleRegionBufferRadius = 0, this.visibleRegionRadius = 0, this.visibleRegionFadeStartRadius = 0, this.firstRenderTime = -1), this.lastBuildScenes = [], this.lastBuildSplatCount = 0, this.lastBuildMaxSplatCount = 0, this.disposeMeshData(), this.geometry = ir.build(a), this.splatRenderMode === Pe.ThreeD ? this.material = mt.build(
5349
5350
  this.dynamicMode,
5350
5351
  this.enableOptionalEffects,
5351
5352
  this.antialiased,
@@ -5417,7 +5418,7 @@ class ge extends f.Mesh {
5417
5418
  * Dispose of only the Three.js mesh resources (geometry, material, and texture)
5418
5419
  */
5419
5420
  disposeMeshData() {
5420
- this.geometry && this.geometry !== Es && (this.geometry.dispose(), this.geometry = null), this.material && (this.material.dispose(), this.material = null);
5421
+ this.geometry && this.geometry !== ws && (this.geometry.dispose(), this.geometry = null), this.material && (this.material.dispose(), this.material = null);
5421
5422
  }
5422
5423
  disposeTextures() {
5423
5424
  for (let e in this.splatDataTextures)
@@ -5492,7 +5493,7 @@ class ge extends f.Mesh {
5492
5493
  const D = new f.Vector2(4096, 1024);
5493
5494
  for (; D.x * D.y * y < e * v; ) D.y *= 2;
5494
5495
  return D;
5495
- }, n = (y) => y >= 1 ? gr : mr, r = (y) => {
5496
+ }, n = (y) => y >= 1 ? Sr : Ar, r = (y) => {
5496
5497
  const v = n(y), D = t(v, 6);
5497
5498
  return { elementsPerTexelStored: v, texSize: D };
5498
5499
  };
@@ -5501,7 +5502,7 @@ class ge extends f.Mesh {
5501
5502
  let c, l, d;
5502
5503
  if (this.splatRenderMode === Pe.ThreeD) {
5503
5504
  const y = r(i);
5504
- y.texSize.x * y.texSize.y > Ds && i === 0 && (i = 1), c = new Float32Array(e * pt);
5505
+ y.texSize.x * y.texSize.y > Fs && i === 0 && (i = 1), c = new Float32Array(e * pt);
5505
5506
  } else
5506
5507
  l = new Float32Array(e * 3), d = new Float32Array(e * 4);
5507
5508
  const u = new Float32Array(e * 3), h = new Uint8Array(e * 4);
@@ -5533,7 +5534,7 @@ class ge extends f.Mesh {
5533
5534
  }, this.splatRenderMode === Pe.ThreeD) {
5534
5535
  const y = r(i), v = y.elementsPerTexelStored, D = y.texSize;
5535
5536
  let b = i >= 1 ? Uint32Array : Float32Array;
5536
- const F = i >= 1 ? Sr : Ar, R = new b(D.x * D.y * F);
5537
+ const F = i >= 1 ? Cr : gr, R = new b(D.x * D.y * F);
5537
5538
  i === 0 ? R.set(c) : ge.updatePaddedCompressedCovariancesTextureData(c, R, 0, 0, c.length);
5538
5539
  let k;
5539
5540
  if (i >= 1)
@@ -5582,7 +5583,7 @@ class ge extends f.Mesh {
5582
5583
  v % 2 !== 0 && v++;
5583
5584
  const D = 4, b = f.RGBAFormat;
5584
5585
  let F = t(D, v);
5585
- if (F.x * F.y <= Ds) {
5586
+ if (F.x * F.y <= Fs) {
5586
5587
  const R = F.x * F.y * D, k = new m(R);
5587
5588
  for (let O = 0; O < s; O++) {
5588
5589
  const L = p * O, U = v * O;
@@ -5641,7 +5642,7 @@ class ge extends f.Mesh {
5641
5642
  }
5642
5643
  this.material.uniformsNeedUpdate = !0;
5643
5644
  }
5644
- const E = t(ws, 4), x = new Uint32Array(E.x * E.y * ws);
5645
+ const E = t(vs, 4), x = new Uint32Array(E.x * E.y * vs);
5645
5646
  for (let y = 0; y < s; y++) x[y] = this.globalSplatIndexToSceneIndexMap[y];
5646
5647
  const w = new f.DataTexture(
5647
5648
  x,
@@ -5690,7 +5691,7 @@ class ge extends f.Mesh {
5690
5691
  c.size,
5691
5692
  u,
5692
5693
  Ft,
5693
- fr,
5694
+ mr,
5694
5695
  4,
5695
5696
  e,
5696
5697
  s
@@ -5881,7 +5882,7 @@ class ge extends f.Mesh {
5881
5882
  static updateCenterColorsPaddedData(e, s, t, n, r) {
5882
5883
  for (let i = e; i <= s; i++) {
5883
5884
  const o = i * 4, a = i * 3, c = i * 4;
5884
- r[c] = Xs(n, o), r[c + 1] = xt(t[a]), r[c + 2] = xt(t[a + 1]), r[c + 3] = xt(t[a + 2]);
5885
+ r[c] = Js(n, o), r[c + 1] = xt(t[a]), r[c + 2] = xt(t[a + 1]), r[c + 3] = xt(t[a + 2]);
5885
5886
  }
5886
5887
  }
5887
5888
  static updateScaleRotationsPaddedData(e, s, t, n, r) {
@@ -5904,10 +5905,10 @@ class ge extends f.Mesh {
5904
5905
  const i = t.sub(this.calculatedSceneCenter).length();
5905
5906
  i > this.maxSplatDistanceFromSceneCenter && (this.maxSplatDistanceFromSceneCenter = i);
5906
5907
  }
5907
- this.maxSplatDistanceFromSceneCenter - this.visibleRegionBufferRadius > vs && (this.visibleRegionBufferRadius = this.maxSplatDistanceFromSceneCenter, this.visibleRegionRadius = Math.max(this.visibleRegionBufferRadius - vs, 0)), this.finalBuild && (this.visibleRegionRadius = this.visibleRegionBufferRadius = this.maxSplatDistanceFromSceneCenter), this.updateVisibleRegionFadeDistance();
5908
+ this.maxSplatDistanceFromSceneCenter - this.visibleRegionBufferRadius > Ds && (this.visibleRegionBufferRadius = this.maxSplatDistanceFromSceneCenter, this.visibleRegionRadius = Math.max(this.visibleRegionBufferRadius - Ds, 0)), this.finalBuild && (this.visibleRegionRadius = this.visibleRegionBufferRadius = this.maxSplatDistanceFromSceneCenter), this.updateVisibleRegionFadeDistance();
5908
5909
  }
5909
5910
  updateVisibleRegionFadeDistance(e = nt.Default) {
5910
- const s = Cr * this.sceneFadeInRateMultiplier, t = yr * this.sceneFadeInRateMultiplier, n = this.finalBuild ? s : t, r = e === nt.Default ? n : t;
5911
+ const s = yr * this.sceneFadeInRateMultiplier, t = xr * this.sceneFadeInRateMultiplier, n = this.finalBuild ? s : t, r = e === nt.Default ? n : t;
5911
5912
  this.visibleRegionFadeStartRadius = (this.visibleRegionRadius - this.visibleRegionFadeStartRadius) * r + this.visibleRegionFadeStartRadius;
5912
5913
  const o = (this.visibleRegionBufferRadius > 0 ? this.visibleRegionFadeStartRadius / this.visibleRegionBufferRadius : 0) > 0.99, a = o || e === nt.Instant ? 1 : 0;
5913
5914
  this.material.uniforms.visibleRegionFadeStartRadius.value = this.visibleRegionFadeStartRadius, this.material.uniforms.visibleRegionRadius.value = this.visibleRegionRadius, this.material.uniforms.firstRenderTime.value = this.firstRenderTime, this.material.uniforms.currentTime.value = performance.now(), this.material.uniforms.fadeInComplete.value = a, this.material.uniformsNeedUpdate = !0, this.visibleRegionChanging = !o;
@@ -6007,7 +6008,7 @@ class ge extends f.Mesh {
6007
6008
  setRenderer(e) {
6008
6009
  if (e !== this.renderer) {
6009
6010
  this.renderer = e;
6010
- const s = this.renderer.getContext(), t = new hr(s), n = new ur(s, t, {});
6011
+ const s = this.renderer.getContext(), t = new ur(s), n = new pr(s, t, {});
6011
6012
  if (t.init(n), this.webGLUtils = new f.WebGLUtils(s, t, n), this.enableDistancesComputationOnGPU && this.getSplatCount() > 0) {
6012
6013
  this.setupDistancesComputationTransformFeedback();
6013
6014
  const { centers: r, sceneIndexes: i } = this.getDataForDistancesComputation(0, this.getSplatCount() - 1);
@@ -6429,8 +6430,8 @@ class ge extends f.Mesh {
6429
6430
  return new f.Box3(r, i);
6430
6431
  }
6431
6432
  }
6432
- var xr = "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", Fs = "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", Ir = "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", Tr = "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";
6433
- function Br(A) {
6433
+ var Ir = "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", bs = "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", Tr = "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", Br = "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";
6434
+ function Er(A) {
6434
6435
  let e, s, t, n, r, i, o, a, c, l, d, u, h, m, p, g, C, S, I, E;
6435
6436
  function x(w, y, v, D, b, F, R) {
6436
6437
  const k = performance.now();
@@ -6534,17 +6535,17 @@ function Br(A) {
6534
6535
  }
6535
6536
  };
6536
6537
  }
6537
- function Er(A, e, s, t, n, r = j.DefaultSplatSortDistanceMapPrecision) {
6538
+ function wr(A, e, s, t, n, r = j.DefaultSplatSortDistanceMapPrecision) {
6538
6539
  const i = new Worker(
6539
6540
  URL.createObjectURL(
6540
- new Blob(["(", Br.toString(), ")(self)"], {
6541
+ new Blob(["(", Er.toString(), ")(self)"], {
6541
6542
  type: "application/javascript"
6542
6543
  })
6543
6544
  )
6544
6545
  );
6545
- let o = xr;
6546
- const a = kt() ? Rs() : null;
6547
- !s && !e ? (o = Fs, a && a.major <= 16 && a.minor < 4 && (o = Tr)) : s ? e || a && a.major <= 16 && a.minor < 4 && (o = Ir) : o = Fs;
6546
+ let o = Ir;
6547
+ const a = kt() ? Ps() : null;
6548
+ !s && !e ? (o = bs, a && a.major <= 16 && a.minor < 4 && (o = Br)) : s ? e || a && a.major <= 16 && a.minor < 4 && (o = Tr) : o = bs;
6548
6549
  const c = atob(o), l = new Uint8Array(c.length);
6549
6550
  for (let d = 0; d < c.length; d++)
6550
6551
  l[d] = c.charCodeAt(d);
@@ -6636,7 +6637,7 @@ class Xe {
6636
6637
  }
6637
6638
  Xe.xrSessionIsGranted = !1;
6638
6639
  Xe.registerSessionGrantedListener();
6639
- class wr {
6640
+ class vr {
6640
6641
  static createButton(e, s = {}) {
6641
6642
  const t = document.createElement("button");
6642
6643
  function n() {
@@ -6694,16 +6695,16 @@ class wr {
6694
6695
  const bt = {
6695
6696
  Always: 0,
6696
6697
  Never: 2
6697
- }, vr = 50, Dr = 0.75, Fr = 15e5, br = 10, Mr = 2.5, Rr = 60;
6698
+ }, Dr = 50, Fr = 0.75, br = 15e5, Mr = 10, Rr = 2.5, Pr = 60;
6698
6699
  class We {
6699
6700
  constructor(e = {}) {
6700
6701
  if (e.cameraUp || (e.cameraUp = [0, 1, 0]), this.cameraUp = new f.Vector3().fromArray(e.cameraUp), e.initialCameraPosition || (e.initialCameraPosition = [0, 10, 15]), this.initialCameraPosition = new f.Vector3().fromArray(e.initialCameraPosition), e.initialCameraLookAt || (e.initialCameraLookAt = [0, 0, 0]), this.initialCameraLookAt = new f.Vector3().fromArray(e.initialCameraLookAt), this.dropInMode = e.dropInMode || !1, (e.selfDrivenMode === void 0 || e.selfDrivenMode === null) && (e.selfDrivenMode = !0), this.selfDrivenMode = e.selfDrivenMode && !this.dropInMode, this.selfDrivenUpdateFunc = this.selfDrivenUpdate.bind(this), e.useBuiltInControls === void 0 && (e.useBuiltInControls = !0), this.useBuiltInControls = e.useBuiltInControls, this.rootElement = e.rootElement, this.ignoreDevicePixelRatio = e.ignoreDevicePixelRatio || !1, this.devicePixelRatio = this.ignoreDevicePixelRatio ? 1 : window.devicePixelRatio || 1, this.halfPrecisionCovariancesOnGPU = e.halfPrecisionCovariancesOnGPU || !1, this.threeScene = e.threeScene, this.renderer = e.renderer, this.camera = e.camera, this.gpuAcceleratedSort = e.gpuAcceleratedSort || !1, (e.integerBasedSort === void 0 || e.integerBasedSort === null) && (e.integerBasedSort = !0), this.integerBasedSort = e.integerBasedSort, (e.sharedMemoryForWorkers === void 0 || e.sharedMemoryForWorkers === null) && (e.sharedMemoryForWorkers = !0), this.sharedMemoryForWorkers = e.sharedMemoryForWorkers, this.dynamicScene = !!e.dynamicScene, this.antialiased = e.antialiased || !1, this.kernel2DSize = e.kernel2DSize === void 0 ? 0.3 : e.kernel2DSize, this.webXRMode = e.webXRMode || Ge.None, this.webXRMode !== Ge.None && (this.gpuAcceleratedSort = !1), this.webXRActive = !1, this.webXRSessionInit = e.webXRSessionInit || {}, this.renderMode = e.renderMode || bt.Always, this.sceneRevealMode = e.sceneRevealMode || nt.Default, this.focalAdjustment = e.focalAdjustment || 1, this.maxScreenSpaceSplatSize = e.maxScreenSpaceSplatSize || 1024, this.logLevel = e.logLevel || Ye.None, this.sphericalHarmonicsDegree = e.sphericalHarmonicsDegree || 0, this.enableOptionalEffects = e.enableOptionalEffects || !1, (e.enableSIMDInSort === void 0 || e.enableSIMDInSort === null) && (e.enableSIMDInSort = !0), this.enableSIMDInSort = e.enableSIMDInSort, (e.inMemoryCompressionLevel === void 0 || e.inMemoryCompressionLevel === null) && (e.inMemoryCompressionLevel = 0), this.inMemoryCompressionLevel = e.inMemoryCompressionLevel, (e.optimizeSplatData === void 0 || e.optimizeSplatData === null) && (e.optimizeSplatData = !0), this.optimizeSplatData = e.optimizeSplatData, (e.freeIntermediateSplatData === void 0 || e.freeIntermediateSplatData === null) && (e.freeIntermediateSplatData = !1), this.freeIntermediateSplatData = e.freeIntermediateSplatData, kt()) {
6701
- const t = Rs();
6702
+ const t = Ps();
6702
6703
  t.major < 17 && (this.enableSIMDInSort = !1), t.major < 16 && (this.sharedMemoryForWorkers = !1);
6703
6704
  }
6704
6705
  (e.splatRenderMode === void 0 || e.splatRenderMode === null) && (e.splatRenderMode = Pe.ThreeD), this.splatRenderMode = e.splatRenderMode, this.sceneFadeInRateMultiplier = e.sceneFadeInRateMultiplier || 1, this.splatSortDistanceMapPrecision = e.splatSortDistanceMapPrecision || j.DefaultSplatSortDistanceMapPrecision;
6705
6706
  const s = this.integerBasedSort ? 20 : 24;
6706
- this.splatSortDistanceMapPrecision = ne(this.splatSortDistanceMapPrecision, 10, s), this.onSplatMeshChangedCallback = null, this.createSplatMesh(), this.controls = null, this.perspectiveControls = null, this.orthographicControls = null, this.orthographicCamera = null, this.perspectiveCamera = null, this.showMeshCursor = !1, this.showControlPlane = !1, this.showInfo = !1, this.sceneHelper = null, this.sortWorker = null, this.sortRunning = !1, this.splatRenderCount = 0, this.splatSortCount = 0, this.lastSplatSortCount = 0, this.sortWorkerIndexesToSort = null, this.sortWorkerSortedIndexes = null, this.sortWorkerPrecomputedDistances = null, this.sortWorkerTransforms = null, this.preSortMessages = [], this.runAfterNextSort = [], this.selfDrivenModeRunning = !1, this.splatRenderReady = !1, this.raycaster = new rr(), this.infoPanel = null, this.startInOrthographicMode = !1, this.currentFPS = 0, this.lastSortTime = 0, this.consecutiveRenderFrames = 0, this.previousCameraTarget = new f.Vector3(), this.nextCameraTarget = new f.Vector3(), this.mousePosition = new f.Vector2(), this.mouseDownPosition = new f.Vector2(), this.mouseDownTime = null, this.resizeObserver = null, this.mouseMoveListener = null, this.mouseDownListener = null, this.mouseUpListener = null, this.keyDownListener = null, this.sortPromise = null, this.sortPromiseResolver = null, this.splatSceneDownloadPromises = {}, this.splatSceneDownloadAndBuildPromise = null, this.splatSceneRemovalPromise = null, this.loadingSpinner = new jt(null, this.rootElement || document.body), this.loadingSpinner.hide(), this.loadingProgressBar = new Zn(this.rootElement || document.body), this.loadingProgressBar.hide(), this.infoPanel = new $n(this.rootElement || document.body), this.infoPanel.hide(), this.usingExternalCamera = !!(this.dropInMode || this.camera), this.usingExternalRenderer = !!(this.dropInMode || this.renderer), this.initialized = !1, this.disposing = !1, this.disposed = !1, this.disposePromise = null, this.dropInMode || this.init();
6707
+ this.splatSortDistanceMapPrecision = ne(this.splatSortDistanceMapPrecision, 10, s), this.onSplatMeshChangedCallback = null, this.createSplatMesh(), this.controls = null, this.perspectiveControls = null, this.orthographicControls = null, this.orthographicCamera = null, this.perspectiveCamera = null, this.showMeshCursor = !1, this.showControlPlane = !1, this.showInfo = !1, this.sceneHelper = null, this.sortWorker = null, this.sortRunning = !1, this.splatRenderCount = 0, this.splatSortCount = 0, this.lastSplatSortCount = 0, this.sortWorkerIndexesToSort = null, this.sortWorkerSortedIndexes = null, this.sortWorkerPrecomputedDistances = null, this.sortWorkerTransforms = null, this.preSortMessages = [], this.runAfterNextSort = [], this.selfDrivenModeRunning = !1, this.splatRenderReady = !1, this.raycaster = new or(), this.infoPanel = null, this.startInOrthographicMode = !1, this.currentFPS = 0, this.lastSortTime = 0, this.consecutiveRenderFrames = 0, this.previousCameraTarget = new f.Vector3(), this.nextCameraTarget = new f.Vector3(), this.mousePosition = new f.Vector2(), this.mouseDownPosition = new f.Vector2(), this.mouseDownTime = null, this.resizeObserver = null, this.mouseMoveListener = null, this.mouseDownListener = null, this.mouseUpListener = null, this.keyDownListener = null, this.sortPromise = null, this.sortPromiseResolver = null, this.splatSceneDownloadPromises = {}, this.splatSceneDownloadAndBuildPromise = null, this.splatSceneRemovalPromise = null, this.loadingSpinner = new jt(null, this.rootElement || document.body), this.loadingSpinner.hide(), this.loadingProgressBar = new $n(this.rootElement || document.body), this.loadingProgressBar.hide(), this.infoPanel = new er(this.rootElement || document.body), this.infoPanel.hide(), this.usingExternalCamera = !!(this.dropInMode || this.camera), this.usingExternalRenderer = !!(this.dropInMode || this.renderer), this.initialized = !1, this.disposing = !1, this.disposed = !1, this.disposePromise = null, this.dropInMode || this.init();
6707
6708
  }
6708
6709
  createSplatMesh() {
6709
6710
  this.splatMesh = new ge(
@@ -6728,7 +6729,7 @@ class We {
6728
6729
  setupCamera() {
6729
6730
  if (!this.usingExternalCamera) {
6730
6731
  const e = new f.Vector2();
6731
- this.getRenderDimensions(e), this.perspectiveCamera = new f.PerspectiveCamera(vr, e.x / e.y, 0.1, 1e3), this.orthographicCamera = new f.OrthographicCamera(
6732
+ this.getRenderDimensions(e), this.perspectiveCamera = new f.PerspectiveCamera(Dr, e.x / e.y, 0.1, 1e3), this.orthographicCamera = new f.OrthographicCamera(
6732
6733
  e.x / -2,
6733
6734
  e.x / 2,
6734
6735
  e.y / 2,
@@ -6750,7 +6751,7 @@ class We {
6750
6751
  }
6751
6752
  }
6752
6753
  setupWebXR(e) {
6753
- this.webXRMode && (this.webXRMode === Ge.VR ? this.rootElement.appendChild(Xe.createButton(this.renderer, e)) : this.webXRMode === Ge.AR && this.rootElement.appendChild(wr.createButton(this.renderer, e)), this.renderer.xr.addEventListener("sessionstart", (s) => {
6754
+ this.webXRMode && (this.webXRMode === Ge.VR ? this.rootElement.appendChild(Xe.createButton(this.renderer, e)) : this.webXRMode === Ge.AR && this.rootElement.appendChild(vr.createButton(this.renderer, e)), this.renderer.xr.addEventListener("sessionstart", (s) => {
6754
6755
  this.webXRActive = !0;
6755
6756
  }), this.renderer.xr.addEventListener("sessionend", (s) => {
6756
6757
  this.webXRActive = !1;
@@ -6839,7 +6840,7 @@ class We {
6839
6840
  return function() {
6840
6841
  if (!this.transitioningCameraTarget && (this.getRenderDimensions(e), t.length = 0, this.raycaster.setFromCameraAndScreenPosition(this.camera, this.mousePosition, e), this.raycaster.intersectSplatMesh(this.splatMesh, t), t.length > 0)) {
6841
6842
  const r = t[0].origin;
6842
- s.copy(r).sub(this.camera.position), s.length() > Dr && (this.previousCameraTarget.copy(this.controls.target), this.nextCameraTarget.copy(r), this.transitioningCameraTarget = !0, this.transitioningCameraTargetStartTime = Ve());
6843
+ s.copy(r).sub(this.camera.position), s.length() > Fr && (this.previousCameraTarget.copy(this.controls.target), this.nextCameraTarget.copy(r), this.transitioningCameraTarget = !0, this.transitioningCameraTargetStartTime = Ve());
6843
6844
  }
6844
6845
  };
6845
6846
  })();
@@ -6940,7 +6941,7 @@ class We {
6940
6941
  if (this.isDisposingOrDisposed())
6941
6942
  throw new Error("Cannot add splat scene after dispose() is called.");
6942
6943
  s.progressiveLoad && this.splatMesh.scenes && this.splatMesh.scenes.length > 0 && (console.log('addSplatScene(): "progressiveLoad" option ignore because there are multiple splat scenes'), s.progressiveLoad = !1);
6943
- const t = s.format !== void 0 && s.format !== null ? s.format : ys(e), n = We.isProgressivelyLoadable(t) && s.progressiveLoad, r = s.showLoadingUI !== void 0 && s.showLoadingUI !== null ? s.showLoadingUI : !0;
6944
+ const t = s.format !== void 0 && s.format !== null ? s.format : xs(e), n = We.isProgressivelyLoadable(t) && s.progressiveLoad, r = s.showLoadingUI !== void 0 && s.showLoadingUI !== null ? s.showLoadingUI : !0;
6944
6945
  let i = null;
6945
6946
  r && (this.loadingSpinner.removeAllTasks(), i = this.loadingSpinner.addTask("Downloading..."));
6946
6947
  const o = () => {
@@ -7107,7 +7108,7 @@ class We {
7107
7108
  p = p / n, h = `${p.toFixed(2)}%`, s && m === de.Downloading && this.loadingSpinner.setMessageForTask(i, p == 100 ? "Download complete!" : `Downloading: ${h}`), t && t(p, h, m);
7108
7109
  }, a = [], c = [];
7109
7110
  for (let d = 0; d < e.length; d++) {
7110
- const u = e[d], h = u.format !== void 0 && u.format !== null ? u.format : ys(u.path), m = this.downloadSplatSceneToSplatBuffer(
7111
+ const u = e[d], h = u.format !== void 0 && u.format !== null ? u.format : xs(u.path), m = this.downloadSplatSceneToSplatBuffer(
7111
7112
  u.path,
7112
7113
  u.splatAlphaRemovalThreshold,
7113
7114
  o.bind(this, d),
@@ -7269,7 +7270,7 @@ class We {
7269
7270
  const l = (h) => {
7270
7271
  if (this.isDisposingOrDisposed()) return;
7271
7272
  const m = this.splatMesh.getSplatCount();
7272
- r && m >= Fr && !h && !e && (this.loadingSpinner.setMinimized(!0, !0), e = this.loadingSpinner.addTask("Optimizing data structures..."));
7273
+ r && m >= br && !h && !e && (this.loadingSpinner.setMinimized(!0, !0), e = this.loadingSpinner.addTask("Optimizing data structures..."));
7273
7274
  }, d = (h) => {
7274
7275
  this.isDisposingOrDisposed() || h && e && (this.loadingSpinner.removeTask(e), e = null);
7275
7276
  }, u = this.splatMesh.build(
@@ -7293,7 +7294,7 @@ class We {
7293
7294
  if (!this.isDisposingOrDisposed())
7294
7295
  return new Promise((s) => {
7295
7296
  const t = this.integerBasedSort ? Int32Array : Float32Array, n = e.getSplatCount(), r = e.getMaxSplatCount();
7296
- this.sortWorker = Er(
7297
+ this.sortWorker = wr(
7297
7298
  r,
7298
7299
  this.sharedMemoryForWorkers,
7299
7300
  this.enableSIMDInSort,
@@ -7343,7 +7344,7 @@ class We {
7343
7344
  });
7344
7345
  }
7345
7346
  updateError(e, s) {
7346
- return e instanceof Ms ? e : e instanceof ft ? new Error("File type or server does not support progressive loading.") : s ? new Error(s) : e;
7347
+ return e instanceof Rs ? e : e instanceof ft ? new Error("File type or server does not support progressive loading.") : s ? new Error(s) : e;
7347
7348
  }
7348
7349
  disposeSortWorker() {
7349
7350
  this.sortWorker && this.sortWorker.terminate(), this.sortWorker = null, this.sortPromise = null, this.sortPromiseResolver && (this.sortPromiseResolver(), this.sortPromiseResolver = null), this.preSortMessages = [], this.sortRunning = !1;
@@ -7473,7 +7474,7 @@ class We {
7473
7474
  updateFPS = (function() {
7474
7475
  let e = Ve(), s = 0;
7475
7476
  return function() {
7476
- if (this.consecutiveRenderFrames > Rr) {
7477
+ if (this.consecutiveRenderFrames > Pr) {
7477
7478
  const t = Ve();
7478
7479
  t - e >= 1 ? (this.currentFPS = s, s = 0, e = t) : s++;
7479
7480
  } else
@@ -7513,13 +7514,13 @@ class We {
7513
7514
  if (this.getRenderDimensions(e), this.transitioningCameraTarget) {
7514
7515
  this.sceneHelper.setFocusMarkerVisibility(!0);
7515
7516
  const n = Math.max(this.sceneHelper.getFocusMarkerOpacity(), 0);
7516
- let r = Math.min(n + br * t, 1);
7517
+ let r = Math.min(n + Mr * t, 1);
7517
7518
  this.sceneHelper.setFocusMarkerOpacity(r), this.sceneHelper.updateFocusMarker(this.nextCameraTarget, this.camera, e), s = !0, this.forceRenderNextFrame();
7518
7519
  } else {
7519
7520
  let n;
7520
7521
  if (s ? n = 1 : n = Math.min(this.sceneHelper.getFocusMarkerOpacity(), 1), n > 0) {
7521
7522
  this.sceneHelper.updateFocusMarker(this.nextCameraTarget, this.camera, e);
7522
- let r = Math.max(n - Mr * t, 0);
7523
+ let r = Math.max(n - Rr * t, 0);
7523
7524
  this.sceneHelper.setFocusMarkerOpacity(r), r === 0 && this.sceneHelper.setFocusMarkerVisibility(!1);
7524
7525
  }
7525
7526
  n > 0 && this.forceRenderNextFrame(), s = !1;
@@ -7781,8 +7782,8 @@ class gt extends f.Group {
7781
7782
  return t.frustumCulled = !1, t;
7782
7783
  }
7783
7784
  }
7784
- const bs = new Mt().setFromAxisAngle(new ye(0, 0, 1), Math.PI);
7785
- class kr {
7785
+ const Ms = new Mt().setFromAxisAngle(new ye(0, 0, 1), Math.PI);
7786
+ class Hr {
7786
7787
  ssp;
7787
7788
  constructor(e) {
7788
7789
  this.ssp = e;
@@ -7790,17 +7791,21 @@ class kr {
7790
7791
  async load(e, s = {}, t) {
7791
7792
  t || (t = this.createViewer()), await t.addSplatScene(e, {
7792
7793
  showLoadingUI: !1,
7793
- ...s
7794
+ ...s,
7795
+ headers: ss.utils.getRequestHeaders(e, s.headers)
7794
7796
  });
7795
7797
  const n = t.getSplatScene(0);
7796
- return n && n.quaternion.copy(bs), t;
7798
+ return n && n.quaternion.copy(Ms), t;
7797
7799
  }
7798
7800
  async loads(e, s, t = !1, n) {
7799
- s || (s = this.createViewer()), await s.addSplatScenes(e, t, n);
7801
+ s || (s = this.createViewer()), await s.addSplatScenes(e.map((i) => ({
7802
+ ...i,
7803
+ headers: ss.utils.getRequestHeaders(i.path, i.headers)
7804
+ })), t, n);
7800
7805
  const r = s.getSceneCount();
7801
7806
  for (let i = 0; i < r; i++) {
7802
7807
  const o = s.getSplatScene(i);
7803
- o && o.quaternion.copy(bs);
7808
+ o && o.quaternion.copy(Ms);
7804
7809
  }
7805
7810
  return s;
7806
7811
  }
@@ -7819,5 +7824,5 @@ class kr {
7819
7824
  }
7820
7825
  }
7821
7826
  export {
7822
- kr as default
7827
+ Hr as default
7823
7828
  };