qg3dviewer 1.0.2 → 1.0.4
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 +0 -93
- package/dist/events/EventConstants.d.ts +4 -0
- package/dist/index.es.js +1050 -1036
- package/dist/index.umd.js +14 -14
- package/dist/meshs/splatmesh/SplatMesh.d.ts +3 -1
- package/package.json +5 -4
package/dist/index.es.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var sn = (n, t, e) =>
|
|
4
|
-
import { Matrix4 as $t, Vector3 as Q, Vector4 as Gt, InstancedBufferGeometry as
|
|
5
|
-
import * as
|
|
1
|
+
var cr = Object.defineProperty;
|
|
2
|
+
var lr = (n, t, e) => t in n ? cr(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
|
|
3
|
+
var sn = (n, t, e) => lr(n, typeof t != "symbol" ? t + "" : t, e);
|
|
4
|
+
import { Matrix4 as $t, Vector3 as Q, Vector4 as Gt, InstancedBufferGeometry as Ci, BufferAttribute as Ce, InstancedBufferAttribute as Ar, DynamicDrawUsage as ur, ShaderMaterial as za, DoubleSide as Jt, NormalBlending as hr, DataTexture as se, RGBAIntegerFormat as ae, UnsignedIntType as oe, Mesh as pt, Vector2 as ft, Loader as dr, FileLoader as gr, Color as $i, SRGBColorSpace as fr, Group as tn, BufferGeometry as Sn, Float32BufferAttribute as Vt, LineBasicMaterial as pn, Material as ws, PointsMaterial as an, MeshPhongMaterial as pr, LineSegments as yi, Points as Vn, WebGLRenderer as Ha, PerspectiveCamera as Oa, Object3D as zn, CylinderGeometry as Es, MeshBasicMaterial as ee, PlaneGeometry as mr, Quaternion as be, Controls as Cr, MOUSE as Wt, TOUCH as Zt, Spherical as vs, Ray as yr, Plane as Ir, MathUtils as te, InstancedInterleavedBuffer as Ii, InterleavedBufferAttribute as ye, WireframeGeometry as wr, Box3 as Ji, Sphere as Ya, ShaderLib as mn, UniformsUtils as Ga, UniformsLib as Cn, Line3 as Er, CircleGeometry as re, Raycaster as vr, CatmullRomCurve3 as xs, Scene as qa, AmbientLight as Va, FogExp2 as Ss, DirectionalLight as xr, EventDispatcher as Sr, Clock as br } from "three";
|
|
5
|
+
import * as bs from "@gotoeasy/three-tile";
|
|
6
6
|
let I = 1;
|
|
7
|
-
const Me = I++,
|
|
8
|
-
class
|
|
7
|
+
const Me = I++, Wa = I++, Ie = I++, Mr = I++, wi = I++, Ei = I++, $a = I++, Wn = I++, Ja = I++, ke = I++, dt = I++, Z = I++, ja = I++, vi = I++, Ot = I++, Be = I++, Lt = I++, en = I++, Ka = I++, Xa = I++, Za = I++, to = I++, eo = I++, no = I++, ji = I++, Br = I++, Qr = I++, Ms = I++, ht = I++, UA = I++, it = I++, Ee = I++, ve = I++, Bs = I++, Qs = I++, Ds = I++, io = I++, Dr = I++, ks = I++, on = I++, rn = I++, Ts = I++, Ls = I++, Rs = I++, ce = I++, _s = I++, qe = I++, so = I++, Le = I++, Re = I++, yn = I++, ao = I++, xi = I++, kr = I++, bn = I++, $n = I++, Jn = I++, Mn = I++, Bn = I++, Qn = I++, Dn = I++, oo = I++, Ki = I++, _ = I++, he = I++, Ve = I++, Y = I++, Hn = I++, Xi = I++, Tr = I++, Ct = I++, Si = I++, St = I++, ro = I++, co = I++, lo = I++, Ao = I++, bi = I++, uo = I++, le = I++, Zi = I++, ts = I++, He = I++, Lr = I++, ho = I++, go = I++, NA = I++, On = I++, jn = I++, Fs = I++, Ps = I++, Mi = I++, kn = I++, Bi = I++, Oe = I++, Mt = I++, es = I++, zA = I++, fo = I++, po = I++, cn = I++, Kn = I++, Qi = I++, Rr = I++, In = I++, Tn = I++, ns = I++, xe = I++, de = I++, We = I++, ln = I++, mo = I++, et = I++, ct = I++, _r = I++, Us = I++, Ln = I++, Rn = I++, Fr = I++, is = I++, ss = I++, ne = I++, Ye = I++, Te = I++, Pr = I++, Co = I++, Ur = I++, HA = I++, OA = I++, YA = I++, GA = I++, qA = I++, ie = I++, $e = I++, wn = I++, Di = I++, yo = I++, Io = I++, ki = I++, jt = I++, Pe = I++, wo = I++, as = I++, Ns = I++, Nr = I++, zr = I++, os = I++, rs = I++, cs = I++, ls = I++, As = I++, Je = I++, Eo = I++, zs = I++, _n = I++, xt = I++, vo = I++, Ti = I++, xo = I++, Ue = I++, So = I++, bo = I++, us = I++, Mo = I++, Bo = I++, Hs = I++, Qo = I++, Do = I++, ko = I++, Ne = I++, To = I++, Li = I++, Hr = I++, Lo = I++, Fn = I++, En = I++, Pn = I++, Xn = I++, Zn = I++, ti = I++, Ri = I++, Ro = I++, _o = I++, VA = I++, Fo = I++, Po = I++, ot = I++, _i = I++, Fi = I++, Pi = I++, Or = I++, Uo = I++, Yr = I++, Gr = I++, qr = I++, Vr = I++, Wr = I++, No = I++, zo = I++, WA = I++, $A = I++, JA = I++, jA = I++, KA = I++, XA = I++, ZA = I++, tu = I++, Ui = I++, Ni = I++, ei = I++, ni = I++, hs = I++, Os = I++, Ho = I++, eu = I++, nu = I++, iu = I++, su = I++, au = I++, ou = I++, ru = I++, Oo = I++, Un = I++;
|
|
8
|
+
class ds {
|
|
9
9
|
constructor() {
|
|
10
10
|
this.functions = /* @__PURE__ */ new Map(), this.map = /* @__PURE__ */ new Map();
|
|
11
11
|
}
|
|
@@ -56,9 +56,9 @@ class hs {
|
|
|
56
56
|
return i(...e);
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
-
class
|
|
59
|
+
class $r {
|
|
60
60
|
}
|
|
61
|
-
class
|
|
61
|
+
class Jr {
|
|
62
62
|
constructor(t, e = {}) {
|
|
63
63
|
this.fileSize = 0, this.downloadSize = 0, this.status = 0, this.splatData = null, this.watermarkData = null, this.dataSplatCount = 0, this.watermarkCount = 0, this.sh12Data = [], this.sh3Data = [], this.sh12Count = 0, this.sh3Count = 0, this.rowLength = 0, this.modelSplatCount = -1, this.downloadSplatCount = 0, this.renderSplatCount = 0, this.header = null, this.CompressionRatio = "", this.dataShDegree = 0, this.minX = 1 / 0, this.maxX = -1 / 0, this.minY = 1 / 0, this.maxY = -1 / 0, this.minZ = 1 / 0, this.maxZ = -1 / 0, this.topY = 0, this.currentRadius = 0, this.maxRadius = 0, this.textWatermarkVersion = 0, this.lastTextWatermarkVersion = 0, this.fetchLimit = 0, this.opts = { ...t };
|
|
64
64
|
const i = this;
|
|
@@ -66,9 +66,9 @@ class Wr {
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
var P = /* @__PURE__ */ ((n) => (n[n.FetchReady = 0] = "FetchReady", n[n.Fetching = 1] = "Fetching", n[n.FetchDone = 2] = "FetchDone", n[n.FetchAborted = 3] = "FetchAborted", n[n.FetchFailed = 4] = "FetchFailed", n[n.Invalid = 5] = "Invalid", n))(P || {});
|
|
69
|
-
const
|
|
69
|
+
const gs = "v2.0.0-dev", yt = navigator.userAgent.includes("Mobi"), jr = "QWERTYUIOPLKJHGFDSAZXCVBNM1234567890qwertyuioplkjhgfdsazxcvbnm`~!@#$%^&*()-_=+\\|]}[{'\";::,<.>//? ", Kr = yt ? 600 : 300, Xr = yt ? 2e3 : 300, fe = 128, vn = 32, O = 32, Zr = 20, tc = 16, Yo = 64 * 1024, ec = 1024 * 1e4, nc = 10240 * 1e4, Ut = 0.28209479177387814, ic = 1, Qe = 5, sc = 9, ac = 0, oc = 20, rc = 190, je = 1, Yt = 2, ge = 3, cc = 4, lc = 3141592653;
|
|
70
70
|
var Ke = /* @__PURE__ */ ((n) => (n[n.Default = 1] = "Default", n[n.ZdepthFrontNearest2010 = 2010] = "ZdepthFrontNearest2010", n[n.ZdepthFront2011 = 2011] = "ZdepthFront2011", n[n.ZdepthFrontNearFar2012 = 2012] = "ZdepthFrontNearFar2012", n[n.ZdepthFullNearFar2112 = 2112] = "ZdepthFullNearFar2112", n))(Ke || {});
|
|
71
|
-
function
|
|
71
|
+
function Ac(n) {
|
|
72
72
|
if (Object.prototype.hasOwnProperty.call(n, "__esModule")) return n;
|
|
73
73
|
var t = n.default;
|
|
74
74
|
if (typeof t == "function") {
|
|
@@ -88,21 +88,21 @@ function cc(n) {
|
|
|
88
88
|
}), e;
|
|
89
89
|
}
|
|
90
90
|
var xn = { exports: {} };
|
|
91
|
-
const
|
|
91
|
+
const uc = {}, hc = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
92
92
|
__proto__: null,
|
|
93
|
-
default:
|
|
94
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
93
|
+
default: uc
|
|
94
|
+
}, Symbol.toStringTag, { value: "Module" })), dc = /* @__PURE__ */ Ac(hc);
|
|
95
95
|
/*!
|
|
96
96
|
* Based on xzwasm (c) Steve Sanderson. License: MIT - https://github.com/SteveSanderson/xzwasm
|
|
97
97
|
* Contains xz-embedded by Lasse Collin and Igor Pavlov. License: Public domain - https://tukaani.org/xz/embedded.html
|
|
98
98
|
* and walloc (c) 2020 Igalia, S.L. License: MIT - https://github.com/wingo/walloc
|
|
99
99
|
*/
|
|
100
|
-
var
|
|
101
|
-
function
|
|
102
|
-
return
|
|
100
|
+
var gc = xn.exports, Ys;
|
|
101
|
+
function fc() {
|
|
102
|
+
return Ys || (Ys = 1, function(n, t) {
|
|
103
103
|
(function(i, a) {
|
|
104
|
-
n.exports = a(
|
|
105
|
-
})(
|
|
104
|
+
n.exports = a(dc);
|
|
105
|
+
})(gc, (e) => (
|
|
106
106
|
/******/
|
|
107
107
|
(() => {
|
|
108
108
|
var i = [
|
|
@@ -208,12 +208,12 @@ function dc() {
|
|
|
208
208
|
}
|
|
209
209
|
const d = class d extends c {
|
|
210
210
|
static async _getModuleInstance() {
|
|
211
|
-
const f = r.replace("data:application/wasm;base64,", ""), p = Uint8Array.from(atob(f), (b) => b.charCodeAt(0)).buffer, y = {},
|
|
212
|
-
d._moduleInstance =
|
|
211
|
+
const f = r.replace("data:application/wasm;base64,", ""), p = Uint8Array.from(atob(f), (b) => b.charCodeAt(0)).buffer, y = {}, w = await WebAssembly.instantiate(p, y);
|
|
212
|
+
d._moduleInstance = w.instance;
|
|
213
213
|
}
|
|
214
214
|
constructor(f) {
|
|
215
215
|
let p, y = null;
|
|
216
|
-
const
|
|
216
|
+
const w = f.getReader();
|
|
217
217
|
super({
|
|
218
218
|
async start(b) {
|
|
219
219
|
await d._contextMutex.acquire();
|
|
@@ -227,7 +227,7 @@ function dc() {
|
|
|
227
227
|
try {
|
|
228
228
|
if (p.needsMoreInput()) {
|
|
229
229
|
if (y === null || y.byteLength === 0) {
|
|
230
|
-
const { done: x, value: m } = await
|
|
230
|
+
const { done: x, value: m } = await w.read();
|
|
231
231
|
x || (y = m);
|
|
232
232
|
}
|
|
233
233
|
const v = Math.min(p.bufSize, y.byteLength);
|
|
@@ -241,7 +241,7 @@ function dc() {
|
|
|
241
241
|
},
|
|
242
242
|
cancel() {
|
|
243
243
|
try {
|
|
244
|
-
return p && p.dispose(),
|
|
244
|
+
return p && p.dispose(), w.cancel();
|
|
245
245
|
} finally {
|
|
246
246
|
d._contextMutex.release();
|
|
247
247
|
}
|
|
@@ -256,7 +256,7 @@ function dc() {
|
|
|
256
256
|
));
|
|
257
257
|
}(xn)), xn.exports;
|
|
258
258
|
}
|
|
259
|
-
var
|
|
259
|
+
var pc = fc(), bt = Uint8Array, we = Uint16Array, mc = Int32Array, Go = new bt([
|
|
260
260
|
0,
|
|
261
261
|
0,
|
|
262
262
|
0,
|
|
@@ -291,7 +291,7 @@ var gc = dc(), bt = Uint8Array, we = Uint16Array, fc = Int32Array, Oo = new bt([
|
|
|
291
291
|
0,
|
|
292
292
|
/* impossible */
|
|
293
293
|
0
|
|
294
|
-
]),
|
|
294
|
+
]), qo = new bt([
|
|
295
295
|
0,
|
|
296
296
|
0,
|
|
297
297
|
0,
|
|
@@ -325,19 +325,19 @@ var gc = dc(), bt = Uint8Array, we = Uint16Array, fc = Int32Array, Oo = new bt([
|
|
|
325
325
|
/* unused */
|
|
326
326
|
0,
|
|
327
327
|
0
|
|
328
|
-
]),
|
|
328
|
+
]), Cc = new bt([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), Vo = function(n, t) {
|
|
329
329
|
for (var e = new we(31), i = 0; i < 31; ++i)
|
|
330
330
|
e[i] = t += 1 << n[i - 1];
|
|
331
|
-
for (var a = new
|
|
331
|
+
for (var a = new mc(e[30]), i = 1; i < 30; ++i)
|
|
332
332
|
for (var o = e[i]; o < e[i + 1]; ++o)
|
|
333
333
|
a[o] = o - e[i] << 5 | i;
|
|
334
334
|
return { b: e, r: a };
|
|
335
|
-
},
|
|
336
|
-
|
|
337
|
-
var
|
|
335
|
+
}, Wo = Vo(Go, 2), $o = Wo.b, yc = Wo.r;
|
|
336
|
+
$o[28] = 258, yc[258] = 28;
|
|
337
|
+
var Ic = Vo(qo, 0), wc = Ic.b, zi = new we(32768);
|
|
338
338
|
for (var nt = 0; nt < 32768; ++nt) {
|
|
339
339
|
var Kt = (nt & 43690) >> 1 | (nt & 21845) << 1;
|
|
340
|
-
Kt = (Kt & 52428) >> 2 | (Kt & 13107) << 2, Kt = (Kt & 61680) >> 4 | (Kt & 3855) << 4,
|
|
340
|
+
Kt = (Kt & 52428) >> 2 | (Kt & 13107) << 2, Kt = (Kt & 61680) >> 4 | (Kt & 3855) << 4, zi[nt] = ((Kt & 65280) >> 8 | (Kt & 255) << 8) >> 1;
|
|
341
341
|
}
|
|
342
342
|
var Ge = function(n, t, e) {
|
|
343
343
|
for (var i = n.length, a = 0, o = new we(t); a < i; ++a)
|
|
@@ -352,10 +352,10 @@ var Ge = function(n, t, e) {
|
|
|
352
352
|
for (a = 0; a < i; ++a)
|
|
353
353
|
if (n[a])
|
|
354
354
|
for (var A = a << 4 | n[a], l = t - n[a], u = s[n[a] - 1]++ << l, g = u | (1 << l) - 1; u <= g; ++u)
|
|
355
|
-
r[
|
|
355
|
+
r[zi[u] >> c] = A;
|
|
356
356
|
} else
|
|
357
357
|
for (r = new we(i), a = 0; a < i; ++a)
|
|
358
|
-
n[a] && (r[a] =
|
|
358
|
+
n[a] && (r[a] = zi[s[n[a] - 1]++] >> 15 - n[a]);
|
|
359
359
|
return r;
|
|
360
360
|
}, nn = new bt(288);
|
|
361
361
|
for (var nt = 0; nt < 144; ++nt)
|
|
@@ -366,24 +366,24 @@ for (var nt = 256; nt < 280; ++nt)
|
|
|
366
366
|
nn[nt] = 7;
|
|
367
367
|
for (var nt = 280; nt < 288; ++nt)
|
|
368
368
|
nn[nt] = 8;
|
|
369
|
-
var
|
|
369
|
+
var Jo = new bt(32);
|
|
370
370
|
for (var nt = 0; nt < 32; ++nt)
|
|
371
|
-
|
|
372
|
-
var
|
|
371
|
+
Jo[nt] = 5;
|
|
372
|
+
var Ec = /* @__PURE__ */ Ge(nn, 9, 1), vc = /* @__PURE__ */ Ge(Jo, 5, 1), ii = function(n) {
|
|
373
373
|
for (var t = n[0], e = 1; e < n.length; ++e)
|
|
374
374
|
n[e] > t && (t = n[e]);
|
|
375
375
|
return t;
|
|
376
376
|
}, kt = function(n, t, e) {
|
|
377
377
|
var i = t / 8 | 0;
|
|
378
378
|
return (n[i] | n[i + 1] << 8) >> (t & 7) & e;
|
|
379
|
-
},
|
|
379
|
+
}, si = function(n, t) {
|
|
380
380
|
var e = t / 8 | 0;
|
|
381
381
|
return (n[e] | n[e + 1] << 8 | n[e + 2] << 16) >> (t & 7);
|
|
382
|
-
},
|
|
382
|
+
}, xc = function(n) {
|
|
383
383
|
return (n + 7) / 8 | 0;
|
|
384
|
-
},
|
|
384
|
+
}, fs = function(n, t, e) {
|
|
385
385
|
return (t == null || t < 0) && (t = 0), (e == null || e > n.length) && (e = n.length), new bt(n.subarray(t, e));
|
|
386
|
-
},
|
|
386
|
+
}, Sc = [
|
|
387
387
|
"unexpected EOF",
|
|
388
388
|
"invalid block type",
|
|
389
389
|
"invalid length/literal",
|
|
@@ -400,11 +400,11 @@ var Ic = /* @__PURE__ */ Ge(nn, 9, 1), wc = /* @__PURE__ */ Ge(Wo, 5, 1), ni = f
|
|
|
400
400
|
"invalid zip data"
|
|
401
401
|
// determined by unknown compression method
|
|
402
402
|
], Qt = function(n, t, e) {
|
|
403
|
-
var i = new Error(t ||
|
|
403
|
+
var i = new Error(t || Sc[n]);
|
|
404
404
|
if (i.code = n, Error.captureStackTrace && Error.captureStackTrace(i, Qt), !e)
|
|
405
405
|
throw i;
|
|
406
406
|
return i;
|
|
407
|
-
},
|
|
407
|
+
}, bc = function(n, t, e, i) {
|
|
408
408
|
var a = n.length, o = i ? i.length : 0;
|
|
409
409
|
if (!a || t.f && !t.l)
|
|
410
410
|
return e || new bt(0);
|
|
@@ -423,36 +423,36 @@ var Ic = /* @__PURE__ */ Ge(nn, 9, 1), wc = /* @__PURE__ */ Ge(Wo, 5, 1), ni = f
|
|
|
423
423
|
var y = kt(n, u + 1, 3);
|
|
424
424
|
if (u += 3, y)
|
|
425
425
|
if (y == 1)
|
|
426
|
-
h =
|
|
426
|
+
h = Ec, d = vc, C = 9, f = 5;
|
|
427
427
|
else if (y == 2) {
|
|
428
428
|
var v = kt(n, u, 31) + 257, x = kt(n, u + 10, 15) + 4, m = v + kt(n, u + 5, 31) + 1;
|
|
429
429
|
u += 14;
|
|
430
|
-
for (var
|
|
431
|
-
M[
|
|
430
|
+
for (var E = new bt(m), M = new bt(19), S = 0; S < x; ++S)
|
|
431
|
+
M[Cc[S]] = kt(n, u + S * 3, 7);
|
|
432
432
|
u += x * 3;
|
|
433
|
-
for (var L =
|
|
433
|
+
for (var L = ii(M), T = (1 << L) - 1, R = Ge(M, L, 1), S = 0; S < m; ) {
|
|
434
434
|
var B = R[kt(n, u, T)];
|
|
435
435
|
u += B & 15;
|
|
436
|
-
var
|
|
437
|
-
if (
|
|
438
|
-
|
|
436
|
+
var w = B >> 4;
|
|
437
|
+
if (w < 16)
|
|
438
|
+
E[S++] = w;
|
|
439
439
|
else {
|
|
440
440
|
var k = 0, U = 0;
|
|
441
|
-
for (
|
|
442
|
-
|
|
441
|
+
for (w == 16 ? (U = 3 + kt(n, u, 3), u += 2, k = E[S - 1]) : w == 17 ? (U = 3 + kt(n, u, 7), u += 3) : w == 18 && (U = 11 + kt(n, u, 127), u += 7); U--; )
|
|
442
|
+
E[S++] = k;
|
|
443
443
|
}
|
|
444
444
|
}
|
|
445
|
-
var z =
|
|
446
|
-
C =
|
|
445
|
+
var z = E.subarray(0, v), F = E.subarray(v);
|
|
446
|
+
C = ii(z), f = ii(F), h = Ge(z, C, 1), d = Ge(F, f, 1);
|
|
447
447
|
} else
|
|
448
448
|
Qt(1);
|
|
449
449
|
else {
|
|
450
|
-
var
|
|
450
|
+
var w = xc(u) + 4, b = n[w - 4] | n[w - 3] << 8, D = w + b;
|
|
451
451
|
if (D > a) {
|
|
452
452
|
c && Qt(0);
|
|
453
453
|
break;
|
|
454
454
|
}
|
|
455
|
-
r && A(g + b), e.set(n.subarray(
|
|
455
|
+
r && A(g + b), e.set(n.subarray(w, D), g), t.b = g += b, t.p = u = D * 8, t.f = l;
|
|
456
456
|
continue;
|
|
457
457
|
}
|
|
458
458
|
if (u > p) {
|
|
@@ -462,7 +462,7 @@ var Ic = /* @__PURE__ */ Ge(nn, 9, 1), wc = /* @__PURE__ */ Ge(Wo, 5, 1), ni = f
|
|
|
462
462
|
}
|
|
463
463
|
r && A(g + 131072);
|
|
464
464
|
for (var H = (1 << C) - 1, G = (1 << f) - 1, q = u; ; q = u) {
|
|
465
|
-
var k = h[
|
|
465
|
+
var k = h[si(n, u) & H], V = k >> 4;
|
|
466
466
|
if (u += k & 15, u > p) {
|
|
467
467
|
c && Qt(0);
|
|
468
468
|
break;
|
|
@@ -475,15 +475,15 @@ var Ic = /* @__PURE__ */ Ge(nn, 9, 1), wc = /* @__PURE__ */ Ge(Wo, 5, 1), ni = f
|
|
|
475
475
|
} else {
|
|
476
476
|
var $ = V - 254;
|
|
477
477
|
if (V > 264) {
|
|
478
|
-
var S = V - 257, N =
|
|
479
|
-
$ = kt(n, u, (1 << N) - 1) +
|
|
478
|
+
var S = V - 257, N = Go[S];
|
|
479
|
+
$ = kt(n, u, (1 << N) - 1) + $o[S], u += N;
|
|
480
480
|
}
|
|
481
|
-
var rt = d[
|
|
481
|
+
var rt = d[si(n, u) & G], st = rt >> 4;
|
|
482
482
|
rt || Qt(3), u += rt & 15;
|
|
483
|
-
var F =
|
|
483
|
+
var F = wc[st];
|
|
484
484
|
if (st > 3) {
|
|
485
|
-
var N =
|
|
486
|
-
F +=
|
|
485
|
+
var N = qo[st];
|
|
486
|
+
F += si(n, u) & (1 << N) - 1, u += N;
|
|
487
487
|
}
|
|
488
488
|
if (u > p) {
|
|
489
489
|
c && Qt(0);
|
|
@@ -502,53 +502,53 @@ var Ic = /* @__PURE__ */ Ge(nn, 9, 1), wc = /* @__PURE__ */ Ge(Wo, 5, 1), ni = f
|
|
|
502
502
|
}
|
|
503
503
|
t.l = h, t.p = q, t.b = g, t.f = l, h && (l = 1, t.m = C, t.d = d, t.n = f);
|
|
504
504
|
} while (!l);
|
|
505
|
-
return g != e.length && s ?
|
|
506
|
-
},
|
|
505
|
+
return g != e.length && s ? fs(e, 0, g) : e.subarray(0, g);
|
|
506
|
+
}, Mc = /* @__PURE__ */ new bt(0), zt = function(n, t) {
|
|
507
507
|
return n[t] | n[t + 1] << 8;
|
|
508
508
|
}, Tt = function(n, t) {
|
|
509
509
|
return (n[t] | n[t + 1] << 8 | n[t + 2] << 16 | n[t + 3] << 24) >>> 0;
|
|
510
|
-
},
|
|
510
|
+
}, ai = function(n, t) {
|
|
511
511
|
return Tt(n, t) + Tt(n, t + 4) * 4294967296;
|
|
512
512
|
};
|
|
513
|
-
function
|
|
514
|
-
return
|
|
513
|
+
function Bc(n, t) {
|
|
514
|
+
return bc(n, { i: 2 }, t && t.out, t && t.dictionary);
|
|
515
515
|
}
|
|
516
|
-
var
|
|
516
|
+
var Hi = typeof TextDecoder < "u" && /* @__PURE__ */ new TextDecoder(), Qc = 0;
|
|
517
517
|
try {
|
|
518
|
-
|
|
518
|
+
Hi.decode(Mc, { stream: !0 }), Qc = 1;
|
|
519
519
|
} catch {
|
|
520
520
|
}
|
|
521
|
-
var
|
|
521
|
+
var Dc = function(n) {
|
|
522
522
|
for (var t = "", e = 0; ; ) {
|
|
523
523
|
var i = n[e++], a = (i > 127) + (i > 223) + (i > 239);
|
|
524
524
|
if (e + a > n.length)
|
|
525
|
-
return { s: t, r:
|
|
525
|
+
return { s: t, r: fs(n, e - 1) };
|
|
526
526
|
a ? a == 3 ? (i = ((i & 15) << 18 | (n[e++] & 63) << 12 | (n[e++] & 63) << 6 | n[e++] & 63) - 65536, t += String.fromCharCode(55296 | i >> 10, 56320 | i & 1023)) : a & 1 ? t += String.fromCharCode((i & 31) << 6 | n[e++] & 63) : t += String.fromCharCode((i & 15) << 12 | (n[e++] & 63) << 6 | n[e++] & 63) : t += String.fromCharCode(i);
|
|
527
527
|
}
|
|
528
528
|
};
|
|
529
|
-
function
|
|
529
|
+
function kc(n, t) {
|
|
530
530
|
if (t) {
|
|
531
531
|
for (var e = "", i = 0; i < n.length; i += 16384)
|
|
532
532
|
e += String.fromCharCode.apply(null, n.subarray(i, i + 16384));
|
|
533
533
|
return e;
|
|
534
534
|
} else {
|
|
535
|
-
if (
|
|
536
|
-
return
|
|
537
|
-
var a =
|
|
535
|
+
if (Hi)
|
|
536
|
+
return Hi.decode(n);
|
|
537
|
+
var a = Dc(n), o = a.s, e = a.r;
|
|
538
538
|
return e.length && Qt(8), o;
|
|
539
539
|
}
|
|
540
540
|
}
|
|
541
|
-
var
|
|
541
|
+
var Tc = function(n, t) {
|
|
542
542
|
return t + 30 + zt(n, t + 26) + zt(n, t + 28);
|
|
543
|
-
},
|
|
544
|
-
var i = zt(n, t + 28), a =
|
|
543
|
+
}, Lc = function(n, t, e) {
|
|
544
|
+
var i = zt(n, t + 28), a = kc(n.subarray(t + 46, t + 46 + i), !(zt(n, t + 8) & 2048)), o = t + 46 + i, s = Tt(n, t + 20), r = e && s == 4294967295 ? Rc(n, o) : [s, Tt(n, t + 24), Tt(n, t + 42)], c = r[0], A = r[1], l = r[2];
|
|
545
545
|
return [zt(n, t + 10), c, A, a, o + zt(n, t + 30) + zt(n, t + 32), l];
|
|
546
|
-
},
|
|
546
|
+
}, Rc = function(n, t) {
|
|
547
547
|
for (; zt(n, t) != 1; t += 4 + zt(n, t + 2))
|
|
548
548
|
;
|
|
549
|
-
return [
|
|
549
|
+
return [ai(n, t + 12), ai(n, t + 4), ai(n, t + 20)];
|
|
550
550
|
};
|
|
551
|
-
function
|
|
551
|
+
function _c(n, t) {
|
|
552
552
|
for (var e = {}, i = n.length - 22; Tt(n, i) != 101010256; --i)
|
|
553
553
|
(!i || n.length - i > 65558) && Qt(13);
|
|
554
554
|
var a = zt(n, i + 8);
|
|
@@ -560,15 +560,15 @@ function Lc(n, t) {
|
|
|
560
560
|
s = Tt(n, r) == 101075792, s && (a = Tt(n, r + 32), o = Tt(n, r + 48));
|
|
561
561
|
}
|
|
562
562
|
for (var c = 0; c < a; ++c) {
|
|
563
|
-
var A =
|
|
564
|
-
o = d, l ? l == 8 ? e[h] =
|
|
563
|
+
var A = Lc(n, o, s), l = A[0], u = A[1], g = A[2], h = A[3], d = A[4], C = A[5], f = Tc(n, C);
|
|
564
|
+
o = d, l ? l == 8 ? e[h] = Bc(n.subarray(f, f + u), { out: new bt(g) }) : Qt(14, "unknown compression type " + l) : e[h] = fs(n, f, f + u);
|
|
565
565
|
}
|
|
566
566
|
return e;
|
|
567
567
|
}
|
|
568
|
-
function
|
|
568
|
+
function ps(n) {
|
|
569
569
|
let t = !1;
|
|
570
570
|
const e = (h, d, C) => n.on(h, d, C), i = (h, ...d) => n.fire(h, ...d);
|
|
571
|
-
e(St, () => i(_).debugMode), e(
|
|
571
|
+
e(St, () => i(_).debugMode), e(Ki, () => t = !0);
|
|
572
572
|
let a = 0;
|
|
573
573
|
(function h() {
|
|
574
574
|
a++, !t && requestAnimationFrame(h);
|
|
@@ -577,14 +577,14 @@ function fs(n) {
|
|
|
577
577
|
t || (C > 0 ? !(a % C) && h(a) : h(a), d && d() && requestAnimationFrame(f));
|
|
578
578
|
};
|
|
579
579
|
f();
|
|
580
|
-
}), e(
|
|
580
|
+
}), e(Wa, (h, d = null, C = 20) => {
|
|
581
581
|
const f = () => {
|
|
582
582
|
t || (h(), d && d() && setTimeout(f, C));
|
|
583
583
|
};
|
|
584
584
|
f();
|
|
585
585
|
});
|
|
586
586
|
let o = !1, s = 0, r = 0;
|
|
587
|
-
e(
|
|
587
|
+
e(Zi, () => {
|
|
588
588
|
o = !0, (async () => {
|
|
589
589
|
const h = document.querySelector("#gsviewer #progressBarWrap");
|
|
590
590
|
if (h) {
|
|
@@ -598,23 +598,23 @@ function fs(n) {
|
|
|
598
598
|
const d = document.querySelector("#gsviewer #progressBarWrap");
|
|
599
599
|
d && (d.style.display = "none");
|
|
600
600
|
})(), (async () => document.querySelector("#gsviewer .logo")?.classList.remove("loading"))(), parent?.onProgress && parent.onProgress(0, "100%", 9), window.onProgress && window.onProgress(0, "100%", 9));
|
|
601
|
-
}), e(
|
|
601
|
+
}), e(ts, (h) => {
|
|
602
602
|
o = !0, (async () => {
|
|
603
603
|
const d = document.querySelector("#gsviewer #progressBar");
|
|
604
604
|
d && (d.style.width = `${h}%`);
|
|
605
605
|
})(), parent?.onProgress && parent.onProgress(h, `${h}%`), window.onProgress && window.onProgress(h, `${h}%`);
|
|
606
|
-
}), e(
|
|
606
|
+
}), e(Lr, () => o), e(ho, (h) => {
|
|
607
607
|
r = h;
|
|
608
|
-
}), e(
|
|
608
|
+
}), e(go, () => !o && s && r >= s), e(he, () => {
|
|
609
609
|
const d = i(ke).parentElement.getBoundingClientRect();
|
|
610
610
|
return { width: d.width, height: d.height, left: d.left, top: d.top };
|
|
611
611
|
}), e(le, (h) => {
|
|
612
612
|
let d = h.x.toFixed(3).split("."), C = h.y.toFixed(3).split("."), f = h.z.toFixed(3).split(".");
|
|
613
613
|
return (d[1] === "000" || d[1] === "00000") && (d[1] = "0"), (C[1] === "000" || C[1] === "00000") && (C[1] = "0"), (f[1] === "000" || f[1] === "00000") && (f[1] = "0"), `${d.join(".")}, ${C.join(".")}, ${f.join(".")}`;
|
|
614
|
-
}), e(
|
|
614
|
+
}), e(Br, (h) => btoa(h)), e(Qr, (h) => atob(h));
|
|
615
615
|
const c = 1e-3;
|
|
616
616
|
let A = new Q(), l = new Q(), u = 0;
|
|
617
|
-
e(
|
|
617
|
+
e(Tr, () => {
|
|
618
618
|
const h = i(dt), d = h.fov, C = h.position.clone(), f = h.getWorldDirection(new Q());
|
|
619
619
|
return Math.abs(u - d) < c && Math.abs(C.x - A.x) < c && Math.abs(C.y - A.y) < c && Math.abs(C.z - A.z) < c && Math.abs(f.x - l.x) < c && Math.abs(f.y - l.y) < c && Math.abs(f.z - l.z) < c ? !1 : (u = d, A = C, l = f, !0);
|
|
620
620
|
}), e(jt, (h) => {
|
|
@@ -632,13 +632,13 @@ function fs(n) {
|
|
|
632
632
|
fps: f,
|
|
633
633
|
realFps: p,
|
|
634
634
|
sortTime: y,
|
|
635
|
-
bucketBits:
|
|
635
|
+
bucketBits: w,
|
|
636
636
|
sortType: b,
|
|
637
637
|
qualityLevel: D,
|
|
638
638
|
fov: v,
|
|
639
639
|
position: x,
|
|
640
640
|
lookUp: m,
|
|
641
|
-
lookAt:
|
|
641
|
+
lookAt: E,
|
|
642
642
|
worker: M,
|
|
643
643
|
scene: S,
|
|
644
644
|
// updateSceneData,
|
|
@@ -647,7 +647,7 @@ function fs(n) {
|
|
|
647
647
|
shDegree: R
|
|
648
648
|
} = {}) => {
|
|
649
649
|
if (!i(St)) return;
|
|
650
|
-
R !== void 0 && g("shDegree", `${R}`), h !== void 0 && g("renderSplatCount", `${h}`), d !== void 0 && g("visibleSplatCount", `${d}`), C !== void 0 && g("modelSplatCount", `${C}`), f !== void 0 && g("fps", f), p !== void 0 && g("realFps", `raw ${p}`), y !== void 0 && g("sort", `${y} ms (L ${i(_).qualityLevel || Qe}, ${
|
|
650
|
+
R !== void 0 && g("shDegree", `${R}`), h !== void 0 && g("renderSplatCount", `${h}`), d !== void 0 && g("visibleSplatCount", `${d}`), C !== void 0 && g("modelSplatCount", `${C}`), f !== void 0 && g("fps", f), p !== void 0 && g("realFps", `raw ${p}`), y !== void 0 && g("sort", `${y} ms (L ${i(_).qualityLevel || Qe}, ${w} B, T ${b})`), T !== void 0 && g("cuts", T === "" ? "" : `(${T} cuts)`), M && g("worker", `${M}`), S && g("scene", S), v && g("fov", v), x && g("position", x), m && g("lookUp", m), E && g("lookAt", E), E && g("viewer-version", gs);
|
|
651
651
|
let B = performance.memory || { usedJSHeapSize: 0, totalJSHeapSize: 0, jsHeapSizeLimit: 0 }, k = "", U = B.usedJSHeapSize / 1024 / 1024;
|
|
652
652
|
U > 1e3 ? k += (U / 1024).toFixed(2) + " G" : k += U.toFixed(0) + " M", k += " / ";
|
|
653
653
|
let z = B.totalJSHeapSize / 1024 / 1024;
|
|
@@ -661,7 +661,7 @@ function fs(n) {
|
|
|
661
661
|
C && (C.innerText = d);
|
|
662
662
|
}
|
|
663
663
|
}
|
|
664
|
-
function
|
|
664
|
+
function Fc(n = 0) {
|
|
665
665
|
const t = /* @__PURE__ */ new Date();
|
|
666
666
|
return t.setDate(t.getDate() - 7), n >= t.getFullYear() * 1e4 + (t.getMonth() + 1) * 100 + t.getDate();
|
|
667
667
|
}
|
|
@@ -672,10 +672,10 @@ function An(n) {
|
|
|
672
672
|
const t = j(Math.round(n * 128) + 128);
|
|
673
673
|
return j(Math.floor((t + 4) / 8) * 8);
|
|
674
674
|
}
|
|
675
|
-
function
|
|
675
|
+
function Nn(n, t) {
|
|
676
676
|
return ((1500 + n * 248) / t).toFixed(2) + "x";
|
|
677
677
|
}
|
|
678
|
-
async function
|
|
678
|
+
async function jo(n) {
|
|
679
679
|
try {
|
|
680
680
|
const t = new ReadableStream({
|
|
681
681
|
async start(i) {
|
|
@@ -687,15 +687,15 @@ async function $o(n) {
|
|
|
687
687
|
return console.error("Decompress gzip failed:", t), null;
|
|
688
688
|
}
|
|
689
689
|
}
|
|
690
|
-
async function
|
|
690
|
+
async function Pc(n) {
|
|
691
691
|
try {
|
|
692
|
-
const t = URL.createObjectURL(new Blob([n], { type: "application/octet-stream" })), e = await fetch(t), i = new Response(new
|
|
692
|
+
const t = URL.createObjectURL(new Blob([n], { type: "application/octet-stream" })), e = await fetch(t), i = new Response(new pc.XzReadableStream(e.body));
|
|
693
693
|
return new Uint8Array(await i.arrayBuffer());
|
|
694
694
|
} catch (t) {
|
|
695
695
|
return console.error("Decompress xz failed:", t), null;
|
|
696
696
|
}
|
|
697
697
|
}
|
|
698
|
-
async function
|
|
698
|
+
async function Uc(n) {
|
|
699
699
|
const t = new Uint32Array(n.slice(0, 12).buffer), e = t[0], i = t[2];
|
|
700
700
|
let a = 8;
|
|
701
701
|
const o = n.slice(a + 4, a + 4 + i), { rgba: s } = await Et(o);
|
|
@@ -747,7 +747,7 @@ async function Fc(n) {
|
|
|
747
747
|
f[p++] = C[y * 4 + 2];
|
|
748
748
|
return f;
|
|
749
749
|
}
|
|
750
|
-
async function
|
|
750
|
+
async function Nc(n) {
|
|
751
751
|
const e = new Uint32Array(n.slice(0, 8).buffer)[0], i = n.slice(8), { rgba: a } = await Et(i), o = new Uint8Array(8 + e * 9);
|
|
752
752
|
let s = 0;
|
|
753
753
|
o[s] = n[s++], o[s] = n[s++], o[s] = n[s++], o[s] = n[s++], o[s++] = 1, o[s++] = 0, o[s++] = 0, o[s++] = 0;
|
|
@@ -756,7 +756,7 @@ async function Pc(n) {
|
|
|
756
756
|
o[s++] = a[r * 60 + c * 4 + 0], o[s++] = a[r * 60 + c * 4 + 1], o[s++] = a[r * 60 + c * 4 + 2];
|
|
757
757
|
return o;
|
|
758
758
|
}
|
|
759
|
-
async function
|
|
759
|
+
async function Gs(n) {
|
|
760
760
|
const e = new Uint32Array(n.slice(0, 8).buffer)[0], i = n.slice(8), { rgba: a } = await Et(i), o = new Uint8Array(8 + e * 24);
|
|
761
761
|
let s = 0;
|
|
762
762
|
o[s] = n[s++], o[s] = n[s++], o[s] = n[s++], o[s] = n[s++], o[s++] = 2, o[s++] = 0, o[s++] = 0, o[s++] = 0;
|
|
@@ -765,7 +765,7 @@ async function Ys(n) {
|
|
|
765
765
|
o[s++] = a[r * 60 + c * 4 + 0], o[s++] = a[r * 60 + c * 4 + 1], o[s++] = a[r * 60 + c * 4 + 2];
|
|
766
766
|
return o;
|
|
767
767
|
}
|
|
768
|
-
async function
|
|
768
|
+
async function zc(n) {
|
|
769
769
|
const e = new Uint32Array(n.slice(0, 8).buffer)[0], i = n.slice(8), { rgba: a } = await Et(i), o = new Uint8Array(8 + e * 21);
|
|
770
770
|
let s = 0;
|
|
771
771
|
o[s] = n[s++], o[s] = n[s++], o[s] = n[s++], o[s] = n[s++], o[s++] = 3, o[s++] = 0, o[s++] = 0, o[s++] = 0;
|
|
@@ -780,10 +780,10 @@ async function Et(n) {
|
|
|
780
780
|
const s = o.getImageData(0, 0, i.width, i.height), r = i.width, c = i.height;
|
|
781
781
|
return i.close(), URL.revokeObjectURL(e), { width: r, height: c, rgba: s.data };
|
|
782
782
|
}
|
|
783
|
-
function
|
|
783
|
+
function Hc(n) {
|
|
784
784
|
const t = /* @__PURE__ */ new Map();
|
|
785
785
|
try {
|
|
786
|
-
const e =
|
|
786
|
+
const e = _c(n);
|
|
787
787
|
for (const [i, a] of Object.entries(e))
|
|
788
788
|
if (a) {
|
|
789
789
|
const o = new Uint8Array(a);
|
|
@@ -794,57 +794,57 @@ function Nc(n) {
|
|
|
794
794
|
}
|
|
795
795
|
return t;
|
|
796
796
|
}
|
|
797
|
-
function
|
|
797
|
+
function Oc(n) {
|
|
798
798
|
return new TextDecoder("utf-8").decode(n);
|
|
799
799
|
}
|
|
800
|
-
const
|
|
801
|
-
async function
|
|
802
|
-
const t = new Uint32Array(n.buffer), e = new Float32Array(n.buffer), i = new
|
|
800
|
+
const ms = "AGFzbQEAAAAADwhkeWxpbmsuMAEEAAAAAAEeBmABfQF9YAAAYAF9AX9gAX8Bf2ACf38AYAJ/fwF/AhoCA2VudgRleHBmAAADZW52Bm1lbW9yeQIAAAMGBQECAwQFByEEEV9fd2FzbV9jYWxsX2N0b3JzAAEBSAADAXcABAFEAAUKigsFAwABC3IBBH8gALwiBEH///8DcSEBAkAgBEEXdkH/AXEiAkUNACACQfAATQRAIAFBgICABHJB8QAgAmt2IQEMAQsgAkGNAUsEQEGA+AEhA0EAIQEMAQsgAkEKdEGAgAdrIQMLIAMgBEEQdkGAgAJxciABQQ12cgsyAQJ/QcGmFiEBA0AgACACai0AACABQSFscyEBIAJBAWoiAkH8AEcNAAsgASAAKAJ8RwszACAAQQhBBCABQQFGG2pBADYCACAAQQA2ABwgAP0MAAABAIwRFgCVAWwS7YEyE/0LAgwLqQkDKH8OfQR8IAEoAgRBi/AJRgR/IAEoAgAiBEEASgRAIAFBCWoiAiAEQRNsaiEIIAIgBEESbGohCSACIARBEWxqIQogAiAEQQR0aiELIAIgBEEPbGohDCACIARBDmxqIQ0gAiAEQQ1saiEOIAIgBEEMbGohDyACIARBC2xqIRAgAiAEQQpsaiERIAIgBEEJbGohEiACIARBBmxqIRMgAiAEQQNsaiEUIAEtAAghFUEAIQIDQCACIAlqLQAAIQcgAiAKai0AACEWIAIgC2otAAAhFyACIAxqLQAAIRggAiANai0AACEZIAIgDmotAAAhGiACIA9qLQAAIRsgAiAQai0AACEcIAIgEWotAAAhHSACIBJqLQAAIR4gEyACQQNsIgNqIgUtAAAhHyADIBRqIgYtAAAhICABIANqIgMtAAohISADLQAJISIgBS0AASEjIAYtAAEhJCADLQALIiXAISYgBS0AAiInwCEoIAYtAAIiBsAhKUEAIQUgFQRAIAggAkEBdGoiAy0AASIFQQh0QYD+AXEgAy0AAHIgBUEJdEGAgARxciEFCyAes0MAAIA9lEMAACDBkhAAIS8gHbNDAACAPZRDAAAgwZIQACExIByzQwAAgD2UQwAAIMGSEAAhMkMAAAAAQwAAgD8gB7NDAAAAw5JDAAAAPJQiKiAqlCAXs0MAAADDkkMAAAA8lCIrICuUIBazQwAAAMOSQwAAADyUIiwgLJSSkpMiLZEgLUMAAAAAXRshLSAAIAJBBXRqIgMgIUEIdCAiciAlQRB0ciIHQYCAgHhyIAcgJkEASBuyQwAAgDmUOAIAIAMgBTYCDCADICNBCHQgH3IgJ0EQdHIiBUGAgIB4ciAFIChBAEgbskMAAIA5lDgCCCADICRBCHQgIHIgBkEQdHIiBUGAgIB4ciAFIClBAEgbskMAAIA5lDgCBCADICsgKiAqlCAsICyUIC0gLZQgKyArlJKSkpEiLpUiKyAqIC6VIiqUIjQgLSAulSIwICwgLpUiLJQiNZK7IjggOKAgMrsiOKK2Ii0gLZREAAAAAAAA8D8gLCAslCIyICogKpQiNpK7IjogOqChIC+7IjqitiIuIC6UICsgLJQiMyAwICqUIjeTuyI7IDugIDG7IjuitiIvIC+UkpJDAACAQJQQAiAtICwgKpQiMSAwICuUIjCTuyI5IDmgIDiitiIqlCAuIDMgN5K7IjkgOaAgOqK2IiyUIC9EAAAAAAAA8D8gKyArlCIzIDaSuyI5IDmgoSA7orYiK5SSkkMAAIBAlBACQRB0cjYCECADIC1EAAAAAAAA8D8gMyAykrsiOSA5oKEgOKK2Ii2UIC4gNCA1k7siOCA4oCA6orYiLpQgLyAxIDCSuyI4IDigIDuitiIvlJKSQwAAgECUEAIgKiAqlCAsICyUICsgK5SSkkMAAIBAlBACQRB0cjYCFCADIBpBCHQgG3IgGUEQdHIgGEEYdHI2AhwgAyAqIC2UICwgLpQgKyAvlJKSQwAAgECUEAIgLSAtlCAuIC6UIC8gL5SSkkMAAIBAlBACQRB0cjYCGCACQQFqIgIgBEcNAAsLQQAFQQELCw==", Cs = "AGFzbQEAAAAADwhkeWxpbmsuMAEEAAAAAAEpBmACf38Bf2ABfQF9YAAAYAF9AX9gAX8Bf2ANf399fX19fX19fX19fwACGgIDZW52BGV4cGYAAQNlbnYGbWVtb3J5AgAAAwcGAgMEBQAAByEEEV9fd2FzbV9jYWxsX2N0b3JzAAEBSAADAXMABQFEAAYKuB8GAwABC3IBBH8gALwiBEH///8DcSEBAkAgBEEXdkH/AXEiAkUNACACQfAATQRAIAFBgICABHJB8QAgAmt2IQEMAQsgAkGNAUsEQEGA+AEhA0EAIQEMAQsgAkEKdEGAgAdrIQMLIAMgBEEQdkGAgAJxciABQQ12cgsyAQJ/QZWjAyEBA0AgACACai0AACABQSFscyEBIAJBAWoiAkH8AEcNAAsgASAAKAJ8RwvpAwIEfAR9IAAgAUECdGoiACACOAIAIABBADYCDCAAIAQ4AgggACADOAIEIAAgCSALIAuUIAogCpQgCCAIlCAJIAmUkpKSkSIElSICIAsgBJUiA5QiCSAIIASVIgggCiAElSIElCIKkrsiDSANoCAHuyINorYiByAHlEQAAAAAAADwPyAEIASUIgsgAyADlCISkrsiDyAPoKEgBbsiD6K2IgUgBZQgAiAElCIRIAggA5QiE5O7IhAgEKAgBrsiEKK2IgYgBpSSkkMAAIBAlBACIAcgBCADlCIUIAggApQiCJO7Ig4gDqAgDaK2IgOUIAUgESATkrsiDiAOoCAPorYiBJQgBkQAAAAAAADwPyACIAKUIhEgEpK7Ig4gDqChIBCitiIClJKSQwAAgECUEAJBEHRyNgIQIAAgB0QAAAAAAADwPyARIAuSuyIOIA6goSANorYiB5QgBSAJIAqTuyINIA2gIA+itiIFlCAGIBQgCJK7Ig0gDaAgEKK2IgaUkpJDAACAQJQQAiADIAOUIAQgBJQgAiAClJKSQwAAgECUEAJBEHRyNgIUIAAgDDYCHCAAIAMgB5QgBCAFlCACIAaUkpJDAACAQJQQAiAHIAeUIAUgBZQgBiAGlJKSQwAAgECUEAJBEHRyNgIYC70BAQJ/IAFBAEoEQANAIAAgA0EDdCAAIANBBXRqIgIqAgAgAioCBCACKgIIIAIqAgwgAioCECACKgIUIAItABy4RAAAAAAAAGDAoEQAAAAAAACAP6K2IAItAB24RAAAAAAAAGDAoEQAAAAAAACAP6K2IAItAB64RAAAAAAAAGDAoEQAAAAAAACAP6K2IAItAB+4RAAAAAAAAGDAoEQAAAAAAACAP6K2IAIoAhgQBCADQQFqIgMgAUcNAAsLQQAL4RgCH38KfQJAAkACQAJAAkACQCABKAIEIgNBAWsOAwECAwALQQEhAgJAAkACQCADQRBrDgUCBwcBAAcLIAEoAgAiA0EASgRAIAFBCGoiAiADQRNsaiEFIAIgA0ESbGohBiACIANBEWxqIQcgAiADQQR0aiEIIAIgA0EPbGohCSACIANBDmxqIQogAiADQQ1saiELIAIgA0EMbGohDCACIANBC2xqIQ0gAiADQQpsaiEPIAIgA0EJbGohECACIANBBmxqIREgAiADQQNsaiESQQAhAgNAIAIgC2otAAAhEyACIAxqLQAAIRQgAiAKai0AACEVIAIgCWotAAAhFiACIAVqLQAAIRcgAiAGai0AACEYIAIgB2otAAAhGSACIAhqLQAAIRogAiANai0AACEbIAIgD2otAAAhHCAAIAJBA3QgASACQQNsIgRqIg4vAAggDiwACiIOQf8BcUEQdHIiHUGAgIB4ciAdIA5BAEgbskMAAIA5lCAEIBJqIg4vAAAgDiwAAiIOQf8BcUEQdHIiHUGAgIB4ciAdIA5BAEgbskMAAIA5lCAEIBFqIgQvAAAgBCwAAiIEQf8BcUEQdHIiDkGAgIB4ciAOIARBAEgbskMAAIA5lCACIBBqLQAAs0MAAIA9lEMAACDBkhAAIByzQwAAgD2UQwAAIMGSEAAgG7NDAACAPZRDAAAgwZIQACAauEQAAAAAAABgwKBEAAAAAAAAgD+itiAZuEQAAAAAAABgwKBEAAAAAAAAgD+itiAYuEQAAAAAAABgwKBEAAAAAAAAgD+itiAXuEQAAAAAAABgwKBEAAAAAAAAgD+itiAUIBNBCHRyIBVBEHRyIBZBGHRyEAQgAkEBaiICIANHDQALCwwFCyABKAIAIgJBAEoEQCABQQhqIgMgAkESbGohBCADIAJBEWxqIQUgAyACQQ9saiEGIAMgAkEObGohByADIAJBDWxqIQggAyACQQxsaiEJIAMgAkELbGohCiADIAJBCmxqIQsgAyACQQlsaiEMIAMgAkEDdGohDSADIAJBB2xqIQ8gAyACQQZsaiEQIAMgAkEFbGohESADIAJBAnRqIRIgAyACQQNsaiETIAMgAkEBdGohFCABIAJqQQhqIRUgASACQQR0akEIaiEWQQAhAQNAIAEgBWotAAAhFyABIBZqLQAAIRggASAEai0AACEZIAEgCGotAAAhGiABIAlqLQAAIRsgASAHai0AACEcIAEgBmotAAAhDiABIApqLQAAIR0gASALai0AACEgIAAgAUEDdCABIANqLQAAIAEgE2otAABBCHRyIAEgEGosAAAiHkH/AXFBEHRyIh9BgICAeHIgHyAeQQBIG7JDAACAOZQgASAVai0AACABIBJqLQAAQQh0ciABIA9qLAAAIh5B/wFxQRB0ciIfQYCAgHhyIB8gHkEASBuyQwAAgDmUIAEgFGotAAAgASARai0AAEEIdHIgASANaiwAACIeQf8BcUEQdHIiH0GAgIB4ciAfIB5BAEgbskMAAIA5lCABIAxqLQAAs0MAAIA9lEMAACDBkhAAICCzQwAAgD2UQwAAIMGSEAAgHbNDAACAPZRDAAAgwZIQAEMAAAAAQwAAgD8gGbNDAAAAw5JDAAAAPJQiISAhlCAYs0MAAADDkkMAAAA8lCIiICKUIBezQwAAAMOSQwAAADyUIiMgI5SSkpMiJJEgJEMAAAAAXRsgIiAjICEgGyAaQQh0ciAcQRB0ciAOQRh0chAEIAFBAWoiASACRw0ACwsMBAsgASgCACICQQBKBEAgASoCHCABKgIYIiSTQwD/f0eVISUgASoCFCABKgIQIiaTQwD/f0eVIScgASoCDCABQQhqIgMqAgAiKJNDAP9/R5UhKSADIAJBD2xqIQQgAyACQQ5saiEFIAMgAkENbGohBiADIAJBDGxqIQcgAyACQQtsaiEIIAMgAkEKbGohCSADIAJBCWxqIQogAyACQQN0aiELIAMgAkEHbGohDCADIAJBBmxqIQ0gAyACQQVsaiEPIAMgAkECdGohECADIAJBA2xqIREgAyACQQF0aiESIAEgAmpBCGohE0EAIQEDQCABIAVqLQAAIRQgASAGai0AACEVIAEgBGotAAAhFiABIAlqLQAAIRcgASAKai0AACEYIAEgCGotAAAhGSABIAdqLQAAIRogASALai0AACEbIAEgDGotAAAhHCAAIAFBA3QgASADai0AACABIBFqLQAAQQh0crMgKZQgKJIgASATai0AACABIBBqLQAAQQh0crMgJ5QgJpIgASASai0AACABIA9qLQAAQQh0crMgJZQgJJIgASANai0AALNDAACAPZRDAAAgwZIQACAcs0MAAIA9lEMAACDBkhAAIBuzQwAAgD2UQwAAIMGSEABDAAAAAEMAAIA/IBazQwAAAMOSQwAAADyUIiEgIZQgFbNDAAAAw5JDAAAAPJQiIiAilCAUs0MAAADDkkMAAAA8lCIjICOUkpKTIiqRICpDAAAAAF0bICIgIyAhIBggF0EIdHIgGUEQdHIgGkEYdHIQBCABQQFqIgEgAkcNAAsLDAMLQQAhAyABKAIAIgVBAEoEQANAIAEgA0EJbGoiAi0ADSEGIAItAAwhByACLQALIQggAi0ACiEJIAItAAkhCiACLQAIIQsgAi0AECEMIAItAA8hDSACLQAOIQIgACADQQR0aiIEQoCAgIAQNwIIIAQgDEEQdEGAgOAHcSANQRV0QYCAgPgBcSACQRp0QYCAgIB+cXJyNgIEIAQgBkEBdkH8AHEgB0EEdEGAH3EgCEEJdEGA4AdxIAlBDnRBgID4AXEgCkETdEGAgIA+cSALQRh0QYCAgEBxcnJycnIgAkEGdnI2AgAgA0EBaiIDIAVHDQALCwwCC0EAIQMgASgCACIHQQBKBEADQCABIANBGGxqIgItABohCCACLQAZIQkgAi0AGCEKIAItABchCyACLQAWIQwgAi0AFSENIAItAA0hDyACLQAMIRAgAi0ACyERIAItAAohEiACLQAJIRMgAi0ACCEUIAItABQhBSACLQATIRUgAi0AEiEWIAItABEhFyACLQAQIRggAi0ADyEZIAItAA4hBiAAIANBBHRqIgQgAi0AH0EFdEGAPnEgAi0AHkEKdEGAwA9xIAItAB1BD3RBgIDwA3EgAi0AHEEUdEGAgID8AHEgAi0AGyICQRl0QYCAgIB/cXJycnJBAXI2AgwgBCAVQQF0QfADcSAWQQZ0QYD8AHEgF0ELdEGAgB9xIBhBEHRBgIDgB3EgGUEVdEGAgID4AXEgBkEadEGAgICAfnFycnJyciAFQQR2cjYCBCAEIA9BAXZB/ABxIBBBBHRBgB9xIBFBCXRBgOAHcSASQQ50QYCA+AFxIBNBE3RBgICAPnEgFEEYdEGAgIBAcXJycnJyIAZBBnZyNgIAIAQgCEECdkE+cSAJQQN0QcAPcSAKQQh0QYDwA3EgC0ENdEGAgPwAcSAMQRJ0QYCAgB9xIA1BF3RBgICA4AdxIAVBHHRBgICAgHhxcnJycnJyIAJBB3ZyNgIIIANBAWoiAyAHRw0ACwsMAQtBACEDIAEoAgAiB0EASgRAA0AgASADQRVsaiICLQAaIQggAi0AGSEJIAItABghCiACLQAXIQsgAi0AFiEMIAItABUhDSACLQANIQ8gAi0ADCEQIAItAAshESACLQAKIRIgAi0ACSETIAItAAghFCACLQAUIQUgAi0AEyEVIAItABIhFiACLQARIRcgAi0AECEYIAItAA8hGSACLQAOIQYgACADQQR0aiIEIAItABxBFHRBgICA/ABxIAItABsiAkEZdEGAgICAf3FyQQFyNgIMIAQgFUEBdEHwA3EgFkEGdEGA/ABxIBdBC3RBgIAfcSAYQRB0QYCA4AdxIBlBFXRBgICA+AFxIAZBGnRBgICAgH5xcnJycnIgBUEEdnI2AgQgBCAPQQF2QfwAcSAQQQR0QYAfcSARQQl0QYDgB3EgEkEOdEGAgPgBcSATQRN0QYCAgD5xIBRBGHRBgICAQHFycnJyciAGQQZ2cjYCACAEIAhBAnZBPnEgCUEDdEHAD3EgCkEIdEGA8ANxIAtBDXRBgID8AHEgDEESdEGAgIAfcSANQRd0QYCAgOAHcSAFQRx0QYCAgIB4cXJycnJyciACQQd2cjYCCCADQQFqIgMgB0cNAAsLC0EAIQILIAIL";
|
|
801
|
+
async function Yc(n) {
|
|
802
|
+
const t = new Uint32Array(n.buffer), e = new Float32Array(n.buffer), i = new $r();
|
|
803
803
|
i.Fixed = String.fromCharCode(n[0]) + String.fromCharCode(n[1]) + String.fromCharCode(n[2]), i.Version = n[3], i.SplatCount = t[1], i.MinX = e[2], i.MaxX = e[3], i.MinY = e[4], i.MaxY = e[5], i.MinZ = e[6], i.MaxZ = e[7], i.MinTopY = e[8], i.MaxTopY = e[9], i.CreateDate = t[10], i.CreaterId = t[11], i.ExclusiveId = t[12], i.ShDegree = n[52], i.Flag1 = n[53], i.Flag2 = n[54], i.Flag3 = n[55], i.Reserve1 = t[14], i.Reserve2 = t[15];
|
|
804
804
|
let a = "";
|
|
805
805
|
for (let g = 64; g < 124; g++)
|
|
806
806
|
a += String.fromCharCode(n[g]);
|
|
807
807
|
if (i.Comment = a.trim(), i.HashCheck = !0, i.Fixed !== "spx" && i.Version !== 1)
|
|
808
808
|
return null;
|
|
809
|
-
const o = i.CreaterId == 1202056903 ?
|
|
809
|
+
const o = i.CreaterId == 1202056903 ? Cs : ms, s = WebAssembly.compile(Uint8Array.from(atob(o), (g) => g.charCodeAt(0)).buffer), r = new WebAssembly.Memory({ initial: 1, maximum: 1 }), A = (await WebAssembly.instantiate(await s, { env: { memory: r, expf: Yn } })).exports.H;
|
|
810
810
|
return new Uint8Array(r.buffer).set(n, 0), A(0) && (i.HashCheck = !1), i;
|
|
811
811
|
}
|
|
812
812
|
async function vt(n, t = null) {
|
|
813
813
|
let e = new Uint32Array(n.slice(0, 8).buffer);
|
|
814
814
|
const i = e[0], a = e[1];
|
|
815
|
-
if (a ==
|
|
815
|
+
if (a == cc) {
|
|
816
816
|
if (t.ShDegree == je) {
|
|
817
|
-
const o = await
|
|
817
|
+
const o = await Nc(n);
|
|
818
818
|
return _e(i, je, o);
|
|
819
819
|
} else if (t.ShDegree == Yt) {
|
|
820
|
-
const o = await
|
|
820
|
+
const o = await Gs(n);
|
|
821
821
|
return _e(i, Yt, o);
|
|
822
822
|
} else if (t.ShDegree == ge) {
|
|
823
|
-
const o = await
|
|
823
|
+
const o = await Gs(n), s = await zc(n), r = await _e(i, Yt, o), c = await _e(i, ge, s);
|
|
824
824
|
return r.success = r.success && c.success, r.isSh23 = !0, r.dataSh3 = c.datas, r;
|
|
825
825
|
}
|
|
826
826
|
}
|
|
827
|
-
return a ==
|
|
827
|
+
return a == rc && (n = await Uc(n)), _e(i, a, n);
|
|
828
828
|
}
|
|
829
829
|
async function _e(n, t, e) {
|
|
830
|
-
const i = je == t, a = Yt == t, o = ge == t, s = i || a || o, r = !s, A = t <= 255 || s ?
|
|
830
|
+
const i = je == t, a = Yt == t, o = ge == t, s = i || a || o, r = !s, A = t <= 255 || s ? Cs : ms, l = n * (s ? tc : O), u = WebAssembly.compile(Uint8Array.from(atob(A), (y) => y.charCodeAt(0)).buffer), g = Math.floor((l + e.byteLength) / Yo) + 2, h = new WebAssembly.Memory({ initial: g, maximum: g }), C = (await WebAssembly.instantiate(await u, { env: { memory: h, expf: Yn } })).exports.D, f = new Uint8Array(h.buffer);
|
|
831
831
|
return f.set(e, l), C(0, l) ? { splatCount: n, blockFormat: t, success: !1 } : { splatCount: n, blockFormat: t, success: !0, datas: f.slice(0, l), isSplat: r, isSh: s, isSh1: i, isSh2: a, isSh3: o };
|
|
832
832
|
}
|
|
833
833
|
async function Xe(n, t) {
|
|
834
|
-
const e = WebAssembly.compile(Uint8Array.from(atob(
|
|
834
|
+
const e = WebAssembly.compile(Uint8Array.from(atob(Cs), (A) => A.charCodeAt(0)).buffer), i = Math.floor(t * O / Yo) + 2, a = new WebAssembly.Memory({ initial: i, maximum: i }), s = (await WebAssembly.instantiate(await e, { env: { memory: a, expf: Yn } })).exports.s, r = new Uint8Array(a.buffer);
|
|
835
835
|
r.set(n.slice(0, t * O), 0);
|
|
836
836
|
const c = s(0, t);
|
|
837
837
|
return c ? (console.error("splat data parser failed:", c), new Uint8Array(0)) : r.slice(0, t * O);
|
|
838
838
|
}
|
|
839
|
-
async function
|
|
840
|
-
const a = WebAssembly.compile(Uint8Array.from(atob(
|
|
839
|
+
async function Gc(n, t, e = !0, i = !0) {
|
|
840
|
+
const a = WebAssembly.compile(Uint8Array.from(atob(ms), (u) => u.charCodeAt(0)).buffer), o = new WebAssembly.Memory({ initial: 1, maximum: 1 }), r = (await WebAssembly.instantiate(await a, { env: { memory: o, expf: Yn } })).exports.w, c = new Uint8Array(o.buffer), A = new Float32Array(c.buffer), l = i ? -1 : 1;
|
|
841
841
|
return A[0] = n, e ? A[1] = l * t : A[2] = l * t, r(0, e ? 1 : 0), c.slice(0, O);
|
|
842
842
|
}
|
|
843
|
-
function
|
|
843
|
+
function Yn(n) {
|
|
844
844
|
return Math.exp(n);
|
|
845
845
|
}
|
|
846
846
|
const Fe = yt ? 20480 : 51200;
|
|
847
|
-
async function
|
|
847
|
+
async function qc(n) {
|
|
848
848
|
try {
|
|
849
849
|
n.status = P.Fetching;
|
|
850
850
|
const a = n.abortController.signal, o = n.opts.fetchReload ? "reload" : "default", s = await fetch(n.opts.url, { mode: "cors", credentials: "omit", cache: o, signal: a });
|
|
@@ -884,10 +884,10 @@ async function Yc(n) {
|
|
|
884
884
|
const h = async () => {
|
|
885
885
|
if (l > Fe) {
|
|
886
886
|
const d = await e(a, g, Fe);
|
|
887
|
-
|
|
887
|
+
qs(o, d), o.downloadSplatCount += Fe, l -= Fe, g = g.slice(Fe * o.rowLength), setTimeout(h);
|
|
888
888
|
} else {
|
|
889
889
|
const d = await e(a, g, l);
|
|
890
|
-
|
|
890
|
+
qs(o, d), o.downloadSplatCount += l, A(u);
|
|
891
891
|
}
|
|
892
892
|
};
|
|
893
893
|
await h();
|
|
@@ -903,13 +903,13 @@ async function Yc(n) {
|
|
|
903
903
|
const d = new Uint32Array(2);
|
|
904
904
|
d[0] = s, d[1] = ge, g.set(new Uint8Array(d.buffer), 0);
|
|
905
905
|
for (let p = 0, y = 0; p < s; p++)
|
|
906
|
-
for (let
|
|
906
|
+
for (let w = 0; w < 8; w++)
|
|
907
907
|
for (let b = 0; b < 3; b++)
|
|
908
|
-
u[8 + y++] = An(c[(p * n.rowLength + a.offsets["f_rest_" + (
|
|
908
|
+
u[8 + y++] = An(c[(p * n.rowLength + a.offsets["f_rest_" + (w + b * 15)]) / 4]);
|
|
909
909
|
for (let p = 0, y = 0; p < s; p++)
|
|
910
|
-
for (let
|
|
910
|
+
for (let w = 8; w < 15; w++)
|
|
911
911
|
for (let b = 0; b < 3; b++)
|
|
912
|
-
g[8 + y++] = An(c[(p * n.rowLength + a.offsets["f_rest_" + (
|
|
912
|
+
g[8 + y++] = An(c[(p * n.rowLength + a.offsets["f_rest_" + (w + b * 15)]) / 4]);
|
|
913
913
|
const C = await vt(u);
|
|
914
914
|
n.sh12Data.push(C.datas);
|
|
915
915
|
const f = await vt(g);
|
|
@@ -958,8 +958,8 @@ async function Yc(n) {
|
|
|
958
958
|
};
|
|
959
959
|
for (let C of o.slice(0, r).split(`
|
|
960
960
|
`).filter((f) => f.startsWith("property "))) {
|
|
961
|
-
const [f, p, y] = C.split(" "),
|
|
962
|
-
u[y] =
|
|
961
|
+
const [f, p, y] = C.split(" "), w = g[p] || "getInt8";
|
|
962
|
+
u[y] = w, l[y] = A, A += parseInt(w.replace(/[^\d]/g, "")) / 8;
|
|
963
963
|
}
|
|
964
964
|
let h = 0;
|
|
965
965
|
u.f_rest_44 ? h = 3 : u.f_rest_23 ? h = 2 : u.f_rest_8 && (h = 1);
|
|
@@ -972,7 +972,7 @@ async function Yc(n) {
|
|
|
972
972
|
return { headerLength: r + s.length, offsets: l, rowLength: A, vertexCount: c, shDegree: h };
|
|
973
973
|
}
|
|
974
974
|
}
|
|
975
|
-
function
|
|
975
|
+
function qs(n, t) {
|
|
976
976
|
let e = t.byteLength / O;
|
|
977
977
|
const i = Math.min(n.fetchLimit, n.modelSplatCount);
|
|
978
978
|
n.dataSplatCount + e > i ? (e = i - n.dataSplatCount, n.splatData.set(t.slice(0, e * O), n.dataSplatCount * O)) : n.splatData.set(t, n.dataSplatCount * O);
|
|
@@ -984,7 +984,7 @@ function Gs(n, t) {
|
|
|
984
984
|
n.currentRadius = Math.sqrt(n.maxX * n.maxX + o * o + n.maxZ * n.maxZ), n.aabbCenter = new Q((n.minX + n.maxX) / 2, (n.minY + n.maxY) / 2, (n.minZ + n.maxZ) / 2), n.maxRadius = 0.5 * Math.sqrt(Math.pow(n.maxX - n.minX, 2) + Math.pow(n.maxY - n.minY, 2) + Math.pow(n.maxZ - n.minZ, 2)), n.metaMatrix && n.aabbCenter.applyMatrix4(n.metaMatrix);
|
|
985
985
|
}
|
|
986
986
|
const pe = yt ? 20480 : 51200;
|
|
987
|
-
async function
|
|
987
|
+
async function Vc(n) {
|
|
988
988
|
let t = 0;
|
|
989
989
|
try {
|
|
990
990
|
n.status = P.Fetching;
|
|
@@ -1024,17 +1024,17 @@ async function Gc(n) {
|
|
|
1024
1024
|
const u = async () => {
|
|
1025
1025
|
if (c > pe) {
|
|
1026
1026
|
const g = await Xe(l, pe);
|
|
1027
|
-
|
|
1027
|
+
Vs(i, g), i.downloadSplatCount += pe, t += pe * i.rowLength, i.downloadSize = t, c -= pe, l = l.slice(pe * i.rowLength), setTimeout(u);
|
|
1028
1028
|
} else {
|
|
1029
1029
|
const g = await Xe(l, c);
|
|
1030
|
-
|
|
1030
|
+
Vs(i, g), i.downloadSplatCount += c, t += c * i.rowLength, i.downloadSize = t, r(A);
|
|
1031
1031
|
}
|
|
1032
1032
|
};
|
|
1033
1033
|
await u();
|
|
1034
1034
|
});
|
|
1035
1035
|
}
|
|
1036
1036
|
}
|
|
1037
|
-
function
|
|
1037
|
+
function Vs(n, t) {
|
|
1038
1038
|
let e = t.byteLength / O;
|
|
1039
1039
|
const i = (n.dataSplatCount + e) * O;
|
|
1040
1040
|
if (i > n.splatData.length) {
|
|
@@ -1056,8 +1056,8 @@ function qs(n, t) {
|
|
|
1056
1056
|
const s = n.header?.MinTopY || 0;
|
|
1057
1057
|
n.currentRadius = Math.sqrt(n.maxX * n.maxX + s * s + n.maxZ * n.maxZ), n.aabbCenter = new Q((n.minX + n.maxX) / 2, (n.minY + n.maxY) / 2, (n.minZ + n.maxZ) / 2), n.maxRadius = 0.5 * Math.sqrt(Math.pow(n.maxX - n.minX, 2) + Math.pow(n.maxY - n.minY, 2) + Math.pow(n.maxZ - n.minZ, 2)), n.metaMatrix && n.aabbCenter.applyMatrix4(n.metaMatrix);
|
|
1058
1058
|
}
|
|
1059
|
-
const
|
|
1060
|
-
async function
|
|
1059
|
+
const Wc = [ac, lc];
|
|
1060
|
+
async function $c(n) {
|
|
1061
1061
|
try {
|
|
1062
1062
|
n.status = P.Fetching;
|
|
1063
1063
|
const t = n.abortController.signal, e = n.opts.fetchReload ? "reload" : "default", i = await fetch(n.opts.url, { mode: "cors", credentials: "omit", cache: e, signal: t });
|
|
@@ -1066,7 +1066,7 @@ async function Vc(n) {
|
|
|
1066
1066
|
return;
|
|
1067
1067
|
}
|
|
1068
1068
|
const a = i.body.getReader(), o = parseInt(i.headers.get("content-length") || "0");
|
|
1069
|
-
if (o - fe <
|
|
1069
|
+
if (o - fe < Zr) {
|
|
1070
1070
|
console.warn("spx data empty", n.opts.url), n.status === P.Fetching && (n.status = P.Invalid);
|
|
1071
1071
|
return;
|
|
1072
1072
|
}
|
|
@@ -1085,16 +1085,16 @@ async function Vc(n) {
|
|
|
1085
1085
|
let v = 0;
|
|
1086
1086
|
for (let m = 0; m < r.length; m++)
|
|
1087
1087
|
v + r[m].byteLength < fe ? (c.set(r[m], v), v += r[m].byteLength) : (c.set(r[m].slice(0, fe - v), v), y = new Uint8Array(r[m].slice(fe - v)));
|
|
1088
|
-
const x = await
|
|
1088
|
+
const x = await Yc(c);
|
|
1089
1089
|
if (!x) {
|
|
1090
1090
|
n.abortController.abort(), n.status === P.Fetching && (n.status = P.Invalid), console.error("invalid spx format");
|
|
1091
1091
|
continue;
|
|
1092
1092
|
}
|
|
1093
|
-
if (n.meta.autoCut > 1 &&
|
|
1093
|
+
if (n.meta.autoCut > 1 && !jc(x)) {
|
|
1094
1094
|
n.abortController.abort(), n.status === P.Fetching && (n.status = P.Invalid), console.error("invalid LOD format");
|
|
1095
1095
|
continue;
|
|
1096
1096
|
}
|
|
1097
|
-
if (n.header = x, n.CompressionRatio =
|
|
1097
|
+
if (n.header = x, n.CompressionRatio = Nn(x.SplatCount, o), n.modelSplatCount = x.SplatCount, n.dataShDegree = x.ShDegree, n.aabbCenter = new Q((x.MinX + x.MaxX) / 2, (x.MinY + x.MaxY) / 2, (x.MinZ + x.MaxZ) / 2), n.maxRadius = 0.5 * Math.sqrt(Math.pow(x.MaxX - x.MinX, 2) + Math.pow(x.MaxY - x.MinY, 2) + Math.pow(x.MaxZ - x.MinZ, 2)), n.metaMatrix && n.aabbCenter.applyMatrix4(n.metaMatrix), r = null, c = null, !Wc.includes(x.ExclusiveId)) {
|
|
1098
1098
|
n.abortController.abort(), n.status = P.Invalid, console.error("Unrecognized format, creater id =", x.CreaterId, ", exclusive id =", x.ExclusiveId, x.Comment);
|
|
1099
1099
|
continue;
|
|
1100
1100
|
}
|
|
@@ -1109,45 +1109,45 @@ async function Vc(n) {
|
|
|
1109
1109
|
const v = new Int32Array(D.slice(0, 4).buffer)[0];
|
|
1110
1110
|
C = v < 0, f = Math.abs(v) >> 28 >>> 0, g = Math.abs(v) << 4 >>> 4;
|
|
1111
1111
|
}
|
|
1112
|
-
let
|
|
1113
|
-
if (d.push(y),
|
|
1112
|
+
let w = h + y.byteLength;
|
|
1113
|
+
if (d.push(y), w < g) {
|
|
1114
1114
|
h += y.byteLength;
|
|
1115
1115
|
continue;
|
|
1116
1116
|
}
|
|
1117
|
-
for (;
|
|
1117
|
+
for (; w >= g; ) {
|
|
1118
1118
|
let D = new Uint8Array(g), v = 0;
|
|
1119
1119
|
for (let m = 0; m < d.length; m++)
|
|
1120
1120
|
v + d[m].byteLength < g ? (D.set(d[m], v), v += d[m].byteLength) : (D.set(d[m].slice(0, g - v), v), y = new Uint8Array(d[m].slice(g - v)));
|
|
1121
|
-
C && (f === 0 ? D = await
|
|
1121
|
+
C && (f === 0 ? D = await jo(D) : f === 1 ? D = await Pc(D) : console.error("unsuported compress type:", f));
|
|
1122
1122
|
const x = await vt(D, n.header);
|
|
1123
1123
|
if (!x.success) {
|
|
1124
1124
|
console.error("spx block data parser failed. block format:", x.blockFormat), n.abortController.abort(), n.status = P.Invalid;
|
|
1125
1125
|
break;
|
|
1126
1126
|
}
|
|
1127
1127
|
if (x.isSplat)
|
|
1128
|
-
n.downloadSplatCount += x.splatCount,
|
|
1128
|
+
n.downloadSplatCount += x.splatCount, Jc(n, x.datas);
|
|
1129
1129
|
else {
|
|
1130
1130
|
const m = Math.min(n.fetchLimit, n.modelSplatCount);
|
|
1131
1131
|
if (x.isSh23) {
|
|
1132
1132
|
if (n.sh12Count + x.splatCount > m) {
|
|
1133
|
-
const
|
|
1134
|
-
n.sh12Data.push(x.datas.slice(0,
|
|
1133
|
+
const E = m - n.sh12Count;
|
|
1134
|
+
n.sh12Data.push(x.datas.slice(0, E * 16)), n.sh12Count += E;
|
|
1135
1135
|
} else
|
|
1136
1136
|
n.sh12Data.push(x.datas), n.sh12Count += x.splatCount;
|
|
1137
1137
|
if (n.sh3Count + x.splatCount > m) {
|
|
1138
|
-
const
|
|
1139
|
-
n.sh3Data.push(x.dataSh3.slice(0,
|
|
1138
|
+
const E = m - n.sh3Count;
|
|
1139
|
+
n.sh3Data.push(x.dataSh3.slice(0, E * 16)), n.sh3Count += E;
|
|
1140
1140
|
} else
|
|
1141
1141
|
n.sh3Data.push(x.dataSh3), n.sh3Count += x.splatCount;
|
|
1142
1142
|
} else if (x.isSh3)
|
|
1143
1143
|
if (n.sh3Count + x.splatCount > m) {
|
|
1144
|
-
const
|
|
1145
|
-
n.sh3Data.push(x.datas.slice(0,
|
|
1144
|
+
const E = m - n.sh3Count;
|
|
1145
|
+
n.sh3Data.push(x.datas.slice(0, E * 16)), n.sh3Count += E;
|
|
1146
1146
|
} else
|
|
1147
1147
|
n.sh3Data.push(x.datas), n.sh3Count += x.splatCount;
|
|
1148
1148
|
else if (n.sh12Count + x.splatCount > m) {
|
|
1149
|
-
const
|
|
1150
|
-
n.sh12Data.push(x.datas.slice(0,
|
|
1149
|
+
const E = m - n.sh12Count;
|
|
1150
|
+
n.sh12Data.push(x.datas.slice(0, E * 16)), n.sh12Count += E;
|
|
1151
1151
|
} else
|
|
1152
1152
|
n.sh12Data.push(x.datas), n.sh12Count += x.splatCount;
|
|
1153
1153
|
}
|
|
@@ -1156,7 +1156,7 @@ async function Vc(n) {
|
|
|
1156
1156
|
break;
|
|
1157
1157
|
} else {
|
|
1158
1158
|
const m = new Int32Array(y.slice(0, 4).buffer)[0];
|
|
1159
|
-
C = m < 0, f = Math.abs(m) >> 28 >>> 0, g = Math.abs(m) << 4 >>> 4, y = y.slice(4),
|
|
1159
|
+
C = m < 0, f = Math.abs(m) >> 28 >>> 0, g = Math.abs(m) << 4 >>> 4, y = y.slice(4), w = y.byteLength, d = [y], h = y.byteLength;
|
|
1160
1160
|
}
|
|
1161
1161
|
}
|
|
1162
1162
|
const b = n.fetchLimit;
|
|
@@ -1168,7 +1168,7 @@ async function Vc(n) {
|
|
|
1168
1168
|
n.status === P.Fetching && (n.status = P.FetchDone);
|
|
1169
1169
|
}
|
|
1170
1170
|
}
|
|
1171
|
-
function
|
|
1171
|
+
function Jc(n, t) {
|
|
1172
1172
|
let e = !!n.meta.autoCut, i = t.byteLength / 32;
|
|
1173
1173
|
const a = 4096;
|
|
1174
1174
|
if (!e) {
|
|
@@ -1213,17 +1213,17 @@ function Wc(n, t) {
|
|
|
1213
1213
|
b.set(f.splatData, 0), f.splatData = b;
|
|
1214
1214
|
}
|
|
1215
1215
|
f.minX = Math.min(f.minX, l), f.maxX = Math.max(f.maxX, l), f.minY = Math.min(f.minY, u), f.maxY = Math.max(f.maxY, u), f.minZ = Math.min(f.minZ, g), f.maxZ = Math.max(f.maxZ, g), f.center = new Q((f.maxX + f.minX) / 2, (f.maxY + f.minY) / 2, (f.maxZ + f.minZ) / 2), n.metaMatrix && f.center.applyMatrix4(n.metaMatrix);
|
|
1216
|
-
const p = f.maxX - f.minX, y = f.maxY - f.minY,
|
|
1217
|
-
f.radius = Math.sqrt(p * p + y * y +
|
|
1216
|
+
const p = f.maxX - f.minX, y = f.maxY - f.minY, w = f.maxZ - f.minZ;
|
|
1217
|
+
f.radius = Math.sqrt(p * p + y * y + w * w) / 2, n.metaMatrix && (f.radius *= n.metaMatrix.getMaxScaleOnAxis()), f.splatData.set(t.slice(c * O, c * O + O), f.splatCount++ * O);
|
|
1218
1218
|
}
|
|
1219
1219
|
n.dataSplatCount++;
|
|
1220
1220
|
}
|
|
1221
1221
|
}
|
|
1222
|
-
function
|
|
1222
|
+
function jc(n) {
|
|
1223
1223
|
return ((n?.Flag1 || 0) & 128) > 0;
|
|
1224
1224
|
}
|
|
1225
|
-
const X = yt ? 20480 : 51200,
|
|
1226
|
-
async function
|
|
1225
|
+
const X = yt ? 20480 : 51200, oi = 16, Ws = 511;
|
|
1226
|
+
async function Kc(n) {
|
|
1227
1227
|
try {
|
|
1228
1228
|
n.status = P.Fetching;
|
|
1229
1229
|
const a = n.abortController.signal, o = n.opts.fetchReload ? "reload" : "default", s = await fetch(n.opts.url, { mode: "cors", credentials: "omit", cache: o, signal: a });
|
|
@@ -1239,25 +1239,25 @@ async function Jc(n) {
|
|
|
1239
1239
|
if (g) break;
|
|
1240
1240
|
A.set(h, n.downloadSize), n.downloadSize += h.length;
|
|
1241
1241
|
}
|
|
1242
|
-
const l = await
|
|
1242
|
+
const l = await jo(A);
|
|
1243
1243
|
if (!l || l.length < 16) {
|
|
1244
1244
|
console.error("Invalid spz format"), n.status = P.Invalid;
|
|
1245
1245
|
return;
|
|
1246
1246
|
}
|
|
1247
1247
|
const u = i(l);
|
|
1248
|
-
n.CompressionRatio =
|
|
1248
|
+
n.CompressionRatio = Nn(u.numPoints, c), n.spzVersion = u.version, n.modelSplatCount = u.numPoints, n.dataShDegree = u.shDegree, n.splatData = new Uint8Array(Math.min(n.modelSplatCount, n.fetchLimit) * 32), await t(u, n, l);
|
|
1249
1249
|
} catch (a) {
|
|
1250
1250
|
a.name === "AbortError" ? (n.opts.url, n.status === P.Fetching && (n.status = P.FetchAborted)) : (console.error(a), n.status === P.Fetching && (n.status = P.FetchFailed));
|
|
1251
1251
|
} finally {
|
|
1252
1252
|
n.status === P.Fetching && (n.status = P.FetchDone);
|
|
1253
1253
|
}
|
|
1254
1254
|
async function t(a, o, s) {
|
|
1255
|
-
const r = a.numPoints * 9, c = a.numPoints, A = a.numPoints * 3, l = a.numPoints * 3, u = a.numPoints * (a.version == 2 ? 3 : 4), g =
|
|
1256
|
-
for (let b = 0; b <
|
|
1257
|
-
let D = b <
|
|
1255
|
+
const r = a.numPoints * 9, c = a.numPoints, A = a.numPoints * 3, l = a.numPoints * 3, u = a.numPoints * (a.version == 2 ? 3 : 4), g = oi, h = g + r, d = h + c, C = d + A, f = C + l, p = f + u, y = Math.min(a.numPoints, o.fetchLimit), w = Math.ceil(y / X);
|
|
1256
|
+
for (let b = 0; b < w; b++) {
|
|
1257
|
+
let D = b < w - 1 ? X : y - b * X;
|
|
1258
1258
|
o.dataSplatCount + D > o.fetchLimit && (D = o.fetchLimit - o.dataSplatCount);
|
|
1259
1259
|
const v = new Uint8Array(D * 20 + 8), x = new Uint32Array(2);
|
|
1260
|
-
x[0] = D, x[1] =
|
|
1260
|
+
x[0] = D, x[1] = oc, v.set(new Uint8Array(x.buffer), 0);
|
|
1261
1261
|
let m = 8;
|
|
1262
1262
|
for (let S = 0; S < D; S++)
|
|
1263
1263
|
v[m++] = s[g + (b * X + S) * 9 + 0], v[m++] = s[g + (b * X + S) * 9 + 1], v[m++] = s[g + (b * X + S) * 9 + 2];
|
|
@@ -1272,15 +1272,15 @@ async function Jc(n) {
|
|
|
1272
1272
|
for (let S = 0; S < D; S++)
|
|
1273
1273
|
v[m++] = s[C + (b * X + S) * 3 + 2];
|
|
1274
1274
|
for (let S = 0; S < D; S++)
|
|
1275
|
-
v[m++] =
|
|
1275
|
+
v[m++] = ri(s[d + (b * X + S) * 3]);
|
|
1276
1276
|
for (let S = 0; S < D; S++)
|
|
1277
|
-
v[m++] =
|
|
1277
|
+
v[m++] = ri(s[d + (b * X + S) * 3 + 1]);
|
|
1278
1278
|
for (let S = 0; S < D; S++)
|
|
1279
|
-
v[m++] =
|
|
1280
|
-
const
|
|
1279
|
+
v[m++] = ri(s[d + (b * X + S) * 3 + 2]);
|
|
1280
|
+
const E = [];
|
|
1281
1281
|
if (a.version == 2)
|
|
1282
1282
|
for (let S = 0, L = 0, T = 0, R = 0; S < D; S++)
|
|
1283
|
-
v[m++] = s[h + (b * X + S)], L = s[f + (b * X + S) * 3 + 0], T = s[f + (b * X + S) * 3 + 1], R = s[f + (b * X + S) * 3 + 2],
|
|
1283
|
+
v[m++] = s[h + (b * X + S)], L = s[f + (b * X + S) * 3 + 0], T = s[f + (b * X + S) * 3 + 1], R = s[f + (b * X + S) * 3 + 2], E.push(Xc(L, T, R));
|
|
1284
1284
|
else
|
|
1285
1285
|
for (let S = 0, L = 0, T = 0, R = 0, B = 0; S < D; S++) {
|
|
1286
1286
|
v[m++] = s[h + (b * X + S)], L = s[f + (b * X + S) * 4 + 0], T = s[f + (b * X + S) * 4 + 1], R = s[f + (b * X + S) * 4 + 2], B = s[f + (b * X + S) * 4 + 3];
|
|
@@ -1288,22 +1288,22 @@ async function Jc(n) {
|
|
|
1288
1288
|
let z = k, F = 0, H = [];
|
|
1289
1289
|
for (let G = 3; G >= 0; G--)
|
|
1290
1290
|
if (G !== U) {
|
|
1291
|
-
const q = z &
|
|
1292
|
-
H[G] = Math.SQRT1_2 * (q /
|
|
1291
|
+
const q = z & Ws, V = (z >> 9 & 1) > 0;
|
|
1292
|
+
H[G] = Math.SQRT1_2 * (q / Ws), V && (H[G] = -H[G]), F += H[G] * H[G], z = z >> 10;
|
|
1293
1293
|
}
|
|
1294
1294
|
H[U] = Math.sqrt(Math.max(1 - F, 0));
|
|
1295
1295
|
for (let G = 0; G < 4; G++)
|
|
1296
1296
|
H[G] = j(H[G] * 128 + 128);
|
|
1297
|
-
|
|
1297
|
+
E.push(H);
|
|
1298
1298
|
}
|
|
1299
1299
|
for (let S = 0; S < D; S++)
|
|
1300
|
-
v[m++] =
|
|
1300
|
+
v[m++] = E[S][0];
|
|
1301
1301
|
for (let S = 0; S < D; S++)
|
|
1302
|
-
v[m++] =
|
|
1302
|
+
v[m++] = E[S][1];
|
|
1303
1303
|
for (let S = 0; S < D; S++)
|
|
1304
|
-
v[m++] =
|
|
1304
|
+
v[m++] = E[S][2];
|
|
1305
1305
|
for (let S = 0; S < D; S++)
|
|
1306
|
-
v[m++] =
|
|
1306
|
+
v[m++] = E[S][3];
|
|
1307
1307
|
const M = await vt(v);
|
|
1308
1308
|
if (e(a, o, M.datas), a.shDegree === 1) {
|
|
1309
1309
|
const S = new Uint8Array(D * 9 + 8), L = new Uint32Array(2);
|
|
@@ -1349,22 +1349,22 @@ async function Jc(n) {
|
|
|
1349
1349
|
o.currentRadius = Math.sqrt(o.maxX * o.maxX + l * l + o.maxZ * o.maxZ), o.aabbCenter = new Q((o.minX + o.maxX) / 2, (o.minY + o.maxY) / 2, (o.minZ + o.maxZ) / 2), o.maxRadius = 0.5 * Math.sqrt(Math.pow(o.maxX - o.minX, 2) + Math.pow(o.maxY - o.minY, 2) + Math.pow(o.maxZ - o.minZ, 2)), o.metaMatrix && o.aabbCenter.applyMatrix4(o.metaMatrix);
|
|
1350
1350
|
}
|
|
1351
1351
|
function i(a) {
|
|
1352
|
-
const o = a.slice(0,
|
|
1352
|
+
const o = a.slice(0, oi), s = new Uint32Array(o.buffer), r = {};
|
|
1353
1353
|
if (r.magic = s[0], r.version = s[1], r.numPoints = s[2], r.shDegree = o[12], r.fractionalBits = o[13], r.flags = o[14], r.reserved = o[15], r.magic !== 1347635022) throw new Error("[SPZ ERROR] header not found");
|
|
1354
1354
|
if (r.version < 2 || r.version > 3) throw new Error("[SPZ ERROR] version not supported:" + r.version);
|
|
1355
1355
|
if (r.shDegree > 3) throw new Error("[SPZ ERROR] unsupported SH degree:" + r.shDegree);
|
|
1356
1356
|
if (r.fractionalBits !== 12) throw new Error("[SPZ ERROR] unsupported FractionalBits:" + r.fractionalBits);
|
|
1357
1357
|
const c = r.version == 2 ? 19 : 20;
|
|
1358
1358
|
let A = 0;
|
|
1359
|
-
if (r.shDegree === 1 ? A = 9 : r.shDegree === 2 ? A = 24 : r.shDegree === 3 && (A = 45), a.length !==
|
|
1359
|
+
if (r.shDegree === 1 ? A = 9 : r.shDegree === 2 ? A = 24 : r.shDegree === 3 && (A = 45), a.length !== oi + r.numPoints * (c + A)) throw new Error("[SPZ ERROR] invalid spz data");
|
|
1360
1360
|
return r;
|
|
1361
1361
|
}
|
|
1362
1362
|
}
|
|
1363
|
-
function
|
|
1363
|
+
function ri(n) {
|
|
1364
1364
|
const t = (n - 127.5) / 38.25;
|
|
1365
1365
|
return j((0.5 + Ut * t) * 255);
|
|
1366
1366
|
}
|
|
1367
|
-
function
|
|
1367
|
+
function Xc(n, t, e) {
|
|
1368
1368
|
const i = n / 127.5 - 1, a = t / 127.5 - 1, o = e / 127.5 - 1, s = Math.sqrt(Math.max(0, 1 - (i * i + a * a + o * o)));
|
|
1369
1369
|
return [j(s * 128 + 128), j(i * 128 + 128), j(a * 128 + 128), j(o * 128 + 128)];
|
|
1370
1370
|
}
|
|
@@ -1372,7 +1372,7 @@ async function Xt(n, t) {
|
|
|
1372
1372
|
if (!n) return new Uint8Array(0);
|
|
1373
1373
|
const e = new AbortController(), i = e.signal;
|
|
1374
1374
|
try {
|
|
1375
|
-
t?.fire(
|
|
1375
|
+
t?.fire(Zi);
|
|
1376
1376
|
const a = await fetch(n, { mode: "cors", credentials: "omit", cache: "reload", signal: i });
|
|
1377
1377
|
if (a.status != 200)
|
|
1378
1378
|
return console.warn(`fetch error: ${a.status}`), null;
|
|
@@ -1381,7 +1381,7 @@ async function Xt(n, t) {
|
|
|
1381
1381
|
for (; ; ) {
|
|
1382
1382
|
let { done: A, value: l } = await o.read();
|
|
1383
1383
|
if (A) break;
|
|
1384
|
-
r.set(l, c), c += l.length, t?.fire(
|
|
1384
|
+
r.set(l, c), c += l.length, t?.fire(ts, 100 * c / s);
|
|
1385
1385
|
}
|
|
1386
1386
|
return r;
|
|
1387
1387
|
} catch (a) {
|
|
@@ -1389,8 +1389,8 @@ async function Xt(n, t) {
|
|
|
1389
1389
|
}
|
|
1390
1390
|
return null;
|
|
1391
1391
|
}
|
|
1392
|
-
const
|
|
1393
|
-
async function
|
|
1392
|
+
const $s = yt ? 20480 : 51200, me = Math.sqrt(2);
|
|
1393
|
+
async function Zc(n) {
|
|
1394
1394
|
try {
|
|
1395
1395
|
if (n.status = P.Fetching, n.opts.url.startsWith("blob:") || n.opts.url.endsWith(".sog")) {
|
|
1396
1396
|
n.status = P.Fetching;
|
|
@@ -1407,8 +1407,8 @@ async function Kc(n) {
|
|
|
1407
1407
|
if (l) break;
|
|
1408
1408
|
s.set(u, n.downloadSize), n.downloadSize += u.length;
|
|
1409
1409
|
}
|
|
1410
|
-
const r =
|
|
1411
|
-
n.modelSplatCount = A, n.CompressionRatio =
|
|
1410
|
+
const r = Hc(s), c = JSON.parse(Oc(r.get("meta.json"))), A = c.count || c.means.shape[0];
|
|
1411
|
+
n.modelSplatCount = A, n.CompressionRatio = Nn(A, o), n.sogVersion = c.version ? c.version : 1, await Js(n, r, c);
|
|
1412
1412
|
} else {
|
|
1413
1413
|
const t = await fetch(n.opts.url, { mode: "cors", credentials: "omit", cache: "reload" });
|
|
1414
1414
|
if (t.status != 200) return console.error(`fetch error: ${t.status}`);
|
|
@@ -1428,18 +1428,18 @@ async function Kc(n) {
|
|
|
1428
1428
|
i[i.length - 1] = f;
|
|
1429
1429
|
const p = i.join("/"), y = e.shN ? e.shN.files[1] : "shN_labels.webp";
|
|
1430
1430
|
i[i.length - 1] = y;
|
|
1431
|
-
const
|
|
1431
|
+
const w = i.join("/"), [b, D, v, x, m, E, M] = await Promise.all([
|
|
1432
1432
|
Xt(r),
|
|
1433
1433
|
Xt(A),
|
|
1434
1434
|
Xt(u),
|
|
1435
1435
|
Xt(h),
|
|
1436
1436
|
Xt(C),
|
|
1437
1437
|
Xt(e.shN ? p : ""),
|
|
1438
|
-
Xt(e.shN ?
|
|
1438
|
+
Xt(e.shN ? w : "")
|
|
1439
1439
|
]);
|
|
1440
|
-
a.set(s, b), a.set(c, D), a.set(l, v), a.set(g, x), a.set(d, m), a.set(f,
|
|
1441
|
-
const S = JSON.stringify(e).length + b.length + D.length + v.length + x.length + m.length +
|
|
1442
|
-
n.fileSize = S, n.downloadSize = S, n.watermarkData = new Uint8Array(0), n.CompressionRatio =
|
|
1440
|
+
a.set(s, b), a.set(c, D), a.set(l, v), a.set(g, x), a.set(d, m), a.set(f, E), a.set(y, M);
|
|
1441
|
+
const S = JSON.stringify(e).length + b.length + D.length + v.length + x.length + m.length + E.length + M.length;
|
|
1442
|
+
n.fileSize = S, n.downloadSize = S, n.watermarkData = new Uint8Array(0), n.CompressionRatio = Nn(o, S), n.sogVersion = e.version ? e.version : 1, await Js(n, a, e);
|
|
1443
1443
|
}
|
|
1444
1444
|
} catch (t) {
|
|
1445
1445
|
t.name === "AbortError" ? (n.opts.url, n.status === P.Fetching && (n.status = P.FetchAborted)) : (console.error(t), n.status === P.Fetching && (n.status = P.FetchFailed));
|
|
@@ -1447,17 +1447,17 @@ async function Kc(n) {
|
|
|
1447
1447
|
n.status === P.Fetching && (n.status = P.FetchDone);
|
|
1448
1448
|
}
|
|
1449
1449
|
}
|
|
1450
|
-
async function
|
|
1450
|
+
async function Js(n, t, e) {
|
|
1451
1451
|
const i = !e.version, a = i ? e.means.shape[0] : e.count, o = Math.min(a, n.fetchLimit), s = e.shN ? 3 : 0, r = new Uint8Array(o * vn);
|
|
1452
1452
|
n.modelSplatCount = a, n.dataShDegree = s, n.splatData = r;
|
|
1453
1453
|
const { rgba: c } = await Et(t.get(e.means.files[0])), { rgba: A } = await Et(t.get(e.means.files[1])), { rgba: l } = await Et(t.get(e.scales.files[0])), { rgba: u } = await Et(t.get(e.quats.files[0])), { rgba: g } = await Et(t.get(e.sh0.files[0])), { rgba: h, width: d } = e.shN ? await Et(t.get(e.shN.files[0])) : { rgba: null, width: 0 }, { rgba: C } = e.shN ? await Et(t.get(e.shN.files[1])) : { rgba: null };
|
|
1454
1454
|
for (; o > n.dataSplatCount; ) {
|
|
1455
|
-
const
|
|
1456
|
-
n.splatData.set(
|
|
1455
|
+
const w = i ? await f(n.dataSplatCount) : await p(n.dataSplatCount);
|
|
1456
|
+
n.splatData.set(w.slice(0), n.dataSplatCount * O), y(n, w), n.dataSplatCount += w.byteLength / O, n.downloadSplatCount = n.dataSplatCount;
|
|
1457
1457
|
}
|
|
1458
|
-
async function f(
|
|
1459
|
-
const b = Math.min(
|
|
1460
|
-
for (let m =
|
|
1458
|
+
async function f(w) {
|
|
1459
|
+
const b = Math.min(w + $s, o), D = b - w, v = new Uint8Array(D * vn), x = new Float32Array(v.buffer);
|
|
1460
|
+
for (let m = w, E = 0; m < b; m++) {
|
|
1461
1461
|
let M = (A[m * 4 + 0] << 8 | c[m * 4 + 0]) / 65535, S = (A[m * 4 + 1] << 8 | c[m * 4 + 1]) / 65535, L = (A[m * 4 + 2] << 8 | c[m * 4 + 2]) / 65535, T = e.means.mins[0] + (e.means.maxs[0] - e.means.mins[0]) * M, R = e.means.mins[1] + (e.means.maxs[1] - e.means.mins[1]) * S, B = e.means.mins[2] + (e.means.maxs[2] - e.means.mins[2]) * L;
|
|
1462
1462
|
T = Math.sign(T) * (Math.exp(Math.abs(T)) - 1), R = Math.sign(R) * (Math.exp(Math.abs(R)) - 1), B = Math.sign(B) * (Math.exp(Math.abs(B)) - 1);
|
|
1463
1463
|
let k = l[m * 4 + 0] / 255, U = l[m * 4 + 1] / 255, z = l[m * 4 + 2] / 255;
|
|
@@ -1465,18 +1465,18 @@ async function $s(n, t, e) {
|
|
|
1465
1465
|
let F = (u[m * 4 + 0] / 255 - 0.5) * me, H = (u[m * 4 + 1] / 255 - 0.5) * me, G = (u[m * 4 + 2] / 255 - 0.5) * me, q = Math.sqrt(Math.max(0, 1 - F * F - H * H - G * G)), V = u[m * 4 + 3] - 252, $, N, rt, st;
|
|
1466
1466
|
V == 0 ? ($ = q, N = F, rt = H, st = G) : V == 1 ? ($ = F, N = q, rt = H, st = G) : V == 2 ? ($ = F, N = H, rt = q, st = G) : ($ = F, N = H, rt = G, st = q);
|
|
1467
1467
|
let Rt = e.sh0.mins[0] + (e.sh0.maxs[0] - e.sh0.mins[0]) * (g[m * 4 + 0] / 255), Dt = e.sh0.mins[1] + (e.sh0.maxs[1] - e.sh0.mins[1]) * (g[m * 4 + 1] / 255), W = e.sh0.mins[2] + (e.sh0.maxs[2] - e.sh0.mins[2]) * (g[m * 4 + 2] / 255), K = e.sh0.mins[3] + (e.sh0.maxs[3] - e.sh0.mins[3]) * (g[m * 4 + 3] / 255);
|
|
1468
|
-
x[
|
|
1468
|
+
x[E * 8 + 0] = T, x[E * 8 + 1] = R, x[E * 8 + 2] = B, x[E * 8 + 3] = k, x[E * 8 + 4] = U, x[E * 8 + 5] = z, v[E * 32 + 24] = j((0.5 + Ut * Rt) * 255), v[E * 32 + 25] = j((0.5 + Ut * Dt) * 255), v[E * 32 + 26] = j((0.5 + Ut * W) * 255), v[E * 32 + 27] = j(1 / (1 + Math.exp(-K)) * 255), v[E * 32 + 28] = j($ * 128 + 128), v[E * 32 + 29] = j(N * 128 + 128), v[E * 32 + 30] = j(rt * 128 + 128), v[E * 32 + 31] = j(st * 128 + 128), E++;
|
|
1469
1469
|
}
|
|
1470
1470
|
if (s > 0) {
|
|
1471
1471
|
const m = new Uint32Array(2);
|
|
1472
1472
|
m[0] = D, m[1] = Yt;
|
|
1473
|
-
const
|
|
1474
|
-
|
|
1473
|
+
const E = new Uint8Array(8 + D * 24);
|
|
1474
|
+
E.set(new Uint8Array(m.buffer), 0);
|
|
1475
1475
|
const M = new Uint32Array(2);
|
|
1476
1476
|
M[0] = D, M[1] = ge;
|
|
1477
1477
|
const S = new Uint8Array(8 + D * 21);
|
|
1478
1478
|
S.set(new Uint8Array(M.buffer), 0);
|
|
1479
|
-
for (let R =
|
|
1479
|
+
for (let R = w, B = 0; R < b; R++) {
|
|
1480
1480
|
const k = C[R * 4 + 0] + (C[R * 4 + 1] << 8), U = (k & 63) * 15, F = (k >> 6) * d + U, H = new Uint8Array(9), G = new Uint8Array(15), q = new Uint8Array(21);
|
|
1481
1481
|
let V;
|
|
1482
1482
|
for (let $ = 0; $ < 3; $++) {
|
|
@@ -1487,35 +1487,35 @@ async function $s(n, t, e) {
|
|
|
1487
1487
|
for (let N = 0; N < 7; N++)
|
|
1488
1488
|
V = (e.shN.maxs - e.shN.mins) * h[(F + 8 + N) * 4 + $] / 255 + e.shN.mins, q[N * 3 + $] = j(Math.round(V * 128) + 128);
|
|
1489
1489
|
}
|
|
1490
|
-
|
|
1490
|
+
E.set(H, 8 + B * 24), E.set(G, 8 + B * 24 + 9), S.set(q, 8 + B * 21), B++;
|
|
1491
1491
|
}
|
|
1492
|
-
const L = await vt(
|
|
1492
|
+
const L = await vt(E);
|
|
1493
1493
|
n.sh12Data.push(L.datas);
|
|
1494
1494
|
const T = await vt(S);
|
|
1495
1495
|
n.sh3Data.push(T.datas);
|
|
1496
1496
|
}
|
|
1497
1497
|
return await Xe(v, D);
|
|
1498
1498
|
}
|
|
1499
|
-
async function p(
|
|
1500
|
-
const b = Math.min(
|
|
1501
|
-
for (let m =
|
|
1499
|
+
async function p(w) {
|
|
1500
|
+
const b = Math.min(w + $s, o), D = b - w, v = new Uint8Array(D * vn), x = new Float32Array(v.buffer);
|
|
1501
|
+
for (let m = w, E = 0; m < b; m++) {
|
|
1502
1502
|
let M = (A[m * 4 + 0] << 8 | c[m * 4 + 0]) / 65535, S = (A[m * 4 + 1] << 8 | c[m * 4 + 1]) / 65535, L = (A[m * 4 + 2] << 8 | c[m * 4 + 2]) / 65535, T = e.means.mins[0] + (e.means.maxs[0] - e.means.mins[0]) * M, R = e.means.mins[1] + (e.means.maxs[1] - e.means.mins[1]) * S, B = e.means.mins[2] + (e.means.maxs[2] - e.means.mins[2]) * L;
|
|
1503
1503
|
T = Math.sign(T) * (Math.exp(Math.abs(T)) - 1), R = Math.sign(R) * (Math.exp(Math.abs(R)) - 1), B = Math.sign(B) * (Math.exp(Math.abs(B)) - 1);
|
|
1504
1504
|
let k = Math.exp(e.scales.codebook[l[m * 4 + 0]]), U = Math.exp(e.scales.codebook[l[m * 4 + 1]]), z = Math.exp(e.scales.codebook[l[m * 4 + 2]]), F = (u[m * 4 + 0] / 255 - 0.5) * me, H = (u[m * 4 + 1] / 255 - 0.5) * me, G = (u[m * 4 + 2] / 255 - 0.5) * me, q = Math.sqrt(Math.max(0, 1 - F * F - H * H - G * G)), V = u[m * 4 + 3] - 252, $, N, rt, st;
|
|
1505
1505
|
V == 0 ? ($ = q, N = F, rt = H, st = G) : V == 1 ? ($ = F, N = q, rt = H, st = G) : V == 2 ? ($ = F, N = H, rt = q, st = G) : ($ = F, N = H, rt = G, st = q);
|
|
1506
1506
|
let Rt = e.sh0.codebook[g[m * 4 + 0]], Dt = e.sh0.codebook[g[m * 4 + 1]], W = e.sh0.codebook[g[m * 4 + 2]], K = g[m * 4 + 3];
|
|
1507
|
-
x[
|
|
1507
|
+
x[E * 8 + 0] = T, x[E * 8 + 1] = R, x[E * 8 + 2] = B, x[E * 8 + 3] = k, x[E * 8 + 4] = U, x[E * 8 + 5] = z, v[E * 32 + 24] = j((0.5 + Ut * Rt) * 255), v[E * 32 + 25] = j((0.5 + Ut * Dt) * 255), v[E * 32 + 26] = j((0.5 + Ut * W) * 255), v[E * 32 + 27] = K, v[E * 32 + 28] = j($ * 128 + 128), v[E * 32 + 29] = j(N * 128 + 128), v[E * 32 + 30] = j(rt * 128 + 128), v[E * 32 + 31] = j(st * 128 + 128), E++;
|
|
1508
1508
|
}
|
|
1509
1509
|
if (s > 0) {
|
|
1510
1510
|
const m = new Uint32Array(2);
|
|
1511
1511
|
m[0] = D, m[1] = Yt;
|
|
1512
|
-
const
|
|
1513
|
-
|
|
1512
|
+
const E = new Uint8Array(8 + D * 24);
|
|
1513
|
+
E.set(new Uint8Array(m.buffer), 0);
|
|
1514
1514
|
const M = new Uint32Array(2);
|
|
1515
1515
|
M[0] = D, M[1] = ge;
|
|
1516
1516
|
const S = new Uint8Array(8 + D * 21);
|
|
1517
1517
|
S.set(new Uint8Array(M.buffer), 0);
|
|
1518
|
-
for (let R =
|
|
1518
|
+
for (let R = w, B = 0; R < b; R++) {
|
|
1519
1519
|
const k = C[R * 4 + 0] + (C[R * 4 + 1] << 8), U = (k & 63) * 15, F = (k >> 6) * d + U, H = new Uint8Array(9), G = new Uint8Array(15), q = new Uint8Array(21);
|
|
1520
1520
|
let V;
|
|
1521
1521
|
for (let $ = 0; $ < 3; $++) {
|
|
@@ -1526,43 +1526,43 @@ async function $s(n, t, e) {
|
|
|
1526
1526
|
for (let N = 0; N < 7; N++)
|
|
1527
1527
|
V = e.shN.codebook[h[(F + 8 + N) * 4 + $]], q[N * 3 + $] = j(Math.round(V * 128) + 128);
|
|
1528
1528
|
}
|
|
1529
|
-
|
|
1529
|
+
E.set(H, 8 + B * 24), E.set(G, 8 + B * 24 + 9), S.set(q, 8 + B * 21), B++;
|
|
1530
1530
|
}
|
|
1531
|
-
const L = await vt(
|
|
1531
|
+
const L = await vt(E);
|
|
1532
1532
|
n.sh12Data.push(L.datas);
|
|
1533
1533
|
const T = await vt(S);
|
|
1534
1534
|
n.sh3Data.push(T.datas);
|
|
1535
1535
|
}
|
|
1536
1536
|
return await Xe(v, D);
|
|
1537
1537
|
}
|
|
1538
|
-
function y(
|
|
1538
|
+
function y(w, b) {
|
|
1539
1539
|
const D = b.byteLength / O, v = new Float32Array(b.buffer);
|
|
1540
|
-
for (let m = 0,
|
|
1541
|
-
|
|
1540
|
+
for (let m = 0, E = 0, M = 0, S = 0; m < D; m++)
|
|
1541
|
+
E = v[m * 8], M = v[m * 8 + 1], S = v[m * 8 + 2], w.minX = Math.min(w.minX, E), w.maxX = Math.max(w.maxX, E), w.minY = Math.min(w.minY, M), w.maxY = Math.max(w.maxY, M), w.minZ = Math.min(w.minZ, S), w.maxZ = Math.max(w.maxZ, S);
|
|
1542
1542
|
const x = 0;
|
|
1543
|
-
|
|
1543
|
+
w.currentRadius = Math.sqrt(w.maxX * w.maxX + x * x + w.maxZ * w.maxZ), w.aabbCenter = new Q((w.minX + w.maxX) / 2, (w.minY + w.maxY) / 2, (w.minZ + w.maxZ) / 2), w.maxRadius = 0.5 * Math.sqrt(Math.pow(w.maxX - w.minX, 2) + Math.pow(w.maxY - w.minY, 2) + Math.pow(w.maxZ - w.minZ, 2)), w.metaMatrix && w.aabbCenter.applyMatrix4(w.metaMatrix);
|
|
1544
1544
|
}
|
|
1545
1545
|
}
|
|
1546
|
-
function
|
|
1547
|
-
const t = (m,
|
|
1546
|
+
function tl(n) {
|
|
1547
|
+
const t = (m, E, M) => n.on(m, E, M), e = (m, ...E) => n.fire(m, ...E);
|
|
1548
1548
|
let i, a = Date.now() + 36e5, o = null, s, r = { index: 0, version: 0 }, c = { index: 1, version: 0 }, A = !1;
|
|
1549
1549
|
const l = e(Ct);
|
|
1550
1550
|
let u = !1, g = 0;
|
|
1551
|
-
t(
|
|
1551
|
+
t(Bo, () => s?.aabbCenter || new Q());
|
|
1552
1552
|
let h;
|
|
1553
1553
|
const d = new Promise((m) => h = m);
|
|
1554
1554
|
t(Ee, async () => {
|
|
1555
1555
|
const m = e(_);
|
|
1556
|
-
let
|
|
1556
|
+
let E = yt ? m.maxRenderCountOfMobile : m.maxRenderCountOfPc;
|
|
1557
1557
|
if (!m.bigSceneMode) {
|
|
1558
1558
|
let M = await d;
|
|
1559
|
-
|
|
1559
|
+
E = Math.min(M, E) + 10240;
|
|
1560
1560
|
}
|
|
1561
|
-
return
|
|
1561
|
+
return E;
|
|
1562
1562
|
}), t(Ue, async (m) => {
|
|
1563
|
-
const
|
|
1564
|
-
if (
|
|
1565
|
-
let M = yt ?
|
|
1563
|
+
const E = e(_);
|
|
1564
|
+
if (E.bigSceneMode) return 1;
|
|
1565
|
+
let M = yt ? E.maxRenderCountOfMobile : E.maxRenderCountOfPc, S = await d;
|
|
1566
1566
|
if (M = Math.min(S, M), !s.dataShDegree) return 1;
|
|
1567
1567
|
if (m >= 3) {
|
|
1568
1568
|
if (s.dataShDegree < 3) return 1;
|
|
@@ -1572,23 +1572,23 @@ function Xc(n) {
|
|
|
1572
1572
|
return 1;
|
|
1573
1573
|
const L = 1024 * 2;
|
|
1574
1574
|
return Math.ceil(M / L);
|
|
1575
|
-
}), t(
|
|
1575
|
+
}), t(us, async () => e(_).bigSceneMode ? 0 : (await d, s.dataShDegree)), t(as, async (m, E = !0) => {
|
|
1576
1576
|
try {
|
|
1577
1577
|
await d;
|
|
1578
1578
|
const M = !!s.header?.Flag2;
|
|
1579
|
-
o = await e(
|
|
1579
|
+
o = await e(wo, m, E, M), s && (s.textWatermarkVersion = Date.now());
|
|
1580
1580
|
} catch {
|
|
1581
1581
|
console.info("failed to generate watermark");
|
|
1582
1582
|
}
|
|
1583
|
-
}), t(
|
|
1583
|
+
}), t(xo, (m) => {
|
|
1584
1584
|
l && (m ? (!c.active && (c.activeTime = Date.now()), c.active = !0) : (!r.active && (r.activeTime = Date.now()), r.active = !0));
|
|
1585
|
-
}), t(
|
|
1585
|
+
}), t(Mi, () => {
|
|
1586
1586
|
if (l) return r.version <= c.version ? r.xyz : c.xyz;
|
|
1587
1587
|
if (s?.status === P.FetchDone || s?.status === P.FetchAborted) {
|
|
1588
1588
|
if (s.activePoints && s.activePoints.length === void 0) return s.activePoints;
|
|
1589
|
-
const m = {},
|
|
1590
|
-
for (let M = 0, S =
|
|
1591
|
-
L =
|
|
1589
|
+
const m = {}, E = r.xyz;
|
|
1590
|
+
for (let M = 0, S = E.length / 3, L = 0, T = 0, R = 0, B = ""; M < S; M++)
|
|
1591
|
+
L = E[M * 3], T = E[M * 3 + 1], R = E[M * 3 + 2], B = `${Math.floor(L / 2) * 2 + 1},${Math.floor(T / 2) * 2 + 1},${Math.floor(R / 2) * 2 + 1}`, (m[B] = m[B] || []).push(L, T, R);
|
|
1592
1592
|
return s.activePoints = m;
|
|
1593
1593
|
}
|
|
1594
1594
|
return r.xyz;
|
|
@@ -1598,39 +1598,39 @@ function Xc(n) {
|
|
|
1598
1598
|
if (s && (s.status === P.Invalid || s.status === P.FetchFailed))
|
|
1599
1599
|
return e(_).viewerEvents?.fire(ht), e(He, 0) || e(it, { renderSplatCount: 0, visibleSplatCount: 0, modelSplatCount: 0 });
|
|
1600
1600
|
if (!s || !s.downloadSize) return;
|
|
1601
|
-
const
|
|
1602
|
-
if (b(
|
|
1601
|
+
const E = s.status !== P.FetchReady && s.status !== P.Fetching;
|
|
1602
|
+
if (b(E), E) {
|
|
1603
1603
|
const M = Math.min(s.fetchLimit, s.downloadSplatCount);
|
|
1604
1604
|
M && !s.notifyFetchStopDone && (s.notifyFetchStopDone = !0) && e(He, M);
|
|
1605
1605
|
} else
|
|
1606
|
-
e(
|
|
1606
|
+
e(ts, 100 * s.downloadSize / s.fileSize);
|
|
1607
1607
|
s.dataSplatCount && (A || (A = !0, setTimeout(async () => {
|
|
1608
|
-
m ? await p(
|
|
1608
|
+
m ? await p(E) : await f(E), A = !1;
|
|
1609
1609
|
})));
|
|
1610
1610
|
}
|
|
1611
1611
|
async function f(m) {
|
|
1612
1612
|
if (i) return;
|
|
1613
|
-
const
|
|
1613
|
+
const E = r, M = await e(Ee), S = o;
|
|
1614
1614
|
let L = s.dataSplatCount, T = m ? s.watermarkCount : 0, R = s.meta.showWatermark && m ? (S?.byteLength || 0) / 32 : 0;
|
|
1615
|
-
if (s.renderSplatCount = L + T + R, s.renderSplatCount >= M && (s.renderSplatCount = M, T = 0, R = 0, L > M && (L = M)), e(it, { visibleSplatCount: s.renderSplatCount, modelSplatCount: s.modelSplatCount + R }), Date.now() -
|
|
1616
|
-
if (!
|
|
1617
|
-
e(
|
|
1615
|
+
if (s.renderSplatCount = L + T + R, s.renderSplatCount >= M && (s.renderSplatCount = M, T = 0, R = 0, L > M && (L = M)), e(it, { visibleSplatCount: s.renderSplatCount, modelSplatCount: s.modelSplatCount + R }), Date.now() - E.textureReadyTime < Kr || s.smallSceneUploadDone && s.lastTextWatermarkVersion == s.textWatermarkVersion) return;
|
|
1616
|
+
if (!E.version) {
|
|
1617
|
+
e(so, (s.header?.Flag2 ? s.header.MaxTopY : s.header?.MinTopY) || 0);
|
|
1618
1618
|
let q = s.opts.format, V = " ";
|
|
1619
1619
|
s.opts.format == "spx" ? (q = "spx v" + s.header.Version + (s.header.ExclusiveId ? (", " + s.header.ExclusiveId).substring(0, 5) : ""), V += s.CompressionRatio) : s.opts.format == "spz" ? (q = "spz v" + s.spzVersion, V += s.CompressionRatio) : s.opts.format == "sog" ? (q = "sog v" + s.sogVersion, V += s.CompressionRatio) : s.opts.format == "splat" && (V += s.CompressionRatio);
|
|
1620
1620
|
const $ = " " + (s.fileSize / 1024 / 1024).toFixed(1) + "M";
|
|
1621
1621
|
e(it, { scene: `small (${q}) ${V}${$}` });
|
|
1622
1622
|
}
|
|
1623
|
-
s.lastTextWatermarkVersion = s.textWatermarkVersion,
|
|
1623
|
+
s.lastTextWatermarkVersion = s.textWatermarkVersion, E.textureReady = !1;
|
|
1624
1624
|
const B = 1024 * 2, k = Math.ceil(2 * M / B), U = new Uint32Array(B * k * 4), z = new Float32Array(U.buffer), F = new Uint8Array(U.buffer);
|
|
1625
1625
|
F.set(s.splatData.slice(0, L * 32), 0), T && F.set(s.watermarkData.slice(0, T * 32), L * 32), R && F.set(S.slice(0, R * 32), (L + T) * 32);
|
|
1626
1626
|
const H = new Float32Array(s.renderSplatCount * 3);
|
|
1627
1627
|
for (let q = 0, V = 0; q < s.renderSplatCount; q++)
|
|
1628
1628
|
H[q * 3] = z[q * 8], H[q * 3 + 1] = z[q * 8 + 1], H[q * 3 + 2] = z[q * 8 + 2];
|
|
1629
1629
|
const G = Date.now();
|
|
1630
|
-
if (
|
|
1631
|
-
s.smallSceneUploadDone = !0, e(
|
|
1630
|
+
if (E.version = G, E.txdata = U, E.xyz = H, E.renderSplatCount = s.renderSplatCount, E.visibleSplatCount = s.downloadSplatCount + R, E.modelSplatCount = s.downloadSplatCount + R, E.watermarkCount = T + R, E.minX = s.minX, E.maxX = s.maxX, E.minY = s.minY, E.maxY = s.maxY, E.minZ = s.minZ, E.maxZ = s.maxZ, s.meta.particleMode && !g && (g = performance.now(), e(Fn, g), e(ce, !1), e(Pn, 1)), s.maxRadius && e(Lo, s.maxRadius), e(Ti, E, s.currentRadius, s.currentRadius), a = G, m && !s.smallSceneUploadDone) {
|
|
1631
|
+
s.smallSceneUploadDone = !0, e(So, s.sh12Data), e(bo, s.sh3Data), s.sh12Data = null, s.sh3Data = null;
|
|
1632
1632
|
const q = e(_);
|
|
1633
|
-
e(bn, q.shDegree === void 0 ? 3 : q.shDegree), e(
|
|
1633
|
+
e(bn, q.shDegree === void 0 ? 3 : q.shDegree), e(Mi), s.meta.particleMode && setTimeout(() => {
|
|
1634
1634
|
e(Fn, performance.now() + 5e3), e(Pn, 2), setTimeout(() => e(En, !0), 5e3);
|
|
1635
1635
|
}, Math.max(5e3 + g - performance.now(), 0));
|
|
1636
1636
|
}
|
|
@@ -1638,13 +1638,13 @@ function Xc(n) {
|
|
|
1638
1638
|
}
|
|
1639
1639
|
async function p(m) {
|
|
1640
1640
|
if (i) return;
|
|
1641
|
-
const
|
|
1641
|
+
const E = await e(Ee), M = 1024 * 2, S = Math.ceil(2 * E / M), L = o, T = 0, R = (L?.byteLength || 0) / 32, B = E - T - R;
|
|
1642
1642
|
e(it, { modelSplatCount: s.downloadSplatCount + R });
|
|
1643
1643
|
let k = r.version <= c.version ? r : c;
|
|
1644
|
-
if (r.version && (!k.index && !c.active || k.index && !r.active) || Date.now() - k.activeTime <
|
|
1644
|
+
if (r.version && (!k.index && !c.active || k.index && !r.active) || Date.now() - k.activeTime < Xr) return;
|
|
1645
1645
|
if (m) {
|
|
1646
1646
|
const W = e(_).viewerEvents;
|
|
1647
|
-
if (W && !W.fire(
|
|
1647
|
+
if (W && !W.fire(Xi)) return;
|
|
1648
1648
|
}
|
|
1649
1649
|
if (!k.version) {
|
|
1650
1650
|
let W = s.opts.format, K = " ";
|
|
@@ -1655,9 +1655,9 @@ function Xc(n) {
|
|
|
1655
1655
|
const U = Date.now();
|
|
1656
1656
|
k.version = U, k.active = !1;
|
|
1657
1657
|
let z = 0;
|
|
1658
|
-
const F = [], H = e(
|
|
1658
|
+
const F = [], H = e(to), G = e(Lt), q = e(Ot);
|
|
1659
1659
|
for (const W of s.map.values())
|
|
1660
|
-
|
|
1660
|
+
w(H, G, q, W) && (F.push(W), W.currentRenderCnt = W.splatCount, z += W.splatCount);
|
|
1661
1661
|
e(it, { cuts: `${F.length} / ${s.map.size}` });
|
|
1662
1662
|
const V = Math.min(B / z, 1);
|
|
1663
1663
|
if (V > 0.95)
|
|
@@ -1683,8 +1683,8 @@ function Xc(n) {
|
|
|
1683
1683
|
if (gt.splatCount - gt.currentRenderCnt >= K)
|
|
1684
1684
|
gt.currentRenderCnt += K, K = 0;
|
|
1685
1685
|
else {
|
|
1686
|
-
const
|
|
1687
|
-
gt.currentRenderCnt +=
|
|
1686
|
+
const Is = gt.splatCount - gt.currentRenderCnt;
|
|
1687
|
+
gt.currentRenderCnt += Is, K -= Is;
|
|
1688
1688
|
}
|
|
1689
1689
|
}
|
|
1690
1690
|
}
|
|
@@ -1697,15 +1697,15 @@ function Xc(n) {
|
|
|
1697
1697
|
const Rt = st + T + R, Dt = new Float32Array(Rt * 3);
|
|
1698
1698
|
for (let W = 0, K = 0; W < Rt; W++)
|
|
1699
1699
|
Dt[W * 3] = N[W * 8], Dt[W * 3 + 1] = N[W * 8 + 1], Dt[W * 3 + 2] = N[W * 8 + 2];
|
|
1700
|
-
k.txdata = $, k.xyz = Dt, k.renderSplatCount = Rt, k.visibleSplatCount = z + s.watermarkCount + R, k.modelSplatCount = s.downloadSplatCount + R, k.watermarkCount = T + R, k.minX = s.header.MinX, k.maxX = s.header.MaxX, k.minY = s.header.MinY, k.maxY = s.header.MaxY, k.minZ = s.header.MinZ, k.maxZ = s.header.MaxZ, e(
|
|
1700
|
+
k.txdata = $, k.xyz = Dt, k.renderSplatCount = Rt, k.visibleSplatCount = z + s.watermarkCount + R, k.modelSplatCount = s.downloadSplatCount + R, k.watermarkCount = T + R, k.minX = s.header.MinX, k.maxX = s.header.MaxX, k.minY = s.header.MinY, k.maxY = s.header.MaxY, k.minZ = s.header.MinZ, k.maxZ = s.header.MaxZ, e(Ti, k), a = U, e(it, { visibleSplatCount: k.visibleSplatCount, modelSplatCount: k.modelSplatCount });
|
|
1701
1701
|
}
|
|
1702
|
-
function y(m,
|
|
1702
|
+
function y(m, E) {
|
|
1703
1703
|
const M = m.map((T) => 1 / (T.distance + 1e-6)), S = M.reduce((T, R) => T + R, 0);
|
|
1704
1704
|
let L = 0;
|
|
1705
1705
|
if (m.forEach((T, R) => {
|
|
1706
|
-
T.currentRenderCnt = Math.min(Math.floor(M[R] / S *
|
|
1707
|
-
}), L <
|
|
1708
|
-
const T =
|
|
1706
|
+
T.currentRenderCnt = Math.min(Math.floor(M[R] / S * E), T.splatCount), L += T.currentRenderCnt;
|
|
1707
|
+
}), L < E) {
|
|
1708
|
+
const T = E - L, R = m.map((k, U) => k.currentRenderCnt < k.splatCount ? M[U] : 0), B = R.reduce((k, U) => k + U, 0);
|
|
1709
1709
|
m.forEach((k, U) => {
|
|
1710
1710
|
if (B > 0 && k.currentRenderCnt < k.splatCount) {
|
|
1711
1711
|
const z = Math.min(
|
|
@@ -1717,8 +1717,8 @@ function Xc(n) {
|
|
|
1717
1717
|
});
|
|
1718
1718
|
}
|
|
1719
1719
|
}
|
|
1720
|
-
function
|
|
1721
|
-
if (S.distance = Math.max(S.center.distanceTo(
|
|
1720
|
+
function w(m, E, M, S) {
|
|
1721
|
+
if (S.distance = Math.max(S.center.distanceTo(E) - S.radius, 0), !S.distance || S.center.distanceTo(M) <= 2 * S.radius) return !0;
|
|
1722
1722
|
const L = new Gt(S.center.x, S.center.y, S.center.z, 1).applyMatrix4(m), T = 3 * L.w;
|
|
1723
1723
|
return !(L.z < -T || L.x < -T || L.x > T || L.y < -T || L.y > T);
|
|
1724
1724
|
}
|
|
@@ -1726,12 +1726,12 @@ function Xc(n) {
|
|
|
1726
1726
|
if (!u) {
|
|
1727
1727
|
if (s.header) {
|
|
1728
1728
|
u = !0;
|
|
1729
|
-
const
|
|
1730
|
-
e(
|
|
1729
|
+
const E = new Q(s.header.MinX, s.header.MinY, s.header.MinZ), M = new Q(s.header.MaxX, s.header.MaxY, s.header.MaxZ);
|
|
1730
|
+
e(Li, E.x, E.y, E.z, M.x, M.y, M.z, s.meta.showBoundBox, s);
|
|
1731
1731
|
} else if (m) {
|
|
1732
1732
|
u = !0;
|
|
1733
|
-
const
|
|
1734
|
-
e(
|
|
1733
|
+
const E = new Q(s.minX, s.minY, s.minZ), M = new Q(s.maxX, s.maxY, s.maxZ);
|
|
1734
|
+
e(Li, E.x, E.y, E.z, M.x, M.y, M.z, s.meta.showBoundBox, s);
|
|
1735
1735
|
}
|
|
1736
1736
|
}
|
|
1737
1737
|
}
|
|
@@ -1740,62 +1740,62 @@ function Xc(n) {
|
|
|
1740
1740
|
}
|
|
1741
1741
|
function v(m) {
|
|
1742
1742
|
if (m.opts.format === "spx")
|
|
1743
|
-
|
|
1743
|
+
$c(m);
|
|
1744
1744
|
else if (m.opts.format === "splat")
|
|
1745
|
-
|
|
1745
|
+
Vc(m);
|
|
1746
1746
|
else if (m.opts.format === "ply")
|
|
1747
|
-
|
|
1747
|
+
qc(m);
|
|
1748
1748
|
else if (m.opts.format === "spz")
|
|
1749
|
-
Jc(m);
|
|
1750
|
-
else if (m.opts.format === "sog")
|
|
1751
1749
|
Kc(m);
|
|
1750
|
+
else if (m.opts.format === "sog")
|
|
1751
|
+
Zc(m);
|
|
1752
1752
|
else
|
|
1753
1753
|
return !1;
|
|
1754
1754
|
return !0;
|
|
1755
1755
|
}
|
|
1756
|
-
async function x(m,
|
|
1756
|
+
async function x(m, E) {
|
|
1757
1757
|
if (i) return;
|
|
1758
1758
|
const M = e(_), S = yt ? M.maxRenderCountOfMobile : M.maxRenderCountOfPc, L = e(Ct);
|
|
1759
|
-
if (m.fetchReload =
|
|
1760
|
-
const R =
|
|
1761
|
-
s.fetchLimit = Math.min(
|
|
1759
|
+
if (m.fetchReload = Fc(E.updateDate || 0), s = new Jr(m, E), L && E.autoCut) {
|
|
1760
|
+
const R = E.pcDownloadLimitSplatCount || nc, B = E.mobileDownloadLimitSplatCount || ec, k = yt ? B : R;
|
|
1761
|
+
s.fetchLimit = Math.min(E.autoCut * E.autoCut * S + S, k);
|
|
1762
1762
|
} else
|
|
1763
1763
|
s.fetchLimit = S;
|
|
1764
1764
|
const T = () => {
|
|
1765
1765
|
if (!s || s.status == P.Invalid || s.status == P.FetchFailed)
|
|
1766
1766
|
return h(0);
|
|
1767
|
-
s.modelSplatCount > 0 ? (h(s.modelSplatCount), !s.meta.particleMode && s.dataSplatCount ? setTimeout(() => e(
|
|
1767
|
+
s.modelSplatCount > 0 ? (h(s.modelSplatCount), !s.meta.particleMode && s.dataSplatCount ? setTimeout(() => e(uo), 5) : setTimeout(T, 10)) : setTimeout(T, 10);
|
|
1768
1768
|
};
|
|
1769
1769
|
if (T(), !v(s)) {
|
|
1770
1770
|
console.error("Unsupported format:", m.format), e(He, 0);
|
|
1771
1771
|
return;
|
|
1772
1772
|
}
|
|
1773
|
-
e(
|
|
1773
|
+
e(Zi), e(it, { cuts: "" });
|
|
1774
1774
|
}
|
|
1775
|
-
t(
|
|
1775
|
+
t(ro, async (m, E) => await x(m, E)), t(co, (m = 1e4) => Date.now() - a < m), t(lo, () => D()), e(
|
|
1776
1776
|
Me,
|
|
1777
1777
|
async () => await C(l),
|
|
1778
1778
|
() => !i
|
|
1779
1779
|
);
|
|
1780
1780
|
}
|
|
1781
|
-
var
|
|
1782
|
-
const
|
|
1781
|
+
var Gn = /* @__PURE__ */ ((n) => (n[n.ModelCenterCirccle = 1] = "ModelCenterCirccle", n[n.ScreenCenterCircle = 2] = "ScreenCenterCircle", n[n.ScreenMiddleToLeftRight = 3] = "ScreenMiddleToLeftRight", n[n.ScreenMiddleToTopBottom = 4] = "ScreenMiddleToTopBottom", n))(Gn || {});
|
|
1782
|
+
const js = "currentVisibleRadius", Ks = "currentLightRadius", Xs = "transitionEffect", ci = "splatShTexture12", Zs = "maxPixelDiameter", ta = "minPixelDiameter", li = "splatShTexture3", ea = "performanceNow", Ai = "performanceAct", el = "waterMarkColor", na = "showWaterMark", ia = "useSimilarExp", ui = "splatTexture0", hi = "splatTexture1", sa = "particleMode", aa = "bigSceneMode", oa = "lightFactor", ra = "debugEffect", ca = "usingIndex", nl = "splatIndex", la = "maxRadius", Aa = "flagValue", ua = "pointMode", ha = "markPoint", da = "shDegree", ga = "viewport", fa = "minAlpha", pa = "focal", ma = "topY";
|
|
1783
1783
|
let J = 0;
|
|
1784
1784
|
J++;
|
|
1785
|
-
const
|
|
1785
|
+
const Ca = `$${J++}`, il = `$${J++}`;
|
|
1786
1786
|
J++;
|
|
1787
1787
|
J++;
|
|
1788
1788
|
J++;
|
|
1789
|
-
const
|
|
1789
|
+
const ya = `$${J++}`, sl = `$${J++}`, Ia = `$${J++}`, al = `$${J++}`, ol = `$${J++}`, rl = `$${J++}`, cl = `$${J++}`, ll = `$${J++}`;
|
|
1790
1790
|
J++;
|
|
1791
|
-
const
|
|
1791
|
+
const Al = `$${J++}`, ul = `$${J++}`;
|
|
1792
1792
|
J++;
|
|
1793
|
-
const
|
|
1793
|
+
const hl = `$${J++}`;
|
|
1794
1794
|
J++;
|
|
1795
|
-
const
|
|
1795
|
+
const dl = `$${J++}`;
|
|
1796
1796
|
J++;
|
|
1797
|
-
const
|
|
1798
|
-
var
|
|
1797
|
+
const gl = `$${J++}`, fl = `$${J++}`, pl = `$${J++}`, ml = `$${J++}`, Cl = `$${J++}`, yl = `$${J++}`, Il = `$${J++}`, wl = `$${J++}`, El = `$${J++}`, vl = `$${J++}`, wa = `$${J++}`, xl = `$${J++}`, Sl = `$${J++}`, Oi = `$${J++}`, Ea = `$${J++}`, va = `$${J++}`;
|
|
1798
|
+
var bl = `precision highp float;\r
|
|
1799
1799
|
precision highp int;
|
|
1800
1800
|
|
|
1801
1801
|
uniform highp usampler2D splatTexture0, splatTexture1, splatShTexture12, splatShTexture3;\r
|
|
@@ -2113,7 +2113,7 @@ void main() {\r
|
|
|
2113
2113
|
|
|
2114
2114
|
vec2 v2Center = vec2(pos2d) / pos2d.w;
|
|
2115
2115
|
gl_Position = vec4(v2Center + vPosition.x * majorAxis / viewport + vPosition.y * minorAxis / viewport, 1.0, 1.0);\r
|
|
2116
|
-
}`,
|
|
2116
|
+
}`, Ml = `precision highp float;
|
|
2117
2117
|
|
|
2118
2118
|
uniform float lightFactor;\r
|
|
2119
2119
|
uniform float minAlpha;\r
|
|
@@ -2145,65 +2145,65 @@ void main() {\r
|
|
|
2145
2145
|
|
|
2146
2146
|
gl_FragColor = vec4(lightFactor * vColor.rgb, alpha);\r
|
|
2147
2147
|
}`;
|
|
2148
|
-
function
|
|
2148
|
+
function Bl(n) {
|
|
2149
2149
|
let t = !1;
|
|
2150
2150
|
const e = (h, d, C) => n.on(h, d, C), i = (h, ...d) => n.fire(h, ...d);
|
|
2151
2151
|
let a = 0, o = 0;
|
|
2152
2152
|
const s = [];
|
|
2153
2153
|
let r = 0, c = 0, A = 0;
|
|
2154
|
-
e(
|
|
2155
|
-
}, !0), e(
|
|
2154
|
+
e(Mo, () => A), e($n, () => {
|
|
2155
|
+
}, !0), e(Jn, () => {
|
|
2156
2156
|
}, !0), e(on, () => {
|
|
2157
2157
|
}, !0), e(rn, () => {
|
|
2158
|
-
}, !0), e(
|
|
2159
|
-
const h = new
|
|
2158
|
+
}, !0), e(Qs, async () => {
|
|
2159
|
+
const h = new Ci();
|
|
2160
2160
|
h.setIndex([0, 1, 2, 0, 2, 3]);
|
|
2161
2161
|
const d = new Float32Array(4 * 3), C = new Ce(d, 3);
|
|
2162
2162
|
h.setAttribute("position", C), C.setXYZ(0, -2, -2, 0), C.setXYZ(1, -2, 2, 0), C.setXYZ(2, 2, 2, 0), C.setXYZ(3, 2, -2, 0), C.needsUpdate = !0;
|
|
2163
|
-
let f = new
|
|
2163
|
+
let f = new Ci().copy(h);
|
|
2164
2164
|
const p = await i(Ee);
|
|
2165
2165
|
if (t) return;
|
|
2166
|
-
const y = new Uint32Array(p),
|
|
2167
|
-
return
|
|
2168
|
-
i(
|
|
2169
|
-
i(
|
|
2166
|
+
const y = new Uint32Array(p), w = new Ar(y, 1, !1);
|
|
2167
|
+
return w.setUsage(ur), w.needsUpdate = !0, f.setAttribute(nl, w), f.instanceCount = 0, e(Ts, (b, D, v, x, m) => {
|
|
2168
|
+
i(Rs, D), y.set(b, 0), w.clearUpdateRanges(), w.addUpdateRange(0, m), w.needsUpdate = !0, w.onUpload(() => {
|
|
2169
|
+
i(xo, D), i(it, { renderSplatCount: m });
|
|
2170
2170
|
}), f.instanceCount = m, i(et), i(it, { sortTime: `${v} / ${Date.now() - x}`, bucketBits: r, sortType: c });
|
|
2171
|
-
}), e(
|
|
2172
|
-
|
|
2171
|
+
}), e(Dr, () => f), e(
|
|
2172
|
+
$n,
|
|
2173
2173
|
() => {
|
|
2174
|
-
|
|
2174
|
+
w.array = null, f.dispose();
|
|
2175
2175
|
},
|
|
2176
2176
|
!0
|
|
2177
2177
|
), f;
|
|
2178
|
-
}), e(
|
|
2178
|
+
}), e(Ds, async () => {
|
|
2179
2179
|
const h = await i(Ee);
|
|
2180
2180
|
if (t) return;
|
|
2181
|
-
const d = 1024 * 2, C = Math.ceil(2 * h / d), f = i(_), p = new
|
|
2182
|
-
uniforms: i(
|
|
2183
|
-
vertexShader:
|
|
2184
|
-
fragmentShader:
|
|
2181
|
+
const d = 1024 * 2, C = Math.ceil(2 * h / d), f = i(_), p = new za({
|
|
2182
|
+
uniforms: i(Bs),
|
|
2183
|
+
vertexShader: bl,
|
|
2184
|
+
fragmentShader: Ml,
|
|
2185
2185
|
transparent: !0,
|
|
2186
2186
|
alphaTest: 1,
|
|
2187
|
-
blending:
|
|
2187
|
+
blending: hr,
|
|
2188
2188
|
depthTest: f.depthTest !== !1,
|
|
2189
2189
|
// 是否启用深度测试。深度测试用于确保只有离相机更近的物体才会被渲染
|
|
2190
2190
|
depthWrite: !1,
|
|
2191
2191
|
// 是否将深度值写入深度缓冲区
|
|
2192
2192
|
side: Jt
|
|
2193
2193
|
}), y = new Uint32Array(d * C * 4);
|
|
2194
|
-
let
|
|
2195
|
-
|
|
2194
|
+
let w = new se(y, d, C, ae, oe);
|
|
2195
|
+
w.internalFormat = "RGBA32UI", w.needsUpdate = !0, p.uniforms[ui].value = w;
|
|
2196
2196
|
const b = i(Ct) ? C : 1, D = new Uint32Array(d * b * 4);
|
|
2197
2197
|
let v = new se(D, d, b, ae, oe);
|
|
2198
|
-
v.internalFormat = "RGBA32UI", v.needsUpdate = !0, p.uniforms[
|
|
2198
|
+
v.internalFormat = "RGBA32UI", v.needsUpdate = !0, p.uniforms[hi].value = v;
|
|
2199
2199
|
const x = await i(Ue, 1), m = new Uint32Array(d * x * 4);
|
|
2200
|
-
let
|
|
2201
|
-
|
|
2200
|
+
let E = new se(m, d, x, ae, oe);
|
|
2201
|
+
E.internalFormat = "RGBA32UI", E.needsUpdate = !0, p.uniforms[ci].value = E;
|
|
2202
2202
|
const M = await i(Ue, 3), S = new Uint32Array(d * M * 4);
|
|
2203
2203
|
let L = new se(S, d, M, ae, oe);
|
|
2204
|
-
L.internalFormat = "RGBA32UI", L.needsUpdate = !0, p.uniforms[
|
|
2204
|
+
L.internalFormat = "RGBA32UI", L.needsUpdate = !0, p.uniforms[li].value = L, p.needsUpdate = !0;
|
|
2205
2205
|
let T = !1;
|
|
2206
|
-
e(
|
|
2206
|
+
e(Ls, (B) => {
|
|
2207
2207
|
if (!i(Ct)) {
|
|
2208
2208
|
if (T && !B.renderSplatCount) return;
|
|
2209
2209
|
T = !B.renderSplatCount;
|
|
@@ -2212,113 +2212,113 @@ function bl(n) {
|
|
|
2212
2212
|
B.txdata = null;
|
|
2213
2213
|
const U = new se(k, d, C, ae, oe);
|
|
2214
2214
|
U.onUpdate = () => {
|
|
2215
|
-
B.textureReady = !0, B.textureReadyTime = Date.now(), g(B), i(
|
|
2216
|
-
}, U.internalFormat = "RGBA32UI", U.needsUpdate = !0, B.index ? (p.uniforms[
|
|
2217
|
-
}), e(
|
|
2215
|
+
B.textureReady = !0, B.textureReadyTime = Date.now(), g(B), i(ho, B.renderSplatCount);
|
|
2216
|
+
}, U.internalFormat = "RGBA32UI", U.needsUpdate = !0, B.index ? (p.uniforms[hi].value = U, v = U) : (p.uniforms[ui].value = U, w = U), p.needsUpdate = !0, i(et);
|
|
2217
|
+
}), e(So, async (B) => {
|
|
2218
2218
|
if (i(Ct) || !B || !B.length) return;
|
|
2219
2219
|
const k = new Uint32Array(d * await i(Ue, 1) * 4), U = new Uint8Array(k.buffer);
|
|
2220
2220
|
for (let F = 0, H = 0; F < B.length; F++)
|
|
2221
2221
|
U.set(B[F], H), H += B[F].byteLength;
|
|
2222
2222
|
const z = new se(k, d, x, ae, oe);
|
|
2223
|
-
z.internalFormat = "RGBA32UI", z.needsUpdate = !0, p.uniforms[
|
|
2224
|
-
}), e(
|
|
2223
|
+
z.internalFormat = "RGBA32UI", z.needsUpdate = !0, p.uniforms[ci].value = z, p.needsUpdate = !0, i(et);
|
|
2224
|
+
}), e(bo, async (B) => {
|
|
2225
2225
|
if (i(Ct) || !B || !B.length) return;
|
|
2226
2226
|
const k = new Uint32Array(d * await i(Ue, 3) * 4), U = new Uint8Array(k.buffer);
|
|
2227
2227
|
for (let F = 0, H = 0; F < B.length; F++)
|
|
2228
2228
|
U.set(B[F], H), H += B[F].byteLength;
|
|
2229
2229
|
const z = new se(k, d, x, ae, oe);
|
|
2230
|
-
z.internalFormat = "RGBA32UI", z.needsUpdate = !0, p.uniforms[
|
|
2231
|
-
}), e(
|
|
2230
|
+
z.internalFormat = "RGBA32UI", z.needsUpdate = !0, p.uniforms[li].value = z, p.needsUpdate = !0, i(et);
|
|
2231
|
+
}), e(ks, () => p), e(
|
|
2232
2232
|
on,
|
|
2233
2233
|
() => {
|
|
2234
|
-
const B = i(dt), { width: k, height: U } = i(he), z = Math.abs(B.projectionMatrix.elements[0]) * 0.5 * k, F = Math.abs(B.projectionMatrix.elements[5]) * 0.5 * U, H = i(
|
|
2235
|
-
H.uniforms[
|
|
2234
|
+
const B = i(dt), { width: k, height: U } = i(he), z = Math.abs(B.projectionMatrix.elements[0]) * 0.5 * k, F = Math.abs(B.projectionMatrix.elements[5]) * 0.5 * U, H = i(ks);
|
|
2235
|
+
H.uniforms[pa].value.set(z, F), H.uniformsNeedUpdate = !0, i(et);
|
|
2236
2236
|
},
|
|
2237
2237
|
!0
|
|
2238
2238
|
), e(
|
|
2239
2239
|
rn,
|
|
2240
2240
|
() => {
|
|
2241
2241
|
const { width: B, height: k } = i(he);
|
|
2242
|
-
p.uniforms[
|
|
2242
|
+
p.uniforms[ga].value.set(B, k), p.uniformsNeedUpdate = !0, i(et);
|
|
2243
2243
|
},
|
|
2244
2244
|
!0
|
|
2245
|
-
), e(
|
|
2246
|
-
p.uniforms[
|
|
2247
|
-
}), e(
|
|
2248
|
-
p.uniforms[
|
|
2245
|
+
), e(Rs, (B) => {
|
|
2246
|
+
p.uniforms[ca].value = B, p.uniformsNeedUpdate = !0, i(et);
|
|
2247
|
+
}), e(Os, (B) => {
|
|
2248
|
+
p.uniforms[Xs].value = B, p.uniformsNeedUpdate = !0, i(et);
|
|
2249
2249
|
}), e(ce, (B) => {
|
|
2250
2250
|
const k = i(_);
|
|
2251
|
-
B === void 0 && (B = !k.pointcloudMode), p.uniforms[
|
|
2252
|
-
}), e(
|
|
2253
|
-
p.uniforms[
|
|
2251
|
+
B === void 0 && (B = !k.pointcloudMode), p.uniforms[ua].value = B, p.uniformsNeedUpdate = !0, k.pointcloudMode = B, i(et), k.viewerEvents && (k.viewerEvents.fire(_).pointcloudMode = B);
|
|
2252
|
+
}), e(_s, (B) => {
|
|
2253
|
+
p.uniforms[aa].value = B, p.uniformsNeedUpdate = !0;
|
|
2254
2254
|
const k = i(_);
|
|
2255
2255
|
k.bigSceneMode = B, i(et);
|
|
2256
2256
|
}), e(qe, (B) => {
|
|
2257
|
-
p.uniforms[
|
|
2257
|
+
p.uniforms[oa].value = B, p.uniformsNeedUpdate = !0;
|
|
2258
2258
|
const k = i(_);
|
|
2259
2259
|
k.lightFactor = B, i(et);
|
|
2260
2260
|
});
|
|
2261
2261
|
let R = !1;
|
|
2262
|
-
return e(
|
|
2263
|
-
i(Ct) || R || (R = !0, p.uniforms[
|
|
2262
|
+
return e(so, (B) => {
|
|
2263
|
+
i(Ct) || R || (R = !0, p.uniforms[ma].value = B, p.uniformsNeedUpdate = !0, i(et));
|
|
2264
2264
|
}), e(Le, (B) => {
|
|
2265
|
-
p.uniforms[Js].value = B, p.uniformsNeedUpdate = !0, i(et);
|
|
2266
|
-
}), e(Re, (B) => {
|
|
2267
2265
|
p.uniforms[js].value = B, p.uniformsNeedUpdate = !0, i(et);
|
|
2268
|
-
}), e(
|
|
2269
|
-
p.uniforms[
|
|
2266
|
+
}), e(Re, (B) => {
|
|
2267
|
+
p.uniforms[Ks].value = B, p.uniformsNeedUpdate = !0, i(et);
|
|
2268
|
+
}), e(Lo, (B) => {
|
|
2269
|
+
p.uniforms[la].value = B, p.uniformsNeedUpdate = !0, i(et);
|
|
2270
2270
|
}), e(yn, (B, k, U, z) => {
|
|
2271
|
-
p.uniforms[
|
|
2272
|
-
}), e(
|
|
2273
|
-
p.uniforms[ea].value = B, p.uniformsNeedUpdate = !0, i(et);
|
|
2274
|
-
}), e(so, (B) => {
|
|
2275
|
-
p.uniforms[ta].value = B, p.uniformsNeedUpdate = !0;
|
|
2276
|
-
}), e(Fn, (B) => {
|
|
2277
|
-
p.uniforms[li].value = B, p.uniformsNeedUpdate = !0, i(et);
|
|
2278
|
-
}), e(Kn, (B, k) => {
|
|
2279
|
-
p.uniforms[Zs].value = B, p.uniforms[Xs].value = k, p.uniformsNeedUpdate = !0, i(et);
|
|
2280
|
-
}), e(Xn, (B) => {
|
|
2281
|
-
p.uniforms[ga].value = Math.min(Math.max(0, B), 255) / 255, p.uniformsNeedUpdate = !0, i(et);
|
|
2282
|
-
}), e(Zn, (B = !1) => {
|
|
2271
|
+
p.uniforms[ha].value = [B, k, U, z ? 1 : -1], p.uniformsNeedUpdate = !0, i(et);
|
|
2272
|
+
}), e(xi, (B = !0) => {
|
|
2283
2273
|
p.uniforms[na].value = B, p.uniformsNeedUpdate = !0, i(et);
|
|
2284
|
-
}), e(
|
|
2274
|
+
}), e(ao, (B) => {
|
|
2275
|
+
p.uniforms[ea].value = B, p.uniformsNeedUpdate = !0;
|
|
2276
|
+
}), e(Fn, (B) => {
|
|
2277
|
+
p.uniforms[Ai].value = B, p.uniformsNeedUpdate = !0, i(et);
|
|
2278
|
+
}), e(Xn, (B, k) => {
|
|
2279
|
+
p.uniforms[ta].value = B, p.uniforms[Zs].value = k, p.uniformsNeedUpdate = !0, i(et);
|
|
2280
|
+
}), e(Zn, (B) => {
|
|
2281
|
+
p.uniforms[fa].value = Math.min(Math.max(0, B), 255) / 255, p.uniformsNeedUpdate = !0, i(et);
|
|
2282
|
+
}), e(ti, (B = !1) => {
|
|
2285
2283
|
p.uniforms[ia].value = B, p.uniformsNeedUpdate = !0, i(et);
|
|
2286
|
-
}), e(
|
|
2287
|
-
p.uniforms[
|
|
2284
|
+
}), e(Pn, (B) => {
|
|
2285
|
+
p.uniforms[sa].value = B, p.uniformsNeedUpdate = !0, i(et);
|
|
2286
|
+
}), e(kr, (B) => {
|
|
2287
|
+
p.uniforms[ra].value = B, p.uniformsNeedUpdate = !0;
|
|
2288
2288
|
}), e(bn, async (B) => {
|
|
2289
2289
|
if (i(Ct)) return;
|
|
2290
|
-
const k = await i(
|
|
2291
|
-
B < 0 && (B = 0), B > k && (B = k), A = B, p.uniforms[
|
|
2292
|
-
}), e(
|
|
2293
|
-
p.uniforms[
|
|
2290
|
+
const k = await i(us);
|
|
2291
|
+
B < 0 && (B = 0), B > k && (B = k), A = B, p.uniforms[da].value = B, p.uniformsNeedUpdate = !0, i(it, { shDegree: `${B} / max ${k}` }), i(et);
|
|
2292
|
+
}), e(ko, (B = 0, k = 0) => {
|
|
2293
|
+
p.uniforms[Aa].value = B << 16 | k, p.uniforms[Ai].value = performance.now(), p.uniformsNeedUpdate = !0, i(et);
|
|
2294
2294
|
}), e(
|
|
2295
|
-
|
|
2295
|
+
Jn,
|
|
2296
2296
|
() => {
|
|
2297
|
-
p.dispose(),
|
|
2297
|
+
p.dispose(), w && w.dispose(), v && v.dispose(), E && E.dispose(), L && L.dispose();
|
|
2298
2298
|
},
|
|
2299
2299
|
!0
|
|
2300
2300
|
), p;
|
|
2301
|
-
}), e(
|
|
2302
|
-
const h = new pt(await i(
|
|
2303
|
-
return i(on), i(rn), i(
|
|
2301
|
+
}), e(io, async () => {
|
|
2302
|
+
const h = new pt(await i(Qs), await i(Ds));
|
|
2303
|
+
return i(on), i(rn), i(_s, i(Ct)), i(ce, i(Si)), h;
|
|
2304
2304
|
});
|
|
2305
2305
|
function l() {
|
|
2306
2306
|
i(on), i(rn);
|
|
2307
2307
|
}
|
|
2308
|
-
window.addEventListener("resize", l), e(
|
|
2309
|
-
t = !0, window.removeEventListener("resize", l), i(
|
|
2310
|
-
}), e(
|
|
2311
|
-
if (!i(
|
|
2308
|
+
window.addEventListener("resize", l), e(Ao, () => {
|
|
2309
|
+
t = !0, window.removeEventListener("resize", l), i($n), i(Jn);
|
|
2310
|
+
}), e(Ri, () => {
|
|
2311
|
+
if (!i(Ho)) return;
|
|
2312
2312
|
const h = i(_), d = i(xt)?.meta || {}, C = h.qualityLevel || Qe;
|
|
2313
2313
|
if (i(bn, [0, 1, 2, 3, 3, 3, 3, 3, 3][C - 1]), yt) {
|
|
2314
|
-
const p = [4, 3, 3, 2, 2, 2, 1, 1, 1], y = [7, 6, 5, 4, 4, 3, 2, 2, 2],
|
|
2315
|
-
i(
|
|
2314
|
+
const p = [4, 3, 3, 2, 2, 2, 1, 1, 1], y = [7, 6, 5, 4, 4, 3, 2, 2, 2], w = d.minPixelDiameter || p[C - 1], b = d.maxPixelDiameter || (C < 4 ? 128 : C > 6 ? 512 : 256);
|
|
2315
|
+
i(Xn, w, b), i(Zn, d.minAlpha || y[C - 1]), i(ti, !1);
|
|
2316
2316
|
} else {
|
|
2317
|
-
const p = [128, 256, 256, 512, 512, 1024, 1024, 1024, 1024], y = [5, 4, 3, 2, 2, 1, 1, 1, 1],
|
|
2318
|
-
i(
|
|
2317
|
+
const p = [128, 256, 256, 512, 512, 1024, 1024, 1024, 1024], y = [5, 4, 3, 2, 2, 1, 1, 1, 1], w = d.minPixelDiameter || (C < 4 ? 2 : 1), b = d.maxPixelDiameter || p[C - 1];
|
|
2318
|
+
i(Xn, w, b), i(Zn, d.minAlpha || y[C - 1]), i(ti, C > 6);
|
|
2319
2319
|
}
|
|
2320
|
-
i(
|
|
2321
|
-
}), e(
|
|
2320
|
+
i(hs);
|
|
2321
|
+
}), e(uo, async () => {
|
|
2322
2322
|
if (i(Ct)) return;
|
|
2323
2323
|
if (i(_).disableTransitionEffectOnLoad) return i(Le, 0);
|
|
2324
2324
|
let d = 0.01, C = 0.01, f = !1, p = 0;
|
|
@@ -2327,25 +2327,25 @@ function bl(n) {
|
|
|
2327
2327
|
() => {
|
|
2328
2328
|
if (t) return;
|
|
2329
2329
|
C += (o - C) * d, i(Le, C);
|
|
2330
|
-
let y = i(
|
|
2330
|
+
let y = i(go);
|
|
2331
2331
|
y && !p && (p = Date.now());
|
|
2332
|
-
let
|
|
2333
|
-
y && (
|
|
2332
|
+
let w = C / a;
|
|
2333
|
+
y && (w > 0.9 || Date.now() - p > 2500) ? (i(Si) && i(bi, !0), i(Le, 0), f = !0, setTimeout(() => i(_)?.viewerEvents?.fire(Ne), 5e3)) : y && w > 0.7 ? d = Math.min(d * 1.2, 0.3) : y && w > 0.5 ? d = Math.min(d * 1.2, 0.2) : w > 0.4 && (d = Math.min(d * 1.05, 0.1));
|
|
2334
2334
|
},
|
|
2335
2335
|
() => !t && !f,
|
|
2336
2336
|
3
|
|
2337
2337
|
);
|
|
2338
|
-
}), e(
|
|
2338
|
+
}), e(bi, (h = !1) => {
|
|
2339
2339
|
if (i(Ct)) return;
|
|
2340
2340
|
const d = i(_);
|
|
2341
|
-
if (i(
|
|
2341
|
+
if (i(Os, d.transitionEffect), d.transitionEffect === Gn.ModelCenterCirccle) {
|
|
2342
2342
|
for (; s.length; ) s.pop().stop = !0;
|
|
2343
2343
|
const C = a * 1e-3;
|
|
2344
2344
|
let f = { currentPointMode: d.pointcloudMode, stepRate: 15e-4, currentLightRadius: C, stop: !1 };
|
|
2345
2345
|
s.push(f), i(
|
|
2346
2346
|
Me,
|
|
2347
2347
|
() => {
|
|
2348
|
-
t || (f.currentLightRadius += a * f.stepRate, i(Re, f.currentLightRadius), f.currentLightRadius > a ? (i(ce, !f.currentPointMode), i(Re, 0), f.stop = !0, s.length === 1 && s[0] === f && s.pop(), i(En, h)) : f.currentLightRadius / a < 0.4 ? f.stepRate = Math.min(f.stepRate * 1.02, 0.03) : f.stepRate *= 1.04);
|
|
2348
|
+
t || (f.currentLightRadius += a * f.stepRate, i(Re, f.currentLightRadius), f.currentLightRadius > a ? (i(ce, !f.currentPointMode), i(Re, 0), f.stop = !0, s.length === 1 && s[0] === f && s.pop(), i(En, h), i(Un)) : f.currentLightRadius / a < 0.4 ? f.stepRate = Math.min(f.stepRate * 1.02, 0.03) : f.stepRate *= 1.04);
|
|
2349
2349
|
},
|
|
2350
2350
|
() => !t && !f.stop
|
|
2351
2351
|
);
|
|
@@ -2354,110 +2354,110 @@ function bl(n) {
|
|
|
2354
2354
|
i(ce), i(Re, 0), i(En, h);
|
|
2355
2355
|
}, 500);
|
|
2356
2356
|
}), e(En, (h = !1) => {
|
|
2357
|
-
i(Pn, 0), h && i(_).viewerEvents?.fire($e), i(_).viewerEvents?.fire(
|
|
2358
|
-
}), e(
|
|
2359
|
-
[Ai]: { type: "t", value: null },
|
|
2357
|
+
i(Pn, 0), h && i(_).viewerEvents?.fire($e), i(_).viewerEvents?.fire(Eo);
|
|
2358
|
+
}), e(Bs, () => ({
|
|
2360
2359
|
[ui]: { type: "t", value: null },
|
|
2361
|
-
[
|
|
2360
|
+
[hi]: { type: "t", value: null },
|
|
2362
2361
|
[ci]: { type: "t", value: null },
|
|
2363
|
-
[
|
|
2364
|
-
[
|
|
2365
|
-
[
|
|
2366
|
-
[
|
|
2367
|
-
[
|
|
2368
|
-
[
|
|
2369
|
-
[
|
|
2370
|
-
[
|
|
2371
|
-
[
|
|
2372
|
-
[
|
|
2373
|
-
[
|
|
2362
|
+
[li]: { type: "t", value: null },
|
|
2363
|
+
[pa]: { type: "v2", value: new ft() },
|
|
2364
|
+
[ga]: { type: "v2", value: new ft() },
|
|
2365
|
+
[ca]: { type: "int", value: 0 },
|
|
2366
|
+
[Xs]: { type: "int", value: 1 },
|
|
2367
|
+
[ua]: { type: "bool", value: !1 },
|
|
2368
|
+
[ra]: { type: "bool", value: !0 },
|
|
2369
|
+
[aa]: { type: "bool", value: !1 },
|
|
2370
|
+
[da]: { type: "int", value: 0 },
|
|
2371
|
+
[oa]: { type: "float", value: 1 },
|
|
2372
|
+
[ma]: { type: "float", value: 0 },
|
|
2374
2373
|
[js]: { type: "float", value: 0 },
|
|
2375
|
-
[
|
|
2376
|
-
[
|
|
2377
|
-
[
|
|
2378
|
-
[
|
|
2379
|
-
[
|
|
2380
|
-
[
|
|
2381
|
-
[
|
|
2382
|
-
[
|
|
2383
|
-
[
|
|
2384
|
-
[
|
|
2374
|
+
[Ks]: { type: "float", value: 0 },
|
|
2375
|
+
[la]: { type: "float", value: 0 },
|
|
2376
|
+
[ha]: { type: "v4", value: new Gt(0, 0, 0, -1) },
|
|
2377
|
+
[sa]: { type: "int", value: 0 },
|
|
2378
|
+
[ea]: { type: "float", value: performance.now() },
|
|
2379
|
+
[Ai]: { type: "float", value: 0 },
|
|
2380
|
+
[ta]: { type: "float", value: 1 },
|
|
2381
|
+
[Zs]: { type: "float", value: 1024 },
|
|
2382
|
+
[fa]: { type: "float", value: 2 / 255 },
|
|
2383
|
+
[el]: { type: "v4", value: new Gt(1, 1, 0, 0.5) },
|
|
2385
2384
|
[na]: { type: "bool", value: !0 },
|
|
2386
|
-
[
|
|
2385
|
+
[ia]: { type: "bool", value: !0 },
|
|
2386
|
+
[Aa]: { type: "uint", value: 1 }
|
|
2387
2387
|
}));
|
|
2388
|
-
const u = i(
|
|
2388
|
+
const u = i(Ja);
|
|
2389
2389
|
u.onmessage = (h) => {
|
|
2390
2390
|
const d = h.data;
|
|
2391
|
-
if (d[
|
|
2392
|
-
r = d[
|
|
2393
|
-
const C = d[
|
|
2394
|
-
i(
|
|
2391
|
+
if (d[Ca]) {
|
|
2392
|
+
r = d[Sl], c = d[Oi];
|
|
2393
|
+
const C = d[Ca];
|
|
2394
|
+
i(Ts, C, d[ya], d[cl], d[rl], d[Ia]), C.length && u.postMessage({ [il]: C }, [C.buffer]);
|
|
2395
2395
|
}
|
|
2396
|
-
}, e(
|
|
2397
|
-
i(Ct) || (o = d, a = C), i(
|
|
2396
|
+
}, e(Ti, (h, d, C) => {
|
|
2397
|
+
i(Ct) || (o = d, a = C), i(Ls, h);
|
|
2398
2398
|
});
|
|
2399
2399
|
function g(h) {
|
|
2400
2400
|
const d = h.xyz.slice(0);
|
|
2401
2401
|
u.postMessage(
|
|
2402
2402
|
{
|
|
2403
|
-
[
|
|
2404
|
-
[
|
|
2405
|
-
[
|
|
2406
|
-
[
|
|
2407
|
-
[
|
|
2408
|
-
[
|
|
2409
|
-
[
|
|
2410
|
-
[
|
|
2411
|
-
[
|
|
2412
|
-
[
|
|
2413
|
-
[
|
|
2414
|
-
[
|
|
2415
|
-
[
|
|
2416
|
-
[
|
|
2403
|
+
[ll]: !0,
|
|
2404
|
+
[dl]: d,
|
|
2405
|
+
[wl]: h.watermarkCount,
|
|
2406
|
+
[ya]: h.index,
|
|
2407
|
+
[sl]: h.version,
|
|
2408
|
+
[Ia]: h.renderSplatCount,
|
|
2409
|
+
[al]: h.visibleSplatCount,
|
|
2410
|
+
[ol]: h.modelSplatCount,
|
|
2411
|
+
[gl]: h.minX,
|
|
2412
|
+
[fl]: h.maxX,
|
|
2413
|
+
[pl]: h.minY,
|
|
2414
|
+
[ml]: h.maxY,
|
|
2415
|
+
[Cl]: h.minZ,
|
|
2416
|
+
[yl]: h.maxZ
|
|
2417
2417
|
},
|
|
2418
2418
|
[d.buffer]
|
|
2419
2419
|
);
|
|
2420
2420
|
}
|
|
2421
2421
|
}
|
|
2422
|
-
function
|
|
2423
|
-
const t = (a, ...o) => n.fire(a, ...o), e = (a, o, s) => n.on(a, o, s), i = new Set(
|
|
2424
|
-
e(
|
|
2422
|
+
function Ql(n) {
|
|
2423
|
+
const t = (a, ...o) => n.fire(a, ...o), e = (a, o, s) => n.on(a, o, s), i = new Set(jr.split(""));
|
|
2424
|
+
e(wo, async (a = "", o = !0, s = !0) => {
|
|
2425
2425
|
const r = a.trim().substring(0, 100);
|
|
2426
|
-
let c = await t(
|
|
2427
|
-
for (let
|
|
2428
|
-
let b = [], D = c[
|
|
2426
|
+
let c = await t(Mr, r), A = [];
|
|
2427
|
+
for (let w = 0; w < c.length; w++) {
|
|
2428
|
+
let b = [], D = c[w];
|
|
2429
2429
|
for (let v = 0; v < D.length; v++)
|
|
2430
2430
|
b.push([(D[v] % 20 - 10) * 0.02, ((D[v] / 20 | 0) - 10) * 0.02]);
|
|
2431
2431
|
A.push(b);
|
|
2432
2432
|
}
|
|
2433
2433
|
let l = [], u = r.split("");
|
|
2434
|
-
for (let
|
|
2435
|
-
l[
|
|
2434
|
+
for (let w = 0; w < u.length; w++)
|
|
2435
|
+
l[w] = i.has(u[w]) ? 0.22 : 0.4;
|
|
2436
2436
|
let g = u.length / 2 | 0, h = l[g] / 2, d = !(u.length % 2), C = d ? 0 : -h;
|
|
2437
|
-
for (let
|
|
2438
|
-
C -= l[
|
|
2439
|
-
for (let b of A[
|
|
2440
|
-
C -= l[
|
|
2437
|
+
for (let w = g - 1; w >= 0; w--) {
|
|
2438
|
+
C -= l[w] / 2;
|
|
2439
|
+
for (let b of A[w]) b[0] += C;
|
|
2440
|
+
C -= l[w] / 2;
|
|
2441
2441
|
}
|
|
2442
2442
|
h = l[g] / 2, C = d ? 0 : h;
|
|
2443
|
-
for (let
|
|
2444
|
-
C += l[
|
|
2445
|
-
for (let b of A[
|
|
2446
|
-
C += l[
|
|
2443
|
+
for (let w = A.length - g; w < A.length; w++) {
|
|
2444
|
+
C += l[w] / 2;
|
|
2445
|
+
for (let b of A[w]) b[0] += C;
|
|
2446
|
+
C += l[w] / 2;
|
|
2447
2447
|
}
|
|
2448
2448
|
let f = 0;
|
|
2449
|
-
for (let
|
|
2450
|
-
f +=
|
|
2449
|
+
for (let w of A)
|
|
2450
|
+
f += w.length;
|
|
2451
2451
|
const p = new Uint8Array(f * O);
|
|
2452
2452
|
let y = 0;
|
|
2453
|
-
for (let
|
|
2454
|
-
for (let b of
|
|
2455
|
-
p.set(await
|
|
2453
|
+
for (let w of A)
|
|
2454
|
+
for (let b of w)
|
|
2455
|
+
p.set(await Gc(b[0], b[1], o, s), O * y++);
|
|
2456
2456
|
return p;
|
|
2457
2457
|
});
|
|
2458
2458
|
}
|
|
2459
|
-
const
|
|
2460
|
-
function
|
|
2459
|
+
const Dl = /^[og]\s*(.+)?/, kl = /^mtllib /, Tl = /^usemtl /, Ll = /^usemap /, xa = /\s+/, Sa = new Q(), di = new Q(), ba = new Q(), Ma = new Q(), Bt = new Q(), un = new $i();
|
|
2460
|
+
function Rl() {
|
|
2461
2461
|
const n = {
|
|
2462
2462
|
objects: [],
|
|
2463
2463
|
object: {},
|
|
@@ -2566,7 +2566,7 @@ function Tl() {
|
|
|
2566
2566
|
},
|
|
2567
2567
|
addFaceNormal: function(t, e, i) {
|
|
2568
2568
|
const a = this.vertices, o = this.object.geometry.normals;
|
|
2569
|
-
|
|
2569
|
+
Sa.fromArray(a, t), di.fromArray(a, e), ba.fromArray(a, i), Bt.subVectors(ba, di), Ma.subVectors(Sa, di), Bt.cross(Ma), Bt.normalize(), o.push(Bt.x, Bt.y, Bt.z), o.push(Bt.x, Bt.y, Bt.z), o.push(Bt.x, Bt.y, Bt.z);
|
|
2570
2570
|
},
|
|
2571
2571
|
addColor: function(t, e, i) {
|
|
2572
2572
|
const a = this.colors, o = this.object.geometry.colors;
|
|
@@ -2617,12 +2617,12 @@ function Tl() {
|
|
|
2617
2617
|
};
|
|
2618
2618
|
return n.startObject("", !1), n;
|
|
2619
2619
|
}
|
|
2620
|
-
class
|
|
2620
|
+
class _l extends dr {
|
|
2621
2621
|
constructor(t) {
|
|
2622
2622
|
super(t), this.materials = null;
|
|
2623
2623
|
}
|
|
2624
2624
|
load(t, e, i, a) {
|
|
2625
|
-
const o = this, s = new
|
|
2625
|
+
const o = this, s = new gr(this.manager);
|
|
2626
2626
|
s.setPath(this.path), s.setRequestHeader(this.requestHeader), s.setWithCredentials(this.withCredentials), s.load(t, function(r) {
|
|
2627
2627
|
try {
|
|
2628
2628
|
e(o.parse(r));
|
|
@@ -2635,7 +2635,7 @@ class Ll extends ur {
|
|
|
2635
2635
|
return this.materials = t, this;
|
|
2636
2636
|
}
|
|
2637
2637
|
parse(t) {
|
|
2638
|
-
const e = new
|
|
2638
|
+
const e = new Rl();
|
|
2639
2639
|
t.indexOf(`\r
|
|
2640
2640
|
`) !== -1 && (t = t.replace(/\r\n/g, `
|
|
2641
2641
|
`)), t.indexOf(`\\
|
|
@@ -2649,7 +2649,7 @@ class Ll extends ur {
|
|
|
2649
2649
|
const l = A.charAt(0);
|
|
2650
2650
|
if (l !== "#")
|
|
2651
2651
|
if (l === "v") {
|
|
2652
|
-
const u = A.split(
|
|
2652
|
+
const u = A.split(xa);
|
|
2653
2653
|
switch (u[0]) {
|
|
2654
2654
|
case "v":
|
|
2655
2655
|
e.vertices.push(
|
|
@@ -2660,7 +2660,7 @@ class Ll extends ur {
|
|
|
2660
2660
|
parseFloat(u[4]),
|
|
2661
2661
|
parseFloat(u[5]),
|
|
2662
2662
|
parseFloat(u[6]),
|
|
2663
|
-
|
|
2663
|
+
fr
|
|
2664
2664
|
), e.colors.push(un.r, un.g, un.b)) : e.colors.push(void 0, void 0, void 0);
|
|
2665
2665
|
break;
|
|
2666
2666
|
case "vn":
|
|
@@ -2678,7 +2678,7 @@ class Ll extends ur {
|
|
|
2678
2678
|
break;
|
|
2679
2679
|
}
|
|
2680
2680
|
} else if (l === "f") {
|
|
2681
|
-
const g = A.slice(1).trim().split(
|
|
2681
|
+
const g = A.slice(1).trim().split(xa), h = [];
|
|
2682
2682
|
for (let C = 0, f = g.length; C < f; C++) {
|
|
2683
2683
|
const p = g[C];
|
|
2684
2684
|
if (p.length > 0) {
|
|
@@ -2716,14 +2716,14 @@ class Ll extends ur {
|
|
|
2716
2716
|
} else if (l === "p") {
|
|
2717
2717
|
const g = A.slice(1).trim().split(" ");
|
|
2718
2718
|
e.addPointGeometry(g);
|
|
2719
|
-
} else if ((a =
|
|
2719
|
+
} else if ((a = Dl.exec(A)) !== null) {
|
|
2720
2720
|
const u = (" " + a[0].slice(1).trim()).slice(1);
|
|
2721
2721
|
e.startObject(u);
|
|
2722
|
-
} else if (
|
|
2722
|
+
} else if (Tl.test(A))
|
|
2723
2723
|
e.object.startMaterial(A.substring(7).trim(), e.materialLibraries);
|
|
2724
|
-
else if (Ql.test(A))
|
|
2725
|
-
e.materialLibraries.push(A.substring(7).trim());
|
|
2726
2724
|
else if (kl.test(A))
|
|
2725
|
+
e.materialLibraries.push(A.substring(7).trim());
|
|
2726
|
+
else if (Ll.test(A))
|
|
2727
2727
|
console.warn('THREE.OBJLoader: Rendering identifier "usemap" not supported. Textures must be defined in MTL files.');
|
|
2728
2728
|
else if (l === "s") {
|
|
2729
2729
|
if (a = A.split(" "), a.length > 1) {
|
|
@@ -2748,44 +2748,44 @@ class Ll extends ur {
|
|
|
2748
2748
|
const C = new Sn();
|
|
2749
2749
|
C.setAttribute("position", new Vt(l.vertices, 3)), l.normals.length > 0 && C.setAttribute("normal", new Vt(l.normals, 3)), l.colors.length > 0 && (d = !0, C.setAttribute("color", new Vt(l.colors, 3))), l.hasUVIndices === !0 && C.setAttribute("uv", new Vt(l.uvs, 2));
|
|
2750
2750
|
const f = [];
|
|
2751
|
-
for (let y = 0,
|
|
2751
|
+
for (let y = 0, w = u.length; y < w; y++) {
|
|
2752
2752
|
const b = u[y], D = b.name + "_" + b.smooth + "_" + d;
|
|
2753
2753
|
let v = e.materials[D];
|
|
2754
2754
|
if (this.materials !== null) {
|
|
2755
2755
|
if (v = this.materials.create(b.name), g && v && !(v instanceof pn)) {
|
|
2756
2756
|
const x = new pn();
|
|
2757
|
-
|
|
2757
|
+
ws.prototype.copy.call(x, v), x.color.copy(v.color), v = x;
|
|
2758
2758
|
} else if (h && v && !(v instanceof an)) {
|
|
2759
2759
|
const x = new an({ size: 10, sizeAttenuation: !1 });
|
|
2760
|
-
|
|
2760
|
+
ws.prototype.copy.call(x, v), x.color.copy(v.color), x.map = v.map, v = x;
|
|
2761
2761
|
}
|
|
2762
2762
|
}
|
|
2763
|
-
v === void 0 && (g ? v = new pn() : h ? v = new an({ size: 1, sizeAttenuation: !1 }) : v = new
|
|
2763
|
+
v === void 0 && (g ? v = new pn() : h ? v = new an({ size: 1, sizeAttenuation: !1 }) : v = new pr(), v.name = b.name, v.flatShading = !b.smooth, v.vertexColors = d, e.materials[D] = v), f.push(v);
|
|
2764
2764
|
}
|
|
2765
2765
|
let p;
|
|
2766
2766
|
if (f.length > 1) {
|
|
2767
|
-
for (let y = 0,
|
|
2767
|
+
for (let y = 0, w = u.length; y < w; y++) {
|
|
2768
2768
|
const b = u[y];
|
|
2769
2769
|
C.addGroup(b.groupStart, b.groupCount, y);
|
|
2770
2770
|
}
|
|
2771
|
-
g ? p = new
|
|
2771
|
+
g ? p = new yi(C, f) : h ? p = new Vn(C, f) : p = new pt(C, f);
|
|
2772
2772
|
} else
|
|
2773
|
-
g ? p = new
|
|
2773
|
+
g ? p = new yi(C, f[0]) : h ? p = new Vn(C, f[0]) : p = new pt(C, f[0]);
|
|
2774
2774
|
p.name = A.name, o.add(p);
|
|
2775
2775
|
}
|
|
2776
2776
|
else if (e.vertices.length > 0) {
|
|
2777
2777
|
const r = new an({ size: 1, sizeAttenuation: !1 }), c = new Sn();
|
|
2778
2778
|
c.setAttribute("position", new Vt(e.vertices, 3)), e.colors.length > 0 && e.colors[0] !== void 0 && (c.setAttribute("color", new Vt(e.colors, 3)), r.vertexColors = !0);
|
|
2779
|
-
const A = new
|
|
2779
|
+
const A = new Vn(c, r);
|
|
2780
2780
|
o.add(A);
|
|
2781
2781
|
}
|
|
2782
2782
|
return o;
|
|
2783
2783
|
}
|
|
2784
2784
|
}
|
|
2785
|
-
function
|
|
2785
|
+
function Fl(n) {
|
|
2786
2786
|
let t = !1;
|
|
2787
2787
|
const e = (r, c, A) => n.on(r, c, A), i = (r, ...c) => n.fire(r, ...c);
|
|
2788
|
-
e(
|
|
2788
|
+
e(oo, () => t = !0);
|
|
2789
2789
|
const a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
|
|
2790
2790
|
e(Mn, () => i(St) && a.set(Date.now(), 1)), e(Bn, () => i(St) && i(ve, a)), e(Qn, () => i(St) && o.set(Date.now(), 1)), e(Dn, () => i(St) && i(ve, o)), e(
|
|
2791
2791
|
de,
|
|
@@ -2803,7 +2803,7 @@ function Rl(n) {
|
|
|
2803
2803
|
e(
|
|
2804
2804
|
xe,
|
|
2805
2805
|
() => {
|
|
2806
|
-
t || (i(
|
|
2806
|
+
t || (i(Ka), i(St) && (i(Mn), !(s++ % 5) && i(it, { fps: i(Bn), realFps: i(Dn) })));
|
|
2807
2807
|
},
|
|
2808
2808
|
!0
|
|
2809
2809
|
), e(ve, (r) => {
|
|
@@ -2811,48 +2811,48 @@ function Rl(n) {
|
|
|
2811
2811
|
for (const u of r.keys())
|
|
2812
2812
|
A - u <= 1e3 ? l++ : c.push(u);
|
|
2813
2813
|
return c.forEach((u) => r.delete(u)), Math.min(l, 30);
|
|
2814
|
-
}), window.addEventListener("beforeunload", () => i(
|
|
2814
|
+
}), window.addEventListener("beforeunload", () => i(Hn)), e(Qo, async (r) => {
|
|
2815
2815
|
i(it, { scene: "small (obj)" });
|
|
2816
2816
|
const c = await Xt(r, n);
|
|
2817
2817
|
if (c) {
|
|
2818
2818
|
const A = URL.createObjectURL(new Blob([c], { type: "application/octet-stream" }));
|
|
2819
|
-
new
|
|
2819
|
+
new _l().load(A, (l) => i(Y).add(l)), i(ct, !0), i(Je, !0);
|
|
2820
2820
|
}
|
|
2821
2821
|
i(He, 0);
|
|
2822
2822
|
});
|
|
2823
2823
|
}
|
|
2824
|
-
function
|
|
2824
|
+
function Pl(n) {
|
|
2825
2825
|
const t = { ...n };
|
|
2826
2826
|
return t.bigSceneMode ?? (t.bigSceneMode = !1), t.pointcloudMode ?? (t.pointcloudMode = !t.bigSceneMode), t.lightFactor ?? (t.lightFactor = 1), t.name ?? (t.name = ""), t.showWatermark ?? (t.showWatermark = !0), t.shDegree ?? (t.shDegree = 0), t.depthTest ?? (t.depthTest = !0), t.debugMode ?? (t.debugMode = !1), t.maxRenderCountOfMobile ?? (t.maxRenderCountOfMobile = t.bigSceneMode ? 256 * 1e4 : 384 * 10240), t.maxRenderCountOfPc ?? (t.maxRenderCountOfPc = t.bigSceneMode ? 320 * 1e4 : 384 * 1e4), t;
|
|
2827
2827
|
}
|
|
2828
|
-
function
|
|
2828
|
+
function Ba(n) {
|
|
2829
2829
|
const t = { ...n };
|
|
2830
|
-
return t.position = t.position ? [...t.position] : [0, -5, 15], t.lookAt = t.lookAt ? [...t.lookAt] : [0, 0, 0], t.lookUp = t.lookUp ? [...t.lookUp] : [0, -1, 0], t.fov ?? (t.fov = 45), t.near ?? (t.near = 1e-3), t.far ?? (t.far = 1e3), t.enableDamping ?? (t.enableDamping = !0), t.autoRotate ?? (t.autoRotate = !0), t.enableZoom ?? (t.enableZoom = !0), t.enableRotate ?? (t.enableRotate = !0), t.enablePan ?? (t.enablePan = !0), t.enableKeyboard ?? (t.enableKeyboard = !0), t.bigSceneMode ?? (t.bigSceneMode = !1), t.pointcloudMode ?? (t.pointcloudMode = !t.bigSceneMode), t.lightFactor ?? (t.lightFactor = 1.1), t.debugMode ?? (t.debugMode = location.protocol === "http:" || /^test\./.test(location.host)), t.markMode ?? (t.markMode = !1), t.markVisible ?? (t.markVisible = !0), t.meterScale ?? (t.meterScale = 1), t.background ?? (t.background = "#000000"), t.minDistance ?? (t.minDistance = 0.1), t.maxDistance ?? (t.maxDistance = 1e3), t.qualityLevel ?? (t.qualityLevel = Qe), t.sortType ?? (t.sortType = Ke.Default), t.transitionEffect ?? (t.transitionEffect =
|
|
2830
|
+
return t.position = t.position ? [...t.position] : [0, -5, 15], t.lookAt = t.lookAt ? [...t.lookAt] : [0, 0, 0], t.lookUp = t.lookUp ? [...t.lookUp] : [0, -1, 0], t.fov ?? (t.fov = 45), t.near ?? (t.near = 1e-3), t.far ?? (t.far = 1e3), t.enableDamping ?? (t.enableDamping = !0), t.autoRotate ?? (t.autoRotate = !0), t.enableZoom ?? (t.enableZoom = !0), t.enableRotate ?? (t.enableRotate = !0), t.enablePan ?? (t.enablePan = !0), t.enableKeyboard ?? (t.enableKeyboard = !0), t.bigSceneMode ?? (t.bigSceneMode = !1), t.pointcloudMode ?? (t.pointcloudMode = !t.bigSceneMode), t.lightFactor ?? (t.lightFactor = 1.1), t.debugMode ?? (t.debugMode = location.protocol === "http:" || /^test\./.test(location.host)), t.markMode ?? (t.markMode = !1), t.markVisible ?? (t.markVisible = !0), t.meterScale ?? (t.meterScale = 1), t.background ?? (t.background = "#000000"), t.minDistance ?? (t.minDistance = 0.1), t.maxDistance ?? (t.maxDistance = 1e3), t.qualityLevel ?? (t.qualityLevel = Qe), t.sortType ?? (t.sortType = Ke.Default), t.transitionEffect ?? (t.transitionEffect = Gn.ModelCenterCirccle), t;
|
|
2831
2831
|
}
|
|
2832
|
-
function
|
|
2832
|
+
function Ul(n) {
|
|
2833
2833
|
let t;
|
|
2834
2834
|
n.root ? t = typeof n.root == "string" ? document.querySelector(n.root) || document.querySelector("#gsviewer") : n.root : t = document.querySelector("#gsviewer"), t || (t = document.createElement("div"), t.id = "gsviewer", document.body.appendChild(t));
|
|
2835
2835
|
let e = null;
|
|
2836
|
-
return n.renderer ? e = n.renderer : (e = new
|
|
2836
|
+
return n.renderer ? e = n.renderer : (e = new Ha({ antialias: !1, stencil: !0, logarithmicDepthBuffer: !0, precision: "highp" }), e.setSize(t.clientWidth, t.clientHeight), e.setPixelRatio(Math.min(devicePixelRatio, 2)), n.renderer = e), e.domElement.classList.add("gsviewer-canvas"), t.appendChild(e.domElement), e;
|
|
2837
2837
|
}
|
|
2838
|
-
function
|
|
2838
|
+
function Nl(n) {
|
|
2839
2839
|
let t = n.camera;
|
|
2840
2840
|
if (!t) {
|
|
2841
2841
|
const e = n.renderer.domElement, i = e.width / e.height;
|
|
2842
2842
|
let a = new Q().fromArray(n.lookUp), o = new Q().fromArray(n.lookAt), s = new Q().fromArray(n.position);
|
|
2843
|
-
t = new
|
|
2843
|
+
t = new Oa(n.fov, i, n.near, n.far), t.position.copy(s), t.up.copy(a).normalize(), t.lookAt(o), n.camera = t;
|
|
2844
2844
|
}
|
|
2845
2845
|
return n.camera;
|
|
2846
2846
|
}
|
|
2847
|
-
function
|
|
2847
|
+
function zl(n) {
|
|
2848
2848
|
const { renderer: t, scene: e } = n, i = { renderer: t, scene: e };
|
|
2849
|
-
return i.viewerEvents = n.viewerEvents, i.debugMode = n.debugMode, i.renderer = n.renderer, i.scene = n.scene, i.controls = n.controls, i.bigSceneMode = n.bigSceneMode, i.pointcloudMode = n.pointcloudMode, i.maxRenderCountOfMobile = n.maxRenderCountOfMobile, i.maxRenderCountOfPc = n.maxRenderCountOfPc, i.lightFactor = n.lightFactor, i.shDegree = n.shDegree, i.qualityLevel = n.qualityLevel, i.sortType = n.sortType, i.disableTransitionEffectOnLoad = !!n.disableTransitionEffectOnLoad, i.transitionEffect = n.transitionEffect ||
|
|
2849
|
+
return i.viewerEvents = n.viewerEvents, i.debugMode = n.debugMode, i.renderer = n.renderer, i.scene = n.scene, i.controls = n.controls, i.bigSceneMode = n.bigSceneMode, i.pointcloudMode = n.pointcloudMode, i.maxRenderCountOfMobile = n.maxRenderCountOfMobile, i.maxRenderCountOfPc = n.maxRenderCountOfPc, i.lightFactor = n.lightFactor, i.shDegree = n.shDegree, i.qualityLevel = n.qualityLevel, i.sortType = n.sortType, i.disableTransitionEffectOnLoad = !!n.disableTransitionEffectOnLoad, i.transitionEffect = n.transitionEffect || Gn.ModelCenterCirccle, i;
|
|
2850
2850
|
}
|
|
2851
|
-
const
|
|
2852
|
-
function
|
|
2851
|
+
const Ko = '(function(){"use strict";let l=0;l++;const _=`$${l++}`,tt=`$${l++}`;l++,l++,l++;const A=`$${l++}`,L=`$${l++}`,Q=`$${l++}`,U=`$${l++}`,j=`$${l++}`,et=`$${l++}`,nt=`$${l++}`,xt=`$${l++}`;l++;const kt=`$${l++}`,Mt=`$${l++}`;l++;const at=`$${l++}`;l++;const Ct=`$${l++}`;l++;const Dt=`$${l++}`,It=`$${l++}`,yt=`$${l++}`,Wt=`$${l++}`,bt=`$${l++}`,wt=`$${l++}`,gt=`$${l++}`,Zt=`$${l++}`,Nt=`$${l++}`,vt=`$${l++}`,ot=`$${l++}`,Ft=`$${l++}`,Bt=`$${l++}`,O=`$${l++}`,rt=`$${l++}`,it=`$${l++}`,lt=navigator.userAgent.includes("Mobi"),st=1,T=5,ct=9;var F=(t=>(t[t.Default=1]="Default",t[t.ZdepthFrontNearest2010=2010]="ZdepthFrontNearest2010",t[t.ZdepthFront2011=2011]="ZdepthFront2011",t[t.ZdepthFrontNearFar2012=2012]="ZdepthFrontNearFar2012",t[t.ZdepthFullNearFar2112=2112]="ZdepthFullNearFar2112",t))(F||{});const q=self;let E={index:0,version:0},G={index:1,version:0},dt=!1,V=T,g=F.Default,y=0,H,Pt=lt?.5:.2,J,X=[],N=new Int32Array(0),S=new Float32Array(0),Z=new Int32Array(0),R=new Int32Array(0),b=new Int32Array(0),ht=[],K,ut,mt=0,ft,B=.4,P=0;function St(t,n,a){if(!dt)return;let r=E.version>G.version?E:G;if(!r.version)return;const{xyz:o,renderSplatCount:d,visibleSplatCount:p,modelSplatCount:x,watermarkCount:$,index:W,version:m}=r;if(mt===m&&Math.abs(X[2]-t[2])+Math.abs(X[6]-t[6])+Math.abs(X[10]-t[10])+Math.abs(X[14]-t[14])<Pt)return;X=t,mt=m;let s=Date.now(),k;if(!d){const e=new Uint32Array(0);q.postMessage({[_]:e,[Q]:0,[U]:p,[j]:x,[A]:W,[L]:m,[nt]:0,[et]:s},[e.buffer]);return}let I=0,f=0,i=Qt();const u=d-$,M=g===1?V>T?At:z:Y,h=g===1?t:n,c=n[0]*a[0]+n[1]*a[1]+n[2]*a[2];let{maxDepth:D,minDepth:w}=Lt(r,h,M,c);if(D-w<=1e-5){for(let e=0;e<u;++e)i[e]=e;k=u+$}else{let e=v(y).bucketCnt;b.length<e?b=new Int32Array(e):b.fill(0),N.length<y&&(N=new Int32Array(y)),g!==F.Default&&S.length<y&&(S=new Float32Array(y)),g===F.ZdepthFrontNearest2010?(Z.length<y&&(Z=new Int32Array(y)),{renderCount:k,bucketBits:f}=Rt({depthIndex:i,depths:S,distances:N,counters:b,int32Tmp1:Z,xyz:o,dataCount:u,watermarkCount:$,maxDepth:D,minDepth:w,dotPos:c,sortCameraDir:n,depthNearRate:B,depthNearValue:P})):g===F.ZdepthFront2011?(Z.length<y&&(Z=new Int32Array(y)),{renderCount:k,bucketBits:f}=Vt({depthIndex:i,depths:S,distances:N,counters:b,int32Tmp1:Z,xyz:o,dataCount:u,watermarkCount:$,maxDepth:D,minDepth:w,dotPos:c,sortCameraDir:n})):g===F.ZdepthFrontNearFar2012?(Z.length<y&&(Z=new Int32Array(y)),R.length<y&&(R=new Int32Array(y)),{renderCount:k,bucketBits:f}=Xt({depthIndex:i,depths:S,distances:N,counters:b,int32Tmp1:Z,int32Tmp2:R,xyz:o,dataCount:u,watermarkCount:$,maxDepth:D,minDepth:w,dotPos:c,sortCameraDir:n,depthNearRate:B,depthNearValue:P})):g===F.ZdepthFullNearFar2112?(Z.length<y&&(Z=new Int32Array(y)),R.length<y&&(R=new Int32Array(y)),{renderCount:k,bucketBits:f}=Yt({depthIndex:i,depths:S,distances:N,counters:b,int32Tmp1:Z,int32Tmp2:R,xyz:o,dataCount:u,watermarkCount:$,maxDepth:D,minDepth:w,dotPos:c,sortCameraDir:n,depthNearRate:B,depthNearValue:P})):{renderCount:k,bucketBits:f}=Tt({depthIndex:i,distances:N,counters:b,xyz:o,dataCount:u,watermarkCount:$,maxDepth:D,minDepth:w,fnCalcDepth:M,sortViewProj:t})}$&&zt({xyz:o,dataCount:u,watermarkCount:$,maxDepth:D,minDepth:w,sortViewProj:t,depthIndex:i}),I=Date.now()-s,q.postMessage({[_]:i,[Q]:k,[U]:p,[j]:x,[A]:W,[L]:m,[et]:s,[nt]:I,[Bt]:f||16,[O]:g||1},[i.buffer])}function Rt(t){const{depthIndex:n,depths:a,distances:r,counters:o,int32Tmp1:d,xyz:p,dataCount:x,watermarkCount:$,minDepth:W,dotPos:m,sortCameraDir:s}=t,k=Math.min(t.maxDepth,0),I=t.depthNearValue?k-Math.abs(t.depthNearValue):k-(k-W)*t.depthNearRate;let f=0;for(let c=0;c<x;++c)a[c]=Y(s,p[3*c],p[3*c+1],p[3*c+2],m),d[f]=c,f+=(a[c]<=0&&a[c]>=I)|0;const i=f+$,{bucketBits:u,bucketCnt:M}=v(f),h=(M-1)/(k-I);for(let c=0,D=0;c<f;++c)D=(a[d[c]]-I)*h|0,o[r[c]=D]++;for(let c=1;c<M;++c)o[c]+=o[c-1];for(let c=0;c<f;++c)n[--o[r[c]]]=d[c];return{renderCount:i,bucketBits:u}}function Vt(t){const{depthIndex:n,depths:a,distances:r,counters:o,int32Tmp1:d,xyz:p,dataCount:x,watermarkCount:$,minDepth:W,dotPos:m,sortCameraDir:s}=t,k=Math.min(t.maxDepth,0);let I=0;for(let h=0;h<x;++h)a[h]=Y(s,p[3*h],p[3*h+1],p[3*h+2],m),d[I]=h,I+=a[h]<=0|0;const f=I+$,{bucketBits:i,bucketCnt:u}=v(I),M=(u-1)/(k-W);for(let h=0,c=0;h<I;++h)c=(a[d[h]]-W)*M|0,o[r[h]=c]++;for(let h=1;h<u;++h)o[h]+=o[h-1];for(let h=0;h<I;++h)n[--o[r[h]]]=d[h];return{renderCount:f,bucketBits:i}}function Xt(t){const{depthIndex:n,depths:a,distances:r,counters:o,int32Tmp1:d,int32Tmp2:p,xyz:x,dataCount:$,watermarkCount:W,maxDepth:m,minDepth:s,dotPos:k,sortCameraDir:I}=t,f=Math.min(m,0),i=t.depthNearValue?f-Math.abs(t.depthNearValue):f-(f-s)*t.depthNearRate;let u=0,M=0;for(let e=0,C=0,$t=0;e<$;++e)a[e]=Y(I,x[3*e],x[3*e+1],x[3*e+2],k),d[u]=e,p[M]=e,C=(a[e]<=0&&a[e]>=i)|0,$t=a[e]<i|0,u+=C,M+=$t;const h=u+M+W;let{bucketBits:c,bucketCnt:D}=v(M),w=(D-1)/(i-s);for(let e=0,C=0;e<M;++e)C=(a[p[e]]-s)*w|0,o[r[e]=C]++;for(let e=1;e<D;++e)o[e]+=o[e-1];for(let e=0;e<M;++e)n[--o[r[e]]]=p[e];o.fill(0),D=v(u).bucketCnt,w=(D-1)/(f-i);for(let e=0,C=0;e<u;++e)C=(a[d[e]]-i)*w|0,o[r[e]=C]++;for(let e=1;e<D;++e)o[e]+=o[e-1];for(let e=0;e<u;++e)n[--o[r[e]]+M]=d[e];return{renderCount:h,bucketBits:c}}function Yt(t){const{depthIndex:n,depths:a,distances:r,counters:o,int32Tmp1:d,int32Tmp2:p,xyz:x,dataCount:$,watermarkCount:W,maxDepth:m,minDepth:s,dotPos:k,sortCameraDir:I}=t,f=Math.min(m,0),i=t.depthNearValue?f-Math.abs(t.depthNearValue):f-(f-s)*t.depthNearRate;let u=0,M=0;for(let e=0,C=0;e<$;++e)a[e]=Y(I,x[3*e],x[3*e+1],x[3*e+2],k),d[u]=e,p[M]=e,C=(a[e]<=0&&a[e]>=i)|0,u+=C,M+=C^1;const h=u+M+W;let{bucketBits:c,bucketCnt:D}=v(M),w=(D-1)/(i-s);for(let e=0,C=0;e<M;++e)C=(a[p[e]]-s)*w|0,o[r[e]=C]++;for(let e=1;e<D;++e)o[e]+=o[e-1];for(let e=0;e<M;++e)n[--o[r[e]]]=p[e];o.fill(0),D=v(u).bucketCnt,w=(D-1)/(f-i);for(let e=0,C=0;e<u;++e)C=(a[d[e]]-i)*w|0,o[r[e]=C]++;for(let e=1;e<D;++e)o[e]+=o[e-1];for(let e=0;e<u;++e)n[--o[r[e]]+M]=d[e];return{renderCount:h,bucketBits:c}}function Tt(t){const{depthIndex:n,distances:a,counters:r,xyz:o,dataCount:d,watermarkCount:p,maxDepth:x,minDepth:$,fnCalcDepth:W,sortViewProj:m}=t,s=d+p;let{bucketBits:k,bucketCnt:I}=v(d),f=(I-1)/(x-$);for(let i=0,u=0;i<d;++i)u=(W(m,o[3*i],o[3*i+1],o[3*i+2])-$)*f|0,r[a[i]=u]++;for(let i=1;i<I;++i)r[i]+=r[i-1];for(let i=0;i<d;++i)n[--r[a[i]]]=i;return{renderCount:s,bucketBits:k}}function zt(t){let{xyz:n,dataCount:a,watermarkCount:r,maxDepth:o,minDepth:d,sortViewProj:p,depthIndex:x}=t;const $=a+r;let{bucketCnt:W}=v(r,1);o=d=z(p,n[3*a],n[3*a+1],n[3*a+2]);for(let m=a,s=0;m<$;++m)s=z(p,n[3*m],n[3*m+1],n[3*m+2]),o=Math.max(s,o),d=Math.min(s,d);if(o-d<=1e-5)for(let m=0;m<r;++m)x[a+m]=a+m;else{let m=(W-1)/(o-d);b.length<W?b=new Int32Array(W):b.fill(0);for(let s=a,k=0;s<$;++s)k=(z(p,n[3*s],n[3*s+1],n[3*s+2])-d)*m|0,b[N[s-a]=k]++;for(let s=1;s<W;++s)b[s]+=b[s-1];for(let s=0;s<r;++s)x[a+--b[N[s]]]=a+s}}function z(t,n,a,r){return t[2]*n+t[6]*a+t[10]*r}function At(t,n,a,r){return t[2]*n+t[6]*a+t[10]*r+t[14]}function Y(t,n,a,r,o){return o-t[0]*n-t[1]*a-t[2]*r}function Lt(t,n,a,r){let o=-1/0,d=1/0;const p=[[t.minX,t.minY,t.minZ],[t.minX,t.minY,t.maxZ],[t.minX,t.maxY,t.minZ],[t.minX,t.maxY,t.maxZ],[t.maxX,t.minY,t.minZ],[t.maxX,t.minY,t.maxZ],[t.maxX,t.maxY,t.minZ],[t.maxX,t.maxY,t.maxZ]];for(const x of p){const $=a(n,x[0],x[1],x[2],r);o=Math.max(o,$),d=Math.min(d,$)}return{maxDepth:o,minDepth:d}}const pt=()=>{if(!H){H=!0;const t=J,n=K;St(t,n,ut),setTimeout(()=>!(H=!1)&&(g===1?t!==J:n!=K)&&pt())}};function v(t,n=0){if(!t)return{bucketBits:1,bucketCnt:1};let a=n?Math.min(n,V):V,r=11+(lt?Math.max(a-1,1):a);return a<3?r=Math.max(Math.min(r,Math.round(Math.log2(t/32))),8):a<4?r=Math.max(Math.min(r,Math.round(Math.log2(t/16))),8):a<5&&(r=Math.max(Math.min(r,Math.round(Math.log2(t/8))),8)),a>=5&&(r=Math.min(r,Math.round(Math.log2(t/4)))),{bucketBits:r,bucketCnt:2**r}}function Qt(){return ht.pop()||new Uint32Array(y)}function Ut(t){t.fill(0)&&ht.push(t)}q.onmessage=t=>{const n=t.data;if(n[xt]){let a=!ft||n[A]===0?E:G;a.minX=n[Dt],a.maxX=n[It],a.minY=n[yt],a.maxY=n[Wt],a.minZ=n[bt],a.maxZ=n[wt],a.xyz=new Float32Array(n[Ct].buffer),a.watermarkCount=n[Zt],a.version=n[L],a.renderSplatCount=n[Q],a.visibleSplatCount=n[U],a.modelSplatCount=n[j],a.textureReady=!0,a.textureReadyTime=Date.now()}else if(n[at]){const a=n[at];K=n[Nt],ut=n[vt],a[2]*=-1,a[6]*=-1,a[10]*=-1,a[14]*=-1,J=a,pt()}else n[Ft]?(V=Math.max(st,Math.min(n[ot]||T,ct)),g=n[O]||g,B=n[rt]||B,P=n[it]||P):n[tt]?Ut(n[tt]):n[gt]&&(ft=n[kt],y=n[Mt],V=Math.max(st,Math.min(n[ot]||T,ct)),g=n[O]||g,B=n[rt]||B,P=n[it]||P,dt=!0)}})();\n', Qa = typeof self < "u" && self.Blob && new Blob([Ko], { type: "text/javascript;charset=utf-8" });
|
|
2852
|
+
function Hl(n) {
|
|
2853
2853
|
let t;
|
|
2854
2854
|
try {
|
|
2855
|
-
if (t =
|
|
2855
|
+
if (t = Qa && (self.URL || self.webkitURL).createObjectURL(Qa), !t) throw "";
|
|
2856
2856
|
const e = new Worker(t, {
|
|
2857
2857
|
name: n?.name
|
|
2858
2858
|
});
|
|
@@ -2861,7 +2861,7 @@ function Nl(n) {
|
|
|
2861
2861
|
}), e;
|
|
2862
2862
|
} catch {
|
|
2863
2863
|
return new Worker(
|
|
2864
|
-
"data:text/javascript;charset=utf-8," + encodeURIComponent(
|
|
2864
|
+
"data:text/javascript;charset=utf-8," + encodeURIComponent(Ko),
|
|
2865
2865
|
{
|
|
2866
2866
|
name: n?.name
|
|
2867
2867
|
}
|
|
@@ -2870,39 +2870,39 @@ function Nl(n) {
|
|
|
2870
2870
|
t && (self.URL || self.webkitURL).revokeObjectURL(t);
|
|
2871
2871
|
}
|
|
2872
2872
|
}
|
|
2873
|
-
function
|
|
2874
|
-
const t = (a, o, s) => n.on(a, o, s), e = (a, ...o) => n.fire(a, ...o), i = new
|
|
2875
|
-
t(
|
|
2876
|
-
|
|
2873
|
+
function Ol(n) {
|
|
2874
|
+
const t = (a, o, s) => n.on(a, o, s), e = (a, ...o) => n.fire(a, ...o), i = new Hl();
|
|
2875
|
+
t(Ja, () => i), t(
|
|
2876
|
+
eo,
|
|
2877
2877
|
() => i.postMessage({
|
|
2878
|
-
[
|
|
2879
|
-
[
|
|
2880
|
-
[
|
|
2878
|
+
[hl]: e(Za),
|
|
2879
|
+
[El]: e(po),
|
|
2880
|
+
[vl]: e(Lt).toArray()
|
|
2881
2881
|
})
|
|
2882
|
-
), t(
|
|
2883
|
-
|
|
2882
|
+
), t(no, () => i.terminate()), t(
|
|
2883
|
+
hs,
|
|
2884
2884
|
() => i.postMessage({
|
|
2885
|
-
[
|
|
2886
|
-
[
|
|
2887
|
-
[
|
|
2888
|
-
[
|
|
2889
|
-
[
|
|
2885
|
+
[xl]: !0,
|
|
2886
|
+
[wa]: e(Ui),
|
|
2887
|
+
[Oi]: e(Ni),
|
|
2888
|
+
[Ea]: e(xt)?.meta?.depthNearRate,
|
|
2889
|
+
[va]: e(xt)?.meta?.depthNearValue
|
|
2890
2890
|
})
|
|
2891
2891
|
), (async () => i.postMessage({
|
|
2892
|
-
[
|
|
2893
|
-
[
|
|
2894
|
-
[
|
|
2895
|
-
[
|
|
2896
|
-
[
|
|
2897
|
-
[
|
|
2898
|
-
[
|
|
2892
|
+
[Il]: !0,
|
|
2893
|
+
[ul]: await e(Ee),
|
|
2894
|
+
[Al]: e(Ct),
|
|
2895
|
+
[wa]: e(Ui),
|
|
2896
|
+
[Oi]: e(Ni),
|
|
2897
|
+
[Ea]: e(xt)?.meta?.depthNearRate,
|
|
2898
|
+
[va]: e(xt)?.meta?.depthNearValue
|
|
2899
2899
|
}))();
|
|
2900
2900
|
}
|
|
2901
|
-
class
|
|
2901
|
+
class Yl extends zn {
|
|
2902
2902
|
constructor(t = 0, e = 0, i = 0, a = 0, o = 0, s = 0) {
|
|
2903
2903
|
super();
|
|
2904
2904
|
const r = this, c = new Sn(), A = new pn({ color: "#ffffff" });
|
|
2905
|
-
r.boxLines = new
|
|
2905
|
+
r.boxLines = new yi(c, A), r.update(t, e, i, a, o, s), r.add(r.boxLines);
|
|
2906
2906
|
}
|
|
2907
2907
|
update(t, e, i, a, o, s, r) {
|
|
2908
2908
|
const c = (a - t) / 8, A = (o - e) / 8, l = (s - i) / 8, u = [
|
|
@@ -2931,7 +2931,7 @@ class Hl extends Nn {
|
|
|
2931
2931
|
this.boxLines = null;
|
|
2932
2932
|
}
|
|
2933
2933
|
}
|
|
2934
|
-
function
|
|
2934
|
+
function Gl(n, t) {
|
|
2935
2935
|
const e = new DataView(n.buffer, n.byteOffset), i = 32, a = 500;
|
|
2936
2936
|
let o = [], s = { x: 0, y: 0, z: 0 };
|
|
2937
2937
|
for (let h = 0; h < t; h += a) {
|
|
@@ -2957,22 +2957,28 @@ class Nt extends pt {
|
|
|
2957
2957
|
* 构造函数
|
|
2958
2958
|
* @param options 渲染器、场景、相机都应该传入
|
|
2959
2959
|
*/
|
|
2960
|
-
constructor(t) {
|
|
2960
|
+
constructor(t, e) {
|
|
2961
2961
|
super(), this.isSplatMesh = !0, this.disposed = !1;
|
|
2962
|
-
const
|
|
2963
|
-
let
|
|
2964
|
-
const
|
|
2965
|
-
|
|
2966
|
-
|
|
2967
|
-
}, e.
|
|
2968
|
-
|
|
2969
|
-
},
|
|
2970
|
-
|
|
2971
|
-
|
|
2972
|
-
|
|
2973
|
-
|
|
2974
|
-
|
|
2975
|
-
|
|
2962
|
+
const i = this, a = new ds(), o = (u, g, h) => a.on(u, g, h), s = (u, ...g) => a.fire(u, ...g);
|
|
2963
|
+
let r = !1;
|
|
2964
|
+
const c = Pl(t), A = c.controls.object;
|
|
2965
|
+
o(_, () => c), o(ke, () => c.renderer.domElement), o(dt, () => A), o(en, () => A.fov), o(Lt, (u = !1) => u ? A.position.clone() : A.position), o(Ot, (u = !1) => u ? c.controls.target.clone() : c.controls.target), o(Za, () => A.projectionMatrix.clone().multiply(A.matrixWorldInverse).multiply(i.matrix).toArray()), o(to, () => A.projectionMatrix.clone().multiply(A.matrixWorldInverse)), o(po, () => A.getWorldDirection(new Q()).toArray()), o(Ve, () => c.renderer), o(Y, () => c.scene), o(Ct, () => c.bigSceneMode), o(Si, () => c.pointcloudMode), o(xt, () => i), o(Ui, () => c.qualityLevel || Qe), o(Ni, () => c.sortType || Ke.Default), o(Ho, () => r), o(et, () => c.viewerEvents?.fire(ct)), o(Un, () => {
|
|
2966
|
+
e?.fire(Un);
|
|
2967
|
+
}), ps(a), tl(a), Ol(a), Bl(a), Ql(a), i.name = `${c.name || i.id}`, i.globalEvent = e, i.events = a, i.opts = c, (async () => (i.copy(await a.fire(io)), i.meta.transform && i.applyMatrix4(new $t().fromArray(i.meta.transform)), i.frustumCulled = !1, i.onBeforeRender = () => {
|
|
2968
|
+
s(eo), s(ao, performance.now());
|
|
2969
|
+
}, i.onAfterRender = () => {
|
|
2970
|
+
s(co, 1e4) && s(et);
|
|
2971
|
+
}, r = !0, s(Ri)))();
|
|
2972
|
+
const l = new Yl();
|
|
2973
|
+
l.visible = !1, l.renderOrder = 99999, i.boundBox = l, i.add(l), o(Li, (u, g, h, d, C, f, p, y) => {
|
|
2974
|
+
l.update(u, g, h, d, C, f, p);
|
|
2975
|
+
try {
|
|
2976
|
+
const w = Gl(y.splatData, y.dataSplatCount);
|
|
2977
|
+
i.dir = new Q(w.x, w.y, w.z), i.len = f - h;
|
|
2978
|
+
} catch {
|
|
2979
|
+
}
|
|
2980
|
+
i.globalEvent?.fire(Oo, 0);
|
|
2981
|
+
}), o(Hr, (u = !0) => l.visible = u);
|
|
2976
2982
|
}
|
|
2977
2983
|
/**
|
|
2978
2984
|
* 设定或者获取最新配置项
|
|
@@ -2983,7 +2989,7 @@ class Nt extends pt {
|
|
|
2983
2989
|
const e = this;
|
|
2984
2990
|
if (e.disposed) return;
|
|
2985
2991
|
const i = (o, ...s) => e.events.fire(o, ...s), a = e.opts;
|
|
2986
|
-
return t && (t.pointcloudMode !== void 0 && i(ce, t.pointcloudMode), t.lightFactor !== void 0 && i(qe, t.lightFactor), t.maxRenderCountOfMobile !== void 0 && (a.maxRenderCountOfMobile = t.maxRenderCountOfMobile), t.maxRenderCountOfPc !== void 0 && (a.maxRenderCountOfPc = t.maxRenderCountOfPc), t.qualityLevel !== void 0 && (a.qualityLevel = t.qualityLevel) && i(
|
|
2992
|
+
return t && (t.pointcloudMode !== void 0 && i(ce, t.pointcloudMode), t.lightFactor !== void 0 && i(qe, t.lightFactor), t.maxRenderCountOfMobile !== void 0 && (a.maxRenderCountOfMobile = t.maxRenderCountOfMobile), t.maxRenderCountOfPc !== void 0 && (a.maxRenderCountOfPc = t.maxRenderCountOfPc), t.qualityLevel !== void 0 && (a.qualityLevel = t.qualityLevel) && i(Ri), !a.mapMode && t.sortType !== void 0 && (a.sortType = t.sortType) && i(hs), i(et)), { ...a };
|
|
2987
2993
|
}
|
|
2988
2994
|
/**
|
|
2989
2995
|
* 添加渲染指定高斯模型
|
|
@@ -2992,7 +2998,7 @@ class Nt extends pt {
|
|
|
2992
2998
|
*/
|
|
2993
2999
|
async addModel(t, e = {}) {
|
|
2994
3000
|
const i = this;
|
|
2995
|
-
i.disposed || (i.meta = e, await i.events.fire(
|
|
3001
|
+
i.disposed || (i.meta = e, await i.events.fire(ro, t, e));
|
|
2996
3002
|
}
|
|
2997
3003
|
fire(t, ...e) {
|
|
2998
3004
|
const i = this;
|
|
@@ -3007,15 +3013,15 @@ class Nt extends pt {
|
|
|
3007
3013
|
if (t.disposed) return;
|
|
3008
3014
|
t.disposed = !0;
|
|
3009
3015
|
const e = (i, ...a) => t.events.fire(i, ...a);
|
|
3010
|
-
e(jt, t), e(jt, t.boundBox), e(Y).remove(t), e(Y).remove(t.boundBox), e(
|
|
3016
|
+
e(jt, t), e(jt, t.boundBox), e(Y).remove(t), e(Y).remove(t.boundBox), e(Ki), e(lo), e(no), e(Ao), t.events.clear(), t.events = null, t.opts = null, t.onAfterRender = null, t.boundBox = null;
|
|
3011
3017
|
}
|
|
3012
3018
|
}
|
|
3013
|
-
class
|
|
3019
|
+
class ql extends zn {
|
|
3014
3020
|
constructor(t = new Q(0, 0, 1), e = new Q(0, 0, 0), i = 1, a = 0.1, o = 16776960, s = i * 0.2, r = s * 0.2) {
|
|
3015
3021
|
super(), this._axis = new Q(), this.type = "ArrowHelper";
|
|
3016
|
-
const c = new
|
|
3022
|
+
const c = new Es(a, a, i, 32);
|
|
3017
3023
|
c.translate(0, i / 2, 0);
|
|
3018
|
-
const A = new
|
|
3024
|
+
const A = new Es(0, r, s, 32);
|
|
3019
3025
|
A.translate(0, i, 0), this.position.copy(e);
|
|
3020
3026
|
const l = new ee({ color: o, toneMapped: !1 });
|
|
3021
3027
|
l.side = Jt, this.line = new pt(c, l), this.line.matrixAutoUpdate = !1, this.line.ignoreIntersect = !0, this.add(this.line);
|
|
@@ -3043,8 +3049,8 @@ class Yl extends Nn {
|
|
|
3043
3049
|
this.line.geometry.dispose(), this.line.material.dispose(), this.cone.geometry.dispose(), this.cone.material.dispose();
|
|
3044
3050
|
}
|
|
3045
3051
|
}
|
|
3046
|
-
function
|
|
3047
|
-
const t = (C, f, p) => n.on(C, f, p), e = (C, ...f) => n.fire(C, ...f), i = new
|
|
3052
|
+
function Vl(n) {
|
|
3053
|
+
const t = (C, f, p) => n.on(C, f, p), e = (C, ...f) => n.fire(C, ...f), i = new mr(1, 1);
|
|
3048
3054
|
i.rotateX(-Math.PI / 2);
|
|
3049
3055
|
const a = new ee({ color: 16777215 });
|
|
3050
3056
|
a.transparent = !0, a.opacity = 0.6, a.depthTest = !1, a.depthWrite = !1, a.side = Jt;
|
|
@@ -3052,17 +3058,17 @@ function Gl(n) {
|
|
|
3052
3058
|
o.ignoreIntersect = !0;
|
|
3053
3059
|
const s = new Q(0, -1, 0);
|
|
3054
3060
|
s.normalize();
|
|
3055
|
-
const r = new Q(0, 0, 0), c = 0.5, A = 0.01, l = 16777062, u = 0.1, g = 0.03, h = new
|
|
3056
|
-
d.add(o), d.add(h), d.renderOrder = 99999, o.renderOrder = 99999, d.visible = !1, e(Y).add(d), t(
|
|
3061
|
+
const r = new Q(0, 0, 0), c = 0.5, A = 0.01, l = 16777062, u = 0.1, g = 0.03, h = new ql(s, r, c, A, l, u, g), d = new zn();
|
|
3062
|
+
d.add(o), d.add(h), d.renderOrder = 99999, o.renderOrder = 99999, d.visible = !1, e(Y).add(d), t(Rr, () => d), t(In, (C) => {
|
|
3057
3063
|
e(Tn, !0), d.visible = C === void 0 ? !d.visible : C, e(ct);
|
|
3058
|
-
}), t(
|
|
3064
|
+
}), t(ns, () => d.visible), t(Tn, (C = !1) => {
|
|
3059
3065
|
if (C || d.visible) {
|
|
3060
3066
|
const f = new be(), p = new Q(0, -1, 0);
|
|
3061
3067
|
f.setFromUnitVectors(p, e(Be)), d.position.copy(e(Ot)), d.quaternion.copy(f);
|
|
3062
3068
|
}
|
|
3063
3069
|
});
|
|
3064
3070
|
}
|
|
3065
|
-
const
|
|
3071
|
+
const Da = { type: "change" }, ys = { type: "start" }, Xo = { type: "end" }, hn = new yr(), ka = new Ir(), Wl = Math.cos(70 * te.DEG2RAD), at = new Q(), wt = 2 * Math.PI, tt = {
|
|
3066
3072
|
NONE: -1,
|
|
3067
3073
|
ROTATE: 0,
|
|
3068
3074
|
DOLLY: 1,
|
|
@@ -3071,10 +3077,10 @@ const Qa = { type: "change" }, Cs = { type: "start" }, jo = { type: "end" }, hn
|
|
|
3071
3077
|
TOUCH_PAN: 4,
|
|
3072
3078
|
TOUCH_DOLLY_PAN: 5,
|
|
3073
3079
|
TOUCH_DOLLY_ROTATE: 6
|
|
3074
|
-
},
|
|
3075
|
-
class
|
|
3080
|
+
}, gi = 1e-6;
|
|
3081
|
+
class Zo extends Cr {
|
|
3076
3082
|
constructor(t, e = null) {
|
|
3077
|
-
super(t, e), this.state = tt.NONE, this.enabled = !0, this.target = new Q(), this.cursor = new Q(), this.minDistance = 0, this.maxDistance = 1 / 0, this.minZoom = 0, this.maxZoom = 1 / 0, this.minTargetRadius = 0, this.maxTargetRadius = 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: "ArrowLeft", UP: "ArrowUp", RIGHT: "ArrowRight", BOTTOM: "ArrowDown" }, this.mouseButtons = { LEFT: Wt.ROTATE, MIDDLE: Wt.DOLLY, RIGHT: Wt.PAN }, this.touches = { ONE: Zt.ROTATE, TWO: Zt.DOLLY_PAN }, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this._domElementKeyEvents = null, this._lastPosition = new Q(), this._lastQuaternion = new be(), this._lastTargetPosition = new Q(), this._quat = new be().setFromUnitVectors(t.up, new Q(0, 1, 0)), this._quatInverse = this._quat.clone().invert(), this._spherical = new
|
|
3083
|
+
super(t, e), this.state = tt.NONE, this.enabled = !0, this.target = new Q(), this.cursor = new Q(), this.minDistance = 0, this.maxDistance = 1 / 0, this.minZoom = 0, this.maxZoom = 1 / 0, this.minTargetRadius = 0, this.maxTargetRadius = 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: "ArrowLeft", UP: "ArrowUp", RIGHT: "ArrowRight", BOTTOM: "ArrowDown" }, this.mouseButtons = { LEFT: Wt.ROTATE, MIDDLE: Wt.DOLLY, RIGHT: Wt.PAN }, this.touches = { ONE: Zt.ROTATE, TWO: Zt.DOLLY_PAN }, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this._domElementKeyEvents = null, this._lastPosition = new Q(), this._lastQuaternion = new be(), this._lastTargetPosition = new Q(), this._quat = new be().setFromUnitVectors(t.up, new Q(0, 1, 0)), this._quatInverse = this._quat.clone().invert(), this._spherical = new vs(), this._sphericalDelta = new vs(), this._scale = 1, this._panOffset = new Q(), this._rotateStart = new ft(), this._rotateEnd = new ft(), this._rotateDelta = new ft(), this._panStart = new ft(), this._panEnd = new ft(), this._panDelta = new ft(), this._dollyStart = new ft(), this._dollyEnd = new ft(), this._dollyDelta = new ft(), this._dollyDirection = new Q(), this._mouse = new ft(), this._performCursorZoom = !1, this._pointers = [], this._pointerPositions = {}, this._controlActive = !1, this._onPointerMove = Jl.bind(this), this._onPointerDown = $l.bind(this), this._onPointerUp = jl.bind(this), this._onContextMenu = iA.bind(this), this._onMouseWheel = Zl.bind(this), this._onKeyDown = tA.bind(this), this._onTouchStart = eA.bind(this), this._onTouchMove = nA.bind(this), this._onMouseDown = Kl.bind(this), this._onMouseMove = Xl.bind(this), this._interceptControlDown = sA.bind(this), this._interceptControlUp = aA.bind(this), this.domElement !== null && this.connect(), this.update();
|
|
3078
3084
|
}
|
|
3079
3085
|
connect() {
|
|
3080
3086
|
this.domElement.addEventListener("pointerdown", this._onPointerDown), this.domElement.addEventListener("pointercancel", this._onPointerUp), this.domElement.addEventListener("contextmenu", this._onContextMenu), this.domElement.addEventListener("wheel", this._onMouseWheel, { passive: !1 }), this.domElement.getRootNode().addEventListener("keydown", this._interceptControlDown, { passive: !0, capture: !0 }), this.domElement.style.touchAction = "none";
|
|
@@ -3104,7 +3110,7 @@ class Ko extends pr {
|
|
|
3104
3110
|
this.target0.copy(this.target), this.position0.copy(this.object.position), this.zoom0 = this.object.zoom;
|
|
3105
3111
|
}
|
|
3106
3112
|
reset() {
|
|
3107
|
-
this.target.copy(this.target0), this.object.position.copy(this.position0), this.object.zoom = this.zoom0, this.object.updateProjectionMatrix(), this.dispatchEvent(
|
|
3113
|
+
this.target.copy(this.target0), this.object.position.copy(this.position0), this.object.zoom = this.zoom0, this.object.updateProjectionMatrix(), this.dispatchEvent(Da), this.update(), this.state = tt.NONE;
|
|
3108
3114
|
}
|
|
3109
3115
|
update(t = null) {
|
|
3110
3116
|
const e = this.object.position;
|
|
@@ -3134,12 +3140,12 @@ class Ko extends pr {
|
|
|
3134
3140
|
A.unproject(this.object), this.object.position.sub(A).add(r), this.object.updateMatrixWorld(), s = at.length();
|
|
3135
3141
|
} else
|
|
3136
3142
|
console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."), this.zoomToCursor = !1;
|
|
3137
|
-
s !== null && (this.screenSpacePanning ? this.target.set(0, 0, -1).transformDirection(this.object.matrix).multiplyScalar(s).add(this.object.position) : (hn.origin.copy(this.object.position), hn.direction.set(0, 0, -1).transformDirection(this.object.matrix), Math.abs(this.object.up.dot(hn.direction)) <
|
|
3143
|
+
s !== null && (this.screenSpacePanning ? this.target.set(0, 0, -1).transformDirection(this.object.matrix).multiplyScalar(s).add(this.object.position) : (hn.origin.copy(this.object.position), hn.direction.set(0, 0, -1).transformDirection(this.object.matrix), Math.abs(this.object.up.dot(hn.direction)) < Wl ? this.object.lookAt(this.target) : (ka.setFromNormalAndCoplanarPoint(this.object.up, this.target), hn.intersectPlane(ka, this.target))));
|
|
3138
3144
|
} else if (this.object.isOrthographicCamera) {
|
|
3139
3145
|
const s = this.object.zoom;
|
|
3140
3146
|
this.object.zoom = Math.max(this.minZoom, Math.min(this.maxZoom, this.object.zoom / this._scale)), s !== this.object.zoom && (this.object.updateProjectionMatrix(), o = !0);
|
|
3141
3147
|
}
|
|
3142
|
-
return this._scale = 1, this._performCursorZoom = !1, o || this._lastPosition.distanceToSquared(this.object.position) >
|
|
3148
|
+
return this._scale = 1, this._performCursorZoom = !1, o || this._lastPosition.distanceToSquared(this.object.position) > gi || 8 * (1 - this._lastQuaternion.dot(this.object.quaternion)) > gi || this._lastTargetPosition.distanceToSquared(this.target) > gi ? (this.dispatchEvent(Da), this._lastPosition.copy(this.object.position), this._lastQuaternion.copy(this.object.quaternion), this._lastTargetPosition.copy(this.target), !0) : !1;
|
|
3143
3149
|
}
|
|
3144
3150
|
_getAutoRotationAngle(t) {
|
|
3145
3151
|
return t !== null ? wt / 60 * this.autoRotateSpeed * t : wt / 60 / 60 * this.autoRotateSpeed;
|
|
@@ -3331,16 +3337,16 @@ class Ko extends pr {
|
|
|
3331
3337
|
return t.ctrlKey && !this._controlActive && (i.deltaY *= 10), i;
|
|
3332
3338
|
}
|
|
3333
3339
|
}
|
|
3334
|
-
function
|
|
3340
|
+
function $l(n) {
|
|
3335
3341
|
this.enabled !== !1 && (this._pointers.length === 0 && (this.domElement.setPointerCapture(n.pointerId), this.domElement.addEventListener("pointermove", this._onPointerMove), this.domElement.addEventListener("pointerup", this._onPointerUp)), !this._isTrackingPointer(n) && (this._addPointer(n), n.pointerType === "touch" ? this._onTouchStart(n) : this._onMouseDown(n)));
|
|
3336
3342
|
}
|
|
3337
|
-
function
|
|
3343
|
+
function Jl(n) {
|
|
3338
3344
|
this.enabled !== !1 && (n.pointerType === "touch" ? this._onTouchMove(n) : this._onMouseMove(n));
|
|
3339
3345
|
}
|
|
3340
|
-
function
|
|
3346
|
+
function jl(n) {
|
|
3341
3347
|
switch (this._removePointer(n), this._pointers.length) {
|
|
3342
3348
|
case 0:
|
|
3343
|
-
this.domElement.releasePointerCapture(n.pointerId), this.domElement.removeEventListener("pointermove", this._onPointerMove), this.domElement.removeEventListener("pointerup", this._onPointerUp), this.dispatchEvent(
|
|
3349
|
+
this.domElement.releasePointerCapture(n.pointerId), this.domElement.removeEventListener("pointermove", this._onPointerMove), this.domElement.removeEventListener("pointerup", this._onPointerUp), this.dispatchEvent(Xo), this.state = tt.NONE;
|
|
3344
3350
|
break;
|
|
3345
3351
|
case 1:
|
|
3346
3352
|
const t = this._pointers[0], e = this._pointerPositions[t];
|
|
@@ -3348,7 +3354,7 @@ function $l(n) {
|
|
|
3348
3354
|
break;
|
|
3349
3355
|
}
|
|
3350
3356
|
}
|
|
3351
|
-
function
|
|
3357
|
+
function Kl(n) {
|
|
3352
3358
|
let t;
|
|
3353
3359
|
switch (n.button) {
|
|
3354
3360
|
case 0:
|
|
@@ -3389,9 +3395,9 @@ function Jl(n) {
|
|
|
3389
3395
|
default:
|
|
3390
3396
|
this.state = tt.NONE;
|
|
3391
3397
|
}
|
|
3392
|
-
this.state !== tt.NONE && this.dispatchEvent(
|
|
3398
|
+
this.state !== tt.NONE && this.dispatchEvent(ys);
|
|
3393
3399
|
}
|
|
3394
|
-
function
|
|
3400
|
+
function Xl(n) {
|
|
3395
3401
|
switch (this.state) {
|
|
3396
3402
|
case tt.ROTATE:
|
|
3397
3403
|
if (this.enableRotate === !1) return;
|
|
@@ -3407,13 +3413,13 @@ function jl(n) {
|
|
|
3407
3413
|
break;
|
|
3408
3414
|
}
|
|
3409
3415
|
}
|
|
3410
|
-
function
|
|
3411
|
-
this.enabled === !1 || this.enableZoom === !1 || this.state !== tt.NONE || (n.preventDefault(), this.dispatchEvent(
|
|
3416
|
+
function Zl(n) {
|
|
3417
|
+
this.enabled === !1 || this.enableZoom === !1 || this.state !== tt.NONE || (n.preventDefault(), this.dispatchEvent(ys), this._handleMouseWheel(this._customWheelEvent(n)), this.dispatchEvent(Xo));
|
|
3412
3418
|
}
|
|
3413
|
-
function
|
|
3419
|
+
function tA(n) {
|
|
3414
3420
|
this.enabled !== !1 && this._handleKeyDown(n);
|
|
3415
3421
|
}
|
|
3416
|
-
function
|
|
3422
|
+
function eA(n) {
|
|
3417
3423
|
switch (this._trackPointer(n), this._pointers.length) {
|
|
3418
3424
|
case 1:
|
|
3419
3425
|
switch (this.touches.ONE) {
|
|
@@ -3446,9 +3452,9 @@ function Zl(n) {
|
|
|
3446
3452
|
default:
|
|
3447
3453
|
this.state = tt.NONE;
|
|
3448
3454
|
}
|
|
3449
|
-
this.state !== tt.NONE && this.dispatchEvent(
|
|
3455
|
+
this.state !== tt.NONE && this.dispatchEvent(ys);
|
|
3450
3456
|
}
|
|
3451
|
-
function
|
|
3457
|
+
function nA(n) {
|
|
3452
3458
|
switch (this._trackPointer(n), this.state) {
|
|
3453
3459
|
case tt.TOUCH_ROTATE:
|
|
3454
3460
|
if (this.enableRotate === !1) return;
|
|
@@ -3470,16 +3476,16 @@ function tA(n) {
|
|
|
3470
3476
|
this.state = tt.NONE;
|
|
3471
3477
|
}
|
|
3472
3478
|
}
|
|
3473
|
-
function
|
|
3479
|
+
function iA(n) {
|
|
3474
3480
|
this.enabled !== !1 && n.preventDefault();
|
|
3475
3481
|
}
|
|
3476
|
-
function
|
|
3482
|
+
function sA(n) {
|
|
3477
3483
|
n.key === "Control" && (this._controlActive = !0, this.domElement.getRootNode().addEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
|
|
3478
3484
|
}
|
|
3479
|
-
function
|
|
3485
|
+
function aA(n) {
|
|
3480
3486
|
n.key === "Control" && (this._controlActive = !1, this.domElement.getRootNode().removeEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
|
|
3481
3487
|
}
|
|
3482
|
-
class
|
|
3488
|
+
class oA extends Zo {
|
|
3483
3489
|
constructor(t) {
|
|
3484
3490
|
const e = t.camera;
|
|
3485
3491
|
super(e, t.renderer.domElement);
|
|
@@ -3500,13 +3506,13 @@ class sA extends Ko {
|
|
|
3500
3506
|
this._quat?.setFromUnitVectors?.(this.object.up, new Q(0, 1, 0)), this._quatInverse = this._quat?.clone?.()?.invert?.();
|
|
3501
3507
|
}
|
|
3502
3508
|
}
|
|
3503
|
-
class
|
|
3509
|
+
class rA extends Zo {
|
|
3504
3510
|
constructor(t, e) {
|
|
3505
3511
|
super(t, e), this.screenSpacePanning = !1, this.mouseButtons = { LEFT: Wt.PAN, MIDDLE: Wt.DOLLY, RIGHT: Wt.ROTATE }, this.touches = { ONE: Zt.PAN, TWO: Zt.DOLLY_ROTATE };
|
|
3506
3512
|
}
|
|
3507
3513
|
}
|
|
3508
|
-
const
|
|
3509
|
-
class
|
|
3514
|
+
const Ta = new Ji(), dn = new Q();
|
|
3515
|
+
class tr extends Ci {
|
|
3510
3516
|
constructor() {
|
|
3511
3517
|
super(), this.isLineSegmentsGeometry = !0, this.type = "LineSegmentsGeometry";
|
|
3512
3518
|
const t = [-1, 2, 0, 1, 2, 0, -1, 1, 0, 1, 1, 0, -1, 0, 0, 1, 0, 0, -1, -1, 0, 1, -1, 0], e = [-1, 2, 1, 2, -1, 1, 1, 1, -1, -1, 1, -1, -1, -2, 1, -2], i = [0, 2, 1, 2, 3, 1, 2, 4, 3, 4, 5, 3, 4, 6, 5, 6, 7, 5];
|
|
@@ -3519,13 +3525,13 @@ class Xo extends mi {
|
|
|
3519
3525
|
setPositions(t) {
|
|
3520
3526
|
let e;
|
|
3521
3527
|
t instanceof Float32Array ? e = t : Array.isArray(t) && (e = new Float32Array(t));
|
|
3522
|
-
const i = new
|
|
3528
|
+
const i = new Ii(e, 6, 1);
|
|
3523
3529
|
return this.setAttribute("instanceStart", new ye(i, 3, 0)), this.setAttribute("instanceEnd", new ye(i, 3, 3)), this.instanceCount = this.attributes.instanceStart.count, this.computeBoundingBox(), this.computeBoundingSphere(), this;
|
|
3524
3530
|
}
|
|
3525
3531
|
setColors(t) {
|
|
3526
3532
|
let e;
|
|
3527
3533
|
t instanceof Float32Array ? e = t : Array.isArray(t) && (e = new Float32Array(t));
|
|
3528
|
-
const i = new
|
|
3534
|
+
const i = new Ii(e, 6, 1);
|
|
3529
3535
|
return this.setAttribute("instanceColorStart", new ye(i, 3, 0)), this.setAttribute("instanceColorEnd", new ye(i, 3, 3)), this;
|
|
3530
3536
|
}
|
|
3531
3537
|
fromWireframeGeometry(t) {
|
|
@@ -3535,19 +3541,19 @@ class Xo extends mi {
|
|
|
3535
3541
|
return this.setPositions(t.attributes.position.array), this;
|
|
3536
3542
|
}
|
|
3537
3543
|
fromMesh(t) {
|
|
3538
|
-
return this.fromWireframeGeometry(new
|
|
3544
|
+
return this.fromWireframeGeometry(new wr(t.geometry)), this;
|
|
3539
3545
|
}
|
|
3540
3546
|
fromLineSegments(t) {
|
|
3541
3547
|
const e = t.geometry;
|
|
3542
3548
|
return this.setPositions(e.attributes.position.array), this;
|
|
3543
3549
|
}
|
|
3544
3550
|
computeBoundingBox() {
|
|
3545
|
-
this.boundingBox === null && (this.boundingBox = new
|
|
3551
|
+
this.boundingBox === null && (this.boundingBox = new Ji());
|
|
3546
3552
|
const t = this.attributes.instanceStart, e = this.attributes.instanceEnd;
|
|
3547
|
-
t !== void 0 && e !== void 0 && (this.boundingBox.setFromBufferAttribute(t),
|
|
3553
|
+
t !== void 0 && e !== void 0 && (this.boundingBox.setFromBufferAttribute(t), Ta.setFromBufferAttribute(e), this.boundingBox.union(Ta));
|
|
3548
3554
|
}
|
|
3549
3555
|
computeBoundingSphere() {
|
|
3550
|
-
this.boundingSphere === null && (this.boundingSphere = new
|
|
3556
|
+
this.boundingSphere === null && (this.boundingSphere = new Ya()), this.boundingBox === null && this.computeBoundingBox();
|
|
3551
3557
|
const t = this.attributes.instanceStart, e = this.attributes.instanceEnd;
|
|
3552
3558
|
if (t !== void 0 && e !== void 0) {
|
|
3553
3559
|
const i = this.boundingSphere.center;
|
|
@@ -3575,7 +3581,7 @@ Cn.line = {
|
|
|
3575
3581
|
// todo FIX - maybe change to totalSize
|
|
3576
3582
|
};
|
|
3577
3583
|
mn.line = {
|
|
3578
|
-
uniforms:
|
|
3584
|
+
uniforms: Ga.merge([
|
|
3579
3585
|
Cn.common,
|
|
3580
3586
|
Cn.fog,
|
|
3581
3587
|
Cn.line
|
|
@@ -3959,11 +3965,11 @@ mn.line = {
|
|
|
3959
3965
|
`
|
|
3960
3966
|
)
|
|
3961
3967
|
};
|
|
3962
|
-
class De extends
|
|
3968
|
+
class De extends za {
|
|
3963
3969
|
constructor(t) {
|
|
3964
3970
|
super({
|
|
3965
3971
|
type: "LineMaterial",
|
|
3966
|
-
uniforms:
|
|
3972
|
+
uniforms: Ga.clone(mn.line.uniforms),
|
|
3967
3973
|
vertexShader: mn.line.vertexShader,
|
|
3968
3974
|
fragmentShader: mn.line.fragmentShader,
|
|
3969
3975
|
clipping: !0
|
|
@@ -4037,12 +4043,12 @@ class De extends Na {
|
|
|
4037
4043
|
this.defines && (t === !0 !== this.alphaToCoverage && (this.needsUpdate = !0), t === !0 ? this.defines.USE_ALPHA_TO_COVERAGE = "" : delete this.defines.USE_ALPHA_TO_COVERAGE);
|
|
4038
4044
|
}
|
|
4039
4045
|
}
|
|
4040
|
-
const
|
|
4046
|
+
const fi = new Gt(), La = new Q(), Ra = new Q(), lt = new Gt(), At = new Gt(), _t = new Gt(), pi = new Q(), mi = new $t(), ut = new Er(), _a = new Q(), gn = new Ji(), fn = new Ya(), Ft = new Gt();
|
|
4041
4047
|
let Ht, Ae;
|
|
4042
|
-
function
|
|
4048
|
+
function Fa(n, t, e) {
|
|
4043
4049
|
return Ft.set(0, 0, -t, 1).applyMatrix4(n.projectionMatrix), Ft.multiplyScalar(1 / Ft.w), Ft.x = Ae / e.width, Ft.y = Ae / e.height, Ft.applyMatrix4(n.projectionMatrixInverse), Ft.multiplyScalar(1 / Ft.w), Math.abs(Math.max(Ft.x, Ft.y));
|
|
4044
4050
|
}
|
|
4045
|
-
function
|
|
4051
|
+
function cA(n, t) {
|
|
4046
4052
|
const e = n.matrixWorld, i = n.geometry, a = i.attributes.instanceStart, o = i.attributes.instanceEnd, s = Math.min(i.instanceCount, a.count);
|
|
4047
4053
|
for (let r = 0, c = s; r < c; r++) {
|
|
4048
4054
|
ut.start.fromBufferAttribute(a, r), ut.end.fromBufferAttribute(o, r), ut.applyMatrix4(e);
|
|
@@ -4059,29 +4065,29 @@ function oA(n, t) {
|
|
|
4059
4065
|
});
|
|
4060
4066
|
}
|
|
4061
4067
|
}
|
|
4062
|
-
function
|
|
4068
|
+
function lA(n, t, e) {
|
|
4063
4069
|
const i = t.projectionMatrix, o = n.material.resolution, s = n.matrixWorld, r = n.geometry, c = r.attributes.instanceStart, A = r.attributes.instanceEnd, l = Math.min(r.instanceCount, c.count), u = -t.near;
|
|
4064
|
-
Ht.at(1, _t), _t.w = 1, _t.applyMatrix4(t.matrixWorldInverse), _t.applyMatrix4(i), _t.multiplyScalar(1 / _t.w), _t.x *= o.x / 2, _t.y *= o.y / 2, _t.z = 0,
|
|
4070
|
+
Ht.at(1, _t), _t.w = 1, _t.applyMatrix4(t.matrixWorldInverse), _t.applyMatrix4(i), _t.multiplyScalar(1 / _t.w), _t.x *= o.x / 2, _t.y *= o.y / 2, _t.z = 0, pi.copy(_t), mi.multiplyMatrices(t.matrixWorldInverse, s);
|
|
4065
4071
|
for (let g = 0, h = l; g < h; g++) {
|
|
4066
|
-
if (lt.fromBufferAttribute(c, g), At.fromBufferAttribute(A, g), lt.w = 1, At.w = 1, lt.applyMatrix4(
|
|
4072
|
+
if (lt.fromBufferAttribute(c, g), At.fromBufferAttribute(A, g), lt.w = 1, At.w = 1, lt.applyMatrix4(mi), At.applyMatrix4(mi), lt.z > u && At.z > u)
|
|
4067
4073
|
continue;
|
|
4068
4074
|
if (lt.z > u) {
|
|
4069
|
-
const
|
|
4075
|
+
const w = lt.z - At.z, b = (lt.z - u) / w;
|
|
4070
4076
|
lt.lerp(At, b);
|
|
4071
4077
|
} else if (At.z > u) {
|
|
4072
|
-
const
|
|
4078
|
+
const w = At.z - lt.z, b = (At.z - u) / w;
|
|
4073
4079
|
At.lerp(lt, b);
|
|
4074
4080
|
}
|
|
4075
4081
|
lt.applyMatrix4(i), At.applyMatrix4(i), lt.multiplyScalar(1 / lt.w), At.multiplyScalar(1 / At.w), lt.x *= o.x / 2, lt.y *= o.y / 2, At.x *= o.x / 2, At.y *= o.y / 2, ut.start.copy(lt), ut.start.z = 0, ut.end.copy(At), ut.end.z = 0;
|
|
4076
|
-
const C = ut.closestPointToPointParameter(
|
|
4077
|
-
ut.at(C,
|
|
4078
|
-
const f = te.lerp(lt.z, At.z, C), p = f >= -1 && f <= 1, y =
|
|
4082
|
+
const C = ut.closestPointToPointParameter(pi, !0);
|
|
4083
|
+
ut.at(C, _a);
|
|
4084
|
+
const f = te.lerp(lt.z, At.z, C), p = f >= -1 && f <= 1, y = pi.distanceTo(_a) < Ae * 0.5;
|
|
4079
4085
|
if (p && y) {
|
|
4080
4086
|
ut.start.fromBufferAttribute(c, g), ut.end.fromBufferAttribute(A, g), ut.start.applyMatrix4(s), ut.end.applyMatrix4(s);
|
|
4081
|
-
const
|
|
4082
|
-
Ht.distanceSqToSegment(ut.start, ut.end, b,
|
|
4087
|
+
const w = new Q(), b = new Q();
|
|
4088
|
+
Ht.distanceSqToSegment(ut.start, ut.end, b, w), e.push({
|
|
4083
4089
|
point: b,
|
|
4084
|
-
pointOnLine:
|
|
4090
|
+
pointOnLine: w,
|
|
4085
4091
|
distance: Ht.origin.distanceTo(b),
|
|
4086
4092
|
object: n,
|
|
4087
4093
|
face: null,
|
|
@@ -4092,16 +4098,16 @@ function rA(n, t, e) {
|
|
|
4092
4098
|
}
|
|
4093
4099
|
}
|
|
4094
4100
|
}
|
|
4095
|
-
class
|
|
4096
|
-
constructor(t = new
|
|
4101
|
+
class AA extends pt {
|
|
4102
|
+
constructor(t = new tr(), e = new De({ color: Math.random() * 16777215 })) {
|
|
4097
4103
|
super(t, e), this.isLineSegments2 = !0, this.type = "LineSegments2";
|
|
4098
4104
|
}
|
|
4099
4105
|
// for backwards-compatibility, but could be a method of LineSegmentsGeometry...
|
|
4100
4106
|
computeLineDistances() {
|
|
4101
4107
|
const t = this.geometry, e = t.attributes.instanceStart, i = t.attributes.instanceEnd, a = new Float32Array(2 * e.count);
|
|
4102
4108
|
for (let s = 0, r = 0, c = e.count; s < c; s++, r += 2)
|
|
4103
|
-
|
|
4104
|
-
const o = new
|
|
4109
|
+
La.fromBufferAttribute(e, s), Ra.fromBufferAttribute(i, s), a[r] = r === 0 ? 0 : a[r - 1], a[r + 1] = a[r] + La.distanceTo(Ra);
|
|
4110
|
+
const o = new Ii(a, 2, 1);
|
|
4105
4111
|
return t.setAttribute("instanceDistanceStart", new ye(o, 1, 0)), t.setAttribute("instanceDistanceEnd", new ye(o, 1, 1)), this;
|
|
4106
4112
|
}
|
|
4107
4113
|
raycast(t, e) {
|
|
@@ -4116,7 +4122,7 @@ class cA extends pt {
|
|
|
4116
4122
|
A = Ae * 0.5;
|
|
4117
4123
|
else {
|
|
4118
4124
|
const u = Math.max(a.near, fn.distanceToPoint(Ht.origin));
|
|
4119
|
-
A =
|
|
4125
|
+
A = Fa(a, u, c.resolution);
|
|
4120
4126
|
}
|
|
4121
4127
|
if (fn.radius += A, Ht.intersectsSphere(fn) === !1)
|
|
4122
4128
|
return;
|
|
@@ -4126,16 +4132,16 @@ class cA extends pt {
|
|
|
4126
4132
|
l = Ae * 0.5;
|
|
4127
4133
|
else {
|
|
4128
4134
|
const u = Math.max(a.near, gn.distanceToPoint(Ht.origin));
|
|
4129
|
-
l =
|
|
4135
|
+
l = Fa(a, u, c.resolution);
|
|
4130
4136
|
}
|
|
4131
|
-
gn.expandByScalar(l), Ht.intersectsBox(gn) !== !1 && (i ?
|
|
4137
|
+
gn.expandByScalar(l), Ht.intersectsBox(gn) !== !1 && (i ? cA(this, e) : lA(this, a, e));
|
|
4132
4138
|
}
|
|
4133
4139
|
onBeforeRender(t) {
|
|
4134
4140
|
const e = this.material.uniforms;
|
|
4135
|
-
e && e.resolution && (t.getViewport(
|
|
4141
|
+
e && e.resolution && (t.getViewport(fi), this.material.uniforms.resolution.value.set(fi.z, fi.w));
|
|
4136
4142
|
}
|
|
4137
4143
|
}
|
|
4138
|
-
class Ze extends
|
|
4144
|
+
class Ze extends tr {
|
|
4139
4145
|
constructor() {
|
|
4140
4146
|
super(), this.isLineGeometry = !0, this.type = "LineGeometry";
|
|
4141
4147
|
}
|
|
@@ -4162,13 +4168,13 @@ class Ze extends Xo {
|
|
|
4162
4168
|
return this.setPositions(e.attributes.position.array), this;
|
|
4163
4169
|
}
|
|
4164
4170
|
}
|
|
4165
|
-
class ue extends
|
|
4171
|
+
class ue extends AA {
|
|
4166
4172
|
constructor(t = new Ze(), e = new De({ color: Math.random() * 16777215 })) {
|
|
4167
4173
|
super(t, e), this.isLine2 = !0, this.type = "Line2";
|
|
4168
4174
|
}
|
|
4169
4175
|
}
|
|
4170
|
-
const
|
|
4171
|
-
class
|
|
4176
|
+
const Pa = new Q(), uA = new be(), Ua = new Q();
|
|
4177
|
+
class hA extends zn {
|
|
4172
4178
|
constructor(t = document.createElement("div")) {
|
|
4173
4179
|
super(), this.isCSS3DObject = !0, this.element = t, this.element.style.position = "absolute", this.element.style.pointerEvents = "auto", this.element.style.userSelect = "none", this.element.setAttribute("draggable", !1), this.addEventListener("removed", function() {
|
|
4174
4180
|
this.traverse(function(e) {
|
|
@@ -4180,7 +4186,7 @@ class AA extends Nn {
|
|
|
4180
4186
|
return super.copy(t, e), this.element = t.element.cloneNode(!0), this;
|
|
4181
4187
|
}
|
|
4182
4188
|
}
|
|
4183
|
-
class mt extends
|
|
4189
|
+
class mt extends hA {
|
|
4184
4190
|
constructor(t) {
|
|
4185
4191
|
super(t), this.isCSS3DSprite = !0, this.rotation2D = 0;
|
|
4186
4192
|
}
|
|
@@ -4188,8 +4194,8 @@ class mt extends AA {
|
|
|
4188
4194
|
return super.copy(t, e), this.rotation2D = t.rotation2D, this;
|
|
4189
4195
|
}
|
|
4190
4196
|
}
|
|
4191
|
-
const Pt = new $t(),
|
|
4192
|
-
class
|
|
4197
|
+
const Pt = new $t(), dA = new $t();
|
|
4198
|
+
class gA {
|
|
4193
4199
|
constructor(t = {}) {
|
|
4194
4200
|
const e = this;
|
|
4195
4201
|
let i, a, o, s;
|
|
@@ -4209,9 +4215,9 @@ class hA {
|
|
|
4209
4215
|
}, this.render = function(f, p) {
|
|
4210
4216
|
const y = p.projectionMatrix.elements[5] * s;
|
|
4211
4217
|
p.view && p.view.enabled ? (A.style.transform = `translate( ${-p.view.offsetX * (i / p.view.width)}px, ${-p.view.offsetY * (a / p.view.height)}px )`, A.style.transform += `scale( ${p.view.fullWidth / p.view.width}, ${p.view.fullHeight / p.view.height} )`) : A.style.transform = "", f.matrixWorldAutoUpdate === !0 && f.updateMatrixWorld(), p.parent === null && p.matrixWorldAutoUpdate === !0 && p.updateMatrixWorld();
|
|
4212
|
-
let
|
|
4213
|
-
p.isOrthographicCamera && (
|
|
4214
|
-
const D = p.view && p.view.enabled ? p.view.height / p.view.fullHeight : 1, v = p.isOrthographicCamera ? `scale( ${D} )scale(` + y + ")translate(" + u(
|
|
4218
|
+
let w, b;
|
|
4219
|
+
p.isOrthographicCamera && (w = -(p.right + p.left) / 2, b = (p.top + p.bottom) / 2);
|
|
4220
|
+
const D = p.view && p.view.enabled ? p.view.height / p.view.fullHeight : 1, v = p.isOrthographicCamera ? `scale( ${D} )scale(` + y + ")translate(" + u(w) + "px," + u(b) + "px)" + g(p.matrixWorldInverse) : `scale( ${D} )translateZ(` + y + "px)" + g(p.matrixWorldInverse), m = (p.isPerspectiveCamera ? "perspective(" + y + "px) " : "") + v + "translate(" + o + "px," + s + "px)";
|
|
4215
4221
|
r.camera.style !== m && (l.style.transform = m, r.camera.style = m), C(f, f, p);
|
|
4216
4222
|
}, this.setSize = function(f, p) {
|
|
4217
4223
|
i = f, a = p, o = i / 2, s = a / 2, c.style.width = f + "px", c.style.height = p + "px", A.style.width = f + "px", A.style.height = p + "px", l.style.width = f + "px", l.style.height = p + "px";
|
|
@@ -4232,7 +4238,7 @@ class hA {
|
|
|
4232
4238
|
for (let p = 0, y = f.children.length; p < y; p++)
|
|
4233
4239
|
d(f.children[p]);
|
|
4234
4240
|
}
|
|
4235
|
-
function C(f, p, y,
|
|
4241
|
+
function C(f, p, y, w) {
|
|
4236
4242
|
if (f.visible === !1) {
|
|
4237
4243
|
d(f);
|
|
4238
4244
|
return;
|
|
@@ -4242,7 +4248,7 @@ class hA {
|
|
|
4242
4248
|
if (D.style.display = b === !0 ? "" : "none", b === !0) {
|
|
4243
4249
|
f.onBeforeRender(e, p, y);
|
|
4244
4250
|
let v;
|
|
4245
|
-
f.isCSS3DSprite ? (Pt.copy(y.matrixWorldInverse), Pt.transpose(), f.rotation2D !== 0 && Pt.multiply(
|
|
4251
|
+
f.isCSS3DSprite ? (Pt.copy(y.matrixWorldInverse), Pt.transpose(), f.rotation2D !== 0 && Pt.multiply(dA.makeRotationZ(f.rotation2D)), f.matrixWorld.decompose(Pa, uA, Ua), Pt.setPosition(Pa), Pt.scale(Ua), Pt.elements[3] = 0, Pt.elements[7] = 0, Pt.elements[11] = 0, Pt.elements[15] = 1, v = h(Pt)) : v = h(f.matrixWorld);
|
|
4246
4252
|
const x = r.objects.get(f);
|
|
4247
4253
|
if (x === void 0 || x.style !== v) {
|
|
4248
4254
|
D.style.transform = v;
|
|
@@ -4257,7 +4263,7 @@ class hA {
|
|
|
4257
4263
|
}
|
|
4258
4264
|
}
|
|
4259
4265
|
}
|
|
4260
|
-
class
|
|
4266
|
+
class Yi extends ue {
|
|
4261
4267
|
constructor(t) {
|
|
4262
4268
|
super(), this.isMark = !0, this.disposed = !1, this.events = t;
|
|
4263
4269
|
}
|
|
@@ -4396,9 +4402,9 @@ class Oi extends ue {
|
|
|
4396
4402
|
}, C.oncontextmenu = (D) => D.preventDefault();
|
|
4397
4403
|
const f = new mt(C);
|
|
4398
4404
|
f.position.copy(a), f.element.style.pointerEvents = "none", f.scale.set(0.01, 0.01, 0.01), f.visible = i.mainTagVisible;
|
|
4399
|
-
const y = (a.distanceTo(o) * e.events.fire(_).meterScale).toFixed(2) + " m",
|
|
4400
|
-
|
|
4401
|
-
const b = new mt(
|
|
4405
|
+
const y = (a.distanceTo(o) * e.events.fire(_).meterScale).toFixed(2) + " m", w = document.createElement("div");
|
|
4406
|
+
w.innerHTML = `<span class="${d}-distance-tag ${d}-distance-tag0" style="color:${i.distanceTagColor};background:${i.distanceTagBackground};opacity:${i.distanceTagOpacity};padding: 1px 5px;border-radius: 4px;margin-bottom: 5px;user-select: none;font-size: 12px;pointer-events: none;">${y}</span>`, w.classList.add("mark-wrap-line", `${d}`, "distance-warp"), w.style.position = "absolute", w.style.borderRadius = "4px", w.style.pointerEvents = "none";
|
|
4407
|
+
const b = new mt(w);
|
|
4402
4408
|
b.position.copy(s), b.element.style.pointerEvents = "none", b.scale.set(8e-3, 8e-3, 8e-3), b.visible = i.distanceTagVisible, e.add(u, g, f, b), e.data = i, e.circleStart = u, e.circleEnd = g, e.css3dTag = b, e.css3dMainTag = f, e.events.fire(ne, e);
|
|
4403
4409
|
}
|
|
4404
4410
|
getMarkData(t = !1) {
|
|
@@ -4411,7 +4417,7 @@ class Oi extends ue {
|
|
|
4411
4417
|
t.disposed = !0, t.events.fire(jt, t), t.events.fire(Y).remove(t), t.events.fire(Te, t), document.querySelectorAll(`.${t.data.name}`).forEach((i) => i.parentElement?.removeChild(i)), t.events = null, t.data = null, t.circleStart = null, t.circleEnd = null, t.css3dTag = null, t.css3dMainTag = null;
|
|
4412
4418
|
}
|
|
4413
4419
|
}
|
|
4414
|
-
class
|
|
4420
|
+
class Gi extends ue {
|
|
4415
4421
|
constructor(t) {
|
|
4416
4422
|
super(), this.isMark = !0, this.disposed = !1, this.css3dTags = [], this.group = new tn(), this.add(this.group), this.events = t;
|
|
4417
4423
|
}
|
|
@@ -4545,7 +4551,7 @@ class Yi extends ue {
|
|
|
4545
4551
|
t.disposed = !0, t.events.fire(jt, t), t.events.fire(Y).remove(t), t.events.fire(Te, t), t.geometry.dispose(), t.material.dispose(), document.querySelectorAll(`.${t.data.name}`).forEach((i) => i.parentElement?.removeChild(i)), t.events = null, t.data = null, t.css3dTags = null, t.group = null;
|
|
4546
4552
|
}
|
|
4547
4553
|
}
|
|
4548
|
-
class
|
|
4554
|
+
class er extends tn {
|
|
4549
4555
|
constructor(t, e, i) {
|
|
4550
4556
|
super(), this.isMark = !0, this.disposed = !1, this.events = t;
|
|
4551
4557
|
const a = this;
|
|
@@ -4639,7 +4645,7 @@ class Zo extends tn {
|
|
|
4639
4645
|
e?.parentElement?.removeChild?.(e), t.events = null, t.data = null, t.css3dTag = null;
|
|
4640
4646
|
}
|
|
4641
4647
|
}
|
|
4642
|
-
class
|
|
4648
|
+
class qi extends ue {
|
|
4643
4649
|
constructor(t) {
|
|
4644
4650
|
super(), this.isMark = !0, this.disposed = !1, this.css3dTags = [], this.group = new tn(), this.add(this.group), this.events = t;
|
|
4645
4651
|
}
|
|
@@ -4684,9 +4690,9 @@ class Gi extends ue {
|
|
|
4684
4690
|
o.data.points[s - 3] = i.x, o.data.points[s - 2] = i.y, o.data.points[s - 1] = i.z;
|
|
4685
4691
|
const r = o.css3dTags.length - 1, c = new Q().fromArray(o.data.points.slice(s - 6, s - 3)), A = new Q().fromArray(o.data.points.slice(s - 3)), l = new Q((c.x + A.x) / 2, (c.y + A.y) / 2, (c.z + A.z) / 2), u = c.distanceTo(A), g = (u * o.events.fire(_).meterScale).toFixed(2) + " m";
|
|
4686
4692
|
o.css3dTags[r].element.innerText = g, o.geometry.setPositions([...o.data.points]), o.css3dTags[r].position.set(l.x, l.y, l.z), o.css3dTags[r].visible = a ? !0 : u > 0.5, o.meshPlans.geometry.setAttribute("position", new Ce(new Float32Array(o.data.points), 3)), o.meshPlans.geometry.attributes.position.needsUpdate = !0;
|
|
4687
|
-
const h = o.events.fire(
|
|
4693
|
+
const h = o.events.fire(wi, o.data.points);
|
|
4688
4694
|
o.css3dAreaTag.position.copy(h);
|
|
4689
|
-
const d = o.events.fire(
|
|
4695
|
+
const d = o.events.fire(Ei, o.data.points);
|
|
4690
4696
|
o.css3dAreaTag.element.childNodes[0].innerText = d.toFixed(2) + " m²";
|
|
4691
4697
|
}
|
|
4692
4698
|
if (t?.lineColor && (e && (o.data.lineColor = t.lineColor), o.material.color.set(t.lineColor), o.meshPlans.material.color.set(t.lineColor)), t?.lineWidth && (e && (o.data.lineWidth = t.lineWidth), o.material.linewidth = t.lineWidth), t?.mainTagColor && (e && (o.data.mainTagColor = t.mainTagColor), document.querySelector(`.${o.data.name}-main-tag`).style.color = t.mainTagColor), t?.mainTagBackground && (e && (o.data.mainTagBackground = t.mainTagBackground), document.querySelector(`.${o.data.name}-main-tag`).style.background = t.mainTagBackground), t?.mainTagOpacity && (e && (o.data.mainTagOpacity = t.mainTagOpacity), document.querySelector(`.${o.data.name}-main-tag`).style.opacity = t.mainTagOpacity.toString()), t?.mainTagVisible !== void 0 && (e && (o.data.mainTagVisible = t.mainTagVisible), o.css3dMainTag.visible = t.mainTagVisible), t?.areaTagVisible !== void 0 && (e && (o.data.areaTagVisible = t.areaTagVisible), o.css3dAreaTag.visible = t.areaTagVisible), t?.areaTagColor) {
|
|
@@ -4716,7 +4722,7 @@ class Gi extends ue {
|
|
|
4716
4722
|
let a, o;
|
|
4717
4723
|
for (let r = 1; r < i.length; r++)
|
|
4718
4724
|
a = i[r - 1], o = i[r], e.css3dTags[r - 1].element.innerText = (a.distanceTo(o) * t).toFixed(2) + " m";
|
|
4719
|
-
const s = e.events.fire(
|
|
4725
|
+
const s = e.events.fire($a, i, t);
|
|
4720
4726
|
e.css3dAreaTag.element.childNodes[0].innerText = s.toFixed(2) + " m²";
|
|
4721
4727
|
}
|
|
4722
4728
|
/**
|
|
@@ -4779,7 +4785,7 @@ class Gi extends ue {
|
|
|
4779
4785
|
const d = new mt(h);
|
|
4780
4786
|
d.position.set(a.points[0], a.points[1], a.points[2]), d.element.style.pointerEvents = "none", d.scale.set(0.01, 0.01, 0.01), d.visible = a.mainTagVisible, i.group.add(d), i.css3dMainTag = d;
|
|
4781
4787
|
}
|
|
4782
|
-
const u = i.events.fire(
|
|
4788
|
+
const u = i.events.fire(Ei, a.points).toFixed(2) + " m²", g = i.events.fire(wi, a.points);
|
|
4783
4789
|
if (i.css3dAreaTag)
|
|
4784
4790
|
i.css3dAreaTag.position.copy(g), i.css3dAreaTag.element.childNodes[0].innerText = u;
|
|
4785
4791
|
else {
|
|
@@ -4790,9 +4796,9 @@ class Gi extends ue {
|
|
|
4790
4796
|
}
|
|
4791
4797
|
i.css3dAreaTag.visible = a.points.length > 6 && a.areaTagVisible;
|
|
4792
4798
|
for (let h = i.css3dTags.length; h < l; h++) {
|
|
4793
|
-
const d = new Q().fromArray(a.points.slice(h * 3, h * 3 + 3)), C = new Q().fromArray(a.points.slice(h * 3 + 3, h * 3 + 6)), f = new Q((d.x + C.x) / 2, (d.y + C.y) / 2, (d.z + C.z) / 2), y = (d.distanceTo(C) * i.events.fire(_).meterScale).toFixed(2) + " m",
|
|
4794
|
-
|
|
4795
|
-
const b = new mt(
|
|
4799
|
+
const d = new Q().fromArray(a.points.slice(h * 3, h * 3 + 3)), C = new Q().fromArray(a.points.slice(h * 3 + 3, h * 3 + 6)), f = new Q((d.x + C.x) / 2, (d.y + C.y) / 2, (d.z + C.z) / 2), y = (d.distanceTo(C) * i.events.fire(_).meterScale).toFixed(2) + " m", w = document.createElement("div");
|
|
4800
|
+
w.innerText = y, w.style.color = "white", w.classList.add("mark-wrap-plans", `${A}`, "distance-warp"), w.style.position = "absolute", w.style.borderRadius = "4px", w.style.display = "none";
|
|
4801
|
+
const b = new mt(w);
|
|
4796
4802
|
b.position.copy(f), b.element.style.pointerEvents = "none", b.scale.set(8e-3, 8e-3, 8e-3), b.visible = a.distanceTagVisible, i.css3dTags.push(b), i.group.add(b);
|
|
4797
4803
|
}
|
|
4798
4804
|
i.drawPlans(a), e || (i.css3dTags[i.css3dTags.length - 1].visible = !1), i.data = a, i.events.fire(ne, i);
|
|
@@ -4833,7 +4839,7 @@ class Gi extends ue {
|
|
|
4833
4839
|
t.disposed = !0, t.events.fire(jt, t), t.events.fire(Y).remove(t), t.events.fire(Te, t), t.geometry.dispose(), t.material.dispose(), document.querySelectorAll(`.${t.data.name}`).forEach((i) => i.parentElement?.removeChild(i)), t.events = null, t.data = null, t.css3dTags = null, t.group = null, t.meshPlans = null, t.css3dMainTag = null, t.css3dAreaTag = null;
|
|
4834
4840
|
}
|
|
4835
4841
|
}
|
|
4836
|
-
class
|
|
4842
|
+
class nr extends tn {
|
|
4837
4843
|
constructor(t) {
|
|
4838
4844
|
super(), this.isMark = !0, this.disposed = !1, this.events = t;
|
|
4839
4845
|
}
|
|
@@ -4970,38 +4976,38 @@ class tr extends tn {
|
|
|
4970
4976
|
t.disposed = !0, t.events.fire(jt, t), t.events.fire(Y).remove(t), t.events.fire(Te, t), document.querySelectorAll(`.${t.data.name}`).forEach((i) => i.parentElement?.removeChild(i)), t.events = null, t.data = null, t.circleMesh = null, t.css3dTag = null, t.css3dMainTag = null;
|
|
4971
4977
|
}
|
|
4972
4978
|
}
|
|
4973
|
-
let
|
|
4979
|
+
let fA = class {
|
|
4974
4980
|
constructor() {
|
|
4975
4981
|
this.down = 0, this.move = !1, this.downTime = 0, this.isDbClick = !1, this.x = 0, this.y = 0, this.lastClickX = 0, this.lastClickY = 0, this.lastClickPointTime = 0, this.lastMovePoint = null, this.lastMovePointTime = 0;
|
|
4976
4982
|
}
|
|
4977
4983
|
};
|
|
4978
|
-
function
|
|
4979
|
-
const t = (m,
|
|
4980
|
-
let a = /* @__PURE__ */ new Set(), o, s = new
|
|
4981
|
-
t(
|
|
4984
|
+
function pA(n) {
|
|
4985
|
+
const t = (m, E, M) => n.on(m, E, M), e = (m, ...E) => n.fire(m, ...E), i = e(ke);
|
|
4986
|
+
let a = /* @__PURE__ */ new Set(), o, s = new fA(), r;
|
|
4987
|
+
t(Ms, () => {
|
|
4982
4988
|
e(Z).autoRotate = e(_).autoRotate = !0;
|
|
4983
4989
|
}), t(ht, (m = !0) => {
|
|
4984
4990
|
e(Z).autoRotate = e(_).autoRotate = !1, m && e(_n);
|
|
4985
|
-
}), t(
|
|
4991
|
+
}), t(jn, (m = !0) => {
|
|
4986
4992
|
if (o) return;
|
|
4987
|
-
const
|
|
4988
|
-
|
|
4989
|
-
}), t(_s, () => {
|
|
4990
|
-
o || n.fire(Jn, !0);
|
|
4993
|
+
const E = e(Z), M = m ? Math.PI / 128 : -(Math.PI / 128), S = new $t().makeRotationAxis(new Q(0, 0, -1).transformDirection(E.object.matrixWorld), M);
|
|
4994
|
+
E.object.up.transformDirection(S), e(ct);
|
|
4991
4995
|
}), t(Fs, () => {
|
|
4992
|
-
o || n.fire(
|
|
4996
|
+
o || n.fire(jn, !0);
|
|
4997
|
+
}), t(Ps, () => {
|
|
4998
|
+
o || n.fire(jn, !1);
|
|
4993
4999
|
}), t(Ln, (m) => {
|
|
4994
|
-
const
|
|
4995
|
-
m ?? (m = !
|
|
5000
|
+
const E = e(_);
|
|
5001
|
+
m ?? (m = !E.pointcloudMode), E.pointcloudMode = m, e(Y).traverse((S) => S instanceof Nt && S.fire(ce, m));
|
|
4996
5002
|
}), t(Rn, () => {
|
|
4997
|
-
e(Y).traverse((
|
|
5003
|
+
e(Y).traverse((E) => E instanceof Nt && E.fire(bi));
|
|
4998
5004
|
}), t(qe, (m) => {
|
|
4999
5005
|
e(Y).traverse((M) => M instanceof Nt && M.fire(qe, m));
|
|
5000
|
-
}), t(
|
|
5006
|
+
}), t(Hs, () => {
|
|
5001
5007
|
const m = e(Y);
|
|
5002
|
-
let
|
|
5003
|
-
m.traverse((M) => M instanceof Nt && (
|
|
5004
|
-
}), t(
|
|
5008
|
+
let E;
|
|
5009
|
+
m.traverse((M) => M instanceof Nt && (E = M)), E && e(vi, E.fire(Bo));
|
|
5010
|
+
}), t(On, () => {
|
|
5005
5011
|
if (!a.size) return;
|
|
5006
5012
|
const m = e(_);
|
|
5007
5013
|
if (!m.enableKeyboard) return a.clear();
|
|
@@ -5009,31 +5015,31 @@ function gA(n) {
|
|
|
5009
5015
|
e(Pe), a.clear();
|
|
5010
5016
|
return;
|
|
5011
5017
|
}
|
|
5012
|
-
a.has("Space") ? (m.bigSceneMode ? e(Ln) : e(Rn), a.clear()) : a.has("KeyR") ? (m.autoRotate ? e(ht) : e(
|
|
5013
|
-
}), t(Oe, async (m,
|
|
5018
|
+
a.has("Space") ? (m.bigSceneMode ? e(Ln) : e(Rn), a.clear()) : a.has("KeyR") ? (m.autoRotate ? e(ht) : e(Ms), a.clear()) : a.has("KeyM") ? (e($e, !m.markVisible), a.clear()) : a.has("ArrowLeft") ? (e(Fs), e(In, !0), a.clear()) : a.has("ArrowRight") ? (e(Ps), e(In, !0), a.clear()) : a.has("KeyP") ? (e(Je, !0), a.clear()) : a.has("Equal") ? (e(os), a.clear()) : a.has("Minus") ? (e(cs), a.clear()) : a.has("KeyY") ? (e(rs, !1), e(Di), a.clear()) : a.has("KeyI") ? (e(vo), a.clear()) : a.has("KeyF") ? (e(Hs), a.clear()) : a.has("F2") ? (!m.bigSceneMode && window.open("/editor/index.html?url=" + encodeURIComponent(e(xt).meta.url)), a.clear()) : a.has("KeyW") ? (yA(e(Z), 0.15), a.clear()) : a.has("KeyS") ? (IA(e(Z), 0.15), a.clear()) : a.has("KeyA") ? (mA(e(Z), 0.15), a.clear()) : a.has("KeyD") ? (CA(e(Z), 0.15), a.clear()) : a.has("KeyQ") ? (wA(e(Z)), a.clear()) : a.has("KeyE") ? (EA(e(Z)), a.clear()) : a.has("KeyC") ? (vA(e(Z)), a.clear()) : a.has("KeyZ") && (xA(e(Z)), a.clear());
|
|
5019
|
+
}), t(Oe, async (m, E) => {
|
|
5014
5020
|
if (s.move) return;
|
|
5015
|
-
const M = await e(kn, m,
|
|
5016
|
-
M.length && e(
|
|
5017
|
-
}), t(Mt, async (m,
|
|
5021
|
+
const M = await e(kn, m, E);
|
|
5022
|
+
M.length && e(vi, M[0], !0, !1);
|
|
5023
|
+
}), t(Mt, async (m, E) => {
|
|
5018
5024
|
const M = e(Y), S = [];
|
|
5019
5025
|
M.traverse((T) => T instanceof Nt && S.push(T));
|
|
5020
|
-
const L = await e(kn, m,
|
|
5026
|
+
const L = await e(kn, m, E);
|
|
5021
5027
|
return L.length ? (S.length && S[0].fire(yn, L[0].x, L[0].y, L[0].z, !0), new Q(L[0].x, L[0].y, L[0].z)) : (S.length && S[0].fire(yn, 0, 0, 0, !1), null);
|
|
5022
|
-
}), t(
|
|
5023
|
-
const m = e(Y),
|
|
5024
|
-
m.traverse((M) => M instanceof Nt &&
|
|
5025
|
-
for (let M = 0; M <
|
|
5026
|
-
|
|
5028
|
+
}), t(es, async () => {
|
|
5029
|
+
const m = e(Y), E = [];
|
|
5030
|
+
m.traverse((M) => M instanceof Nt && E.push(M));
|
|
5031
|
+
for (let M = 0; M < E.length; M++)
|
|
5032
|
+
E[M].fire(yn, 0, 0, 0, !1);
|
|
5027
5033
|
});
|
|
5028
5034
|
const c = (m) => {
|
|
5029
5035
|
m.target.type !== "text" && (o || m.code === "F5" || (m.preventDefault(), m.code !== "KeyR" && (a.add(m.code), e(ht)), r = Date.now()));
|
|
5030
5036
|
}, A = (m) => {
|
|
5031
|
-
m.target.type !== "text" && (o || (m.code === "KeyR" && a.add(m.code), (m.code === "ArrowLeft" || m.code === "ArrowRight") && e(
|
|
5037
|
+
m.target.type !== "text" && (o || (m.code === "KeyR" && a.add(m.code), (m.code === "ArrowLeft" || m.code === "ArrowRight") && e(Xa), r = Date.now()));
|
|
5032
5038
|
};
|
|
5033
5039
|
t(
|
|
5034
5040
|
de,
|
|
5035
5041
|
() => {
|
|
5036
|
-
e(
|
|
5042
|
+
e(ns) && Date.now() - r > 2e3 && (e(In, !1), e(Di));
|
|
5037
5043
|
},
|
|
5038
5044
|
!0
|
|
5039
5045
|
);
|
|
@@ -5053,31 +5059,31 @@ function gA(n) {
|
|
|
5053
5059
|
}, y = async (m) => {
|
|
5054
5060
|
if (m.preventDefault(), o) return;
|
|
5055
5061
|
s.down && (s.move = !0, r = Date.now());
|
|
5056
|
-
const
|
|
5057
|
-
if (
|
|
5062
|
+
const E = e(_);
|
|
5063
|
+
if (E.markMode) {
|
|
5058
5064
|
const M = await e(Mt, m.clientX, m.clientY);
|
|
5059
|
-
M && !s.down &&
|
|
5065
|
+
M && !s.down && E.markType === "distance" && h ? h.drawUpdate({ endPoint: M.toArray() }) : !s.down && E.markType === "circle" && f ? M ? (f.drawUpdate(null, !0, M), s.lastMovePoint = M, s.lastMovePointTime = Date.now()) : (s.lastMovePoint = null, s.lastMovePointTime = 0) : !s.down && E.markType === "lines" && d ? M ? (d.drawUpdate(null, !0, M), s.lastMovePoint = M, s.lastMovePointTime = Date.now()) : (s.lastMovePoint = null, s.lastMovePointTime = 0) : !s.down && E.markType === "plans" && C && (M ? (C.drawUpdate(null, !0, M), s.lastMovePoint = M, s.lastMovePointTime = Date.now()) : (s.lastMovePoint = null, s.lastMovePointTime = 0));
|
|
5060
5066
|
}
|
|
5061
|
-
},
|
|
5067
|
+
}, w = async (m) => {
|
|
5062
5068
|
if (m.preventDefault(), o) return;
|
|
5063
|
-
const
|
|
5064
|
-
if (s.isDbClick && (d ? Math.abs(m.clientX - s.lastClickX) < 2 && Math.abs(m.clientY - s.lastClickY) < 2 && (d.drawFinish(s.lastClickPointTime > 0), d = null, s.lastMovePoint = null) : C && Math.abs(m.clientX - s.lastClickX) < 2 && Math.abs(m.clientY - s.lastClickY) < 2 && (C.drawFinish(s.lastClickPointTime > 0), C = null, s.lastMovePoint = null)),
|
|
5065
|
-
if (
|
|
5069
|
+
const E = e(_);
|
|
5070
|
+
if (s.isDbClick && (d ? Math.abs(m.clientX - s.lastClickX) < 2 && Math.abs(m.clientY - s.lastClickY) < 2 && (d.drawFinish(s.lastClickPointTime > 0), d = null, s.lastMovePoint = null) : C && Math.abs(m.clientX - s.lastClickX) < 2 && Math.abs(m.clientY - s.lastClickY) < 2 && (C.drawFinish(s.lastClickPointTime > 0), C = null, s.lastMovePoint = null)), E.markMode && s.down === 1 && !s.move && Date.now() - s.downTime < 500) {
|
|
5071
|
+
if (E.markType === "point") {
|
|
5066
5072
|
if (await e(Mt, m.clientX, m.clientY)) {
|
|
5067
|
-
const S = new
|
|
5073
|
+
const S = new er(n, await e(Mt, m.clientX, m.clientY));
|
|
5068
5074
|
e(Y).add(S), S.drawFinish();
|
|
5069
5075
|
}
|
|
5070
|
-
} else if (
|
|
5076
|
+
} else if (E.markType === "distance")
|
|
5071
5077
|
if (h) {
|
|
5072
5078
|
const M = await e(Mt, m.clientX, m.clientY);
|
|
5073
5079
|
M ? (h.drawFinish(M), h = null) : s.isDbClick && e(Pe);
|
|
5074
5080
|
} else {
|
|
5075
5081
|
const M = await e(Mt, m.clientX, m.clientY);
|
|
5076
|
-
M && (h = new
|
|
5082
|
+
M && (h = new Yi(n), h.drawStart(M), e(Y).add(h));
|
|
5077
5083
|
}
|
|
5078
|
-
else if (
|
|
5084
|
+
else if (E.markType === "lines")
|
|
5079
5085
|
if (d)
|
|
5080
|
-
if (s.lastMovePoint && e(
|
|
5086
|
+
if (s.lastMovePoint && e(Bi, m.clientX, m.clientY, s.lastMovePoint) < 0.03)
|
|
5081
5087
|
d.drawUpdate(null, !0, s.lastMovePoint, !0), s.lastClickPointTime = Date.now();
|
|
5082
5088
|
else {
|
|
5083
5089
|
const M = await e(Mt, m.clientX, m.clientY);
|
|
@@ -5085,11 +5091,11 @@ function gA(n) {
|
|
|
5085
5091
|
}
|
|
5086
5092
|
else {
|
|
5087
5093
|
const M = await e(Mt, m.clientX, m.clientY);
|
|
5088
|
-
M && (d = new
|
|
5094
|
+
M && (d = new Gi(n), d.drawStart(M), e(Y).add(d));
|
|
5089
5095
|
}
|
|
5090
|
-
else if (
|
|
5096
|
+
else if (E.markType === "plans")
|
|
5091
5097
|
if (C)
|
|
5092
|
-
if (s.lastMovePoint && e(
|
|
5098
|
+
if (s.lastMovePoint && e(Bi, m.clientX, m.clientY, s.lastMovePoint) < 0.03)
|
|
5093
5099
|
C.drawUpdate(null, !0, s.lastMovePoint, !0), s.lastClickPointTime = Date.now();
|
|
5094
5100
|
else {
|
|
5095
5101
|
const M = await e(Mt, m.clientX, m.clientY);
|
|
@@ -5097,15 +5103,15 @@ function gA(n) {
|
|
|
5097
5103
|
}
|
|
5098
5104
|
else {
|
|
5099
5105
|
const M = await e(Mt, m.clientX, m.clientY);
|
|
5100
|
-
M && (C = new
|
|
5106
|
+
M && (C = new qi(n), C.drawStart(M), e(Y).add(C));
|
|
5101
5107
|
}
|
|
5102
|
-
else if (
|
|
5108
|
+
else if (E.markType === "circle")
|
|
5103
5109
|
if (f) {
|
|
5104
5110
|
const M = await e(Mt, m.clientX, m.clientY);
|
|
5105
5111
|
M ? (f.drawFinish(M), f = null) : s.isDbClick && e(Pe);
|
|
5106
5112
|
} else {
|
|
5107
5113
|
const M = await e(Mt, m.clientX, m.clientY);
|
|
5108
|
-
M && (f = new
|
|
5114
|
+
M && (f = new nr(n), f.drawStart(M), e(Y).add(f));
|
|
5109
5115
|
}
|
|
5110
5116
|
s.lastClickX = m.clientX, s.lastClickY = m.clientY;
|
|
5111
5117
|
}
|
|
@@ -5120,56 +5126,56 @@ function gA(n) {
|
|
|
5120
5126
|
function v(m) {
|
|
5121
5127
|
s.down === 1 && !s.move && e(Oe, s.x, s.y);
|
|
5122
5128
|
}
|
|
5123
|
-
window.addEventListener("keydown", c), window.addEventListener("keyup", A), window.addEventListener("blur", l), window.addEventListener("wheel", u, { passive: !1 }), i.addEventListener("contextmenu", g), i.addEventListener("mousedown", p), i.addEventListener("mousemove", y), i.addEventListener("mouseup",
|
|
5129
|
+
window.addEventListener("keydown", c), window.addEventListener("keyup", A), window.addEventListener("blur", l), window.addEventListener("wheel", u, { passive: !1 }), i.addEventListener("contextmenu", g), i.addEventListener("mousedown", p), i.addEventListener("mousemove", y), i.addEventListener("mouseup", w), i.addEventListener("touchstart", b, { passive: !1 }), i.addEventListener("touchmove", D, { passive: !1 }), i.addEventListener("touchend", v, { passive: !1 }), window.addEventListener("resize", x), x();
|
|
5124
5130
|
function x() {
|
|
5125
|
-
const { width: m, height:
|
|
5126
|
-
L.aspect = m /
|
|
5127
|
-
const T = e(
|
|
5128
|
-
T.setSize(m,
|
|
5131
|
+
const { width: m, height: E, top: M, left: S } = e(he), L = e(dt);
|
|
5132
|
+
L.aspect = m / E, L.updateProjectionMatrix();
|
|
5133
|
+
const T = e(is);
|
|
5134
|
+
T.setSize(m, E), T.domElement.style.position = "absolute", T.domElement.style.left = `${S}px`, T.domElement.style.top = `${M}px`;
|
|
5129
5135
|
const R = e(Ve);
|
|
5130
|
-
R.setPixelRatio(Math.min(devicePixelRatio, 2)), R.setSize(m,
|
|
5136
|
+
R.setPixelRatio(Math.min(devicePixelRatio, 2)), R.setSize(m, E);
|
|
5131
5137
|
}
|
|
5132
|
-
t(
|
|
5133
|
-
o = !0, window.removeEventListener("keydown", c), window.removeEventListener("keyup", A), window.removeEventListener("blur", l), window.removeEventListener("wheel", u), i.removeEventListener("contextmenu", g), i.removeEventListener("mousedown", p), i.removeEventListener("mousemove", y), i.removeEventListener("mouseup",
|
|
5138
|
+
t(ji, () => {
|
|
5139
|
+
o = !0, window.removeEventListener("keydown", c), window.removeEventListener("keyup", A), window.removeEventListener("blur", l), window.removeEventListener("wheel", u), i.removeEventListener("contextmenu", g), i.removeEventListener("mousedown", p), i.removeEventListener("mousemove", y), i.removeEventListener("mouseup", w), i.removeEventListener("touchstart", b), i.removeEventListener("touchmove", D), i.removeEventListener("touchend", v), window.removeEventListener("resize", x);
|
|
5134
5140
|
});
|
|
5135
5141
|
}
|
|
5136
|
-
function
|
|
5142
|
+
function qn(n, t, e = 0.012) {
|
|
5137
5143
|
const i = n.object.up.clone().normalize(), o = new Q().copy(t).projectOnPlane(i).normalize().multiplyScalar(e);
|
|
5138
5144
|
n.object.position.add(o), n.target.add(o), n.update();
|
|
5139
5145
|
}
|
|
5140
|
-
function
|
|
5146
|
+
function mA(n, t = 0.2) {
|
|
5141
5147
|
const e = new Q();
|
|
5142
5148
|
n.object.getWorldDirection(e);
|
|
5143
5149
|
const i = new Q().crossVectors(n.object.up, e).normalize();
|
|
5144
|
-
|
|
5150
|
+
qn(n, i, t);
|
|
5145
5151
|
}
|
|
5146
|
-
function
|
|
5152
|
+
function CA(n, t = 0.2) {
|
|
5147
5153
|
const e = new Q();
|
|
5148
5154
|
n.object.getWorldDirection(e);
|
|
5149
5155
|
const i = new Q().crossVectors(n.object.up, e).normalize().negate();
|
|
5150
|
-
|
|
5156
|
+
qn(n, i, t);
|
|
5151
5157
|
}
|
|
5152
|
-
function
|
|
5158
|
+
function yA(n, t = 0.2) {
|
|
5153
5159
|
const e = new Q();
|
|
5154
|
-
n.object.getWorldDirection(e),
|
|
5160
|
+
n.object.getWorldDirection(e), qn(n, e, t);
|
|
5155
5161
|
}
|
|
5156
|
-
function
|
|
5162
|
+
function IA(n, t = 0.2) {
|
|
5157
5163
|
const e = new Q();
|
|
5158
|
-
n.object.getWorldDirection(e).negate(),
|
|
5164
|
+
n.object.getWorldDirection(e).negate(), qn(n, e, t);
|
|
5159
5165
|
}
|
|
5160
|
-
function
|
|
5166
|
+
function ir(n, t = 6e-3) {
|
|
5161
5167
|
const e = n.object.position.clone(), i = n.target.clone(), a = new Q().subVectors(i, e), o = n.object.up.clone().normalize(), s = new be();
|
|
5162
5168
|
s.setFromAxisAngle(o, -t), a.applyQuaternion(s);
|
|
5163
5169
|
const r = new Q().addVectors(e, a);
|
|
5164
5170
|
n.target.copy(r), n.update();
|
|
5165
5171
|
}
|
|
5166
|
-
function
|
|
5167
|
-
|
|
5172
|
+
function wA(n) {
|
|
5173
|
+
ir(n, -0.01);
|
|
5168
5174
|
}
|
|
5169
|
-
function
|
|
5170
|
-
|
|
5175
|
+
function EA(n) {
|
|
5176
|
+
ir(n, 0.01);
|
|
5171
5177
|
}
|
|
5172
|
-
function
|
|
5178
|
+
function sr(n, t = 6e-3) {
|
|
5173
5179
|
const e = n.object.position.clone(), i = n.target.clone(), a = new Q().subVectors(i, e), o = new Q();
|
|
5174
5180
|
n.object.getWorldDirection(o);
|
|
5175
5181
|
const s = new Q().crossVectors(n.object.up, o).normalize(), r = new be();
|
|
@@ -5177,14 +5183,14 @@ function nr(n, t = 6e-3) {
|
|
|
5177
5183
|
const c = new Q().addVectors(e, a);
|
|
5178
5184
|
n.target.copy(c), n.update();
|
|
5179
5185
|
}
|
|
5180
|
-
function
|
|
5181
|
-
|
|
5186
|
+
function vA(n, t = 0.01) {
|
|
5187
|
+
sr(n, -t);
|
|
5182
5188
|
}
|
|
5183
|
-
function
|
|
5184
|
-
|
|
5189
|
+
function xA(n, t = 0.01) {
|
|
5190
|
+
sr(n, t);
|
|
5185
5191
|
}
|
|
5186
|
-
function
|
|
5187
|
-
const t = new
|
|
5192
|
+
function ar(n) {
|
|
5193
|
+
const t = new vr(), e = 5, i = (o, s, r) => n.on(o, s, r), a = (o, ...s) => n.fire(o, ...s);
|
|
5188
5194
|
i(kn, async (o, s) => {
|
|
5189
5195
|
const { width: r, height: c, left: A, top: l } = a(he), u = new ft();
|
|
5190
5196
|
u.x = (o - A) / r * 2 - 1, u.y = (l - s) / c * 2 + 1;
|
|
@@ -5194,26 +5200,26 @@ function ir(n) {
|
|
|
5194
5200
|
f.traverse(function(x) {
|
|
5195
5201
|
x instanceof Nt ? y.push(x) : x.isMesh && !x.ignoreIntersect && !x.isMark && p.push(x);
|
|
5196
5202
|
});
|
|
5197
|
-
const
|
|
5198
|
-
for (let x = 0; x <
|
|
5199
|
-
C.push({ point:
|
|
5200
|
-
const b = a(
|
|
5203
|
+
const w = t.intersectObjects(p, !0);
|
|
5204
|
+
for (let x = 0; x < w.length; x++)
|
|
5205
|
+
C.push({ point: w[x].point, d: t.ray.distanceToPoint(w[x].point), p: 1 });
|
|
5206
|
+
const b = a(To), D = d.projectionMatrix.clone().multiply(d.matrixWorldInverse);
|
|
5201
5207
|
for (let x = 0; x < y.length; x++) {
|
|
5202
|
-
const m = y[x].fire(
|
|
5208
|
+
const m = y[x].fire(Mi);
|
|
5203
5209
|
if (m)
|
|
5204
5210
|
if (m.length !== void 0) {
|
|
5205
|
-
const
|
|
5211
|
+
const E = m, M = E.length / 3;
|
|
5206
5212
|
for (let S = 0; S < M; S++) {
|
|
5207
|
-
const L = new Q(
|
|
5213
|
+
const L = new Q(E[3 * S + 0], E[3 * S + 1], E[3 * S + 2]);
|
|
5208
5214
|
b && L.applyMatrix4(b);
|
|
5209
5215
|
const T = new Gt(L.x, L.y, L.z, 1).applyMatrix4(D), R = (T.x / T.w + 1) / 2 * r, B = (1 - T.y / T.w) / 2 * c, k = Math.sqrt((R - g) ** 2 + (B - h) ** 2);
|
|
5210
5216
|
k <= e && C.push({ point: L, d: d.position.distanceTo(L), p: k });
|
|
5211
5217
|
}
|
|
5212
5218
|
} else
|
|
5213
|
-
for (let
|
|
5214
|
-
const M =
|
|
5219
|
+
for (let E of Object.keys(m)) {
|
|
5220
|
+
const M = E.split(","), S = new Q(Number(M[0]), Number(M[1]), Number(M[2]));
|
|
5215
5221
|
if (t.ray.distanceToPoint(S) <= 1.4143) {
|
|
5216
|
-
const L = m[
|
|
5222
|
+
const L = m[E];
|
|
5217
5223
|
for (let T = 0, R = L.length / 3; T < R; T++) {
|
|
5218
5224
|
const B = new Q(L[3 * T + 0], L[3 * T + 1], L[3 * T + 2]);
|
|
5219
5225
|
b && B.applyMatrix4(b);
|
|
@@ -5226,26 +5232,26 @@ function ir(n) {
|
|
|
5226
5232
|
if (!C.length) return [];
|
|
5227
5233
|
C.sort((x, m) => x.d - m.d);
|
|
5228
5234
|
const v = [];
|
|
5229
|
-
for (let x = 0, m = C[0].d,
|
|
5235
|
+
for (let x = 0, m = C[0].d, E = Math.min(C.length, 20); x < E; x++)
|
|
5230
5236
|
C[x].d - m < 0.01 && v.push(C[x]);
|
|
5231
5237
|
return v.sort((x, m) => x.p - m.p), [v[0].point];
|
|
5232
|
-
}), i(
|
|
5238
|
+
}), i(Bi, (o, s, r) => {
|
|
5233
5239
|
const { width: c, height: A, left: l, top: u } = a(he), g = new ft();
|
|
5234
5240
|
g.x = (o - l) / c * 2 - 1, g.y = (u - s) / A * 2 + 1;
|
|
5235
5241
|
const h = a(dt);
|
|
5236
5242
|
return t.setFromCamera(g, h), t.ray.distanceToPoint(r);
|
|
5237
5243
|
});
|
|
5238
5244
|
}
|
|
5239
|
-
function
|
|
5245
|
+
function SA(n) {
|
|
5240
5246
|
const t = (l, u, g) => n.on(l, u, g), e = (l, ...u) => n.fire(l, ...u), i = e(Z);
|
|
5241
5247
|
t(en, () => e(dt).fov), t(Lt, (l = !1) => l ? i.object.position.clone() : i.object.position), t(Ot, (l = !1) => l ? i.target.clone() : i.target), t(Be, (l = !1) => l ? e(dt).up.clone() : e(dt).up);
|
|
5242
5248
|
let a;
|
|
5243
5249
|
const o = [];
|
|
5244
|
-
t(
|
|
5245
|
-
if (e(
|
|
5250
|
+
t(vi, (l, u = !1, g) => {
|
|
5251
|
+
if (e(fo, l), !u) {
|
|
5246
5252
|
i.target.copy(l);
|
|
5247
5253
|
const y = new Q().subVectors(l, i.object.position);
|
|
5248
|
-
y.length() < 1 && i.object.position.copy(l).sub(y.setLength(1)), y.length() > 50 && i.object.position.copy(l).sub(y.setLength(50)), e(Tn), e(
|
|
5254
|
+
y.length() < 1 && i.object.position.copy(l).sub(y.setLength(1)), y.length() > 50 && i.object.position.copy(l).sub(y.setLength(50)), e(Tn), e(Qi);
|
|
5249
5255
|
return;
|
|
5250
5256
|
}
|
|
5251
5257
|
for (; o.length; ) o.pop().stop = !0;
|
|
@@ -5255,34 +5261,34 @@ function vA(n) {
|
|
|
5255
5261
|
e(
|
|
5256
5262
|
Me,
|
|
5257
5263
|
() => {
|
|
5258
|
-
h.alpha = (Date.now() - h.time) / 600, e(Z).target.copy(d.clone().lerp(l, h.alpha)), !g && e(Z).object.position.copy(C.clone().lerp(p, h.alpha)), e(Tn), h.alpha >= 0.9 && (i.enablePan = a.enablePan, i.enableRotate = a.enableRotate), h.alpha >= 1 && (h.stop = !0, e(
|
|
5264
|
+
h.alpha = (Date.now() - h.time) / 600, e(Z).target.copy(d.clone().lerp(l, h.alpha)), !g && e(Z).object.position.copy(C.clone().lerp(p, h.alpha)), e(Tn), h.alpha >= 0.9 && (i.enablePan = a.enablePan, i.enableRotate = a.enableRotate), h.alpha >= 1 && (h.stop = !0, e(Qi));
|
|
5259
5265
|
},
|
|
5260
5266
|
() => !h.stop
|
|
5261
5267
|
);
|
|
5262
|
-
}), t(
|
|
5268
|
+
}), t(ja, () => {
|
|
5263
5269
|
let l = e(Lt).toArray(), u = e(Be).toArray(), g = e(Ot).toArray();
|
|
5264
5270
|
return { position: l, lookUp: u, lookAt: g };
|
|
5265
|
-
}), t(
|
|
5271
|
+
}), t(Ka, () => e(Z).update()), t(Xa, () => e(Z).updateRotateAxis());
|
|
5266
5272
|
const s = 0.01;
|
|
5267
5273
|
let r = new Q(), c = new Q(), A = 0;
|
|
5268
|
-
t(
|
|
5274
|
+
t(Xi, () => {
|
|
5269
5275
|
const l = e(Z).object, u = l.fov, g = l.position.clone(), h = l.getWorldDirection(new Q());
|
|
5270
5276
|
return Math.abs(A - u) < s && Math.abs(g.x - r.x) < s && Math.abs(g.y - r.y) < s && Math.abs(g.z - r.z) < s && Math.abs(h.x - c.x) < s && Math.abs(h.y - c.y) < s && Math.abs(h.z - c.z) < s ? !1 : (A = u, r = g, c = h, !0);
|
|
5271
5277
|
});
|
|
5272
5278
|
}
|
|
5273
|
-
function
|
|
5279
|
+
function bA(n) {
|
|
5274
5280
|
const t = (s, r, c) => n.on(s, r, c), e = (s, ...r) => n.fire(s, ...r);
|
|
5275
5281
|
let i = o();
|
|
5276
5282
|
const a = [];
|
|
5277
|
-
t(
|
|
5283
|
+
t(Kn, () => {
|
|
5278
5284
|
const { height: s } = e(he), r = e(Lt).distanceTo(i.position) * 3.2 / s;
|
|
5279
5285
|
i.scale.set(r, r, r);
|
|
5280
5286
|
}), t(cn, (s) => {
|
|
5281
|
-
e(
|
|
5282
|
-
}), t(
|
|
5287
|
+
e(Kn), i.visible = s > 0.1, i.element.style.opacity = s + "", e(ct);
|
|
5288
|
+
}), t(fo, (s) => {
|
|
5283
5289
|
for (i.position.copy(s); a.length; ) a.pop().stop = !0;
|
|
5284
5290
|
e(cn, 1), e(ct);
|
|
5285
|
-
}), t(
|
|
5291
|
+
}), t(Qi, () => {
|
|
5286
5292
|
for (; a.length; ) a.pop().stop = !0;
|
|
5287
5293
|
let s = { opacity: 1, time: Date.now(), stop: !1 };
|
|
5288
5294
|
a.push(s), e(
|
|
@@ -5297,28 +5303,28 @@ function xA(n) {
|
|
|
5297
5303
|
const s = document.createElement("div");
|
|
5298
5304
|
s.innerHTML = '<svg height="16" width="16" style="fill:white;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M108.8 469.333333C128 279.466667 279.466667 128 469.333333 108.8V64c0-23.466667 19.2-42.666667 42.666667-42.666667s42.666667 19.2 42.666667 42.666667v44.8c189.866667 19.2 341.333333 170.666667 360.533333 360.533333H960c23.466667 0 42.666667 19.2 42.666667 42.666667s-19.2 42.666667-42.666667 42.666667h-44.8c-19.2 189.866667-170.666667 341.333333-360.533333 360.533333V960c0 23.466667-19.2 42.666667-42.666667 42.666667s-42.666667-19.2-42.666667-42.666667v-44.8C279.466667 896 128 744.533333 108.8 554.666667H64c-23.466667 0-42.666667-19.2-42.666667-42.666667s19.2-42.666667 42.666667-42.666667h44.8zM469.333333 194.133333C326.4 213.333333 215.466667 326.4 196.266667 469.333333H234.666667c23.466667 0 42.666667 19.2 42.666666 42.666667s-19.2 42.666667-42.666666 42.666667H196.266667c19.2 142.933333 132.266667 256 275.2 273.066666V789.333333c0-23.466667 19.2-42.666667 42.666666-42.666666s42.666667 19.2 42.666667 42.666666v38.4C697.6 810.666667 810.666667 697.6 829.866667 554.666667H789.333333c-23.466667 0-42.666667-19.2-42.666666-42.666667s19.2-42.666667 42.666666-42.666667h40.533334C810.666667 326.4 697.6 213.333333 554.666667 194.133333V234.666667c0 23.466667-19.2 42.666667-42.666667 42.666666s-42.666667-19.2-42.666667-42.666666V194.133333z"></path></svg>', s.classList.add("css3d-focus-marker"), s.style.position = "absolute";
|
|
5299
5305
|
const r = new mt(s);
|
|
5300
|
-
return r.element.style.pointerEvents = "none", r.element.style.opacity = "1", r.visible = !1, e(Y).add(r), r.onBeforeRender = () => e(
|
|
5306
|
+
return r.element.style.pointerEvents = "none", r.element.style.opacity = "1", r.visible = !1, e(Y).add(r), r.onBeforeRender = () => e(Kn), r;
|
|
5301
5307
|
}
|
|
5302
5308
|
}
|
|
5303
|
-
function
|
|
5309
|
+
function or(n) {
|
|
5304
5310
|
const t = (s, r, c) => n.on(s, r, c), e = (s, ...r) => n.fire(s, ...r), i = /* @__PURE__ */ new Map(), a = document.createElement("div");
|
|
5305
5311
|
a.classList.add("mark-warp"), document.body.appendChild(a);
|
|
5306
|
-
const o = new
|
|
5307
|
-
o.setSize(innerWidth, innerHeight), o.domElement.style.position = "absolute", o.domElement.style.top = "0px", o.domElement.style.pointerEvents = "none", a.appendChild(o.domElement), t(
|
|
5312
|
+
const o = new gA();
|
|
5313
|
+
o.setSize(innerWidth, innerHeight), o.domElement.style.position = "absolute", o.domElement.style.top = "0px", o.domElement.style.pointerEvents = "none", a.appendChild(o.domElement), t(Fr, () => a), t(is, () => o), t(ss, () => document.body.removeChild(a)), t(de, () => o.render(e(Y), e(dt)), !0), t(ne, (s) => {
|
|
5308
5314
|
const r = s?.getMarkData?.()?.name || s?.name;
|
|
5309
5315
|
r && i.set(r, new WeakRef(s));
|
|
5310
5316
|
}), t(Te, (s) => {
|
|
5311
5317
|
const r = s?.getMarkData?.()?.name || s?.name;
|
|
5312
5318
|
i.delete(r);
|
|
5313
|
-
}), t(Ye, (s) => i.get(s)?.deref()), t(
|
|
5319
|
+
}), t(Ye, (s) => i.get(s)?.deref()), t(Pr, (s, r) => {
|
|
5314
5320
|
const c = e(Ye, s);
|
|
5315
5321
|
!c || !r || c.drawUpdate?.(r);
|
|
5316
|
-
}), t(
|
|
5322
|
+
}), t(Ur, (s) => {
|
|
5317
5323
|
const r = e(Ye, s);
|
|
5318
5324
|
return r ? r.getMarkData?.() : {};
|
|
5319
5325
|
}), t($e, (s) => {
|
|
5320
5326
|
s !== void 0 && (e(_).markVisible = s), e(Y).traverse((r) => r.isMark && (r.visible = e(_).markVisible)), e(ct);
|
|
5321
|
-
}), t(
|
|
5327
|
+
}), t(Di, async () => {
|
|
5322
5328
|
const s = [];
|
|
5323
5329
|
e(Y).traverse((c) => {
|
|
5324
5330
|
if (c.isMark) {
|
|
@@ -5327,7 +5333,7 @@ function sr(n) {
|
|
|
5327
5333
|
}
|
|
5328
5334
|
});
|
|
5329
5335
|
const r = e(xt).meta || {};
|
|
5330
|
-
return s.length ? r.marks = s : delete r.marks, r.cameraInfo = e(
|
|
5336
|
+
return s.length ? r.marks = s : delete r.marks, r.cameraInfo = e(ja), await e(Ie, r);
|
|
5331
5337
|
}), t(wn, async () => {
|
|
5332
5338
|
const s = [];
|
|
5333
5339
|
e(Y).traverse((c) => {
|
|
@@ -5338,40 +5344,40 @@ function sr(n) {
|
|
|
5338
5344
|
});
|
|
5339
5345
|
const r = e(xt).meta || {};
|
|
5340
5346
|
return s.length ? r.marks = s : delete r.marks, await e(Ie, r);
|
|
5341
|
-
}), t(
|
|
5347
|
+
}), t(yo, async () => {
|
|
5342
5348
|
const s = e(xt).meta || {};
|
|
5343
5349
|
delete s.marks;
|
|
5344
5350
|
const r = await e(Ie, s), c = [];
|
|
5345
5351
|
return i.forEach((A) => c.push(A)), c.forEach((A) => A.deref()?.dispose?.()), e(ct), r;
|
|
5346
|
-
}), t(
|
|
5352
|
+
}), t(Io, async () => {
|
|
5347
5353
|
e(Y).traverse((r) => {
|
|
5348
5354
|
r.isMark && r.getMarkData?.();
|
|
5349
5355
|
});
|
|
5350
5356
|
const s = e(xt).meta || {};
|
|
5351
|
-
return s.watermark = e(
|
|
5352
|
-
}), t(
|
|
5357
|
+
return s.watermark = e(mo) || "", await e(Ie, s);
|
|
5358
|
+
}), t(ki, (s) => {
|
|
5353
5359
|
s.meterScale && (e(_).meterScale = s.meterScale, e(it, { scale: `1 : ${e(_).meterScale} m` })), e(Z).updateByOptions({ ...s, ...s.cameraInfo || {} }), (s.marks || []).forEach((c) => {
|
|
5354
5360
|
if (c.type === "MarkSinglePoint") {
|
|
5355
|
-
const A = new
|
|
5361
|
+
const A = new er(n, c);
|
|
5356
5362
|
A.visible = !1, e(Y).add(A);
|
|
5357
5363
|
} else if (c.type === "MarkDistanceLine") {
|
|
5358
|
-
const A = new
|
|
5364
|
+
const A = new Yi(n);
|
|
5359
5365
|
A.draw(c), A.visible = !1, e(Y).add(A);
|
|
5360
5366
|
} else if (c.type === "MarkMultiLines") {
|
|
5361
|
-
const A = new
|
|
5367
|
+
const A = new Gi(n);
|
|
5362
5368
|
A.draw(c, !0), A.visible = !1, e(Y).add(A);
|
|
5363
5369
|
} else if (c.type === "MarkMultiPlans") {
|
|
5364
|
-
const A = new
|
|
5370
|
+
const A = new qi(n);
|
|
5365
5371
|
A.draw(c, !0), A.visible = !1, e(Y).add(A);
|
|
5366
5372
|
} else if (c.type === "MarkCirclePlan") {
|
|
5367
|
-
const A = new
|
|
5373
|
+
const A = new nr(n);
|
|
5368
5374
|
A.draw(c), A.visible = !1, e(Y).add(A);
|
|
5369
5375
|
}
|
|
5370
|
-
}), e(
|
|
5376
|
+
}), e(ls, s.flyPositions || []), e(As, s.flyTargets || []);
|
|
5371
5377
|
}), t(ie, () => {
|
|
5372
5378
|
const s = e(_);
|
|
5373
|
-
s.markMode = !1, e(
|
|
5374
|
-
}), t(
|
|
5379
|
+
s.markMode = !1, e(es), e(ct);
|
|
5380
|
+
}), t(Co, (s, r = !0) => {
|
|
5375
5381
|
const c = s?.meterScale;
|
|
5376
5382
|
if (c) {
|
|
5377
5383
|
if (typeof c != "number" || c <= 0) {
|
|
@@ -5381,15 +5387,15 @@ function sr(n) {
|
|
|
5381
5387
|
r && (e(_).meterScale = s.meterScale), e(it, { scale: `1 : ${c} m` });
|
|
5382
5388
|
for (const A of i.values()) {
|
|
5383
5389
|
const l = A.deref();
|
|
5384
|
-
l && (l instanceof
|
|
5390
|
+
l && (l instanceof Yi || l instanceof Gi || l instanceof qi) && l.updateByMeterScale(c);
|
|
5385
5391
|
}
|
|
5386
5392
|
}
|
|
5387
|
-
}), t(
|
|
5393
|
+
}), t(wi, (s) => {
|
|
5388
5394
|
const r = new Q().fromArray(s.slice(0, 3)), c = new Q().fromArray(s.slice(-6, -3)), A = new Q().fromArray(s.slice(-3)), l = r.distanceTo(A) < 1e-4, u = c.distanceTo(A) < 1e-4, g = new Q(), h = l || u ? s.length / 3 - 1 : s.length / 3;
|
|
5389
5395
|
for (let d = 0; d < h; d++)
|
|
5390
5396
|
g.add(new Q(s[d * 3], s[d * 3 + 1], s[d * 3 + 2]));
|
|
5391
5397
|
return g.divideScalar(h), g;
|
|
5392
|
-
}), t(
|
|
5398
|
+
}), t(Ei, (s) => {
|
|
5393
5399
|
const r = [];
|
|
5394
5400
|
for (let u = 0, g = s.length / 3; u < g; u++)
|
|
5395
5401
|
r.push(new Q(s[u * 3], s[u * 3 + 1], s[u * 3 + 2]));
|
|
@@ -5397,44 +5403,44 @@ function sr(n) {
|
|
|
5397
5403
|
if ((c || A) && r.pop(), r.length < 3) return 0;
|
|
5398
5404
|
let l = 0;
|
|
5399
5405
|
for (let u = 0, g = r.length - 2; u < g; u++)
|
|
5400
|
-
l += e(
|
|
5406
|
+
l += e(Wn, r[0], r[u + 1], r[u + 2], e(_).meterScale);
|
|
5401
5407
|
return l;
|
|
5402
|
-
}), t(
|
|
5408
|
+
}), t($a, (s, r) => {
|
|
5403
5409
|
let c = 0;
|
|
5404
5410
|
for (let A = 0, l = s.length - 2; A < l; A++)
|
|
5405
|
-
c += e(
|
|
5411
|
+
c += e(Wn, s[0], s[A + 1], s[A + 2], r);
|
|
5406
5412
|
return c;
|
|
5407
|
-
}), t(
|
|
5413
|
+
}), t(Wn, (s, r, c, A) => {
|
|
5408
5414
|
const l = s.distanceTo(r) * A, u = r.distanceTo(c) * A, g = c.distanceTo(s) * A, h = (l + u + g) / 2;
|
|
5409
5415
|
return Math.sqrt(h * (h - l) * (h - u) * (h - g));
|
|
5410
5416
|
});
|
|
5411
5417
|
}
|
|
5412
|
-
function
|
|
5418
|
+
function MA(n) {
|
|
5413
5419
|
const t = (g, ...h) => n.fire(g, ...h), e = (g, h, d) => n.on(g, h, d), i = [], a = [];
|
|
5414
5420
|
let o = !1, s = !1;
|
|
5415
|
-
e(_n, () => o = !1), e(
|
|
5421
|
+
e(_n, () => o = !1), e(zs, () => o = !0), e(Ns, () => i), e(Nr, () => {
|
|
5416
5422
|
const g = [];
|
|
5417
5423
|
for (let h = 0, d = i.length; h < d; h++)
|
|
5418
5424
|
g.push(...i[h].toArray());
|
|
5419
5425
|
return g;
|
|
5420
|
-
}), e(
|
|
5426
|
+
}), e(zr, () => {
|
|
5421
5427
|
const g = [];
|
|
5422
5428
|
for (let h = 0, d = a.length; h < d; h++)
|
|
5423
5429
|
g.push(...a[h].toArray());
|
|
5424
5430
|
return g;
|
|
5425
|
-
}), e(
|
|
5431
|
+
}), e(ls, (g) => {
|
|
5426
5432
|
for (let h = 0, d = g.length / 3 | 0; h < d; h++)
|
|
5427
5433
|
i[h] = new Q(g[h * 3 + 0], g[h * 3 + 1], g[h * 3 + 2]);
|
|
5428
|
-
}), e(
|
|
5434
|
+
}), e(As, (g) => {
|
|
5429
5435
|
for (let h = 0, d = g.length / 3 | 0; h < d; h++)
|
|
5430
5436
|
a[h] = new Q(g[h * 3 + 0], g[h * 3 + 1], g[h * 3 + 2]);
|
|
5431
|
-
}), e(
|
|
5437
|
+
}), e(os, () => {
|
|
5432
5438
|
const g = t(Z);
|
|
5433
5439
|
i.push(g.object.position.clone()), a.push(g.target.clone());
|
|
5434
|
-
}), e(
|
|
5440
|
+
}), e(cs, () => {
|
|
5435
5441
|
i.length = 0, a.length = 0;
|
|
5436
|
-
}), e(
|
|
5437
|
-
const h = t(xt).meta || t(
|
|
5442
|
+
}), e(rs, async (g = !0) => {
|
|
5443
|
+
const h = t(xt).meta || t(Do);
|
|
5438
5444
|
if (i.length) {
|
|
5439
5445
|
const d = [], C = [];
|
|
5440
5446
|
for (let f = 0, p = i.length; f < p; f++)
|
|
@@ -5443,7 +5449,7 @@ function SA(n) {
|
|
|
5443
5449
|
} else
|
|
5444
5450
|
delete h.flyPositions, delete h.flyTargets;
|
|
5445
5451
|
g && await t(Ie, h);
|
|
5446
|
-
}), e(
|
|
5452
|
+
}), e(Eo, () => {
|
|
5447
5453
|
s || (s = !0) && t(Je, !0);
|
|
5448
5454
|
});
|
|
5449
5455
|
let r = 0;
|
|
@@ -5451,10 +5457,10 @@ function SA(n) {
|
|
|
5451
5457
|
let A = 0, l, u;
|
|
5452
5458
|
e(Je, (g) => {
|
|
5453
5459
|
if (r = 0, A = Date.now(), l = null, u = null, !i.length || !g && !t(Z).autoRotate) return;
|
|
5454
|
-
const h = t(Z), d = [h.object.position.clone()], C = [h.target.clone()], f = t(
|
|
5460
|
+
const h = t(Z), d = [h.object.position.clone()], C = [h.target.clone()], f = t(Ns) || [];
|
|
5455
5461
|
for (let p = 0, y = Math.min(f.length, 100); p < y; p++)
|
|
5456
5462
|
f[p] && d.push(f[p]), a[p] && C.push(a[p]);
|
|
5457
|
-
l = new
|
|
5463
|
+
l = new xs(d), l.closed = !0, u = new xs(C), u.closed = !0, t(zs), t(ht, !1);
|
|
5458
5464
|
}), e(
|
|
5459
5465
|
We,
|
|
5460
5466
|
() => {
|
|
@@ -5467,38 +5473,42 @@ function SA(n) {
|
|
|
5467
5473
|
!0
|
|
5468
5474
|
);
|
|
5469
5475
|
}
|
|
5470
|
-
class
|
|
5476
|
+
class lu {
|
|
5471
5477
|
constructor(t = {}) {
|
|
5472
|
-
this.disposed = !1, this.updateTime = 0, this.needUpdate = !0, console.info("Reall3dViewer",
|
|
5478
|
+
this.disposed = !1, this.updateTime = 0, this.needUpdate = !0, console.info("Reall3dViewer", gs, this), this.opts = Ba(t), this.init(this.opts), !t.disableDropLocalFile && this.enableDropLocalFile();
|
|
5473
5479
|
}
|
|
5474
5480
|
init(t) {
|
|
5475
5481
|
const e = this;
|
|
5476
5482
|
t.position = t.position ? [...t.position] : [0, -5, 15], t.lookAt = t.lookAt ? [...t.lookAt] : [0, 0, 0], t.lookUp = t.lookUp ? [...t.lookUp] : [0, -1, 0];
|
|
5477
|
-
const i =
|
|
5478
|
-
a.background = new
|
|
5479
|
-
const o = t.controls = new
|
|
5483
|
+
const i = Ul(t), a = t.scene = t.scene || new qa();
|
|
5484
|
+
a.background = new $i(t.background), Nl(t);
|
|
5485
|
+
const o = t.controls = new oA(t), s = new ds();
|
|
5480
5486
|
t.viewerEvents = s, e.events = s;
|
|
5481
5487
|
const r = (g, h, d) => s.on(g, h, d), c = (g, ...h) => s.fire(g, ...h);
|
|
5482
|
-
r(
|
|
5488
|
+
r(To, () => e.metaMatrix), r(_, () => t), r(ke, () => i.domElement), r(Ve, () => i), r(Y, () => a), r(Z, () => o), r(dt, () => o.object), r(Ct, () => t.bigSceneMode), r(_r, (g) => t.pointcloudMode = g);
|
|
5483
5489
|
const A = [];
|
|
5484
5490
|
r(ct, () => {
|
|
5485
5491
|
for (e.needUpdate = !0; A.length; ) A.pop().stop = !0;
|
|
5486
5492
|
let g = { count: 0, stop: !1 };
|
|
5487
5493
|
A.push(g), c(
|
|
5488
|
-
|
|
5494
|
+
Wa,
|
|
5489
5495
|
() => {
|
|
5490
5496
|
!e.disposed && (e.needUpdate = !0), g.count++ >= 600 && (g.stop = !0);
|
|
5491
5497
|
},
|
|
5492
|
-
() => !e.disposed && (c(
|
|
5498
|
+
() => !e.disposed && (c(ns) || !g.stop),
|
|
5493
5499
|
10
|
|
5494
5500
|
);
|
|
5495
|
-
}),
|
|
5501
|
+
}), ps(s), Fl(s), SA(s), or(s), pA(s), ar(s), bA(s), MA(s), r(Oo, () => {
|
|
5502
|
+
c("onDataloadStop"), c("onFetchStop");
|
|
5503
|
+
}, !0), r(Un, () => {
|
|
5504
|
+
c("onSceneReady");
|
|
5505
|
+
}), e.splatMesh = new Nt(zl(t), s), r(xt, () => e.splatMesh), a.add(e.splatMesh), Vl(s), r(ni, (g) => {
|
|
5496
5506
|
t.qualityLevel = g, e.splatMesh.options({ qualityLevel: g, renderer: void 0, scene: void 0 });
|
|
5497
|
-
}), r(
|
|
5507
|
+
}), r(ei, (g) => {
|
|
5498
5508
|
t.sortType = g, e.splatMesh.options({ sortType: g, renderer: void 0, scene: void 0 });
|
|
5499
|
-
}), a.add(new
|
|
5500
|
-
o.update(), !e.needUpdate && c(
|
|
5501
|
-
}), r(xe, () => c(
|
|
5509
|
+
}), a.add(new Va("#ffffff", 2)), i.setAnimationLoop(e.update.bind(e)), r(Us, () => {
|
|
5510
|
+
o.update(), !e.needUpdate && c(Xi) && c(ct);
|
|
5511
|
+
}), r(xe, () => c(On), !0), r(xe, () => c(Us), !0), r(
|
|
5502
5512
|
de,
|
|
5503
5513
|
() => {
|
|
5504
5514
|
try {
|
|
@@ -5509,18 +5519,18 @@ class au {
|
|
|
5509
5519
|
},
|
|
5510
5520
|
!0
|
|
5511
5521
|
), r(We, () => {
|
|
5512
|
-
}, !0), r(
|
|
5522
|
+
}, !0), r(Hn, () => e.dispose()), r(vo, () => console.info(JSON.stringify(c(xt).meta || {}, null, 2)));
|
|
5513
5523
|
let l = "";
|
|
5514
5524
|
r(ln, (g = "") => {
|
|
5515
|
-
l = g, e.splatMesh.fire(
|
|
5516
|
-
}), r(
|
|
5525
|
+
l = g, e.splatMesh.fire(as, l, !0);
|
|
5526
|
+
}), r(mo, () => l), c(it, { scale: `1 : ${c(_).meterScale} m` }), e.initGsApi();
|
|
5517
5527
|
let u;
|
|
5518
5528
|
r(Ne, (g = !0, h = 1, d = 2) => {
|
|
5519
5529
|
u && clearTimeout(u), u = null;
|
|
5520
5530
|
const C = 16;
|
|
5521
5531
|
if (d > C && g) return c(Ne, g, C, 1);
|
|
5522
5532
|
if (d < 1 && !g) return c(Ne, !g, 1, C);
|
|
5523
|
-
e.splatMesh.fire(
|
|
5533
|
+
e.splatMesh.fire(ko, h, d), u = setTimeout(() => c(Ne, g, d, g ? d * 2 : d / 2), 6 * 1e3);
|
|
5524
5534
|
});
|
|
5525
5535
|
}
|
|
5526
5536
|
//
|
|
@@ -5578,23 +5588,23 @@ class au {
|
|
|
5578
5588
|
// 开发调试用临时接口
|
|
5579
5589
|
fire(t, e, i) {
|
|
5580
5590
|
const a = this;
|
|
5581
|
-
if (t === 1 && a.splatMesh.fire(
|
|
5582
|
-
let o = await a.splatMesh.fire(
|
|
5583
|
-
e && (o = a.splatMesh.fire(
|
|
5591
|
+
if (t === 1 && a.splatMesh.fire(xi, e), t === 2 && a.events.fire(os), t === 3 && a.events.fire(Je, !0), t === 4 && a.events.fire(cs), t === 5 && a.events.fire(rs), t === 6 && a.events.fire(wn), t === 7 && a.events.fire(yo), t === 8 && (async () => {
|
|
5592
|
+
let o = await a.splatMesh.fire(us);
|
|
5593
|
+
e && (o = a.splatMesh.fire(Mo) + e), a.splatMesh.fire(bn, o);
|
|
5584
5594
|
})(), t === 9)
|
|
5585
5595
|
if (!e)
|
|
5586
|
-
a.events.fire(
|
|
5596
|
+
a.events.fire(ni, Qe);
|
|
5587
5597
|
else {
|
|
5588
5598
|
const o = a.events.fire(_).qualityLevel;
|
|
5589
|
-
a.events.fire(
|
|
5599
|
+
a.events.fire(ni, Math.max(ic, Math.min(o + e, sc)));
|
|
5590
5600
|
}
|
|
5591
5601
|
if (t === 10)
|
|
5592
5602
|
if (!e)
|
|
5593
|
-
a.events.fire(
|
|
5603
|
+
a.events.fire(ei, Ke.Default);
|
|
5594
5604
|
else {
|
|
5595
5605
|
const o = [1, 2010, 2011, 2012, 2112], s = a.events.fire(_).sortType;
|
|
5596
5606
|
let r = o.indexOf(s) + e;
|
|
5597
|
-
r = Math.max(0, Math.min(r, o.length - 1)), a.events.fire(
|
|
5607
|
+
r = Math.max(0, Math.min(r, o.length - 1)), a.events.fire(ei, o[r]);
|
|
5598
5608
|
}
|
|
5599
5609
|
}
|
|
5600
5610
|
/**
|
|
@@ -5609,7 +5619,7 @@ class au {
|
|
|
5609
5619
|
let a;
|
|
5610
5620
|
if (i(Y).traverse((r) => !a && r instanceof Nt && (a = r.options())), t) {
|
|
5611
5621
|
const r = i(_);
|
|
5612
|
-
t.autoRotate !== void 0 && (r.autoRotate = t.autoRotate, i(Z).autoRotate = t.autoRotate), t.pointcloudMode !== void 0 && i(Ln, t.pointcloudMode), t.lightFactor !== void 0 && i(qe, t.lightFactor), t.maxRenderCountOfMobile && (r.maxRenderCountOfMobile = t.maxRenderCountOfMobile), t.maxRenderCountOfPc && (r.maxRenderCountOfPc = t.maxRenderCountOfPc), t.debugMode !== void 0 && (r.debugMode = t.debugMode), t.qualityLevel !== void 0 && (r.qualityLevel = t.qualityLevel) && this.splatMesh.options({ qualityLevel: t.qualityLevel }), t.sortType !== void 0 && (r.sortType = t.sortType) && this.splatMesh.options({ sortType: t.sortType }), t.markType !== void 0 && (r.markType = t.markType), t.markVisible !== void 0 && i($e, t.markVisible), t.meterScale !== void 0 && (r.meterScale = t.meterScale), t.markMode !== void 0 && (r.markMode = t.markMode, !t.markMode && i(
|
|
5622
|
+
t.autoRotate !== void 0 && (r.autoRotate = t.autoRotate, i(Z).autoRotate = t.autoRotate), t.pointcloudMode !== void 0 && i(Ln, t.pointcloudMode), t.lightFactor !== void 0 && i(qe, t.lightFactor), t.maxRenderCountOfMobile && (r.maxRenderCountOfMobile = t.maxRenderCountOfMobile), t.maxRenderCountOfPc && (r.maxRenderCountOfPc = t.maxRenderCountOfPc), t.debugMode !== void 0 && (r.debugMode = t.debugMode), t.qualityLevel !== void 0 && (r.qualityLevel = t.qualityLevel) && this.splatMesh.options({ qualityLevel: t.qualityLevel }), t.sortType !== void 0 && (r.sortType = t.sortType) && this.splatMesh.options({ sortType: t.sortType }), t.markType !== void 0 && (r.markType = t.markType), t.markVisible !== void 0 && i($e, t.markVisible), t.meterScale !== void 0 && (r.meterScale = t.meterScale), t.markMode !== void 0 && (r.markMode = t.markMode, !t.markMode && i(es), i(Z).autoRotate = i(_).autoRotate = !1);
|
|
5613
5623
|
}
|
|
5614
5624
|
return i(Z).updateByOptions(t), i(it, { scale: `1 : ${i(_).meterScale} m` }), Object.assign({ ...i(_) }, a);
|
|
5615
5625
|
}
|
|
@@ -5618,7 +5628,7 @@ class au {
|
|
|
5618
5628
|
*/
|
|
5619
5629
|
reset(t = {}) {
|
|
5620
5630
|
const e = this;
|
|
5621
|
-
e.dispose(), e.disposed = !1, e.init(
|
|
5631
|
+
e.dispose(), e.disposed = !1, e.init(Ba(t));
|
|
5622
5632
|
}
|
|
5623
5633
|
/**
|
|
5624
5634
|
* 光圈过渡切换显示
|
|
@@ -5649,7 +5659,7 @@ class au {
|
|
|
5649
5659
|
if (!a.url) return console.error("missing model file url");
|
|
5650
5660
|
if (!a.url.endsWith(".spx")) return console.error("The format is unsupported in the large scene mode", a.url);
|
|
5651
5661
|
const o = { ...a, ...a.cameraInfo || {} };
|
|
5652
|
-
a.autoCut = Math.min(Math.max(a.autoCut || 0, 0), 50), o.bigSceneMode = a.autoCut > 1, e.reset({ ...o }), !o.bigSceneMode && delete a.autoCut, e.metaMatrix = a.transform ? new $t().fromArray(a.transform) : null, e.splatMesh.meta = a, yt && (a.cameraInfo?.position || a.cameraInfo?.lookAt) && e.events.fire(Z)._dollyOut(0.75), o.bigSceneMode ? (i(
|
|
5662
|
+
a.autoCut = Math.min(Math.max(a.autoCut || 0, 0), 50), o.bigSceneMode = a.autoCut > 1, e.reset({ ...o }), !o.bigSceneMode && delete a.autoCut, e.metaMatrix = a.transform ? new $t().fromArray(a.transform) : null, e.splatMesh.meta = a, yt && (a.cameraInfo?.position || a.cameraInfo?.lookAt) && e.events.fire(Z)._dollyOut(0.75), o.bigSceneMode ? (i(ls, a.flyPositions || []), i(As, a.flyTargets || [])) : i(ki, a), await e.splatMesh.addModel({ url: a.url }, a), await i(ln, a.watermark), i(Z).updateRotateAxis();
|
|
5653
5663
|
}
|
|
5654
5664
|
/**
|
|
5655
5665
|
* 添加要渲染的高斯模型(小场景模式)
|
|
@@ -5689,7 +5699,7 @@ class au {
|
|
|
5689
5699
|
console.error("unknow format!", r.url);
|
|
5690
5700
|
return;
|
|
5691
5701
|
}
|
|
5692
|
-
A.qualityLevel = A.qualityLevel || c.qualityLevel || Qe, A.sortType = A.sortType || c.sortType || Ke.Default, a(
|
|
5702
|
+
A.qualityLevel = A.qualityLevel || c.qualityLevel || Qe, A.sortType = A.sortType || c.sortType || Ke.Default, a(Do, () => A), i.metaMatrix = A.transform ? new $t().fromArray(A.transform) : null, o(ki, A), this.options({ qualityLevel: A.qualityLevel, sortType: A.sortType }), r.format === "obj" ? (this.options({ autoRotate: !1 }), await o(Qo, r.url)) : (this.splatMesh.addModel(r, A), await o(ln, A.watermark)), yt && o(Z)._dollyOut?.(0.75);
|
|
5693
5703
|
}
|
|
5694
5704
|
/**
|
|
5695
5705
|
* 根据需要暴露的接口
|
|
@@ -5718,10 +5728,10 @@ class au {
|
|
|
5718
5728
|
else
|
|
5719
5729
|
return !1;
|
|
5720
5730
|
return u.markMode = !0, t(ht), !0;
|
|
5721
|
-
}, s = async (l) => (setTimeout(() => window.focus()), l ? (t(Ye, l)?.dispose(), t(ct), await t(wn)) : !1), r = async (l, u = !0) => (t(
|
|
5722
|
-
setTimeout(() => window.focus()), t(
|
|
5731
|
+
}, s = async (l) => (setTimeout(() => window.focus()), l ? (t(Ye, l)?.dispose(), t(ct), await t(wn)) : !1), r = async (l, u = !0) => (t(Co, l, u), t(Ye, l?.name)?.drawUpdate?.(l, u), t(ct), u ? (setTimeout(() => window.focus()), await t(wn)) : !0), c = (l = !0) => {
|
|
5732
|
+
setTimeout(() => window.focus()), t(xi, !!l);
|
|
5723
5733
|
}, A = (l, u = !0) => {
|
|
5724
|
-
t(ln, l), u && t(
|
|
5734
|
+
t(ln, l), u && t(Io, l);
|
|
5725
5735
|
};
|
|
5726
5736
|
window.$api = { switchAutoRotate: e, changePointCloudMode: i, showMark: a, startMark: o, deleteMark: s, updateMark: r, showWaterMark: c, setWaterMark: A };
|
|
5727
5737
|
}
|
|
@@ -5733,10 +5743,10 @@ class au {
|
|
|
5733
5743
|
if (t.disposed) return;
|
|
5734
5744
|
t.disposed = !0;
|
|
5735
5745
|
const e = (o, ...s) => t.events.fire(o, ...s), i = e(Ve), a = i.domElement;
|
|
5736
|
-
e(
|
|
5746
|
+
e(Ki), e(oo), e(ss), e(ji), e(Z).dispose(), e(jt, e(Y)), i.clear(), i.dispose(), a.parentElement.removeChild(a), t.splatMesh = null, t.events.clear(), t.events = null;
|
|
5737
5747
|
}
|
|
5738
5748
|
}
|
|
5739
|
-
function
|
|
5749
|
+
function BA(n) {
|
|
5740
5750
|
const t = (s, r, c) => n.on(s, r, c), e = (s, ...r) => n.fire(s, ...r), i = yt ? 2 : 20, a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
|
|
5741
5751
|
t(Mn, () => e(St) && a.set(Date.now(), 1)), t(Bn, () => e(St) && e(ve, a)), t(Qn, () => e(St) && o.set(Date.now(), 1)), t(Dn, () => e(St) && e(ve, o)), t(ve, (s) => {
|
|
5742
5752
|
let r = [], c = Date.now(), A = 0;
|
|
@@ -5751,91 +5761,91 @@ function bA(n) {
|
|
|
5751
5761
|
for (let A = 0; A < c.length; A++)
|
|
5752
5762
|
c[A].splatMesh.boundBox.visible = A < 1;
|
|
5753
5763
|
return window.splat = c[0]?.splatMesh, c[0]?.splatMesh;
|
|
5754
|
-
}), t(
|
|
5764
|
+
}), t(No, () => {
|
|
5755
5765
|
const s = e(Y), r = e(dt), c = [];
|
|
5756
5766
|
s?.traverse(function(A) {
|
|
5757
5767
|
A.isWarpSplatMesh && c.push(A);
|
|
5758
5768
|
}), c.sort((A, l) => r.position.distanceTo(A.position) - r.position.distanceTo(l.position));
|
|
5759
5769
|
for (let A = 0; A < c.length; A++)
|
|
5760
5770
|
c[A].active = A < i, c[A].splatMesh && (c[A].splatMesh.renderOrder = 1e3 - A);
|
|
5761
|
-
}), t(
|
|
5771
|
+
}), t(zo, () => {
|
|
5762
5772
|
const s = e(Y), r = [];
|
|
5763
5773
|
s?.traverse((c) => r.push(c)), r.forEach((c) => {
|
|
5764
5774
|
c.dispose ? c.dispose() : (c.geometry?.dispose?.(), c.material && c.material instanceof Array ? c.material.forEach((A) => A?.dispose?.()) : c.material?.dispose?.());
|
|
5765
5775
|
}), s?.clear();
|
|
5766
|
-
}), t(
|
|
5776
|
+
}), t(_i, (s = 0.1) => {
|
|
5767
5777
|
const r = e(ot);
|
|
5768
5778
|
r && r.visible && r.rotateOnAxis(new Q(1, 0, 0), te.degToRad(s));
|
|
5769
|
-
}), t(
|
|
5779
|
+
}), t(Fi, (s = 0.1) => {
|
|
5770
5780
|
const r = e(ot);
|
|
5771
5781
|
r && r.visible && r.rotateOnAxis(new Q(0, 1, 0), te.degToRad(s));
|
|
5772
|
-
}), t(
|
|
5782
|
+
}), t(Pi, (s = 0.1) => {
|
|
5773
5783
|
const r = e(ot);
|
|
5774
5784
|
r && r.visible && r.rotateOnAxis(new Q(0, 0, 1), te.degToRad(s));
|
|
5775
|
-
}), t(
|
|
5785
|
+
}), t(Or, (s = 0.01) => {
|
|
5776
5786
|
const r = e(ot);
|
|
5777
5787
|
r && r.visible && (r.position.x += s);
|
|
5778
|
-
}), t(
|
|
5788
|
+
}), t(Uo, (s = 0.01) => {
|
|
5779
5789
|
const r = e(ot);
|
|
5780
5790
|
r && r.visible && (r.position.y += s);
|
|
5781
|
-
}), t(
|
|
5791
|
+
}), t(Yr, (s = 0.01) => {
|
|
5782
5792
|
const r = e(ot);
|
|
5783
5793
|
r && r.visible && (r.position.z += s);
|
|
5784
|
-
}), t(
|
|
5794
|
+
}), t(Gr, (s) => {
|
|
5785
5795
|
const r = e(ot);
|
|
5786
5796
|
r && r.visible && s && r.position.copy(s), console.info(r, s);
|
|
5787
|
-
}), t(
|
|
5797
|
+
}), t(qr, (s = 0.01) => {
|
|
5788
5798
|
const r = e(ot);
|
|
5789
5799
|
r && r.visible && r.scale.set(r.scale.x + s, r.scale.y + s, r.scale.z + s);
|
|
5790
|
-
}), t(
|
|
5800
|
+
}), t(Vr, () => {
|
|
5791
5801
|
const s = e(ot);
|
|
5792
5802
|
s && (s.visible = !s.visible);
|
|
5793
|
-
}), t(
|
|
5803
|
+
}), t(Wr, async (s) => {
|
|
5794
5804
|
if (!s && (s = e(ot)), !s) return;
|
|
5795
5805
|
const r = s.meta || {};
|
|
5796
5806
|
return r.transform = s.matrix.toArray(), await e(Ie, JSON.stringify(r), s.meta.url);
|
|
5797
|
-
}), t(Lo, () => {
|
|
5798
|
-
const s = e(_).root, r = new za({ antialias: !1, logarithmicDepthBuffer: !0, stencil: !0, alpha: !0, precision: "highp" });
|
|
5799
|
-
return r.setSize(s.clientWidth, s.clientHeight), r.setPixelRatio(Math.min(devicePixelRatio, 2)), t(Ve, () => r), t(ke, () => r.domElement), r;
|
|
5800
5807
|
}), t(Ro, () => {
|
|
5801
|
-
const s = e(_), r = new
|
|
5802
|
-
return r.
|
|
5808
|
+
const s = e(_).root, r = new Ha({ antialias: !1, logarithmicDepthBuffer: !0, stencil: !0, alpha: !0, precision: "highp" });
|
|
5809
|
+
return r.setSize(s.clientWidth, s.clientHeight), r.setPixelRatio(Math.min(devicePixelRatio, 2)), t(Ve, () => r), t(ke, () => r.domElement), r;
|
|
5803
5810
|
}), t(_o, () => {
|
|
5804
|
-
const
|
|
5811
|
+
const s = e(_), r = new qa(), c = s.background || "#dbf0ff";
|
|
5812
|
+
return r.background = new $i(c), r.fog = new Ss(c, 0), t(Y, () => r), r;
|
|
5813
|
+
}), t(Fo, () => {
|
|
5814
|
+
const r = e(dt), c = e(Y), A = e(_), l = new rA(e(dt), A.root);
|
|
5805
5815
|
l.screenSpacePanning = !1, l.minDistance = 0.1, l.maxDistance = 6e4, l.maxPolarAngle = 1.2, l.enableDamping = !0, l.dampingFactor = 0.07, l.zoomToCursor = !0;
|
|
5806
5816
|
const u = new Q().fromArray(A.minPan || [-2e4, 0.1, -6e4]), g = new Q().fromArray(A.maxPan || [5e4, 1e4, 0]), h = new Q();
|
|
5807
5817
|
return l.addEventListener("change", () => {
|
|
5808
5818
|
const d = Math.max(l.getPolarAngle(), 0.1), C = Math.max(l.getDistance(), 0.1);
|
|
5809
|
-
l.zoomSpeed = Math.max(Math.log(C), 0) + 0.5, r.far = te.clamp(C / d * 8, 100, 1e5), r.near = r.far / 1e3, r.updateProjectionMatrix(), c.fog instanceof
|
|
5819
|
+
l.zoomSpeed = Math.max(Math.log(C), 0) + 0.5, r.far = te.clamp(C / d * 8, 100, 1e5), r.near = r.far / 1e3, r.updateProjectionMatrix(), c.fog instanceof Ss && (c.fog.density = d / (C + 5) * 1 * 0.25), l.maxPolarAngle = Math.min(Math.pow(1e4 / C, 4), 1.2), h.copy(l.target), l.target.clamp(u, g), h.sub(l.target), r.position.sub(h);
|
|
5810
5820
|
}), t(Z, () => l), t(en, () => r.fov), t(Lt, (d = !1) => d ? r.position.clone() : r.position), t(Ot, (d = !1) => d ? l.target.clone() : l.target), t(Be, (d = !1) => d ? r.up.clone() : r.up), l;
|
|
5811
|
-
}), t(
|
|
5812
|
-
const s = new
|
|
5821
|
+
}), t(Po, () => {
|
|
5822
|
+
const s = new xr(16777215, 1);
|
|
5813
5823
|
return s.position.set(0, 2e3, 1e3), s;
|
|
5814
|
-
}), window.addEventListener("beforeunload", () => e(
|
|
5824
|
+
}), window.addEventListener("beforeunload", () => e(Hn));
|
|
5815
5825
|
}
|
|
5816
|
-
function
|
|
5826
|
+
function QA(n) {
|
|
5817
5827
|
let { root: t = "#map", debugMode: e } = n;
|
|
5818
5828
|
t ? t = typeof t == "string" ? document.querySelector(t) || document.querySelector("#map") : t : t = document.querySelector("#map"), t || (t = document.createElement("div"), t.id = "map", (document.querySelector("#gsviewer") || document.querySelector("body")).appendChild(t));
|
|
5819
5829
|
const i = { ...n };
|
|
5820
5830
|
return i.root = t, i;
|
|
5821
5831
|
}
|
|
5822
|
-
function
|
|
5823
|
-
const n =
|
|
5832
|
+
function DA() {
|
|
5833
|
+
const n = bs.TileSource.create({
|
|
5824
5834
|
dataType: "image",
|
|
5825
5835
|
attribution: "ArcGIS",
|
|
5826
5836
|
url: "https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}"
|
|
5827
|
-
}), t = new
|
|
5837
|
+
}), t = new bs.TileMap({ imgSource: n, lon0: 90, minLevel: 2, maxLevel: 16 });
|
|
5828
5838
|
return t.scale.set(10, 10, 10), t.rotateX(-Math.PI / 2), t.autoUpdate = !1, t;
|
|
5829
5839
|
}
|
|
5830
|
-
class
|
|
5840
|
+
class kA {
|
|
5831
5841
|
constructor() {
|
|
5832
5842
|
this.down = 0, this.move = !1, this.downTime = 0, this.isDbClick = !1, this.x = 0, this.y = 0, this.lastClickX = 0, this.lastClickY = 0, this.lastClickPointTime = 0, this.lastMovePoint = null, this.lastMovePointTime = 0;
|
|
5833
5843
|
}
|
|
5834
5844
|
}
|
|
5835
|
-
function
|
|
5845
|
+
function TA(n) {
|
|
5836
5846
|
const t = (v, x, m) => n.on(v, x, m), e = (v, ...x) => n.fire(v, ...x), i = e(ke);
|
|
5837
|
-
let a = /* @__PURE__ */ new Set(), o, s = new
|
|
5838
|
-
t(
|
|
5847
|
+
let a = /* @__PURE__ */ new Set(), o, s = new kA();
|
|
5848
|
+
t(On, () => {
|
|
5839
5849
|
if (!a.size) return;
|
|
5840
5850
|
if (!e(_).enableKeyboard) return a.clear();
|
|
5841
5851
|
if (a.has("KeyH")) {
|
|
@@ -5875,7 +5885,7 @@ function DA(n) {
|
|
|
5875
5885
|
const m = x.meta || {};
|
|
5876
5886
|
m.transform = x.matrix.toArray();
|
|
5877
5887
|
}
|
|
5878
|
-
} else a.has("KeyQ") ? e(
|
|
5888
|
+
} else a.has("KeyQ") ? e(_i, 0.1) : a.has("KeyW") ? e(Fi, 0.1) : a.has("KeyE") ? e(Pi, 0.1) : a.has("KeyA") ? e(_i, -0.1) : a.has("KeyS") ? e(Fi, -0.1) : a.has("KeyD") ? e(Pi, -0.1) : a.has("KeyY") ? e(Uo, a.has("ShiftLeft") || a.has("ShiftRight") ? -0.1 : 0.1) : a.has("KeyC") && console.info("position=", e(Lt).toArray(), "lookat=", e(Ot).toArray());
|
|
5879
5889
|
});
|
|
5880
5890
|
const r = (v) => {
|
|
5881
5891
|
console.info(v.code), v.target.type !== "text" && (o || v.code === "F5" || (v.preventDefault(), a.add(v.code)));
|
|
@@ -5899,7 +5909,7 @@ function DA(n) {
|
|
|
5899
5909
|
}, y = async (v) => {
|
|
5900
5910
|
v.preventDefault(), !o && (s.down = 0, s.move = !1);
|
|
5901
5911
|
};
|
|
5902
|
-
function
|
|
5912
|
+
function w(v) {
|
|
5903
5913
|
v.preventDefault(), !o && (s.down = v.touches.length, s.down === 1 && (s.move = !1, s.x = v.touches[0].clientX, s.y = v.touches[0].clientY));
|
|
5904
5914
|
}
|
|
5905
5915
|
function b(v) {
|
|
@@ -5908,8 +5918,8 @@ function DA(n) {
|
|
|
5908
5918
|
function D(v) {
|
|
5909
5919
|
s.down === 1 && !s.move && e(Oe, s.x, s.y);
|
|
5910
5920
|
}
|
|
5911
|
-
window.addEventListener("keydown", r), window.addEventListener("keyup", c), window.addEventListener("blur", A), window.addEventListener("wheel", l, { passive: !1 }), i.addEventListener("contextmenu", u), i.addEventListener("mousedown", f), i.addEventListener("mousemove", p), i.addEventListener("mouseup", y), i.addEventListener("touchstart",
|
|
5912
|
-
o = !0, window.removeEventListener("keydown", r), window.removeEventListener("keyup", c), window.removeEventListener("blur", A), window.removeEventListener("wheel", l), i.removeEventListener("contextmenu", u), i.removeEventListener("mousedown", f), i.removeEventListener("mousemove", p), i.removeEventListener("mouseup", y), i.removeEventListener("touchstart",
|
|
5921
|
+
window.addEventListener("keydown", r), window.addEventListener("keyup", c), window.addEventListener("blur", A), window.addEventListener("wheel", l, { passive: !1 }), i.addEventListener("contextmenu", u), i.addEventListener("mousedown", f), i.addEventListener("mousemove", p), i.addEventListener("mouseup", y), i.addEventListener("touchstart", w, { passive: !1 }), i.addEventListener("touchmove", b, { passive: !1 }), i.addEventListener("touchend", D, { passive: !1 }), t(ji, () => {
|
|
5922
|
+
o = !0, window.removeEventListener("keydown", r), window.removeEventListener("keyup", c), window.removeEventListener("blur", A), window.removeEventListener("wheel", l), i.removeEventListener("contextmenu", u), i.removeEventListener("mousedown", f), i.removeEventListener("mousemove", p), i.removeEventListener("mouseup", y), i.removeEventListener("touchstart", w), i.removeEventListener("touchmove", b), i.removeEventListener("touchend", D);
|
|
5913
5923
|
}), t(Oe, async (v, x) => await e(kn, v, x));
|
|
5914
5924
|
}
|
|
5915
5925
|
var Se = Object.freeze({
|
|
@@ -6055,7 +6065,7 @@ var Se = Object.freeze({
|
|
|
6055
6065
|
}
|
|
6056
6066
|
}), ze = function() {
|
|
6057
6067
|
return performance.now();
|
|
6058
|
-
},
|
|
6068
|
+
}, LA = (
|
|
6059
6069
|
/** @class */
|
|
6060
6070
|
function() {
|
|
6061
6071
|
function n() {
|
|
@@ -6102,9 +6112,9 @@ var Se = Object.freeze({
|
|
|
6102
6112
|
}
|
|
6103
6113
|
}, n;
|
|
6104
6114
|
}()
|
|
6105
|
-
),
|
|
6115
|
+
), Vi = {
|
|
6106
6116
|
Linear: function(n, t) {
|
|
6107
|
-
var e = n.length - 1, i = e * t, a = Math.floor(i), o =
|
|
6117
|
+
var e = n.length - 1, i = e * t, a = Math.floor(i), o = Vi.Utils.Linear;
|
|
6108
6118
|
return t < 0 ? o(n[0], n[1], i) : t > 1 ? o(n[e], n[e - 1], e - i) : o(n[a], n[a + 1 > e ? e : a + 1], i - a);
|
|
6109
6119
|
},
|
|
6110
6120
|
Utils: {
|
|
@@ -6112,7 +6122,7 @@ var Se = Object.freeze({
|
|
|
6112
6122
|
return (t - n) * e + n;
|
|
6113
6123
|
}
|
|
6114
6124
|
}
|
|
6115
|
-
},
|
|
6125
|
+
}, rr = (
|
|
6116
6126
|
/** @class */
|
|
6117
6127
|
function() {
|
|
6118
6128
|
function n() {
|
|
@@ -6121,11 +6131,11 @@ var Se = Object.freeze({
|
|
|
6121
6131
|
return n._nextId++;
|
|
6122
6132
|
}, n._nextId = 0, n;
|
|
6123
6133
|
}()
|
|
6124
|
-
),
|
|
6134
|
+
), Wi = new LA(), RA = (
|
|
6125
6135
|
/** @class */
|
|
6126
6136
|
function() {
|
|
6127
6137
|
function n(t, e) {
|
|
6128
|
-
this._isPaused = !1, this._pauseStart = 0, this._valuesStart = {}, this._valuesEnd = {}, this._valuesStartRepeat = {}, this._duration = 1e3, this._isDynamic = !1, this._initialRepeat = 0, this._repeat = 0, this._yoyo = !1, this._isPlaying = !1, this._reversed = !1, this._delayTime = 0, this._startTime = 0, this._easingFunction = Se.Linear.None, this._interpolationFunction =
|
|
6138
|
+
this._isPaused = !1, this._pauseStart = 0, this._valuesStart = {}, this._valuesEnd = {}, this._valuesStartRepeat = {}, this._duration = 1e3, this._isDynamic = !1, this._initialRepeat = 0, this._repeat = 0, this._yoyo = !1, this._isPlaying = !1, this._reversed = !1, this._delayTime = 0, this._startTime = 0, this._easingFunction = Se.Linear.None, this._interpolationFunction = Vi.Linear, this._chainedTweens = [], this._onStartCallbackFired = !1, this._onEveryStartCallbackFired = !1, this._id = rr.nextId(), this._isChainStopped = !1, this._propertiesAreSetUp = !1, this._goToEnd = !1, this._object = t, typeof e == "object" ? (this._group = e, e.add(this)) : e === !0 && (this._group = Wi, Wi.add(this));
|
|
6129
6139
|
}
|
|
6130
6140
|
return n.prototype.getId = function() {
|
|
6131
6141
|
return this._id;
|
|
@@ -6227,7 +6237,7 @@ var Se = Object.freeze({
|
|
|
6227
6237
|
}, n.prototype.easing = function(t) {
|
|
6228
6238
|
return t === void 0 && (t = Se.Linear.None), this._easingFunction = t, this;
|
|
6229
6239
|
}, n.prototype.interpolation = function(t) {
|
|
6230
|
-
return t === void 0 && (t =
|
|
6240
|
+
return t === void 0 && (t = Vi.Linear), this._interpolationFunction = t, this;
|
|
6231
6241
|
}, n.prototype.chain = function() {
|
|
6232
6242
|
for (var t = [], e = 0; e < arguments.length; e++)
|
|
6233
6243
|
t[e] = arguments[e];
|
|
@@ -6293,15 +6303,15 @@ var Se = Object.freeze({
|
|
|
6293
6303
|
}, n.autoStartOnUpdate = !1, n;
|
|
6294
6304
|
}()
|
|
6295
6305
|
);
|
|
6296
|
-
|
|
6297
|
-
var qt =
|
|
6306
|
+
rr.nextId;
|
|
6307
|
+
var qt = Wi;
|
|
6298
6308
|
qt.getAll.bind(qt);
|
|
6299
6309
|
qt.removeAll.bind(qt);
|
|
6300
6310
|
qt.add.bind(qt);
|
|
6301
6311
|
qt.remove.bind(qt);
|
|
6302
6312
|
qt.update.bind(qt);
|
|
6303
|
-
const
|
|
6304
|
-
class
|
|
6313
|
+
const Na = navigator.userAgent.includes("Mobi");
|
|
6314
|
+
class _A extends pt {
|
|
6305
6315
|
constructor(t, e) {
|
|
6306
6316
|
super(), this.isWarpSplatMesh = !0, this.lastActiveTime = Date.now(), this.active = !1, this.disposed = !1;
|
|
6307
6317
|
const i = this;
|
|
@@ -6332,8 +6342,8 @@ class LA extends pt {
|
|
|
6332
6342
|
let o = null;
|
|
6333
6343
|
a.onclick = () => {
|
|
6334
6344
|
if (o) return;
|
|
6335
|
-
const c = i.target.clone(), A = i.object.position.clone(), l = e.position.clone(), u =
|
|
6336
|
-
o = new
|
|
6345
|
+
const c = i.target.clone(), A = i.object.position.clone(), l = e.position.clone(), u = Na ? 6 : 2, h = c.clone().sub(A).normalize().clone(), d = l.clone().sub(h.multiplyScalar(u)), C = { x: A.x, y: A.y, z: A.z, tx: c.x, ty: c.y, tz: c.z }, f = { x: d.x, y: d.y, z: d.z, tx: l.x, ty: l.y, tz: l.z };
|
|
6346
|
+
o = new RA(C).to(f, 3500), o.easing(Se.Sinusoidal.InOut).start().onUpdate(() => {
|
|
6337
6347
|
i.object.position.set(C.x, C.y, C.z), i.target.set(C.tx, C.ty, C.tz);
|
|
6338
6348
|
}).onComplete(() => {
|
|
6339
6349
|
o = null;
|
|
@@ -6344,7 +6354,7 @@ class LA extends pt {
|
|
|
6344
6354
|
const r = (c) => e.mapViewer.controls._onMouseWheel(c);
|
|
6345
6355
|
a.addEventListener("wheel", r, { passive: !1 }), s.dispose = () => a.removeEventListener("wheel", r), e.onBeforeRender = () => {
|
|
6346
6356
|
o?.update();
|
|
6347
|
-
const c =
|
|
6357
|
+
const c = Na ? 60 : 30, A = 100, l = e.position.distanceTo(e.mapViewer.controls.object.position);
|
|
6348
6358
|
if (l > c) {
|
|
6349
6359
|
e.css3dTag.visible = e.opts.controls.object.position.y > 2;
|
|
6350
6360
|
let u = 2e-3 * l;
|
|
@@ -6364,7 +6374,7 @@ class LA extends pt {
|
|
|
6364
6374
|
const h = new Nt(g);
|
|
6365
6375
|
e.splatMesh = h, e.opts.scene.add(h), h.meta = u;
|
|
6366
6376
|
const d = u.watermark || u.name || "";
|
|
6367
|
-
u.showWatermark = u.showWatermark !== !1, h.fire(
|
|
6377
|
+
u.showWatermark = u.showWatermark !== !1, h.fire(as, d, !0, !1), h.addModel({ url: u.url }, u);
|
|
6368
6378
|
}
|
|
6369
6379
|
e.splatMesh.meta.showBoundBox && (e.splatMesh.boundBox.visible = !0);
|
|
6370
6380
|
}
|
|
@@ -6382,18 +6392,18 @@ class LA extends pt {
|
|
|
6382
6392
|
t.disposed || (t.disposed = !0, t.opts.scene.remove(t.css3dTag), t.splatMesh?.dispose(), t.meta = null, t.splatMesh = null, t.opts = null, t.css3dTag = null, t.mapViewer = null, t.metaMatrix = null);
|
|
6383
6393
|
}
|
|
6384
6394
|
}
|
|
6385
|
-
class
|
|
6395
|
+
class Au extends Sr {
|
|
6386
6396
|
constructor(t = {}) {
|
|
6387
|
-
console.info("Reall3dMapViewer",
|
|
6388
|
-
const e = this, i = new
|
|
6397
|
+
console.info("Reall3dMapViewer", gs), super(), this.clock = new br(), this.updateTime = 0, this.disposed = !1;
|
|
6398
|
+
const e = this, i = new ds();
|
|
6389
6399
|
e.events = i;
|
|
6390
6400
|
const a = (r, c, A) => i.on(r, c, A), o = (r, ...c) => i.fire(r, ...c);
|
|
6391
|
-
e.tileMap =
|
|
6392
|
-
const s =
|
|
6393
|
-
a(_, () => s),
|
|
6401
|
+
e.tileMap = DA();
|
|
6402
|
+
const s = QA(t);
|
|
6403
|
+
a(_, () => s), ps(i), BA(i), ar(i), e.camera = new Oa(60, 1, 0.01, 100), a(dt, () => e.camera), e.container = s.root, e.renderer = o(Ro), e.scene = o(_o), e.controls = o(Fo), e.ambLight = new Va(16777215, 1), e.scene.add(e.ambLight), e.dirLight = o(Po), e.scene.add(e.dirLight), e.scene.add(e.tileMap), e.container.appendChild(e.renderer.domElement), or(i), TA(i), window.addEventListener("resize", e.resize.bind(e)), e.resize(), e.renderer.setAnimationLoop(e.animate.bind(e)), yt && e.controls._dollyOut?.(0.75), a(Hn, () => e.dispose()), a(
|
|
6394
6404
|
xe,
|
|
6395
6405
|
() => {
|
|
6396
|
-
o(Qn), e.controls.update(), o(
|
|
6406
|
+
o(Qn), e.controls.update(), o(No), o(On);
|
|
6397
6407
|
},
|
|
6398
6408
|
!0
|
|
6399
6409
|
), a(
|
|
@@ -6433,7 +6443,7 @@ class ou extends vr {
|
|
|
6433
6443
|
e.controls.object.position.copy(a), e.controls.target.copy(o), e.dirLight.target.position.copy(o);
|
|
6434
6444
|
const s = /* @__PURE__ */ new Set();
|
|
6435
6445
|
for (let r of i.scenes)
|
|
6436
|
-
s.has(r) || (new
|
|
6446
|
+
s.has(r) || (new _A(r, e), s.add(r));
|
|
6437
6447
|
}).catch((i) => {
|
|
6438
6448
|
console.error(i.message);
|
|
6439
6449
|
});
|
|
@@ -6443,7 +6453,7 @@ class ou extends vr {
|
|
|
6443
6453
|
if (t.disposed) return;
|
|
6444
6454
|
const { width: e, height: i, top: a, left: o } = t.container.getBoundingClientRect();
|
|
6445
6455
|
t.renderer.setPixelRatio(Math.min(devicePixelRatio, 2)), t.renderer.setSize(e, i), t.camera.aspect = e / i, t.camera.updateProjectionMatrix();
|
|
6446
|
-
const s = t.events.fire(
|
|
6456
|
+
const s = t.events.fire(is);
|
|
6447
6457
|
s.setSize(e, i), s.domElement.style.position = "absolute", s.domElement.style.left = `${o}px`, s.domElement.style.top = `${a}px`;
|
|
6448
6458
|
}
|
|
6449
6459
|
animate() {
|
|
@@ -6458,10 +6468,10 @@ class ou extends vr {
|
|
|
6458
6468
|
if (t.disposed) return;
|
|
6459
6469
|
t.disposed = !0;
|
|
6460
6470
|
const e = t.renderer.domElement;
|
|
6461
|
-
t.events.fire(
|
|
6471
|
+
t.events.fire(ss), t.events.fire(zo), t.renderer.clear(), t.renderer.dispose(), t.events.clear(), t.scene = null, t.renderer = null, t.camera = null, t.controls = null, t.ambLight = null, t.dirLight = null, t.container.removeChild(e), t.container.classList.add("hidden"), t.container = null, t.clock = null, t.events = null, t.tileMap = null, document.querySelector("#gsviewer .debug.dev-panel")?.classList?.remove("map");
|
|
6462
6472
|
}
|
|
6463
6473
|
}
|
|
6464
|
-
class
|
|
6474
|
+
class uu {
|
|
6465
6475
|
constructor(t) {
|
|
6466
6476
|
this.tools = /* @__PURE__ */ new Map(), this.active = null, this.events = t, this.events.on("tool.deactivate", () => {
|
|
6467
6477
|
this.activate(null);
|
|
@@ -6488,7 +6498,7 @@ class ru {
|
|
|
6488
6498
|
t === this.active ? t && this.activate(null) : (this.active && (this.tools.get(this.active).deactivate(), this.events.fire(`tool.${this.active}.deactivated`), this.events.fire("tool.deactivated", this.active)), this.active = t, this.active && this.tools.get(this.active).activate(), this.events.fire(`tool.${t}.activated`), this.events.fire("tool.activated", t));
|
|
6489
6499
|
}
|
|
6490
6500
|
}
|
|
6491
|
-
class
|
|
6501
|
+
class hu {
|
|
6492
6502
|
constructor(t, e, i) {
|
|
6493
6503
|
let a = 40;
|
|
6494
6504
|
const o = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
@@ -6498,8 +6508,8 @@ class cu {
|
|
|
6498
6508
|
const { canvas: r, context: c } = i, A = { x: 0, y: 0 };
|
|
6499
6509
|
let l;
|
|
6500
6510
|
const u = (p) => {
|
|
6501
|
-
const y = p.offsetX,
|
|
6502
|
-
s.setAttribute("cx", y.toString()), s.setAttribute("cy",
|
|
6511
|
+
const y = p.offsetX, w = p.offsetY;
|
|
6512
|
+
s.setAttribute("cx", y.toString()), s.setAttribute("cy", w.toString()), l !== void 0 && (c.beginPath(), c.strokeStyle = "#f60", c.lineCap = "round", c.lineWidth = a * 2, c.moveTo(A.x, A.y), c.lineTo(y, w), c.stroke(), A.x = y, A.y = w);
|
|
6503
6513
|
}, g = (p) => {
|
|
6504
6514
|
l === void 0 && (p.pointerType === "mouse" ? p.button === 0 : p.isPrimary) && (p.preventDefault(), p.stopPropagation(), l = p.pointerId, e.setPointerCapture(l), (r.width !== e.clientWidth || r.height !== e.clientHeight) && (r.width = e.clientWidth, r.height = e.clientHeight), c.clearRect(0, 0, r.width, r.height), r.style.display = "inline", A.x = p.offsetX, A.y = p.offsetY, u(p));
|
|
6505
6515
|
}, h = (p) => {
|
|
@@ -6510,8 +6520,8 @@ class cu {
|
|
|
6510
6520
|
p.pointerId === l && (p.preventDefault(), p.stopPropagation(), d(), t.fire("select.byMask", p.shiftKey ? "add" : p.ctrlKey ? "remove" : "set", r, c));
|
|
6511
6521
|
}, f = (p) => {
|
|
6512
6522
|
if (p.altKey || p.metaKey) {
|
|
6513
|
-
const { deltaX: y, deltaY:
|
|
6514
|
-
t.fire((Math.abs(y) > Math.abs(
|
|
6523
|
+
const { deltaX: y, deltaY: w } = p;
|
|
6524
|
+
t.fire((Math.abs(y) > Math.abs(w) ? y : w) > 0 ? "tool.brushSelection.smaller" : "tool.brushSelection.bigger"), p.preventDefault(), p.stopPropagation();
|
|
6515
6525
|
}
|
|
6516
6526
|
};
|
|
6517
6527
|
this.activate = () => {
|
|
@@ -6525,7 +6535,7 @@ class cu {
|
|
|
6525
6535
|
}), o.appendChild(s), e.appendChild(o);
|
|
6526
6536
|
}
|
|
6527
6537
|
}
|
|
6528
|
-
class
|
|
6538
|
+
class du {
|
|
6529
6539
|
constructor(t, e, i) {
|
|
6530
6540
|
let a = [], o = null, s = 0;
|
|
6531
6541
|
const r = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
@@ -6541,8 +6551,8 @@ class lu {
|
|
|
6541
6551
|
let d;
|
|
6542
6552
|
const C = (D) => {
|
|
6543
6553
|
o = { x: D.offsetX, y: D.offsetY };
|
|
6544
|
-
const v = a.length === 0 ? 0 : u(o, a[a.length - 1]), x = Date.now() - s, m = v > 20,
|
|
6545
|
-
d !== void 0 && (m ||
|
|
6554
|
+
const v = a.length === 0 ? 0 : u(o, a[a.length - 1]), x = Date.now() - s, m = v > 20, E = x > 500 && v > 2, M = x > 200 && v > 10, S = a.length === 0;
|
|
6555
|
+
d !== void 0 && (m || E || M || S) && (a.push(o), s = Date.now()), h();
|
|
6546
6556
|
}, f = (D) => {
|
|
6547
6557
|
(A.width !== e.clientWidth || A.height !== e.clientHeight) && (A.width = e.clientWidth, A.height = e.clientHeight), l.clearRect(0, 0, A.width, A.height), l.beginPath(), l.fillStyle = "#f60", l.beginPath(), a.forEach((v, x) => {
|
|
6548
6558
|
x === 0 ? l.moveTo(v.x, v.y) : l.lineTo(v.x, v.y);
|
|
@@ -6551,33 +6561,33 @@ class lu {
|
|
|
6551
6561
|
d === void 0 && (D.pointerType === "mouse" ? D.button === 0 : D.isPrimary) && (D.preventDefault(), D.stopPropagation(), d = D.pointerId, e.setPointerCapture(d), C(D));
|
|
6552
6562
|
}, y = (D) => {
|
|
6553
6563
|
d !== void 0 && (D.preventDefault(), D.stopPropagation()), C(D);
|
|
6554
|
-
},
|
|
6564
|
+
}, w = () => {
|
|
6555
6565
|
e.releasePointerCapture(d), d = void 0;
|
|
6556
6566
|
}, b = (D) => {
|
|
6557
|
-
D.pointerId === d && (D.preventDefault(), D.stopPropagation(),
|
|
6567
|
+
D.pointerId === d && (D.preventDefault(), D.stopPropagation(), w(), f(D), a = [], h());
|
|
6558
6568
|
};
|
|
6559
6569
|
this.activate = () => {
|
|
6560
6570
|
r.style.display = "inline", e.style.display = "block", e.addEventListener("pointerdown", p), e.addEventListener("pointermove", y), e.addEventListener("pointerup", b);
|
|
6561
6571
|
}, this.deactivate = () => {
|
|
6562
|
-
d !== void 0 &&
|
|
6572
|
+
d !== void 0 && w(), r.style.display = "none", e.style.display = "none", e.removeEventListener("pointerdown", p), e.removeEventListener("pointermove", y), e.removeEventListener("pointerup", b);
|
|
6563
6573
|
}, r.appendChild(c), e.appendChild(r);
|
|
6564
6574
|
}
|
|
6565
6575
|
}
|
|
6566
|
-
class
|
|
6576
|
+
class gu {
|
|
6567
6577
|
constructor(t, e, i) {
|
|
6568
6578
|
let a = [], o = null;
|
|
6569
6579
|
const s = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
6570
6580
|
s.id = "polygon-select-svg", s.classList.add("select-svg");
|
|
6571
6581
|
const r = document.createElementNS(s.namespaceURI, "polyline");
|
|
6572
6582
|
r.setAttribute("fill", "none"), r.setAttribute("stroke-width", "1"), r.setAttribute("stroke-dasharray", "5, 5"), r.setAttribute("stroke-dashoffset", "0");
|
|
6573
|
-
const { canvas: c, context: A } = i, l = (y,
|
|
6583
|
+
const { canvas: c, context: A } = i, l = (y, w) => Math.sqrt((y.x - w.x) ** 2 + (y.y - w.y) ** 2), u = () => a.length > 1 && l(o, a[0]) < 8, g = () => {
|
|
6574
6584
|
r.setAttribute(
|
|
6575
6585
|
"points",
|
|
6576
|
-
[...a, o].filter((y) => y).reduce((y,
|
|
6586
|
+
[...a, o].filter((y) => y).reduce((y, w) => `${y}${w.x}, ${w.y} `, "")
|
|
6577
6587
|
), r.setAttribute("stroke", u() ? "#fa6" : "#f60");
|
|
6578
6588
|
}, h = (y) => {
|
|
6579
|
-
(c.width !== e.clientWidth || c.height !== e.clientHeight) && (c.width = e.clientWidth, c.height = e.clientHeight), A.clearRect(0, 0, c.width, c.height), A.beginPath(), A.fillStyle = "#f60", A.beginPath(), a.forEach((
|
|
6580
|
-
b === 0 ? A.moveTo(
|
|
6589
|
+
(c.width !== e.clientWidth || c.height !== e.clientHeight) && (c.width = e.clientWidth, c.height = e.clientHeight), A.clearRect(0, 0, c.width, c.height), A.beginPath(), A.fillStyle = "#f60", A.beginPath(), a.forEach((w, b) => {
|
|
6590
|
+
b === 0 ? A.moveTo(w.x, w.y) : A.lineTo(w.x, w.y);
|
|
6581
6591
|
}), A.closePath(), A.fill(), t.fire("select.byMask", y.shiftKey ? "add" : y.ctrlKey ? "remove" : "set", c, A), a = [], g();
|
|
6582
6592
|
}, d = (y) => {
|
|
6583
6593
|
o = { x: y.offsetX, y: y.offsetY }, a.length > 0 && g();
|
|
@@ -6595,7 +6605,7 @@ class Au {
|
|
|
6595
6605
|
}, s.appendChild(r), e.appendChild(s);
|
|
6596
6606
|
}
|
|
6597
6607
|
}
|
|
6598
|
-
class
|
|
6608
|
+
class fu {
|
|
6599
6609
|
constructor(t, e) {
|
|
6600
6610
|
const i = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
6601
6611
|
i.id = "rect-select-svg", i.classList.add("select-svg");
|
|
@@ -6635,233 +6645,237 @@ class uu {
|
|
|
6635
6645
|
}
|
|
6636
6646
|
}
|
|
6637
6647
|
export {
|
|
6638
|
-
|
|
6648
|
+
os as AddFlyPosition,
|
|
6639
6649
|
ne as AddMarkToWeakRef,
|
|
6640
|
-
|
|
6641
|
-
|
|
6642
|
-
|
|
6643
|
-
|
|
6650
|
+
hu as BrushSelection,
|
|
6651
|
+
ss as CSS3DRendererDispose,
|
|
6652
|
+
vi as CameraSetLookAt,
|
|
6653
|
+
NA as CanUpdateTexture,
|
|
6644
6654
|
Pe as CancelCurrentMark,
|
|
6645
|
-
|
|
6646
|
-
|
|
6647
|
-
|
|
6655
|
+
cs as ClearFlyPosition,
|
|
6656
|
+
es as ClearMarkPoint,
|
|
6657
|
+
Ki as CommonUtilsDispose,
|
|
6648
6658
|
ve as ComputeFps,
|
|
6649
|
-
|
|
6650
|
-
|
|
6651
|
-
|
|
6659
|
+
Ei as ComputePlansArea,
|
|
6660
|
+
wi as ComputePlansCenter,
|
|
6661
|
+
Wn as ComputePoint3Area,
|
|
6652
6662
|
In as ControlPlaneSwitchVisible,
|
|
6653
6663
|
Tn as ControlPlaneUpdate,
|
|
6654
|
-
|
|
6655
|
-
|
|
6664
|
+
Ka as ControlsUpdate,
|
|
6665
|
+
Xa as ControlsUpdateRotateAxis,
|
|
6656
6666
|
Mn as CountFpsDefault,
|
|
6657
6667
|
Qn as CountFpsReal,
|
|
6658
|
-
|
|
6659
|
-
|
|
6660
|
-
|
|
6661
|
-
|
|
6662
|
-
|
|
6668
|
+
Qs as CreateSplatGeometry,
|
|
6669
|
+
Ds as CreateSplatMaterial,
|
|
6670
|
+
io as CreateSplatMesh,
|
|
6671
|
+
Bs as CreateSplatUniforms,
|
|
6672
|
+
Qr as DecodeBase64,
|
|
6663
6673
|
Te as DeleteMarkWeakRef,
|
|
6664
|
-
|
|
6665
|
-
|
|
6666
|
-
|
|
6674
|
+
Br as EncodeBase64,
|
|
6675
|
+
ji as EventListenerDispose,
|
|
6676
|
+
ds as Events,
|
|
6667
6677
|
_n as FlyDisable,
|
|
6668
|
-
|
|
6669
|
-
|
|
6670
|
-
|
|
6678
|
+
zs as FlyEnable,
|
|
6679
|
+
Eo as FlyOnce,
|
|
6680
|
+
rs as FlySavePositions,
|
|
6671
6681
|
Je as Flying,
|
|
6672
|
-
|
|
6673
|
-
|
|
6674
|
-
|
|
6675
|
-
|
|
6676
|
-
|
|
6682
|
+
ZA as FlyingContinue,
|
|
6683
|
+
XA as FlyingPause,
|
|
6684
|
+
tu as FlyingPlay,
|
|
6685
|
+
Hs as FocusAabbCenter,
|
|
6686
|
+
Qi as FocusMarkerAutoDisappear,
|
|
6677
6687
|
cn as FocusMarkerSetOpacity,
|
|
6678
|
-
|
|
6679
|
-
|
|
6680
|
-
|
|
6681
|
-
|
|
6682
|
-
|
|
6683
|
-
|
|
6688
|
+
fo as FocusMarkerUpdate,
|
|
6689
|
+
Kn as FocusMarkerUpdateScale,
|
|
6690
|
+
Bo as GetAabbCenter,
|
|
6691
|
+
eu as GetBgAudio,
|
|
6692
|
+
is as GetCSS3DRenderer,
|
|
6693
|
+
mo as GetCachedWaterMark,
|
|
6684
6694
|
dt as GetCamera,
|
|
6685
|
-
|
|
6695
|
+
po as GetCameraDirection,
|
|
6686
6696
|
en as GetCameraFov,
|
|
6687
|
-
|
|
6697
|
+
ja as GetCameraInfo,
|
|
6688
6698
|
Ot as GetCameraLookAt,
|
|
6689
6699
|
Be as GetCameraLookUp,
|
|
6690
6700
|
Lt as GetCameraPosition,
|
|
6691
6701
|
ke as GetCanvas,
|
|
6692
6702
|
he as GetCanvasSize,
|
|
6693
|
-
|
|
6703
|
+
Rr as GetControlPlane,
|
|
6694
6704
|
Z as GetControls,
|
|
6695
|
-
|
|
6696
|
-
|
|
6697
|
-
|
|
6698
|
-
|
|
6699
|
-
|
|
6705
|
+
Mo as GetCurrentDisplayShDegree,
|
|
6706
|
+
Nr as GetFlyPositionArray,
|
|
6707
|
+
Ns as GetFlyPositions,
|
|
6708
|
+
zr as GetFlyTargetArray,
|
|
6709
|
+
zA as GetFocusMarkerMaterial,
|
|
6700
6710
|
Bn as GetFpsDefault,
|
|
6701
6711
|
Dn as GetFpsReal,
|
|
6702
|
-
|
|
6703
|
-
|
|
6712
|
+
wo as GetGaussianText,
|
|
6713
|
+
Ur as GetMarkDataByName,
|
|
6704
6714
|
Ye as GetMarkFromWeakRef,
|
|
6705
|
-
|
|
6715
|
+
Fr as GetMarkWarpElement,
|
|
6706
6716
|
Ee as GetMaxRenderCount,
|
|
6707
|
-
|
|
6708
|
-
|
|
6709
|
-
|
|
6717
|
+
Do as GetMeta,
|
|
6718
|
+
To as GetMetaMatrix,
|
|
6719
|
+
us as GetModelShDegree,
|
|
6710
6720
|
_ as GetOptions,
|
|
6711
|
-
|
|
6721
|
+
Ui as GetRenderQualityLevel,
|
|
6712
6722
|
Ve as GetRenderer,
|
|
6713
6723
|
Y as GetScene,
|
|
6714
6724
|
Ue as GetShTexheight,
|
|
6715
|
-
|
|
6716
|
-
|
|
6717
|
-
|
|
6718
|
-
|
|
6725
|
+
Ni as GetSortType,
|
|
6726
|
+
Mi as GetSplatActivePoints,
|
|
6727
|
+
Dr as GetSplatGeometry,
|
|
6728
|
+
ks as GetSplatMaterial,
|
|
6719
6729
|
xt as GetSplatMesh,
|
|
6720
|
-
|
|
6721
|
-
|
|
6722
|
-
|
|
6730
|
+
to as GetViewProjectionMatrix,
|
|
6731
|
+
Za as GetViewProjectionMatrixArray,
|
|
6732
|
+
Ja as GetWorker,
|
|
6723
6733
|
Ie as HttpPostMetaData,
|
|
6724
|
-
|
|
6734
|
+
Mr as HttpQueryGaussianText,
|
|
6725
6735
|
it as Information,
|
|
6726
6736
|
Ct as IsBigSceneMode,
|
|
6727
|
-
|
|
6728
|
-
|
|
6729
|
-
|
|
6737
|
+
Tr as IsCameraChangedNeedLoadData,
|
|
6738
|
+
Xi as IsCameraChangedNeedUpdate,
|
|
6739
|
+
ns as IsControlPlaneVisible,
|
|
6730
6740
|
St as IsDebugMode,
|
|
6731
|
-
|
|
6732
|
-
|
|
6733
|
-
|
|
6734
|
-
|
|
6735
|
-
|
|
6736
|
-
|
|
6737
|
-
|
|
6738
|
-
|
|
6739
|
-
|
|
6740
|
-
|
|
6741
|
-
|
|
6742
|
-
|
|
6743
|
-
|
|
6744
|
-
|
|
6741
|
+
Lr as IsFetching,
|
|
6742
|
+
Si as IsPointcloudMode,
|
|
6743
|
+
go as IsSmallSceneRenderDataReady,
|
|
6744
|
+
Ho as IsSplatMeshCreated,
|
|
6745
|
+
On as KeyActionCheckAndExecute,
|
|
6746
|
+
du as LassoSelection,
|
|
6747
|
+
ki as LoadSmallSceneMetaData,
|
|
6748
|
+
UA as LoaderModelStart,
|
|
6749
|
+
VA as MapCreateCamera,
|
|
6750
|
+
Fo as MapCreateControls,
|
|
6751
|
+
Po as MapCreateDirLight,
|
|
6752
|
+
Ro as MapCreateRenderer,
|
|
6753
|
+
_o as MapCreateScene,
|
|
6754
|
+
WA as MapFlyToTarget,
|
|
6745
6755
|
ot as MapGetSplatMesh,
|
|
6746
|
-
|
|
6747
|
-
|
|
6748
|
-
|
|
6749
|
-
|
|
6750
|
-
|
|
6751
|
-
|
|
6752
|
-
|
|
6753
|
-
|
|
6754
|
-
|
|
6755
|
-
|
|
6756
|
-
|
|
6757
|
-
|
|
6758
|
-
|
|
6759
|
-
|
|
6756
|
+
zo as MapSceneTraverseDispose,
|
|
6757
|
+
No as MapSortSplatMeshRenderOrder,
|
|
6758
|
+
Or as MapSplatMeshMoveX,
|
|
6759
|
+
Uo as MapSplatMeshMoveY,
|
|
6760
|
+
Yr as MapSplatMeshMoveZ,
|
|
6761
|
+
_i as MapSplatMeshRotateX,
|
|
6762
|
+
Fi as MapSplatMeshRotateY,
|
|
6763
|
+
Pi as MapSplatMeshRotateZ,
|
|
6764
|
+
Wr as MapSplatMeshSaveModelMatrix,
|
|
6765
|
+
qr as MapSplatMeshScale,
|
|
6766
|
+
Gr as MapSplatMeshSetPosition,
|
|
6767
|
+
Vr as MapSplatMeshShowHide,
|
|
6768
|
+
qA as MarkArea,
|
|
6769
|
+
GA as MarkDistance,
|
|
6760
6770
|
ie as MarkFinish,
|
|
6761
|
-
|
|
6762
|
-
|
|
6763
|
-
|
|
6771
|
+
OA as MarkLine,
|
|
6772
|
+
YA as MarkPlan,
|
|
6773
|
+
HA as MarkPoint,
|
|
6764
6774
|
$e as MarkUpdateVisible,
|
|
6765
|
-
|
|
6775
|
+
yo as MetaMarkRemoveData,
|
|
6766
6776
|
wn as MetaMarkSaveData,
|
|
6767
|
-
|
|
6768
|
-
|
|
6777
|
+
Di as MetaSaveSmallSceneCameraInfo,
|
|
6778
|
+
Io as MetaSaveWatermark,
|
|
6769
6779
|
et as NotifyViewerNeedUpdate,
|
|
6770
|
-
|
|
6780
|
+
Zi as OnFetchStart,
|
|
6771
6781
|
He as OnFetchStop,
|
|
6772
|
-
|
|
6773
|
-
|
|
6774
|
-
|
|
6775
|
-
|
|
6776
|
-
|
|
6782
|
+
ts as OnFetching,
|
|
6783
|
+
Qo as OnLoadAndRenderObj,
|
|
6784
|
+
Ri as OnQualityLevelChanged,
|
|
6785
|
+
ls as OnSetFlyPositions,
|
|
6786
|
+
As as OnSetFlyTargets,
|
|
6777
6787
|
ln as OnSetWaterMark,
|
|
6778
6788
|
En as OnSmallSceneShowDone,
|
|
6779
6789
|
Ne as OnSmallSceneTimeChange,
|
|
6780
|
-
|
|
6790
|
+
ho as OnTextureReadySplatCount,
|
|
6781
6791
|
We as OnViewerAfterUpdate,
|
|
6782
6792
|
xe as OnViewerBeforeUpdate,
|
|
6783
6793
|
de as OnViewerUpdate,
|
|
6784
|
-
|
|
6785
|
-
|
|
6786
|
-
|
|
6787
|
-
|
|
6794
|
+
nu as PlaytBgAudio,
|
|
6795
|
+
gu as PolygonSelection,
|
|
6796
|
+
vo as PrintInfo,
|
|
6797
|
+
Bi as RaycasterRayDistanceToPoint,
|
|
6788
6798
|
kn as RaycasterRayIntersectPoints,
|
|
6789
|
-
|
|
6790
|
-
|
|
6791
|
-
|
|
6792
|
-
|
|
6793
|
-
|
|
6794
|
-
|
|
6795
|
-
|
|
6799
|
+
$a as ReComputePlansArea,
|
|
6800
|
+
Au as Reall3dMapViewer,
|
|
6801
|
+
lu as Reall3dViewer,
|
|
6802
|
+
fu as RectSelection,
|
|
6803
|
+
jn as RotateAt,
|
|
6804
|
+
Fs as RotateLeft,
|
|
6805
|
+
Ps as RotateRight,
|
|
6796
6806
|
Me as RunLoopByFrame,
|
|
6797
|
-
|
|
6807
|
+
Wa as RunLoopByTime,
|
|
6798
6808
|
Mt as SelectMarkPoint,
|
|
6799
6809
|
Oe as SelectPointAndLookAt,
|
|
6800
|
-
|
|
6801
|
-
|
|
6802
|
-
|
|
6803
|
-
|
|
6804
|
-
|
|
6810
|
+
iu as SetBgAudioVolumeDown,
|
|
6811
|
+
su as SetBgAudioVolumeUp,
|
|
6812
|
+
as as SetGaussianText,
|
|
6813
|
+
$n as SplatGeometryDispose,
|
|
6814
|
+
Jn as SplatMaterialDispose,
|
|
6805
6815
|
Nt as SplatMesh,
|
|
6806
|
-
|
|
6807
|
-
|
|
6808
|
-
|
|
6809
|
-
|
|
6816
|
+
uo as SplatMeshCycleZoom,
|
|
6817
|
+
Ao as SplatMeshDispose,
|
|
6818
|
+
bi as SplatMeshSwitchDisplayMode,
|
|
6819
|
+
Hr as SplatSetBoundBoxVisible,
|
|
6810
6820
|
Ln as SplatSetPointcloudMode,
|
|
6811
6821
|
Rn as SplatSwitchDisplayMode,
|
|
6812
|
-
|
|
6813
|
-
|
|
6814
|
-
|
|
6815
|
-
|
|
6816
|
-
|
|
6822
|
+
ro as SplatTexdataManagerAddModel,
|
|
6823
|
+
co as SplatTexdataManagerDataChanged,
|
|
6824
|
+
lo as SplatTexdataManagerDispose,
|
|
6825
|
+
_s as SplatUpdateBigSceneMode,
|
|
6826
|
+
Li as SplatUpdateBoundBox,
|
|
6817
6827
|
Re as SplatUpdateCurrentLightRadius,
|
|
6818
6828
|
Le as SplatUpdateCurrentVisibleRadius,
|
|
6819
|
-
|
|
6820
|
-
|
|
6829
|
+
kr as SplatUpdateDebugEffect,
|
|
6830
|
+
ko as SplatUpdateFlagValue,
|
|
6821
6831
|
on as SplatUpdateFocal,
|
|
6822
6832
|
qe as SplatUpdateLightFactor,
|
|
6823
6833
|
yn as SplatUpdateMarkPoint,
|
|
6824
|
-
|
|
6825
|
-
|
|
6826
|
-
|
|
6834
|
+
Lo as SplatUpdateMaxRadius,
|
|
6835
|
+
Zn as SplatUpdateMinAlpha,
|
|
6836
|
+
Xn as SplatUpdateMinMaxPixelDiameter,
|
|
6827
6837
|
Pn as SplatUpdateParticleMode,
|
|
6828
6838
|
Fn as SplatUpdatePerformanceAct,
|
|
6829
|
-
|
|
6839
|
+
ao as SplatUpdatePerformanceNow,
|
|
6830
6840
|
ce as SplatUpdatePointMode,
|
|
6831
|
-
|
|
6832
|
-
|
|
6841
|
+
So as SplatUpdateSh12Texture,
|
|
6842
|
+
bo as SplatUpdateSh3Texture,
|
|
6833
6843
|
bn as SplatUpdateShDegree,
|
|
6834
|
-
|
|
6835
|
-
|
|
6836
|
-
|
|
6837
|
-
|
|
6838
|
-
|
|
6839
|
-
|
|
6840
|
-
|
|
6844
|
+
xi as SplatUpdateShowWaterMark,
|
|
6845
|
+
Ts as SplatUpdateSplatIndex,
|
|
6846
|
+
Ls as SplatUpdateTexture,
|
|
6847
|
+
so as SplatUpdateTopY,
|
|
6848
|
+
Os as SplatUpdateTransitionEffect,
|
|
6849
|
+
ti as SplatUpdateUseSimilarExp,
|
|
6850
|
+
Rs as SplatUpdateUsingIndex,
|
|
6841
6851
|
rn as SplatUpdateViewport,
|
|
6842
|
-
|
|
6852
|
+
Ms as StartAutoRotate,
|
|
6843
6853
|
ht as StopAutoRotate,
|
|
6844
|
-
|
|
6845
|
-
|
|
6854
|
+
au as StopBgAudio,
|
|
6855
|
+
uu as ToolManager,
|
|
6846
6856
|
jt as TraverseDisposeAndClear,
|
|
6847
|
-
|
|
6848
|
-
|
|
6849
|
-
|
|
6850
|
-
|
|
6851
|
-
|
|
6852
|
-
|
|
6853
|
-
|
|
6854
|
-
|
|
6855
|
-
|
|
6856
|
-
|
|
6857
|
+
$A as TweenFly,
|
|
6858
|
+
KA as TweenFlyDisable,
|
|
6859
|
+
jA as TweenFlyEnable,
|
|
6860
|
+
JA as TweenFlyOnce,
|
|
6861
|
+
Co as UpdateAllMarkByMeterScale,
|
|
6862
|
+
Pr as UpdateMarkByName,
|
|
6863
|
+
ni as UpdateQualityLevel,
|
|
6864
|
+
ei as UpdateSortType,
|
|
6865
|
+
Ti as UploadSplatTexture,
|
|
6866
|
+
xo as UploadSplatTextureDone,
|
|
6857
6867
|
le as Vector3ToString,
|
|
6858
|
-
|
|
6859
|
-
|
|
6868
|
+
Us as ViewerCheckNeedUpdate,
|
|
6869
|
+
Hn as ViewerDispose,
|
|
6860
6870
|
ct as ViewerNeedUpdate,
|
|
6861
|
-
|
|
6862
|
-
|
|
6863
|
-
|
|
6864
|
-
|
|
6865
|
-
|
|
6866
|
-
|
|
6871
|
+
_r as ViewerSetPointcloudMode,
|
|
6872
|
+
oo as ViewerUtilsDispose,
|
|
6873
|
+
no as WorkerDispose,
|
|
6874
|
+
eo as WorkerSort,
|
|
6875
|
+
hs as WorkerUpdateParams,
|
|
6876
|
+
ou as onDataloadBefore,
|
|
6877
|
+
Oo as onDataloadStop,
|
|
6878
|
+
ru as onDataloading,
|
|
6879
|
+
Un as onSceneReady,
|
|
6880
|
+
pA as setupEventListener
|
|
6867
6881
|
};
|