iflow-engine-base 3.9.20 → 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.
- package/README.md +118 -0
- package/dist/bim-engine-sdk.es.js +7 -7
- package/dist/bim-engine-sdk.umd.js +696 -696
- package/dist/chunks/{engine-2d-mQsokiAx.js → engine-2d-DAiE1uAy.js} +98 -85
- package/dist/chunks/{engine-3d-CeUaONqH.js → engine-3d-CdsLfd0i.js} +1124 -1113
- package/dist/chunks/{engine-720-BrYzIaAW.js → engine-720-K9uF9wMA.js} +40 -26
- package/dist/chunks/{engine-gaussian-BDphGvln.js → engine-gaussian-x3jsCp15.js} +141 -126
- package/dist/chunks/{engine-gis-nj5ISJb2.js → engine-gis-BStgPU0Q.js} +778 -578
- package/dist/chunks/{sdk-assets-F7qFhuao.js → sdk-assets-1SXx8Tbf.js} +1 -1
- package/dist/chunks/{sdk-runtime-DLvF5IZ2.js → sdk-runtime-cY1Wn7o-.js} +1554 -1350
- package/dist/index.d.ts +74 -1
- package/dist2d/dwg-preview.es.js +1075 -859
- package/dist2d/dwg-preview.umd.js +17 -17
- package/distGaussian/gaussian.es.js +396 -75
- package/distGaussian/gaussian.umd.js +1 -1
- package/package.json +1 -1
|
@@ -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-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
})(),
|
|
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
|
|
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
|
|
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
|
|
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 +
|
|
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
|
|
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)),
|
|
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 =
|
|
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) =>
|
|
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]),
|
|
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
|
-
},
|
|
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 +=
|
|
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
|
-
],
|
|
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
|
-
|
|
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[
|
|
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[
|
|
1721
|
-
} else e[bs] !== void 0 ? (S[h] = e[bs] * 255, S[f] = e[
|
|
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[
|
|
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[
|
|
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
|
-
|
|
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,
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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[
|
|
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
|
|
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
|
|
2327
|
+
async function vr(m) {
|
|
2327
2328
|
try {
|
|
2328
|
-
const e =
|
|
2329
|
+
const e = Er(m);
|
|
2329
2330
|
if (!e) throw new Error("Failed to create stream from data");
|
|
2330
|
-
return await
|
|
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
|
|
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
|
|
2340
|
-
function
|
|
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
|
|
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
|
|
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
|
|
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 (!
|
|
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] =
|
|
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) /
|
|
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] =
|
|
2467
|
-
const C =
|
|
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
|
|
2476
|
-
function
|
|
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 +=
|
|
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 >
|
|
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 &
|
|
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
|
|
2519
|
+
async function zr(m) {
|
|
2519
2520
|
try {
|
|
2520
|
-
const e = await
|
|
2521
|
-
return
|
|
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
|
|
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(),
|
|
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)) <
|
|
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
|
|
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
|
-
},
|
|
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] =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 ?
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
5081
|
+
function eo() {
|
|
5081
5082
|
return new Worker(
|
|
5082
5083
|
URL.createObjectURL(
|
|
5083
|
-
new Blob(["(",
|
|
5084
|
+
new Blob(["(", Zr.toString(), ")(self)"], {
|
|
5084
5085
|
type: "application/javascript"
|
|
5085
5086
|
})
|
|
5086
5087
|
)
|
|
5087
5088
|
);
|
|
5088
5089
|
}
|
|
5089
|
-
class
|
|
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 =
|
|
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
|
-
|
|
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
|
|
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
|
|
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(),
|
|
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,
|
|
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
|
|
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
|
|
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 =
|
|
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 ?
|
|
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 ?
|
|
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
|
-
|
|
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] =
|
|
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 =
|
|
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
|
|
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 = "AGFzbQEAAAAADwhkeWxpbmsuMAEEAAAAAAEXAmAAAGAQf39/f39/f39/f39/f39/fwACEgEDZW52Bm1lbW9yeQIDAICABAMDAgABBz4DEV9fd2FzbV9jYWxsX2N0b3JzAAAYX193YXNtX2FwcGx5X2RhdGFfcmVsb2NzAAALc29ydEluZGV4ZXMAAQqiDwICAAucDwMBfAd9Bn8gCyAKayEMAkACQCAOBEAgDQRAQfj///8HIQpBiICAgHghDSALIAxNDQMgDCEFA0AgAyAFQQJ0IgFqIAIgACABaigCAEECdGooAgAiATYCACABIAogASAKSBshCiABIA0gASANShshDSAFQQFqIgUgC0cNAAsMAwsgDwRAIAsgDE0NAkF/IQ9B+P///wchCkGIgICAeCENIAwhAgNAIA8gByAAIAJBAnQiGmooAgBBAnQiG2ooAgAiDkcEQAJ/IAUqAjgiESAIIA5BBnRqIg8qAjyUIAUqAigiEiAPKgI4lCAFKgIIIhMgDyoCMJQgBSoCGCIUIA8qAjSUkpKSu0QAAAAAAECPQKIiEJlEAAAAAAAA4EFjBEAgEKoMAQtBgICAgHgLIRgCfyARIA8qAiyUIBIgDyoCKJQgEyAPKgIglCAUIA8qAiSUkpKSu0QAAAAAAECPQKIiEJlEAAAAAAAA4EFjBEAgEKoMAQtBgICAgHgLIRkCfyARIA8qAhyUIBIgDyoCGJQgEyAPKgIQlCAUIA8qAhSUkpKSu0QAAAAAAECPQKIiEJlEAAAAAAAA4EFjBEAgEKoMAQtBgICAgHgLIRwCfyARIA8qAgyUIBIgDyoCCJQgEyAPKgIAlCAUIA8qAgSUkpKSu0QAAAAAAECPQKIiEJlEAAAAAAAA4EFjBEAgEKoMAQtBgICAgHgLIR0gDiEPCyADIBpqIAEgG0ECdGoiDigCBCAcbCAOKAIAIB1saiAOKAIIIBlsaiAOKAIMIBhsaiIONgIAIA4gCiAKIA5KGyEKIA4gDSANIA5IGyENIAJBAWoiAiALRw0ACwwDCwJ/IAUqAii7RAAAAAAAQI9AoiIQmUQAAAAAAADgQWMEQCAQqgwBC0GAgICAeAshAgJ/IAUqAhi7RAAAAAAAQI9AoiIQmUQAAAAAAADgQWMEQCAQqgwBC0GAgICAeAshByALIAxNAn8gBSoCCLtEAAAAAABAj0CiIhCZRAAAAAAAAOBBYwRAIBCqDAELQYCAgIB4CyEPQfj///8HIQpBiICAgHghDQ0CIAwhBQNAIAMgBUECdCIIaiABIAAgCGooAgBBBHRqIggoAgQgB2wgCCgCACAPbGogCCgCCCACbGoiCDYCACAIIAogCCAKSBshCiAIIA0gCCANShshDSAFQQFqIgUgC0cNAAsMAgsgDQRAQfj///8HIQpBiICAgHghDSALIAxNDQIgDCEFA0AgAyAFQQJ0IgFqAn8gAiAAIAFqKAIAQQJ0aioCALtEAAAAAAAAsECiIhCZRAAAAAAAAOBBYwRAIBCqDAELQYCAgIB4CyIONgIAIAogDiAKIA5IGyEKIA0gDiANIA5KGyENIAVBAWoiBSALRw0ACwwCCyAPRQRAIAsgDE0NASAFKgIoIREgBSoCGCESIAUqAgghE0H4////ByEKQYiAgIB4IQ0gDCEFA0ACfyARIAEgACAFQQJ0IgdqKAIAQQR0aiICKgIIlCATIAIqAgCUIBIgAioCBJSSkrtEAAAAAAAAsECiIhCZRAAAAAAAAOBBYwRAIBCqDAELQYCAgIB4CyEOIAMgB2ogDjYCACAKIA4gCiAOSBshCiANIA4gDSAOShshDSAFQQFqIgUgC0cNAAsMAgsgCyAMTQ0AQX8hD0H4////ByEKQYiAgIB4IQ0gDCECA0AgDyAHIAAgAkECdCIYaigCAEECdCIZaigCACIORwRAIAUqAjgiESAIIA5BBnRqIg8qAjyUIAUqAigiEiAPKgI4lCAFKgIIIhMgDyoCMJQgBSoCGCIUIA8qAjSUkpKSIRUgESAPKgIslCASIA8qAiiUIBMgDyoCIJQgFCAPKgIklJKSkiEWIBEgDyoCHJQgEiAPKgIYlCATIA8qAhCUIBQgDyoCFJSSkpIhFyARIA8qAgyUIBIgDyoCCJQgEyAPKgIAlCAUIA8qAgSUkpKSIREgDiEPCyADIBhqAn8gFSABIBlBAnRqIg4qAgyUIBYgDioCCJQgESAOKgIAlCAXIA4qAgSUkpKSu0QAAAAAAACwQKIiEJlEAAAAAAAA4EFjBEAgEKoMAQtBgICAgHgLIg42AgAgCiAOIAogDkgbIQogDSAOIA0gDkobIQ0gAkEBaiICIAtHDQALDAELQYiAgIB4IQ1B+P///wchCgsgCyAMSwRAIAlBAWuzIA2yIAqyk5UhESAMIQ0DQAJ/IBEgAyANQQJ0aiIBKAIAIAprspQiEotDAAAAT10EQCASqAwBC0GAgICAeAshDiABIA42AgAgBCAOQQJ0aiIBIAEoAgBBAWo2AgAgDUEBaiINIAtHDQALCyAJQQJPBEAgBCgCACENQQEhCgNAIAQgCkECdGoiASABKAIAIA1qIg02AgAgCkEBaiIKIAlHDQALCyAMQQBKBEAgDCEKA0AgBiAKQQFrIgFBAnQiAmogACACaigCADYCACAKQQFLIAEhCg0ACwsgCyAMSgRAIAshCgNAIAYgCyAEIAMgCkEBayIKQQJ0IgFqKAIAQQJ0aiICKAIAIgVrQQJ0aiAAIAFqKAIANgIAIAIgBUEBazYCACAKIAxKDQALCws=", po = "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", fo = "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";
|
|
6504
|
-
function
|
|
6504
|
+
var po = "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", Xs = "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", fo = "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", 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
|
|
6609
|
+
function go(m, e, s, t, n, r = Y.DefaultSplatSortDistanceMapPrecision) {
|
|
6609
6610
|
const i = new Worker(
|
|
6610
6611
|
URL.createObjectURL(
|
|
6611
|
-
new Blob(["(",
|
|
6612
|
+
new Blob(["(", Ao.toString(), ")(self)"], {
|
|
6612
6613
|
type: "application/javascript"
|
|
6613
6614
|
})
|
|
6614
6615
|
)
|
|
6615
6616
|
);
|
|
6616
|
-
let o =
|
|
6617
|
+
let o = po;
|
|
6617
6618
|
const a = Yt() ? on() : null;
|
|
6618
|
-
!s && !e ? (o = Xs, a && a.major <= 16 && a.minor < 4 && (o =
|
|
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
|
|
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
|
-
},
|
|
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
|
|
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(
|
|
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(
|
|
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() >
|
|
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 >=
|
|
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 =
|
|
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 >
|
|
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 +
|
|
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 -
|
|
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
|
|
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
|
|
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
|
|
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 [...
|
|
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
|
|
7905
|
+
function Fo(m, e) {
|
|
7905
7906
|
return `${m}#${e}`;
|
|
7906
7907
|
}
|
|
7907
|
-
class
|
|
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 ??
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
8089
|
+
Oo as EngineKernelGaussian
|
|
8075
8090
|
};
|