iflow-engine-base 3.9.18 → 3.9.21

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.
@@ -1,7 +1,8 @@
1
1
  import { n as Js, C as st, s as Zs, V as v, b as N, O as $s, W as en, M as J, Q as ge, a as tn, f as qt, j as De, B as sn, h as ft, q as it, aB as Ue, aC as Pt, aD as at, H as Et, aE as ms, aF as yn, aG as xn, aH as In, aI as Tn, z as wn, aJ as Bn, aK as En, l as lt, aL as As, aM as gs, aN as vn, k as Cs, aO as Fn, ap as Je, am as Ss, D as Kt, ab as Dn, aA as ys, p as bn, u as We, aP as qe, au as xs, r as Mn, aQ as Rn, a2 as Pn, aR as On, aS as nn, aT as Is, aU as kn, a7 as Ln, aV as Qe, aW as mt } from "./three-vendor-Dbcwwhki.js";
2
- import { E as Hn } from "./engine-2d-Di06Ry30.js";
2
+ import { E as Hn } from "./engine-2d-DAiE1uAy.js";
3
+ import { r as Un } from "./sdk-runtime-cY1Wn7o-.js";
3
4
  var Ne = /* @__PURE__ */ ((m) => (m.LoadStart = "gaussian-load-start", m.LoadProgress = "gaussian-load-progress", m.Loaded = "gaussian-loaded", m.LoadError = "gaussian-load-error", m.SceneRemoved = "gaussian-scene-removed", m.FpsUpdated = "gaussian-fps-updated", m.ViewChanged = "gaussian-view-changed", m))(Ne || {});
4
- class Un {
5
+ class zn {
5
6
  listeners = /* @__PURE__ */ new Map();
6
7
  on(e, s) {
7
8
  const t = String(e);
@@ -31,7 +32,7 @@ class Un {
31
32
  this.clear();
32
33
  }
33
34
  }
34
- class zn {
35
+ class _n {
35
36
  scene;
36
37
  constructor(e) {
37
38
  this.scene = new Js(), e && (this.scene.background = new st(e));
@@ -46,7 +47,7 @@ class zn {
46
47
  this.scene.clear(), this.scene.background = null, this.scene.environment = null;
47
48
  }
48
49
  }
49
- class _n {
50
+ class Qn {
50
51
  camera;
51
52
  container;
52
53
  cameraUp;
@@ -128,7 +129,7 @@ const Ot = (function() {
128
129
  return function(s) {
129
130
  return m[0] = s, e[0];
130
131
  };
131
- })(), Qn = function(m, e) {
132
+ })(), Nn = function(m, e) {
132
133
  return m[e] + (m[e + 1] << 8) + (m[e + 2] << 16) + (m[e + 3] << 24);
133
134
  }, bt = function(m, e, s = !0, t) {
134
135
  const n = new AbortController(), r = n.signal;
@@ -216,7 +217,7 @@ const Ot = (function() {
216
217
  reject: s
217
218
  };
218
219
  };
219
- class Nn {
220
+ class Vn {
220
221
  constructor(e, s, t) {
221
222
  this.major = e, this.minor = s, this.patch = t;
222
223
  }
@@ -231,7 +232,7 @@ function Yt() {
231
232
  function on() {
232
233
  if (Yt()) {
233
234
  const m = navigator.userAgent.match(/OS (\d+)_(\d+)_?(\d+)?/);
234
- return new Nn(
235
+ return new Vn(
235
236
  parseInt(m[1] || 0, 10),
236
237
  parseInt(m[2] || 0, 10),
237
238
  parseInt(m[3] || 0, 10)
@@ -239,7 +240,7 @@ function on() {
239
240
  } else
240
241
  return null;
241
242
  }
242
- const Vn = 14;
243
+ const Gn = 14;
243
244
  class P {
244
245
  static OFFSET = {
245
246
  X: 0,
@@ -282,7 +283,7 @@ class P {
282
283
  FRC23: 37
283
284
  };
284
285
  constructor(e = 0) {
285
- this.sphericalHarmonicsDegree = e, this.sphericalHarmonicsCount = $e(this.sphericalHarmonicsDegree), this.componentCount = this.sphericalHarmonicsCount + Vn, this.defaultSphericalHarmonics = new Array(this.sphericalHarmonicsCount).fill(0), this.splats = [], this.splatCount = 0;
286
+ this.sphericalHarmonicsDegree = e, this.sphericalHarmonicsCount = $e(this.sphericalHarmonicsDegree), this.componentCount = this.sphericalHarmonicsCount + Gn, this.defaultSphericalHarmonics = new Array(this.sphericalHarmonicsCount).fill(0), this.splats = [], this.splatCount = 0;
286
287
  }
287
288
  static createSplat(e = 0) {
288
289
  const s = [0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];
@@ -323,7 +324,7 @@ class Y {
323
324
  static ProgressiveLoadSectionDelayDuration = 15;
324
325
  static SphericalHarmonics8BitCompressionRange = 3;
325
326
  }
326
- const Gn = Y.SphericalHarmonics8BitCompressionRange, ze = Gn / 2, Ae = mt.toHalfFloat.bind(mt), Xt = mt.fromHalfFloat.bind(mt), re = (m, e, s = !1, t, n) => {
327
+ const Wn = Y.SphericalHarmonics8BitCompressionRange, ze = Wn / 2, Ae = mt.toHalfFloat.bind(mt), Xt = mt.fromHalfFloat.bind(mt), re = (m, e, s = !1, t, n) => {
327
328
  if (e === 0)
328
329
  return m;
329
330
  if (e === 1 || e === 2 && !s)
@@ -337,12 +338,12 @@ const Gn = Y.SphericalHarmonics8BitCompressionRange, ze = Gn / 2, Ae = mt.toHalf
337
338
  }, Jt = (m, e, s) => {
338
339
  const t = s - e;
339
340
  return m / 255 * t + e;
340
- }, an = (m, e, s) => ct(Xt(m, e, s)), Wn = (m, e, s) => Ae(Jt(m, e, s)), K = (m, e, s, t = !1) => s === 0 ? m.getFloat32(e * 4, !0) : s === 1 || s === 2 && !t ? m.getUint16(e * 2, !0) : m.getUint8(e, !0), qn = /* @__PURE__ */ (function() {
341
+ }, an = (m, e, s) => ct(Xt(m, e, s)), qn = (m, e, s) => Ae(Jt(m, e, s)), K = (m, e, s, t = !1) => s === 0 ? m.getFloat32(e * 4, !0) : s === 1 || s === 2 && !t ? m.getUint16(e * 2, !0) : m.getUint8(e, !0), Kn = /* @__PURE__ */ (function() {
341
342
  const m = (e) => e;
342
343
  return function(e, s, t, n = !1) {
343
344
  if (s === t) return e;
344
345
  let r = m;
345
- return s === 2 && n ? t === 1 ? r = Wn : t == 0 && (r = Jt) : s === 2 || s === 1 ? t === 0 ? r = Xt : t == 2 && (n ? r = an : r = m) : s === 0 && (t === 1 ? r = Ae : t == 2 && (n ? r = ct : r = Ae)), r(e);
346
+ return s === 2 && n ? t === 1 ? r = qn : t == 0 && (r = Jt) : s === 2 || s === 1 ? t === 0 ? r = Xt : t == 2 && (n ? r = an : r = m) : s === 0 && (t === 1 ? r = Ae : t == 2 && (n ? r = ct : r = Ae)), r(e);
346
347
  };
347
348
  })(), je = (m, e, s, t, n = 0) => {
348
349
  const r = new Uint8Array(m, e), i = new Uint8Array(s, t);
@@ -513,7 +514,7 @@ class I {
513
514
  return function(a, l, c, d, u, h, f, p) {
514
515
  const A = this.splatCount;
515
516
  d = d || 0, u = u || A - 1, h === void 0 && (h = d);
516
- const C = (g, x) => qn(g, x, f);
517
+ const C = (g, x) => Kn(g, x, f);
517
518
  for (let g = d; g <= u; g++) {
518
519
  const x = this.globalSplatIndexToSectionMap[g], w = this.sections[x], y = g - w.splatCountOffset, B = w.bytesPerSplat * y + I.CompressionLevels[this.compressionLevel].ScaleOffsetBytes, S = (g - d + h) * I.ScaleComponentCount, E = (g - d + h) * I.RotationComponentCount, F = new DataView(this.bufferData, w.dataBase + B), b = p && p.x !== void 0 ? p.x : K(F, 0, this.compressionLevel), D = p && p.y !== void 0 ? p.y : K(F, 1, this.compressionLevel), R = p && p.z !== void 0 ? p.z : K(F, 2, this.compressionLevel), k = K(F, 3, this.compressionLevel), M = K(F, 4, this.compressionLevel), O = K(F, 5, this.compressionLevel), L = K(F, 6, this.compressionLevel);
519
520
  n.set(
@@ -982,9 +983,9 @@ const Ts = new Uint8Array([112, 108, 121, 10]), ws = new Uint8Array([10, 101, 11
982
983
  return (m & s) / s;
983
984
  }, Bs = (m, e) => {
984
985
  m.x = Me(e >>> 21, 11), m.y = Me(e >>> 11, 10), m.z = Me(e, 11);
985
- }, Kn = (m, e) => {
986
- m.x = Me(e >>> 24, 8), m.y = Me(e >>> 16, 8), m.z = Me(e >>> 8, 8), m.w = Me(e, 8);
987
986
  }, jn = (m, e) => {
987
+ m.x = Me(e >>> 24, 8), m.y = Me(e >>> 16, 8), m.z = Me(e >>> 8, 8), m.w = Me(e, 8);
988
+ }, Yn = (m, e) => {
988
989
  const s = 1 / (Math.sqrt(2) * 0.5), t = (Me(e >>> 20, 10) - 0.5) * s, n = (Me(e >>> 10, 10) - 0.5) * s, r = (Me(e, 10) - 0.5) * s, i = Math.sqrt(1 - (t * t + n * n + r * r));
989
990
  switch (e >>> 30) {
990
991
  case 0:
@@ -1202,7 +1203,7 @@ class W {
1202
1203
  return function(i, o, a, l, c, d, u, h, f, p) {
1203
1204
  p = p || P.createSplat();
1204
1205
  const A = Math.floor((o + i) / 256);
1205
- return Bs(e, a[i]), jn(s, u[i]), Bs(t, c[i]), Kn(n, f[i]), p[r.X] = Oe(l.minX[A], l.maxX[A], e.x), p[r.Y] = Oe(l.minY[A], l.maxY[A], e.y), p[r.Z] = Oe(l.minZ[A], l.maxZ[A], 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(Oe(d.minScaleX[A], d.maxScaleX[A], t.x)), p[r.SCALE1] = Math.exp(Oe(d.minScaleY[A], d.maxScaleY[A], t.y)), p[r.SCALE2] = Math.exp(Oe(d.minScaleZ[A], d.maxScaleZ[A], t.z)), h.minR && h.maxR ? p[r.FDC0] = oe(Math.round(Oe(h.minR[A], h.maxR[A], n.x) * 255), 0, 255) : p[r.FDC0] = oe(Math.floor(n.x * 255), 0, 255), h.minG && h.maxG ? p[r.FDC1] = oe(Math.round(Oe(h.minG[A], h.maxG[A], n.y) * 255), 0, 255) : p[r.FDC1] = oe(Math.floor(n.y * 255), 0, 255), h.minB && h.maxB ? p[r.FDC2] = oe(Math.round(Oe(h.minB[A], h.maxB[A], n.z) * 255), 0, 255) : p[r.FDC2] = oe(Math.floor(n.z * 255), 0, 255), p[r.OPACITY] = oe(Math.floor(n.w * 255), 0, 255), p;
1206
+ return Bs(e, a[i]), Yn(s, u[i]), Bs(t, c[i]), jn(n, f[i]), p[r.X] = Oe(l.minX[A], l.maxX[A], e.x), p[r.Y] = Oe(l.minY[A], l.maxY[A], e.y), p[r.Z] = Oe(l.minZ[A], l.maxZ[A], 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(Oe(d.minScaleX[A], d.maxScaleX[A], t.x)), p[r.SCALE1] = Math.exp(Oe(d.minScaleY[A], d.maxScaleY[A], t.y)), p[r.SCALE2] = Math.exp(Oe(d.minScaleZ[A], d.maxScaleZ[A], t.z)), h.minR && h.maxR ? p[r.FDC0] = oe(Math.round(Oe(h.minR[A], h.maxR[A], n.x) * 255), 0, 255) : p[r.FDC0] = oe(Math.floor(n.x * 255), 0, 255), h.minG && h.maxG ? p[r.FDC1] = oe(Math.round(Oe(h.minG[A], h.maxG[A], n.y) * 255), 0, 255) : p[r.FDC1] = oe(Math.floor(n.y * 255), 0, 255), h.minB && h.maxB ? p[r.FDC2] = oe(Math.round(Oe(h.minB[A], h.maxB[A], n.z) * 255), 0, 255) : p[r.FDC2] = oe(Math.floor(n.z * 255), 0, 255), p[r.OPACITY] = oe(Math.floor(n.w * 255), 0, 255), p;
1206
1207
  };
1207
1208
  })();
1208
1209
  static decompressSphericalHarmonics = /* @__PURE__ */ (function() {
@@ -1406,7 +1407,7 @@ const Ie = {
1406
1407
  short: ts,
1407
1408
  ushort: ss,
1408
1409
  uchar: ns
1409
- }, Yn = {
1410
+ }, Xn = {
1410
1411
  [ln]: 8,
1411
1412
  [Zt]: 4,
1412
1413
  [$t]: 4,
@@ -1461,7 +1462,7 @@ class q {
1461
1462
  const x = s[C];
1462
1463
  x !== void 0 && (f[x] = p);
1463
1464
  }
1464
- p += Yn[Es[g]];
1465
+ p += Xn[Es[g]];
1465
1466
  }
1466
1467
  const A = q.decodeSphericalHarmonicsFromSectionHeader(u, s);
1467
1468
  return {
@@ -1606,9 +1607,8 @@ const cn = [
1606
1607
  "green",
1607
1608
  "blue",
1608
1609
  "f_rest_0"
1609
- ], Xn = cn.map((m, e) => e), [
1610
+ ], Jn = cn.map((m, e) => e), [
1610
1611
  vs,
1611
- Jn,
1612
1612
  Zn,
1613
1613
  $n,
1614
1614
  er,
@@ -1617,15 +1617,16 @@ const cn = [
1617
1617
  nr,
1618
1618
  rr,
1619
1619
  or,
1620
- Fs,
1621
1620
  ir,
1621
+ Fs,
1622
1622
  ar,
1623
+ lr,
1623
1624
  Ds,
1624
1625
  bs,
1625
- lr,
1626
1626
  cr,
1627
- dr
1628
- ] = Xn;
1627
+ dr,
1628
+ hr
1629
+ ] = Jn;
1629
1630
  class xe {
1630
1631
  static decodeHeaderLines(e) {
1631
1632
  let s = 0;
@@ -1715,18 +1716,18 @@ class xe {
1715
1716
  return function(g, x, w, y = 0, B = 0) {
1716
1717
  B = Math.min(B, w.sphericalHarmonicsDegree), xe.readSplat(g, w, x, y, e);
1717
1718
  const S = P.createSplat(B);
1718
- if (e[vs] !== void 0 ? (S[i] = Math.exp(e[vs]), S[o] = Math.exp(e[Jn]), S[a] = Math.exp(e[Zn])) : (S[i] = 0.01, S[o] = 0.01, S[a] = 0.01), e[Fs] !== void 0) {
1719
+ if (e[vs] !== void 0 ? (S[i] = Math.exp(e[vs]), S[o] = Math.exp(e[Zn]), S[a] = Math.exp(e[$n])) : (S[i] = 0.01, S[o] = 0.01, S[a] = 0.01), e[Fs] !== void 0) {
1719
1720
  const E = 0.28209479177387814;
1720
- S[h] = (0.5 + E * e[Fs]) * 255, S[f] = (0.5 + E * e[ir]) * 255, S[p] = (0.5 + E * e[ar]) * 255;
1721
- } else e[bs] !== void 0 ? (S[h] = e[bs] * 255, S[f] = e[lr] * 255, S[p] = e[cr] * 255) : (S[h] = 0, S[f] = 0, S[p] = 0);
1722
- if (e[Ds] !== void 0 && (S[A] = 1 / (1 + Math.exp(-e[Ds])) * 255), S[h] = oe(Math.floor(S[h]), 0, 255), S[f] = oe(Math.floor(S[f]), 0, 255), S[p] = oe(Math.floor(S[p]), 0, 255), S[A] = oe(Math.floor(S[A]), 0, 255), B >= 1 && e[dr] !== void 0) {
1721
+ S[h] = (0.5 + E * e[Fs]) * 255, S[f] = (0.5 + E * e[ar]) * 255, S[p] = (0.5 + E * e[lr]) * 255;
1722
+ } else e[bs] !== void 0 ? (S[h] = e[bs] * 255, S[f] = e[cr] * 255, S[p] = e[dr] * 255) : (S[h] = 0, S[f] = 0, S[p] = 0);
1723
+ if (e[Ds] !== void 0 && (S[A] = 1 / (1 + Math.exp(-e[Ds])) * 255), S[h] = oe(Math.floor(S[h]), 0, 255), S[f] = oe(Math.floor(S[f]), 0, 255), S[p] = oe(Math.floor(S[p]), 0, 255), S[A] = oe(Math.floor(S[A]), 0, 255), B >= 1 && e[hr] !== void 0) {
1723
1724
  for (let E = 0; E < 9; E++)
1724
1725
  S[C[E]] = e[w.sphericalHarmonicsDegree1Fields[E]];
1725
1726
  if (B >= 2)
1726
1727
  for (let E = 0; E < 15; E++)
1727
1728
  S[C[9 + E]] = e[w.sphericalHarmonicsDegree2Fields[E]];
1728
1729
  }
1729
- return s.set(e[$n], e[er], e[tr], e[sr]), s.normalize(), S[l] = s.x, S[c] = s.y, S[d] = s.z, S[u] = s.w, S[t] = e[nr], S[n] = e[rr], S[r] = e[or], S;
1730
+ return s.set(e[er], e[tr], e[sr], e[nr]), s.normalize(), S[l] = s.x, S[c] = s.y, S[d] = s.z, S[u] = s.w, S[t] = e[rr], S[n] = e[or], S[r] = e[ir], S;
1730
1731
  };
1731
1732
  })();
1732
1733
  static readSplat(e, s, t, n, r) {
@@ -1772,11 +1773,11 @@ const dn = [
1772
1773
  "rotation_im"
1773
1774
  ], St = dn.map((m, e) => e), [
1774
1775
  yt,
1775
- hr,
1776
1776
  ur,
1777
+ pr,
1777
1778
  Rs,
1778
1779
  xt,
1779
- pr,
1780
+ fr,
1780
1781
  Ut
1781
1782
  ] = [0, 1, 4, 16, 17, 18, 19], hn = [
1782
1783
  "scale_0",
@@ -1844,7 +1845,6 @@ const dn = [
1844
1845
  "f_rest_45"
1845
1846
  ], Gt = hn.map((m, e) => e), [
1846
1847
  Ps,
1847
- fr,
1848
1848
  mr,
1849
1849
  Ar,
1850
1850
  gr,
@@ -1853,11 +1853,12 @@ const dn = [
1853
1853
  yr,
1854
1854
  xr,
1855
1855
  Ir,
1856
+ Tr,
1856
1857
  Wt,
1857
1858
  un,
1858
1859
  pn,
1859
1860
  Os
1860
- ] = Gt, ks = Wt, Tr = un, wr = pn, It = (m) => {
1861
+ ] = Gt, ks = Wt, wr = un, Br = pn, It = (m) => {
1861
1862
  const e = (31744 & m) >> 10, s = 1023 & m;
1862
1863
  return (m >> 15 ? -1 : 1) * (e ? e === 31 ? s ? NaN : 1 / 0 : Math.pow(2, e - 15) * (1 + s / 1024) : s / 1024 * 6103515625e-14);
1863
1864
  };
@@ -1949,19 +1950,19 @@ class Ee {
1949
1950
  return function(g, x, w, y, B = 0, S = 0) {
1950
1951
  S = Math.min(S, w.sphericalHarmonicsDegree), Ee.readSplat(g, w, x, B, e);
1951
1952
  const E = P.createSplat(S);
1952
- if (e[Ps] !== void 0 ? (E[i] = y[xt][e[Ps]], E[o] = y[xt][e[fr]], E[a] = y[xt][e[mr]]) : (E[i] = 0.01, E[o] = 0.01, E[a] = 0.01), e[Wt] !== void 0 ? (E[h] = y[yt][e[Wt]], E[f] = y[yt][e[un]], E[p] = y[yt][e[pn]]) : e[ks] !== void 0 ? (E[h] = e[ks] * 255, E[f] = e[Tr] * 255, E[p] = e[wr] * 255) : (E[h] = 0, E[f] = 0, E[p] = 0), e[Os] !== void 0 && (E[A] = y[Rs][e[Os]]), E[h] = oe(Math.floor(E[h]), 0, 255), E[f] = oe(Math.floor(E[f]), 0, 255), E[p] = oe(Math.floor(E[p]), 0, 255), E[A] = oe(Math.floor(E[A]), 0, 255), S >= 1 && w.sphericalHarmonicsDegree >= 1) {
1953
+ if (e[Ps] !== void 0 ? (E[i] = y[xt][e[Ps]], E[o] = y[xt][e[mr]], E[a] = y[xt][e[Ar]]) : (E[i] = 0.01, E[o] = 0.01, E[a] = 0.01), e[Wt] !== void 0 ? (E[h] = y[yt][e[Wt]], E[f] = y[yt][e[un]], E[p] = y[yt][e[pn]]) : e[ks] !== void 0 ? (E[h] = e[ks] * 255, E[f] = e[wr] * 255, E[p] = e[Br] * 255) : (E[h] = 0, E[f] = 0, E[p] = 0), e[Os] !== void 0 && (E[A] = y[Rs][e[Os]]), E[h] = oe(Math.floor(E[h]), 0, 255), E[f] = oe(Math.floor(E[f]), 0, 255), E[p] = oe(Math.floor(E[p]), 0, 255), E[A] = oe(Math.floor(E[A]), 0, 255), S >= 1 && w.sphericalHarmonicsDegree >= 1) {
1953
1954
  for (let k = 0; k < 9; k++) {
1954
- const M = y[hr + k % 3];
1955
+ const M = y[ur + k % 3];
1955
1956
  E[C[k]] = M[e[w.sphericalHarmonicsDegree1Fields[k]]];
1956
1957
  }
1957
1958
  if (S >= 2 && w.sphericalHarmonicsDegree >= 2)
1958
1959
  for (let k = 0; k < 15; k++) {
1959
- const M = y[ur + k % 5];
1960
+ const M = y[pr + k % 5];
1960
1961
  E[C[9 + k]] = M[e[w.sphericalHarmonicsDegree2Fields[k]]];
1961
1962
  }
1962
1963
  }
1963
- const F = y[pr][e[Ar]], b = y[Ut][e[gr]], D = y[Ut][e[Cr]], R = y[Ut][e[Sr]];
1964
- return s.set(F, b, D, R), s.normalize(), E[l] = s.x, E[c] = s.y, E[d] = s.z, E[u] = s.w, E[t] = It(e[yr]), E[n] = It(e[xr]), E[r] = It(e[Ir]), E;
1964
+ const F = y[fr][e[gr]], b = y[Ut][e[Cr]], D = y[Ut][e[Sr]], R = y[Ut][e[yr]];
1965
+ return s.set(F, b, D, R), s.normalize(), E[l] = s.x, E[c] = s.y, E[d] = s.z, E[u] = s.w, E[t] = It(e[xr]), E[n] = It(e[Ir]), E[r] = It(e[Tr]), E;
1965
1966
  };
1966
1967
  })();
1967
1968
  static readSplat(e, s, t, n, r) {
@@ -2318,30 +2319,30 @@ class os {
2318
2319
  )) : ve(() => Ls.parseToUncompressedSplatBuffer(e, r));
2319
2320
  }
2320
2321
  }
2321
- const Br = (m) => new ReadableStream({
2322
+ const Er = (m) => new ReadableStream({
2322
2323
  async start(e) {
2323
2324
  e.enqueue(m), e.close();
2324
2325
  }
2325
2326
  });
2326
- async function Er(m) {
2327
+ async function vr(m) {
2327
2328
  try {
2328
- const e = Br(m);
2329
+ const e = Er(m);
2329
2330
  if (!e) throw new Error("Failed to create stream from data");
2330
- return await vr(e);
2331
+ return await Fr(e);
2331
2332
  } catch (e) {
2332
2333
  throw console.error("Error decompressing gzipped data:", e), e;
2333
2334
  }
2334
2335
  }
2335
- async function vr(m) {
2336
+ async function Fr(m) {
2336
2337
  const e = m.pipeThrough(new DecompressionStream("gzip")), t = await new Response(e).arrayBuffer();
2337
2338
  return new Uint8Array(t);
2338
2339
  }
2339
- const Fr = 1347635022, Dr = 1, br = 0.15;
2340
- function Mr(m) {
2340
+ const Dr = 1347635022, br = 1, Mr = 0.15;
2341
+ function Rr(m) {
2341
2342
  const e = m >> 15 & 1, s = m >> 10 & 31, t = m & 1023, n = e === 1 ? -1 : 1;
2342
2343
  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);
2343
2344
  }
2344
- function Rr(m) {
2345
+ function Pr(m) {
2345
2346
  return (m - 128) / 128;
2346
2347
  }
2347
2348
  function Ve(m) {
@@ -2358,7 +2359,7 @@ function Ve(m) {
2358
2359
  return console.error(`[SPZ: ERROR] Unsupported SH degree: ${m}`), 0;
2359
2360
  }
2360
2361
  }
2361
- const Pr = (function() {
2362
+ const Or = (function() {
2362
2363
  let m = [];
2363
2364
  const e = new ge(), 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, l = P.OFFSET.ROTATION1, c = P.OFFSET.ROTATION2, d = P.OFFSET.ROTATION3, u = P.OFFSET.FDC0, h = P.OFFSET.FDC1, f = P.OFFSET.FDC2, p = P.OFFSET.OPACITY, A = [Ve(0), Ve(1), Ve(2), Ve(3)], C = [
2364
2365
  0,
@@ -2420,13 +2421,13 @@ const Pr = (function() {
2420
2421
  return e.set(g.rotation[3], g.rotation[0], g.rotation[1], g.rotation[2]), e.normalize(), y[a] = e.x, y[l] = e.y, y[c] = e.z, y[d] = e.w, y[s] = g.position[0], y[t] = g.position[1], y[n] = g.position[2], y;
2421
2422
  };
2422
2423
  })();
2423
- function Or(m, e, s, t) {
2424
+ function kr(m, e, s, t) {
2424
2425
  return !(m.positions.length !== e * 3 * (t ? 2 : 3) || m.scales.length !== e * 3 || m.rotations.length !== e * 3 || m.alphas.length !== e || m.colors.length !== e * 3 || m.sh.length !== e * s * 3);
2425
2426
  }
2426
2427
  function zs(m, e, s, t, n) {
2427
2428
  e = Math.min(e, m.shDegree);
2428
2429
  const r = m.numPoints, i = Ve(m.shDegree), o = m.positions.length === r * 3 * 2;
2429
- if (!Or(m, r, i, o))
2430
+ if (!kr(m, r, i, o))
2430
2431
  return null;
2431
2432
  const a = {
2432
2433
  position: [],
@@ -2442,7 +2443,7 @@ function zs(m, e, s, t, n) {
2442
2443
  for (let h = 0; h < r; h++) {
2443
2444
  if (o)
2444
2445
  for (let g = 0; g < 3; g++)
2445
- a.position[g] = Mr(l[h * 3 + g]);
2446
+ a.position[g] = Rr(l[h * 3 + g]);
2446
2447
  else
2447
2448
  for (let g = 0; g < 3; g++) {
2448
2449
  const x = h * 9 + g * 3;
@@ -2460,11 +2461,11 @@ function zs(m, e, s, t, n) {
2460
2461
  const A = p[0] * p[0] + p[1] * p[1] + p[2] * p[2];
2461
2462
  a.rotation[3] = Math.sqrt(Math.max(0, 1 - A)), a.alpha = Math.floor(m.alphas[h]);
2462
2463
  for (let g = 0; g < 3; g++)
2463
- a.color[g] = Math.floor(((m.colors[h * 3 + g] / 255 - 0.5) / br * u + 0.5) * 255);
2464
+ a.color[g] = Math.floor(((m.colors[h * 3 + g] / 255 - 0.5) / Mr * u + 0.5) * 255);
2464
2465
  for (let g = 0; g < 3; g++)
2465
2466
  for (let x = 0; x < d; x++)
2466
- a.sh[g * d + x] = Rr(m.sh[d * 3 * h + x * 3 + g]);
2467
- const C = Pr(a, m.shDegree, e);
2467
+ a.sh[g * d + x] = Pr(m.sh[d * 3 * h + x * 3 + g]);
2468
+ const C = Or(a, m.shDegree, e);
2468
2469
  if (s) {
2469
2470
  const g = I.CompressionLevels[0].SphericalHarmonicsDegrees[e].BytesPerSplat, x = h * g + n;
2470
2471
  I.writeSplatDataToSectionBuffer(C, t, x, 0, e);
@@ -2472,8 +2473,8 @@ function zs(m, e, s, t, n) {
2472
2473
  t.addSplat(C);
2473
2474
  }
2474
2475
  }
2475
- const kr = 16, Lr = 1e7;
2476
- function Hr(m) {
2476
+ const Lr = 16, Hr = 1e7;
2477
+ function Ur(m) {
2477
2478
  const e = new DataView(m);
2478
2479
  let s = 0;
2479
2480
  const t = {
@@ -2485,11 +2486,11 @@ function Hr(m) {
2485
2486
  flags: e.getUint8(s + 14),
2486
2487
  reserved: e.getUint8(s + 15)
2487
2488
  };
2488
- if (s += kr, t.magic !== Fr)
2489
+ if (s += Lr, t.magic !== Dr)
2489
2490
  return console.error("[SPZ ERROR] deserializePackedGaussians: header not found"), null;
2490
2491
  if (t.version < 1 || t.version > 2)
2491
2492
  return console.error(`[SPZ ERROR] deserializePackedGaussians: version not supported: ${t.version}`), null;
2492
- if (t.numPoints > Lr)
2493
+ if (t.numPoints > Hr)
2493
2494
  return console.error(`[SPZ ERROR] deserializePackedGaussians: Too many points: ${t.numPoints}`), null;
2494
2495
  if (t.shDegree > 3)
2495
2496
  return console.error(`[SPZ ERROR] deserializePackedGaussians: Unsupported SH degree: ${t.shDegree}`), null;
@@ -2497,7 +2498,7 @@ function Hr(m) {
2497
2498
  numPoints: n,
2498
2499
  shDegree: t.shDegree,
2499
2500
  fractionalBits: t.fractionalBits,
2500
- antialiased: (t.flags & Dr) !== 0,
2501
+ antialiased: (t.flags & br) !== 0,
2501
2502
  positions: new Uint8Array(n * 3 * (i ? 2 : 3)),
2502
2503
  scales: new Uint8Array(n * 3),
2503
2504
  rotations: new Uint8Array(n * 3),
@@ -2515,10 +2516,10 @@ function Hr(m) {
2515
2516
  }
2516
2517
  return o;
2517
2518
  }
2518
- async function Ur(m) {
2519
+ async function zr(m) {
2519
2520
  try {
2520
- const e = await Er(m);
2521
- return Hr(e.buffer);
2521
+ const e = await vr(m);
2522
+ return Ur(e.buffer);
2522
2523
  } catch (e) {
2523
2524
  return console.error("[SPZ ERROR] loadSpzPacked: decompression error", e), null;
2524
2525
  }
@@ -2539,7 +2540,7 @@ class is {
2539
2540
  }
2540
2541
  static async loadFromFileData(e, s, t, n, r = 0, i, o, a, l) {
2541
2542
  await ve();
2542
- const c = await Ur(e);
2543
+ const c = await zr(e);
2543
2544
  r = Math.min(c.shDegree, r);
2544
2545
  const d = new P(r);
2545
2546
  if (n)
@@ -2847,7 +2848,7 @@ const Te = {
2847
2848
  KSplat: 1,
2848
2849
  Ply: 2,
2849
2850
  Spz: 3
2850
- }, Qs = (m) => m.endsWith(".ply") ? Te.Ply : m.endsWith(".splat") ? Te.Splat : m.endsWith(".ksplat") ? Te.KSplat : m.endsWith(".spz") ? Te.Spz : null, Ns = { type: "change" }, zt = { type: "start" }, Vs = { type: "end" }, Tt = new kn(), Gs = new Ln(), zr = Math.cos(70 * tn.DEG2RAD);
2851
+ }, Qs = (m) => m.endsWith(".ply") ? Te.Ply : m.endsWith(".splat") ? Te.Splat : m.endsWith(".ksplat") ? Te.KSplat : m.endsWith(".spz") ? Te.Spz : null, Ns = { type: "change" }, zt = { type: "start" }, Vs = { type: "end" }, Tt = new kn(), Gs = new Ln(), _r = Math.cos(70 * tn.DEG2RAD);
2851
2852
  class wt extends bn {
2852
2853
  constructor(e, s) {
2853
2854
  super(), this.object = e, this.domElement = s, this.domElement.style.touchAction = "none", this.enabled = !0, this.target = new v(), 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: We.ROTATE, MIDDLE: We.DOLLY, RIGHT: We.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() {
@@ -2891,7 +2892,7 @@ class wt extends bn {
2891
2892
  Ct.unproject(t.object), t.object.position.sub(Ct).add(ot), t.object.updateMatrixWorld(), rt = T.length();
2892
2893
  } else
2893
2894
  console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."), t.zoomToCursor = !1;
2894
- rt !== null && (this.screenSpacePanning ? t.target.set(0, 0, -1).transformDirection(t.object.matrix).multiplyScalar(rt).add(t.object.position) : (Tt.origin.copy(t.object.position), Tt.direction.set(0, 0, -1).transformDirection(t.object.matrix), Math.abs(t.object.up.dot(Tt.direction)) < zr ? e.lookAt(t.target) : (Gs.setFromNormalAndCoplanarPoint(t.object.up, t.target), Tt.intersectPlane(Gs, t.target))));
2895
+ rt !== null && (this.screenSpacePanning ? t.target.set(0, 0, -1).transformDirection(t.object.matrix).multiplyScalar(rt).add(t.object.position) : (Tt.origin.copy(t.object.position), Tt.direction.set(0, 0, -1).transformDirection(t.object.matrix), Math.abs(t.object.up.dot(Tt.direction)) < _r ? e.lookAt(t.target) : (Gs.setFromNormalAndCoplanarPoint(t.object.up, t.target), Tt.intersectPlane(Gs, t.target))));
2895
2896
  } else t.object.isOrthographicCamera && (t.object.zoom = Math.max(t.minZoom, Math.min(t.maxZoom, t.object.zoom / l)), t.object.updateProjectionMatrix(), gt = !0);
2896
2897
  return l = 1, B = !1, gt || me.distanceToSquared(t.object.position) > i || 8 * (1 - Be.dot(t.object.quaternion)) > i || Ge.distanceToSquared(t.target) > 0 ? (t.dispatchEvent(Ns), me.copy(t.object.position), Be.copy(t.object.quaternion), Ge.copy(t.target), gt = !1, !0) : !1;
2897
2898
  };
@@ -3217,7 +3218,7 @@ class wt extends bn {
3217
3218
  t.domElement.addEventListener("contextmenu", us), t.domElement.addEventListener("pointerdown", Ce), t.domElement.addEventListener("pointercancel", Le), t.domElement.addEventListener("wheel", hs, { passive: !1 }), this.update();
3218
3219
  }
3219
3220
  }
3220
- const _r = (m, e, s, t, n) => {
3221
+ const Qr = (m, e, s, t, n) => {
3221
3222
  const r = performance.now();
3222
3223
  let i = m.style.display === "none" ? 0 : parseFloat(m.style.opacity);
3223
3224
  isNaN(i) && (i = 1);
@@ -3229,7 +3230,7 @@ const _r = (m, e, s, t, n) => {
3229
3230
  e ? (d = (1 - c) * i, d < 1e-4 && (d = 0)) : d = (1 - i) * c + i, d > 0 ? (m.style.display = s, m.style.opacity = d) : m.style.display = "none", c >= 1 && (n && n(), window.clearInterval(o));
3230
3231
  }, 16);
3231
3232
  return o;
3232
- }, Qr = 500;
3233
+ }, Nr = 500;
3233
3234
  class ls {
3234
3235
  static elementIDGen = 0;
3235
3236
  constructor(e, s) {
@@ -3381,7 +3382,7 @@ class ls {
3381
3382
  }
3382
3383
  setMinimized(e, s) {
3383
3384
  const t = (n, r, i, o, a) => {
3384
- i ? n.style.display = r ? o : "none" : this.fadeTransitions[a] = _r(n, !r, o, Qr, () => {
3385
+ i ? n.style.display = r ? o : "none" : this.fadeTransitions[a] = Qr(n, !r, o, Nr, () => {
3385
3386
  this.fadeTransitions[a] = null;
3386
3387
  });
3387
3388
  };
@@ -3391,7 +3392,7 @@ class ls {
3391
3392
  this.messageContainerPrimary.innerHTML = e, this.messageContainerMin.innerHTML = e;
3392
3393
  }
3393
3394
  }
3394
- class Nr {
3395
+ class Vr {
3395
3396
  constructor(e) {
3396
3397
  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);
3397
3398
  const s = document.createElement("style");
@@ -3455,7 +3456,7 @@ class Nr {
3455
3456
  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);
3456
3457
  }
3457
3458
  }
3458
- class Vr {
3459
+ class Gr {
3459
3460
  constructor(e) {
3460
3461
  this.container = e || document.body, this.infoCells = {};
3461
3462
  const s = [
@@ -3545,7 +3546,7 @@ class Vr {
3545
3546
  }
3546
3547
  }
3547
3548
  const Ws = new v();
3548
- class Gr extends Je {
3549
+ class Wr extends Je {
3549
3550
  constructor(e = new v(0, 0, 1), s = new v(0, 0, 0), t = 1, n = 0.1, r = 16776960, i = t * 0.2, o = i * 0.2) {
3550
3551
  super(), this.type = "ArrowHelper";
3551
3552
  const a = new Is(n, n, t, 32);
@@ -3695,7 +3696,7 @@ class ht {
3695
3696
  s.transparent = !0, s.opacity = 0.6, s.depthTest = !1, s.depthWrite = !1, s.side = Kt;
3696
3697
  const t = new De(e, s), n = new v(0, 1, 0);
3697
3698
  n.normalize();
3698
- const r = new v(0, 0, 0), i = 0.5, o = 0.01, a = 56576, l = new Gr(n, r, i, o, a, 0.1, 0.03);
3699
+ const r = new v(0, 0, 0), i = 0.5, o = 0.01, a = 56576, l = new Wr(n, r, i, o, a, 0.1, 0.03);
3699
3700
  this.controlPlane = new Je(), this.controlPlane.add(t), this.controlPlane.add(l);
3700
3701
  }
3701
3702
  }
@@ -3861,7 +3862,7 @@ class ht {
3861
3862
  this.destroyMeshCursor(), this.destroyFocusMarker(), this.destroyDebugMeshes(), this.destroyControlPlane(), this.destroyRenderTargetCopyObjects(), this.destroySplatRendertarget();
3862
3863
  }
3863
3864
  }
3864
- const Wr = new v(1, 0, 0), qr = new v(0, 1, 0), Kr = new v(0, 0, 1);
3865
+ const qr = new v(1, 0, 0), Kr = new v(0, 1, 0), jr = new v(0, 0, 1);
3865
3866
  class _t {
3866
3867
  constructor(e = new v(), s = new v()) {
3867
3868
  this.origin = new v(), this.direction = new v(), this.setParameters(e, s);
@@ -3879,7 +3880,7 @@ class _t {
3879
3880
  return i && (i.origin.copy(this.origin), i.normal.set(0, 0, 0), i.distance = -1), !0;
3880
3881
  for (let o = 0; o < 3; o++) {
3881
3882
  if (n[o] == 0) continue;
3882
- const a = o == 0 ? Wr : o == 1 ? qr : Kr, l = n[o] < 0 ? r.max : r.min;
3883
+ const a = o == 0 ? qr : o == 1 ? Kr : jr, l = n[o] < 0 ? r.max : r.min;
3883
3884
  let c = -Math.sign(n[o]);
3884
3885
  s[0] = o == 0 ? l.x : o == 1 ? l.y : l.z;
3885
3886
  let d = s[0] - t[o];
@@ -3925,7 +3926,7 @@ const ke = {
3925
3926
  ThreeD: 0,
3926
3927
  TwoD: 1
3927
3928
  };
3928
- class jr {
3929
+ class Yr {
3929
3930
  constructor(e, s, t = !1) {
3930
3931
  this.ray = new _t(e, s), this.raycastAgainstTrueSplatEllipsoid = t;
3931
3932
  }
@@ -4871,7 +4872,7 @@ class Dt {
4871
4872
  `;
4872
4873
  }
4873
4874
  }
4874
- class Yr {
4875
+ class Xr {
4875
4876
  /**
4876
4877
  * Build the Three.js geometry that will be used to render the splats. The geometry is instanced and is made up of
4877
4878
  * vertices for a single quad as well as an attribute buffer for the splat indexes.
@@ -4887,7 +4888,7 @@ class Yr {
4887
4888
  return o.setUsage(On), r.setAttribute("splatIndex", o), r.instanceCount = 0, r;
4888
4889
  }
4889
4890
  }
4890
- class Xr extends Je {
4891
+ class Jr extends Je {
4891
4892
  constructor(e, s = new v(), t = new ge(), n = new v(1, 1, 1), r = 1, i = 1, o = !0) {
4892
4893
  super(), this.splatBuffer = e, this.position.copy(s), this.quaternion.copy(t), this.scale.copy(n), this.transform = new J(), this.minimumAlpha = r, this.opacity = i, this.visible = o;
4893
4894
  }
@@ -4935,7 +4936,7 @@ class ut {
4935
4936
  }), t;
4936
4937
  }
4937
4938
  }
4938
- function Jr(m) {
4939
+ function Zr(m) {
4939
4940
  let e = 0;
4940
4941
  class s {
4941
4942
  constructor(a, l) {
@@ -5068,7 +5069,7 @@ function Jr(m) {
5068
5069
  o.data.process && i(o.data.process.centers, o.data.process.maxDepth, o.data.process.maxCentersPerNode);
5069
5070
  };
5070
5071
  }
5071
- function Zr(m, e, s, t, n) {
5072
+ function $r(m, e, s, t, n) {
5072
5073
  m.postMessage({
5073
5074
  process: {
5074
5075
  centers: e,
@@ -5077,16 +5078,16 @@ function Zr(m, e, s, t, n) {
5077
5078
  }
5078
5079
  }, s);
5079
5080
  }
5080
- function $r() {
5081
+ function eo() {
5081
5082
  return new Worker(
5082
5083
  URL.createObjectURL(
5083
- new Blob(["(", Jr.toString(), ")(self)"], {
5084
+ new Blob(["(", Zr.toString(), ")(self)"], {
5084
5085
  type: "application/javascript"
5085
5086
  })
5086
5087
  )
5087
5088
  );
5088
5089
  }
5089
- class eo {
5090
+ class to {
5090
5091
  constructor(e, s) {
5091
5092
  this.maxDepth = e, this.maxCentersPerNode = s, this.subTrees = [], this.splatMesh = null;
5092
5093
  }
@@ -5108,7 +5109,7 @@ class eo {
5108
5109
  * @return {undefined}
5109
5110
  */
5110
5111
  processSplatMesh = function(e, s = () => !0, t, n) {
5111
- this.splatTreeWorker || (this.splatTreeWorker = $r()), this.splatMesh = e, this.subTrees = [];
5112
+ this.splatTreeWorker || (this.splatTreeWorker = eo()), this.splatMesh = e, this.subTrees = [];
5112
5113
  const r = new v(), i = (o, a) => {
5113
5114
  const l = new Float32Array(a * 4);
5114
5115
  let c = 0;
@@ -5153,7 +5154,7 @@ class eo {
5153
5154
  if (a()) return;
5154
5155
  t && t(!0);
5155
5156
  const c = l.map((d) => d.buffer);
5156
- Zr(this.splatTreeWorker, l, c, this.maxDepth, this.maxCentersPerNode);
5157
+ $r(this.splatTreeWorker, l, c, this.maxDepth, this.maxCentersPerNode);
5157
5158
  });
5158
5159
  });
5159
5160
  });
@@ -5174,7 +5175,7 @@ class eo {
5174
5175
  s(t.rootNode, e);
5175
5176
  }
5176
5177
  }
5177
- function to(m) {
5178
+ function so(m) {
5178
5179
  const e = {};
5179
5180
  function s(t) {
5180
5181
  if (e[t] !== void 0)
@@ -5211,7 +5212,7 @@ function to(m) {
5211
5212
  }
5212
5213
  };
5213
5214
  }
5214
- function so(m, e, s) {
5215
+ function no(m, e, s) {
5215
5216
  let t;
5216
5217
  function n() {
5217
5218
  if (t !== void 0) return t;
@@ -5262,10 +5263,10 @@ const pt = {
5262
5263
  }, tt = {
5263
5264
  None: 0,
5264
5265
  Info: 3
5265
- }, qs = new sn(), no = new ft(), Bt = 6, ro = 4, oo = 4, io = 4, ao = 6, lo = 8, Qt = 4, Nt = 4, Ks = 1, co = 0.012, ho = 3e-3, js = 1, Ys = 16777216;
5266
+ }, qs = new sn(), ro = new ft(), Bt = 6, oo = 4, io = 4, ao = 4, lo = 6, co = 8, Qt = 4, Nt = 4, Ks = 1, ho = 0.012, uo = 3e-3, js = 1, Ys = 16777216;
5266
5267
  class ye extends De {
5267
5268
  constructor(e = ke.ThreeD, s = !1, t = !1, n = !1, r = 1, i = !0, o = !1, a = !1, l = 1024, c = tt.None, d = 0, u = 1, h = 0.3) {
5268
- super(qs, no), 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 = l, this.logLevel = c, this.sphericalHarmonicsDegree = d, this.minSphericalHarmonicsDegree = 0, this.sceneFadeInRateMultiplier = u, this.scenes = [], this.splatTree = null, this.baseSplatTree = null, this.splatDataTextures = {}, this.distancesTransformFeedback = {
5269
+ super(qs, ro), 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 = l, this.logLevel = c, this.sphericalHarmonicsDegree = d, this.minSphericalHarmonicsDegree = 0, this.sceneFadeInRateMultiplier = u, this.scenes = [], this.splatTree = null, this.baseSplatTree = null, this.splatDataTextures = {}, this.distancesTransformFeedback = {
5269
5270
  id: null,
5270
5271
  vertexShader: null,
5271
5272
  fragmentShader: null,
@@ -5313,7 +5314,7 @@ class ye extends De {
5313
5314
  return n;
5314
5315
  }
5315
5316
  static createScene(e, s, t, n, r, i = 1, o = !0) {
5316
- return new Xr(e, s, t, n, r, i, o);
5317
+ return new Jr(e, s, t, n, r, i, o);
5317
5318
  }
5318
5319
  /**
5319
5320
  * Build data structures that map global splat indexes (based on a unified index across all splat buffers) to
@@ -5345,7 +5346,7 @@ class ye extends De {
5345
5346
  */
5346
5347
  buildSplatTree = function(e = [], s, t) {
5347
5348
  return new Promise((n) => {
5348
- this.disposeSplatTree(), this.baseSplatTree = new eo(8, 1e3);
5349
+ this.disposeSplatTree(), this.baseSplatTree = new to(8, 1e3);
5349
5350
  const r = performance.now(), i = new qt();
5350
5351
  this.baseSplatTree.processSplatMesh(this, (o) => {
5351
5352
  this.getSplatColor(o, i);
@@ -5416,7 +5417,7 @@ class ye extends De {
5416
5417
  }
5417
5418
  let u = !0;
5418
5419
  if ((this.scenes.length !== 1 || this.lastBuildSceneCount !== this.scenes.length || this.lastBuildMaxSplatCount !== a || d) && (u = !1), !u) {
5419
- this.boundingBox = new it(), 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 = Yr.build(a), this.splatRenderMode === ke.ThreeD ? this.material = Ft.build(
5420
+ this.boundingBox = new it(), 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 = Xr.build(a), this.splatRenderMode === ke.ThreeD ? this.material = Ft.build(
5420
5421
  this.dynamicMode,
5421
5422
  this.enableOptionalEffects,
5422
5423
  this.antialiased,
@@ -5563,7 +5564,7 @@ class ye extends De {
5563
5564
  const F = new N(4096, 1024);
5564
5565
  for (; F.x * F.y * S < e * E; ) F.y *= 2;
5565
5566
  return F;
5566
- }, n = (S) => S >= 1 ? ao : oo, r = (S) => {
5567
+ }, n = (S) => S >= 1 ? lo : io, r = (S) => {
5567
5568
  const E = n(S), F = t(E, 6);
5568
5569
  return { elementsPerTexelStored: E, texSize: F };
5569
5570
  };
@@ -5604,7 +5605,7 @@ class ye extends De {
5604
5605
  }, this.splatRenderMode === ke.ThreeD) {
5605
5606
  const S = r(i), E = S.elementsPerTexelStored, F = S.texSize;
5606
5607
  let b = i >= 1 ? Uint32Array : Float32Array;
5607
- const D = i >= 1 ? lo : io, R = new b(F.x * F.y * D);
5608
+ const D = i >= 1 ? co : ao, R = new b(F.x * F.y * D);
5608
5609
  i === 0 ? R.set(l) : ye.updatePaddedCompressedCovariancesTextureData(l, R, 0, 0, l.length);
5609
5610
  let k;
5610
5611
  if (i >= 1)
@@ -5761,7 +5762,7 @@ class ye extends De {
5761
5762
  l.size,
5762
5763
  u,
5763
5764
  Nt,
5764
- ro,
5765
+ oo,
5765
5766
  4,
5766
5767
  e,
5767
5768
  s
@@ -5952,7 +5953,7 @@ class ye extends De {
5952
5953
  static updateCenterColorsPaddedData(e, s, t, n, r) {
5953
5954
  for (let i = e; i <= s; i++) {
5954
5955
  const o = i * 4, a = i * 3, l = i * 4;
5955
- r[l] = Qn(n, o), r[l + 1] = Ot(t[a]), r[l + 2] = Ot(t[a + 1]), r[l + 3] = Ot(t[a + 2]);
5956
+ r[l] = Nn(n, o), r[l + 1] = Ot(t[a]), r[l + 2] = Ot(t[a + 1]), r[l + 3] = Ot(t[a + 2]);
5956
5957
  }
5957
5958
  }
5958
5959
  static updateScaleRotationsPaddedData(e, s, t, n, r) {
@@ -5978,7 +5979,7 @@ class ye extends De {
5978
5979
  this.maxSplatDistanceFromSceneCenter - this.visibleRegionBufferRadius > js && (this.visibleRegionBufferRadius = this.maxSplatDistanceFromSceneCenter, this.visibleRegionRadius = Math.max(this.visibleRegionBufferRadius - js, 0)), this.finalBuild && (this.visibleRegionRadius = this.visibleRegionBufferRadius = this.maxSplatDistanceFromSceneCenter), this.updateVisibleRegionFadeDistance();
5979
5980
  }
5980
5981
  updateVisibleRegionFadeDistance(e = pt.Default) {
5981
- const s = co * this.sceneFadeInRateMultiplier, t = ho * this.sceneFadeInRateMultiplier, n = this.finalBuild ? s : t, r = e === pt.Default ? n : t;
5982
+ const s = ho * this.sceneFadeInRateMultiplier, t = uo * this.sceneFadeInRateMultiplier, n = this.finalBuild ? s : t, r = e === pt.Default ? n : t;
5982
5983
  this.visibleRegionFadeStartRadius = (this.visibleRegionRadius - this.visibleRegionFadeStartRadius) * r + this.visibleRegionFadeStartRadius;
5983
5984
  const o = (this.visibleRegionBufferRadius > 0 ? this.visibleRegionFadeStartRadius / this.visibleRegionBufferRadius : 0) > 0.99, a = o || e === pt.Instant ? 1 : 0;
5984
5985
  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;
@@ -6078,7 +6079,7 @@ class ye extends De {
6078
6079
  setRenderer(e) {
6079
6080
  if (e !== this.renderer) {
6080
6081
  this.renderer = e;
6081
- const s = this.renderer.getContext(), t = new to(s), n = new so(s, t, {});
6082
+ const s = this.renderer.getContext(), t = new so(s), n = new no(s, t, {});
6082
6083
  if (t.init(n), this.webGLUtils = new Tn(s, t), this.enableDistancesComputationOnGPU && this.getSplatCount() > 0) {
6083
6084
  this.setupDistancesComputationTransformFeedback();
6084
6085
  const { centers: r, sceneIndexes: i } = this.getDataForDistancesComputation(0, this.getSplatCount() - 1);
@@ -6500,8 +6501,8 @@ class ye extends De {
6500
6501
  return new it(r, i);
6501
6502
  }
6502
6503
  }
6503
- var uo = "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", Xs = "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", po = "AGFzbQEAAAAADwhkeWxpbmsuMAEEAAAAAAEXAmAAAGAQf39/f39/f39/f39/f39/fwACDwEDZW52Bm1lbW9yeQIAAAMDAgABBz4DEV9fd2FzbV9jYWxsX2N0b3JzAAAYX193YXNtX2FwcGx5X2RhdGFfcmVsb2NzAAALc29ydEluZGV4ZXMAAQrrDwICAAvlDwQBfAN7B30DfyALIAprIQwCQAJAIA4EQCANBEBB+P///wchCkGIgICAeCENIAsgDE0NAyAMIQUDQCADIAVBAnQiAWogAiAAIAFqKAIAQQJ0aigCACIBNgIAIAEgCiABIApIGyEKIAEgDSABIA1KGyENIAVBAWoiBSALRw0ACwwDCyAPBEAgCyAMTQ0CQX8hD0H4////ByEKQYiAgIB4IQ0gDCECA0AgDyAHIAAgAkECdCIcaigCACIdQQJ0aigCACIbRwRAAn8gBf0JAjggCCAbQQZ0aiIO/QkCDCAOKgIc/SABIA4qAiz9IAIgDioCPP0gA/3mASAF/QkCKCAO/QkCCCAOKgIY/SABIA4qAij9IAIgDioCOP0gA/3mASAF/QkCCCAO/QkCACAOKgIQ/SABIA4qAiD9IAIgDioCMP0gA/3mASAF/QkCGCAO/QkCBCAOKgIU/SABIA4qAiT9IAIgDioCNP0gA/3mAf3kAf3kAf3kASIR/V/9DAAAAAAAQI9AAAAAAABAj0AiEv3yASIT/SEBIhCZRAAAAAAAAOBBYwRAIBCqDAELQYCAgIB4CyEOAn8gE/0hACIQmUQAAAAAAADgQWMEQCAQqgwBC0GAgICAeAv9ESAO/RwBAn8gESAR/Q0ICQoLDA0ODwABAgMAAQID/V8gEv3yASIR/SEAIhCZRAAAAAAAAOBBYwRAIBCqDAELQYCAgIB4C/0cAgJ/IBH9IQEiEJlEAAAAAAAA4EFjBEAgEKoMAQtBgICAgHgL/RwDIRIgGyEPCyADIBxqIAEgHUEEdGr9AAAAIBL9tQEiEf0bACAR/RsBaiAR/RsCaiAR/RsDaiIONgIAIA4gCiAKIA5KGyEKIA4gDSANIA5IGyENIAJBAWoiAiALRw0ACwwDCwJ/IAUqAgi7/RQgBSoCGLv9IgH9DAAAAAAAQI9AAAAAAABAj0D98gEiEf0hASIQmUQAAAAAAADgQWMEQCAQqgwBC0GAgICAeAshDgJ/IBH9IQAiEJlEAAAAAAAA4EFjBEAgEKoMAQtBgICAgHgLAn8gBSoCKLtEAAAAAABAj0CiIhCZRAAAAAAAAOBBYwRAIBCqDAELQYCAgIB4CyEFQfj///8HIQpBiICAgHghDSALIAxNDQL9ESAO/RwBIAX9HAIhEiAMIQUDQCADIAVBAnQiAmogASAAIAJqKAIAQQR0av0AAAAgEv21ASIR/RsAIBH9GwFqIBH9GwJqIgI2AgAgAiAKIAIgCkgbIQogAiANIAIgDUobIQ0gBUEBaiIFIAtHDQALDAILIA0EQEH4////ByEKQYiAgIB4IQ0gCyAMTQ0CIAwhBQNAIAMgBUECdCIBagJ/IAIgACABaigCAEECdGoqAgC7RAAAAAAAALBAoiIQmUQAAAAAAADgQWMEQCAQqgwBC0GAgICAeAsiDjYCACAKIA4gCiAOSBshCiANIA4gDSAOShshDSAFQQFqIgUgC0cNAAsMAgsgD0UEQCALIAxNDQEgBSoCKCEUIAUqAhghFSAFKgIIIRZB+P///wchCkGIgICAeCENIAwhBQNAAn8gFCABIAAgBUECdCIHaigCAEEEdGoiAioCCJQgFiACKgIAlCAVIAIqAgSUkpK7RAAAAAAAALBAoiIQmUQAAAAAAADgQWMEQCAQqgwBC0GAgICAeAshDiADIAdqIA42AgAgCiAOIAogDkgbIQogDSAOIA0gDkobIQ0gBUEBaiIFIAtHDQALDAILIAsgDE0NAEF/IQ9B+P///wchCkGIgICAeCENIAwhAgNAIA8gByAAIAJBAnQiG2ooAgBBAnQiHGooAgAiDkcEQCAFKgI4IhQgCCAOQQZ0aiIPKgI8lCAFKgIoIhUgDyoCOJQgBSoCCCIWIA8qAjCUIAUqAhgiFyAPKgI0lJKSkiEYIBQgDyoCLJQgFSAPKgIolCAWIA8qAiCUIBcgDyoCJJSSkpIhGSAUIA8qAhyUIBUgDyoCGJQgFiAPKgIQlCAXIA8qAhSUkpKSIRogFCAPKgIMlCAVIA8qAgiUIBYgDyoCAJQgFyAPKgIElJKSkiEUIA4hDwsgAyAbagJ/IBggASAcQQJ0aiIOKgIMlCAZIA4qAgiUIBQgDioCAJQgGiAOKgIElJKSkrtEAAAAAAAAsECiIhCZRAAAAAAAAOBBYwRAIBCqDAELQYCAgIB4CyIONgIAIAogDiAKIA5IGyEKIA0gDiANIA5KGyENIAJBAWoiAiALRw0ACwwBC0GIgICAeCENQfj///8HIQoLIAsgDEsEQCAJQQFrsyANsiAKspOVIRQgDCENA0ACfyAUIAMgDUECdGoiASgCACAKa7KUIhWLQwAAAE9dBEAgFagMAQtBgICAgHgLIQ4gASAONgIAIAQgDkECdGoiASABKAIAQQFqNgIAIA1BAWoiDSALRw0ACwsgCUECTwRAIAQoAgAhDUEBIQoDQCAEIApBAnRqIgEgASgCACANaiINNgIAIApBAWoiCiAJRw0ACwsgDEEASgRAIAwhCgNAIAYgCkEBayIBQQJ0IgJqIAAgAmooAgA2AgAgCkEBSyABIQoNAAsLIAsgDEoEQCALIQoDQCAGIAsgBCADIApBAWsiCkECdCIBaigCAEECdGoiAigCACIFa0ECdGogACABaigCADYCACACIAVBAWs2AgAgCiAMSg0ACwsL", fo = "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";
6504
- function mo(m) {
6504
+ var po = "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", Xs = "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", fo = "AGFzbQEAAAAADwhkeWxpbmsuMAEEAAAAAAEXAmAAAGAQf39/f39/f39/f39/f39/fwACDwEDZW52Bm1lbW9yeQIAAAMDAgABBz4DEV9fd2FzbV9jYWxsX2N0b3JzAAAYX193YXNtX2FwcGx5X2RhdGFfcmVsb2NzAAALc29ydEluZGV4ZXMAAQrrDwICAAvlDwQBfAN7B30DfyALIAprIQwCQAJAIA4EQCANBEBB+P///wchCkGIgICAeCENIAsgDE0NAyAMIQUDQCADIAVBAnQiAWogAiAAIAFqKAIAQQJ0aigCACIBNgIAIAEgCiABIApIGyEKIAEgDSABIA1KGyENIAVBAWoiBSALRw0ACwwDCyAPBEAgCyAMTQ0CQX8hD0H4////ByEKQYiAgIB4IQ0gDCECA0AgDyAHIAAgAkECdCIcaigCACIdQQJ0aigCACIbRwRAAn8gBf0JAjggCCAbQQZ0aiIO/QkCDCAOKgIc/SABIA4qAiz9IAIgDioCPP0gA/3mASAF/QkCKCAO/QkCCCAOKgIY/SABIA4qAij9IAIgDioCOP0gA/3mASAF/QkCCCAO/QkCACAOKgIQ/SABIA4qAiD9IAIgDioCMP0gA/3mASAF/QkCGCAO/QkCBCAOKgIU/SABIA4qAiT9IAIgDioCNP0gA/3mAf3kAf3kAf3kASIR/V/9DAAAAAAAQI9AAAAAAABAj0AiEv3yASIT/SEBIhCZRAAAAAAAAOBBYwRAIBCqDAELQYCAgIB4CyEOAn8gE/0hACIQmUQAAAAAAADgQWMEQCAQqgwBC0GAgICAeAv9ESAO/RwBAn8gESAR/Q0ICQoLDA0ODwABAgMAAQID/V8gEv3yASIR/SEAIhCZRAAAAAAAAOBBYwRAIBCqDAELQYCAgIB4C/0cAgJ/IBH9IQEiEJlEAAAAAAAA4EFjBEAgEKoMAQtBgICAgHgL/RwDIRIgGyEPCyADIBxqIAEgHUEEdGr9AAAAIBL9tQEiEf0bACAR/RsBaiAR/RsCaiAR/RsDaiIONgIAIA4gCiAKIA5KGyEKIA4gDSANIA5IGyENIAJBAWoiAiALRw0ACwwDCwJ/IAUqAgi7/RQgBSoCGLv9IgH9DAAAAAAAQI9AAAAAAABAj0D98gEiEf0hASIQmUQAAAAAAADgQWMEQCAQqgwBC0GAgICAeAshDgJ/IBH9IQAiEJlEAAAAAAAA4EFjBEAgEKoMAQtBgICAgHgLAn8gBSoCKLtEAAAAAABAj0CiIhCZRAAAAAAAAOBBYwRAIBCqDAELQYCAgIB4CyEFQfj///8HIQpBiICAgHghDSALIAxNDQL9ESAO/RwBIAX9HAIhEiAMIQUDQCADIAVBAnQiAmogASAAIAJqKAIAQQR0av0AAAAgEv21ASIR/RsAIBH9GwFqIBH9GwJqIgI2AgAgAiAKIAIgCkgbIQogAiANIAIgDUobIQ0gBUEBaiIFIAtHDQALDAILIA0EQEH4////ByEKQYiAgIB4IQ0gCyAMTQ0CIAwhBQNAIAMgBUECdCIBagJ/IAIgACABaigCAEECdGoqAgC7RAAAAAAAALBAoiIQmUQAAAAAAADgQWMEQCAQqgwBC0GAgICAeAsiDjYCACAKIA4gCiAOSBshCiANIA4gDSAOShshDSAFQQFqIgUgC0cNAAsMAgsgD0UEQCALIAxNDQEgBSoCKCEUIAUqAhghFSAFKgIIIRZB+P///wchCkGIgICAeCENIAwhBQNAAn8gFCABIAAgBUECdCIHaigCAEEEdGoiAioCCJQgFiACKgIAlCAVIAIqAgSUkpK7RAAAAAAAALBAoiIQmUQAAAAAAADgQWMEQCAQqgwBC0GAgICAeAshDiADIAdqIA42AgAgCiAOIAogDkgbIQogDSAOIA0gDkobIQ0gBUEBaiIFIAtHDQALDAILIAsgDE0NAEF/IQ9B+P///wchCkGIgICAeCENIAwhAgNAIA8gByAAIAJBAnQiG2ooAgBBAnQiHGooAgAiDkcEQCAFKgI4IhQgCCAOQQZ0aiIPKgI8lCAFKgIoIhUgDyoCOJQgBSoCCCIWIA8qAjCUIAUqAhgiFyAPKgI0lJKSkiEYIBQgDyoCLJQgFSAPKgIolCAWIA8qAiCUIBcgDyoCJJSSkpIhGSAUIA8qAhyUIBUgDyoCGJQgFiAPKgIQlCAXIA8qAhSUkpKSIRogFCAPKgIMlCAVIA8qAgiUIBYgDyoCAJQgFyAPKgIElJKSkiEUIA4hDwsgAyAbagJ/IBggASAcQQJ0aiIOKgIMlCAZIA4qAgiUIBQgDioCAJQgGiAOKgIElJKSkrtEAAAAAAAAsECiIhCZRAAAAAAAAOBBYwRAIBCqDAELQYCAgIB4CyIONgIAIAogDiAKIA5IGyEKIA0gDiANIA5KGyENIAJBAWoiAiALRw0ACwwBC0GIgICAeCENQfj///8HIQoLIAsgDEsEQCAJQQFrsyANsiAKspOVIRQgDCENA0ACfyAUIAMgDUECdGoiASgCACAKa7KUIhWLQwAAAE9dBEAgFagMAQtBgICAgHgLIQ4gASAONgIAIAQgDkECdGoiASABKAIAQQFqNgIAIA1BAWoiDSALRw0ACwsgCUECTwRAIAQoAgAhDUEBIQoDQCAEIApBAnRqIgEgASgCACANaiINNgIAIApBAWoiCiAJRw0ACwsgDEEASgRAIAwhCgNAIAYgCkEBayIBQQJ0IgJqIAAgAmooAgA2AgAgCkEBSyABIQoNAAsLIAsgDEoEQCALIQoDQCAGIAsgBCADIApBAWsiCkECdCIBaigCAEECdGoiAigCACIFa0ECdGogACABaigCADYCACACIAVBAWs2AgAgCiAMSg0ACwsL", mo = "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";
6505
+ function Ao(m) {
6505
6506
  let e, s, t, n, r, i, o, a, l, c, d, u, h, f, p, A, C, g, x, w;
6506
6507
  function y(B, S, E, F, b, D, R) {
6507
6508
  const k = performance.now();
@@ -6605,17 +6606,17 @@ function mo(m) {
6605
6606
  }
6606
6607
  };
6607
6608
  }
6608
- function Ao(m, e, s, t, n, r = Y.DefaultSplatSortDistanceMapPrecision) {
6609
+ function go(m, e, s, t, n, r = Y.DefaultSplatSortDistanceMapPrecision) {
6609
6610
  const i = new Worker(
6610
6611
  URL.createObjectURL(
6611
- new Blob(["(", mo.toString(), ")(self)"], {
6612
+ new Blob(["(", Ao.toString(), ")(self)"], {
6612
6613
  type: "application/javascript"
6613
6614
  })
6614
6615
  )
6615
6616
  );
6616
- let o = uo;
6617
+ let o = po;
6617
6618
  const a = Yt() ? on() : null;
6618
- !s && !e ? (o = Xs, a && a.major <= 16 && a.minor < 4 && (o = fo)) : s ? e || a && a.major <= 16 && a.minor < 4 && (o = po) : o = Xs;
6619
+ !s && !e ? (o = Xs, a && a.major <= 16 && a.minor < 4 && (o = mo)) : s ? e || a && a.major <= 16 && a.minor < 4 && (o = fo) : o = Xs;
6619
6620
  const l = atob(o), c = new Uint8Array(l.length);
6620
6621
  for (let d = 0; d < l.length; d++)
6621
6622
  c[d] = l.charCodeAt(d);
@@ -6707,7 +6708,7 @@ class nt {
6707
6708
  }
6708
6709
  nt.xrSessionIsGranted = !1;
6709
6710
  nt.registerSessionGrantedListener();
6710
- class go {
6711
+ class Co {
6711
6712
  static createButton(e, s = {}) {
6712
6713
  const t = document.createElement("button");
6713
6714
  function n() {
@@ -6765,7 +6766,7 @@ class go {
6765
6766
  const Vt = {
6766
6767
  Always: 0,
6767
6768
  Never: 2
6768
- }, Co = 50, So = 0.75, yo = 15e5, xo = 10, Io = 2.5, To = 60;
6769
+ }, So = 50, yo = 0.75, xo = 15e5, Io = 10, To = 2.5, wo = 60;
6769
6770
  class Ze {
6770
6771
  constructor(e = {}) {
6771
6772
  if (e.cameraUp || (e.cameraUp = [0, 1, 0]), this.cameraUp = new v().fromArray(e.cameraUp), e.initialCameraPosition || (e.initialCameraPosition = [0, 10, 15]), this.initialCameraPosition = new v().fromArray(e.initialCameraPosition), e.initialCameraLookAt || (e.initialCameraLookAt = [0, 0, 0]), this.initialCameraLookAt = new v().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 || Ye.None, this.webXRMode !== Ye.None && (this.gpuAcceleratedSort = !1), this.webXRActive = !1, this.webXRSessionInit = e.webXRSessionInit || {}, this.renderMode = e.renderMode || Vt.Always, this.sceneRevealMode = e.sceneRevealMode || pt.Default, this.focalAdjustment = e.focalAdjustment || 1, this.maxScreenSpaceSplatSize = e.maxScreenSpaceSplatSize || 1024, this.logLevel = e.logLevel || tt.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, Yt()) {
@@ -6774,7 +6775,7 @@ class Ze {
6774
6775
  }
6775
6776
  (e.splatRenderMode === void 0 || e.splatRenderMode === null) && (e.splatRenderMode = ke.ThreeD), this.splatRenderMode = e.splatRenderMode, this.sceneFadeInRateMultiplier = e.sceneFadeInRateMultiplier || 1, this.splatSortDistanceMapPrecision = e.splatSortDistanceMapPrecision || Y.DefaultSplatSortDistanceMapPrecision;
6776
6777
  const s = this.integerBasedSort ? 20 : 24;
6777
- this.splatSortDistanceMapPrecision = oe(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 jr(), this.infoPanel = null, this.startInOrthographicMode = !1, this.currentFPS = 0, this.lastSortTime = 0, this.consecutiveRenderFrames = 0, this.previousCameraTarget = new v(), this.nextCameraTarget = new v(), this.mousePosition = new N(), this.mouseDownPosition = new N(), 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 ls(null, this.rootElement || document.body), this.loadingSpinner.hide(), this.loadingProgressBar = new Nr(this.rootElement || document.body), this.loadingProgressBar.hide(), this.infoPanel = new Vr(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();
6778
+ this.splatSortDistanceMapPrecision = oe(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 Yr(), this.infoPanel = null, this.startInOrthographicMode = !1, this.currentFPS = 0, this.lastSortTime = 0, this.consecutiveRenderFrames = 0, this.previousCameraTarget = new v(), this.nextCameraTarget = new v(), this.mousePosition = new N(), this.mouseDownPosition = new N(), 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 ls(null, this.rootElement || document.body), this.loadingSpinner.hide(), this.loadingProgressBar = new Vr(this.rootElement || document.body), this.loadingProgressBar.hide(), this.infoPanel = new Gr(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();
6778
6779
  }
6779
6780
  createSplatMesh() {
6780
6781
  this.splatMesh = new ye(
@@ -6799,7 +6800,7 @@ class Ze {
6799
6800
  setupCamera() {
6800
6801
  if (!this.usingExternalCamera) {
6801
6802
  const e = new N();
6802
- this.getRenderDimensions(e), this.perspectiveCamera = new Zs(Co, e.x / e.y, 0.1, 1e3), this.orthographicCamera = new $s(
6803
+ this.getRenderDimensions(e), this.perspectiveCamera = new Zs(So, e.x / e.y, 0.1, 1e3), this.orthographicCamera = new $s(
6803
6804
  e.x / -2,
6804
6805
  e.x / 2,
6805
6806
  e.y / 2,
@@ -6821,7 +6822,7 @@ class Ze {
6821
6822
  }
6822
6823
  }
6823
6824
  setupWebXR(e) {
6824
- this.webXRMode && (this.webXRMode === Ye.VR ? this.rootElement.appendChild(nt.createButton(this.renderer, e)) : this.webXRMode === Ye.AR && this.rootElement.appendChild(go.createButton(this.renderer, e)), this.renderer.xr.addEventListener("sessionstart", (s) => {
6825
+ this.webXRMode && (this.webXRMode === Ye.VR ? this.rootElement.appendChild(nt.createButton(this.renderer, e)) : this.webXRMode === Ye.AR && this.rootElement.appendChild(Co.createButton(this.renderer, e)), this.renderer.xr.addEventListener("sessionstart", (s) => {
6825
6826
  this.webXRActive = !0;
6826
6827
  }), this.renderer.xr.addEventListener("sessionend", (s) => {
6827
6828
  this.webXRActive = !1;
@@ -6910,7 +6911,7 @@ class Ze {
6910
6911
  return function() {
6911
6912
  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)) {
6912
6913
  const r = t[0].origin;
6913
- s.copy(r).sub(this.camera.position), s.length() > So && (this.previousCameraTarget.copy(this.controls.target), this.nextCameraTarget.copy(r), this.transitioningCameraTarget = !0, this.transitioningCameraTargetStartTime = Ke());
6914
+ s.copy(r).sub(this.camera.position), s.length() > yo && (this.previousCameraTarget.copy(this.controls.target), this.nextCameraTarget.copy(r), this.transitioningCameraTarget = !0, this.transitioningCameraTargetStartTime = Ke());
6914
6915
  }
6915
6916
  };
6916
6917
  })();
@@ -7340,7 +7341,7 @@ class Ze {
7340
7341
  const c = (h) => {
7341
7342
  if (this.isDisposingOrDisposed()) return;
7342
7343
  const f = this.splatMesh.getSplatCount();
7343
- r && f >= yo && !h && !e && (this.loadingSpinner.setMinimized(!0, !0), e = this.loadingSpinner.addTask("Optimizing data structures..."));
7344
+ r && f >= xo && !h && !e && (this.loadingSpinner.setMinimized(!0, !0), e = this.loadingSpinner.addTask("Optimizing data structures..."));
7344
7345
  }, d = (h) => {
7345
7346
  this.isDisposingOrDisposed() || h && e && (this.loadingSpinner.removeTask(e), e = null);
7346
7347
  }, u = this.splatMesh.build(
@@ -7364,7 +7365,7 @@ class Ze {
7364
7365
  if (!this.isDisposingOrDisposed())
7365
7366
  return new Promise((s) => {
7366
7367
  const t = this.integerBasedSort ? Int32Array : Float32Array, n = e.getSplatCount(), r = e.getMaxSplatCount();
7367
- this.sortWorker = Ao(
7368
+ this.sortWorker = go(
7368
7369
  r,
7369
7370
  this.sharedMemoryForWorkers,
7370
7371
  this.enableSIMDInSort,
@@ -7544,7 +7545,7 @@ class Ze {
7544
7545
  updateFPS = (function() {
7545
7546
  let e = Ke(), s = 0;
7546
7547
  return function() {
7547
- if (this.consecutiveRenderFrames > To) {
7548
+ if (this.consecutiveRenderFrames > wo) {
7548
7549
  const t = Ke();
7549
7550
  t - e >= 1 ? (this.currentFPS = s, s = 0, e = t) : s++;
7550
7551
  } else
@@ -7584,13 +7585,13 @@ class Ze {
7584
7585
  if (this.getRenderDimensions(e), this.transitioningCameraTarget) {
7585
7586
  this.sceneHelper.setFocusMarkerVisibility(!0);
7586
7587
  const n = Math.max(this.sceneHelper.getFocusMarkerOpacity(), 0);
7587
- let r = Math.min(n + xo * t, 1);
7588
+ let r = Math.min(n + Io * t, 1);
7588
7589
  this.sceneHelper.setFocusMarkerOpacity(r), this.sceneHelper.updateFocusMarker(this.nextCameraTarget, this.camera, e), s = !0, this.forceRenderNextFrame();
7589
7590
  } else {
7590
7591
  let n;
7591
7592
  if (s ? n = 1 : n = Math.min(this.sceneHelper.getFocusMarkerOpacity(), 1), n > 0) {
7592
7593
  this.sceneHelper.updateFocusMarker(this.nextCameraTarget, this.camera, e);
7593
- let r = Math.max(n - Io * t, 0);
7594
+ let r = Math.max(n - To * t, 0);
7594
7595
  this.sceneHelper.setFocusMarkerOpacity(r), r === 0 && this.sceneHelper.setFocusMarkerVisibility(!1);
7595
7596
  }
7596
7597
  n > 0 && this.forceRenderNextFrame(), s = !1;
@@ -7765,7 +7766,7 @@ class Ze {
7765
7766
  return navigator.userAgent.includes("Mobi");
7766
7767
  }
7767
7768
  }
7768
- class wo {
7769
+ class Bo {
7769
7770
  renderer;
7770
7771
  viewer;
7771
7772
  container;
@@ -7867,7 +7868,7 @@ class wo {
7867
7868
  this.pauseRendering(), await this.viewer.dispose(), this.container.contains(this.renderer.domElement) && this.container.removeChild(this.renderer.domElement), this.renderer.dispose(), this.renderer.forceContextLoss();
7868
7869
  }
7869
7870
  }
7870
- const Bo = {
7871
+ const Eo = {
7871
7872
  identity: [0, 0, 0, 1],
7872
7873
  "x-90": [-0.7071068, 0, 0, 0.7071068],
7873
7874
  x90: [0.7071068, 0, 0, 0.7071068],
@@ -7878,7 +7879,7 @@ const Bo = {
7878
7879
  z90: [0, 0, 0.7071068, 0.7071068],
7879
7880
  z180: [0, 0, 1, 0]
7880
7881
  };
7881
- class Eo {
7882
+ class vo {
7882
7883
  orientationPreset;
7883
7884
  constructor(e = "x180") {
7884
7885
  this.orientationPreset = e;
@@ -7890,7 +7891,7 @@ class Eo {
7890
7891
  return this.orientationPreset;
7891
7892
  }
7892
7893
  getOrientationRotation() {
7893
- return [...Bo[this.orientationPreset]];
7894
+ return [...Eo[this.orientationPreset]];
7894
7895
  }
7895
7896
  active() {
7896
7897
  }
@@ -7901,10 +7902,10 @@ class Eo {
7901
7902
  dispose() {
7902
7903
  }
7903
7904
  }
7904
- function vo(m, e) {
7905
+ function Fo(m, e) {
7905
7906
  return `${m}#${e}`;
7906
7907
  }
7907
- class Fo {
7908
+ class Do {
7908
7909
  viewer;
7909
7910
  getDefaultRotation;
7910
7911
  scenes = /* @__PURE__ */ new Map();
@@ -7922,7 +7923,7 @@ class Fo {
7922
7923
  };
7923
7924
  await this.viewer.addSplatScene(e, n);
7924
7925
  const r = {
7925
- id: n.id ?? vo(e, t),
7926
+ id: n.id ?? Fo(e, t),
7926
7927
  name: n.name ?? e.split(/[\\/]/).pop() ?? e,
7927
7928
  url: e,
7928
7929
  index: t,
@@ -7960,7 +7961,7 @@ class Fo {
7960
7961
  });
7961
7962
  }
7962
7963
  }
7963
- class Ro {
7964
+ class Oo {
7964
7965
  eventModule;
7965
7966
  sceneModule;
7966
7967
  cameraModule;
@@ -7968,9 +7969,10 @@ class Ro {
7968
7969
  controlModule;
7969
7970
  loaderModule;
7970
7971
  isInitialized = !1;
7972
+ options;
7971
7973
  version = Hn;
7972
7974
  constructor(e) {
7973
- this.initialize(e);
7975
+ this.options = e, this.initialize(e);
7974
7976
  }
7975
7977
  initialize(e) {
7976
7978
  const s = {
@@ -7989,17 +7991,17 @@ class Ro {
7989
7991
  }, t = document.getElementById(s.containerId);
7990
7992
  if (!t)
7991
7993
  throw new Error(`Container with id "${s.containerId}" not found`);
7992
- this.eventModule = new Un(), this.sceneModule = new zn(s.backgroundColor), this.cameraModule = new _n(
7994
+ this.eventModule = new zn(), this.sceneModule = new _n(s.backgroundColor), this.cameraModule = new Qn(
7993
7995
  t,
7994
7996
  s.cameraUp,
7995
7997
  s.initialCameraPosition,
7996
7998
  s.initialCameraLookAt
7997
- ), this.controlModule = new Eo(s.orientationPreset), this.renderModule = new wo(
7999
+ ), this.controlModule = new vo(s.orientationPreset), this.renderModule = new Bo(
7998
8000
  t,
7999
8001
  this.sceneModule.getScene(),
8000
8002
  this.cameraModule.getCamera(),
8001
8003
  s
8002
- ), this.loaderModule = new Fo(
8004
+ ), this.loaderModule = new Do(
8003
8005
  this.renderModule.getViewer(),
8004
8006
  () => this.controlModule.getOrientationRotation()
8005
8007
  ), this.renderModule.setOnBeforeRender(() => {
@@ -8027,6 +8029,19 @@ class Ro {
8027
8029
  }), t;
8028
8030
  }
8029
8031
  }
8032
+ /**
8033
+ * 通过 viewToken 解析 Gaussian 资源地址,再复用现有 URL 加载逻辑。
8034
+ */
8035
+ async loadModelByViewToken(e, s = {}) {
8036
+ const t = await Un(
8037
+ this.options,
8038
+ e,
8039
+ "gaussian"
8040
+ );
8041
+ if (t.assetCategory === "composite_model" && t.urls.length > 1)
8042
+ throw new Error("EngineKernelGaussian: composite_model viewToken is not supported");
8043
+ return this.loadModel(t.url, s);
8044
+ }
8030
8045
  async unloadModel(e) {
8031
8046
  this.checkInitialized(), await this.loaderModule.unloadModel(e, !1), this.eventModule.trigger(Ne.SceneRemoved, { id: e });
8032
8047
  }
@@ -8071,5 +8086,5 @@ class Ro {
8071
8086
  }
8072
8087
  }
8073
8088
  export {
8074
- Ro as EngineKernelGaussian
8089
+ Oo as EngineKernelGaussian
8075
8090
  };