world.ts 0.5.7 → 0.5.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +470 -466
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -22,57 +22,57 @@ const Pt = (e, t) => {
|
|
|
22
22
|
);
|
|
23
23
|
if (e.attachShader(i, r), e.attachShader(i, s), e.linkProgram(i), !e.getProgramParameter(i, e.LINK_STATUS))
|
|
24
24
|
throw console.error("Link failure", e.getProgramInfoLog(i)), new Error("Link failure");
|
|
25
|
-
const o = () => e.useProgram(i), c = {}, a = (
|
|
26
|
-
if (c[
|
|
27
|
-
return c[
|
|
28
|
-
const
|
|
25
|
+
const o = () => e.useProgram(i), c = {}, a = (w, g) => {
|
|
26
|
+
if (c[w])
|
|
27
|
+
return c[w];
|
|
28
|
+
const y = e.getUniformLocation(i, w);
|
|
29
29
|
let M;
|
|
30
30
|
const S = (U) => {
|
|
31
|
-
|
|
31
|
+
y && U !== M && (g(y, U), M = U);
|
|
32
32
|
};
|
|
33
|
-
return c[
|
|
34
|
-
}, f = (
|
|
35
|
-
|
|
36
|
-
(g, [
|
|
37
|
-
), u = (
|
|
38
|
-
|
|
39
|
-
(g, [
|
|
40
|
-
), d = (
|
|
41
|
-
|
|
42
|
-
(g, [
|
|
43
|
-
),
|
|
44
|
-
|
|
45
|
-
(g, [
|
|
46
|
-
), _ = (
|
|
47
|
-
|
|
48
|
-
(g, [
|
|
49
|
-
),
|
|
50
|
-
|
|
51
|
-
(g, [
|
|
52
|
-
),
|
|
53
|
-
|
|
54
|
-
(g,
|
|
33
|
+
return c[w] = { set: S }, { set: S };
|
|
34
|
+
}, f = (w) => a(w, (g, y) => e.uniform1f(g, y)), l = (w) => a(w, (g, y) => e.uniform1i(g, y)), h = (w) => a(
|
|
35
|
+
w,
|
|
36
|
+
(g, [y = 0, M = 0]) => e.uniform2f(g, y, M)
|
|
37
|
+
), u = (w) => a(
|
|
38
|
+
w,
|
|
39
|
+
(g, [y = 0, M = 0]) => e.uniform2i(g, y, M)
|
|
40
|
+
), d = (w) => a(
|
|
41
|
+
w,
|
|
42
|
+
(g, [y = 0, M = 0, S = 0]) => e.uniform3f(g, y, M, S)
|
|
43
|
+
), m = (w) => a(
|
|
44
|
+
w,
|
|
45
|
+
(g, [y = 0, M = 0, S = 0]) => e.uniform3i(g, y, M, S)
|
|
46
|
+
), _ = (w) => a(
|
|
47
|
+
w,
|
|
48
|
+
(g, [y = 0, M = 0, S = 0, U = 0]) => e.uniform4f(g, y, M, S, U)
|
|
49
|
+
), x = (w) => a(
|
|
50
|
+
w,
|
|
51
|
+
(g, [y = 0, M = 0, S = 0, U = 0]) => e.uniform4i(g, y, M, S, U)
|
|
52
|
+
), v = (w) => a(
|
|
53
|
+
w,
|
|
54
|
+
(g, y) => e.uniformMatrix4fv(g, !1, y)
|
|
55
55
|
), A = ({
|
|
56
|
-
name:
|
|
56
|
+
name: w,
|
|
57
57
|
buffer: g,
|
|
58
|
-
size:
|
|
58
|
+
size: y,
|
|
59
59
|
type: M,
|
|
60
60
|
stride: S,
|
|
61
61
|
offset: U
|
|
62
62
|
}) => {
|
|
63
|
-
const P = e.getAttribLocation(i,
|
|
63
|
+
const P = e.getAttribLocation(i, w);
|
|
64
64
|
if (P === -1)
|
|
65
|
-
throw new Error(`Missing attribute: ${
|
|
65
|
+
throw new Error(`Missing attribute: ${w}`);
|
|
66
66
|
return { use: () => {
|
|
67
67
|
g.use(), e.enableVertexAttribArray(P), ["u16", "i32"].includes(M) ? e.vertexAttribIPointer(
|
|
68
68
|
P,
|
|
69
|
-
|
|
69
|
+
y,
|
|
70
70
|
M === "u16" ? e.UNSIGNED_SHORT : e.INT,
|
|
71
71
|
S || 0,
|
|
72
72
|
U || 0
|
|
73
73
|
) : e.vertexAttribPointer(
|
|
74
74
|
P,
|
|
75
|
-
|
|
75
|
+
y,
|
|
76
76
|
e.FLOAT,
|
|
77
77
|
!1,
|
|
78
78
|
S || 0,
|
|
@@ -87,14 +87,14 @@ const Pt = (e, t) => {
|
|
|
87
87
|
uniform2f: h,
|
|
88
88
|
uniform2i: u,
|
|
89
89
|
uniform3f: d,
|
|
90
|
-
uniform3i:
|
|
90
|
+
uniform3i: m,
|
|
91
91
|
uniform4f: _,
|
|
92
|
-
uniform4i:
|
|
93
|
-
uniformMatrix4f:
|
|
94
|
-
attribute1f: (
|
|
95
|
-
attribute2f: (
|
|
96
|
-
attribute3f: (
|
|
97
|
-
attribute3i: (
|
|
92
|
+
uniform4i: x,
|
|
93
|
+
uniformMatrix4f: v,
|
|
94
|
+
attribute1f: (w, g, y = {}) => A({ name: w, buffer: g, size: 1, type: "f32", ...y }),
|
|
95
|
+
attribute2f: (w, g, y = {}) => A({ name: w, buffer: g, size: 2, type: "f32", ...y }),
|
|
96
|
+
attribute3f: (w, g, y = {}) => A({ name: w, buffer: g, size: 3, type: "f32", ...y }),
|
|
97
|
+
attribute3i: (w, g, y = {}) => A({ name: w, buffer: g, size: 3, type: "i32", ...y }),
|
|
98
98
|
dispose: () => {
|
|
99
99
|
e.deleteProgram(i), e.deleteShader(r), e.deleteShader(s);
|
|
100
100
|
}
|
|
@@ -148,27 +148,27 @@ function Ot(e) {
|
|
|
148
148
|
return e[0] = 1, e[1] = 0, e[2] = 0, e[3] = 0, e[4] = 0, e[5] = 1, e[6] = 0, e[7] = 0, e[8] = 0, e[9] = 0, e[10] = 1, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, e;
|
|
149
149
|
}
|
|
150
150
|
function Ct(e, t) {
|
|
151
|
-
var n = t[0], i = t[1], r = t[2], s = t[3], o = t[4], c = t[5], a = t[6], f = t[7], l = t[8], h = t[9], u = t[10], d = t[11],
|
|
152
|
-
return P ? (P = 1 / P, e[0] = (c * U - a * S + f * M) * P, e[1] = (r * S - i * U - s * M) * P, e[2] = (_ *
|
|
151
|
+
var n = t[0], i = t[1], r = t[2], s = t[3], o = t[4], c = t[5], a = t[6], f = t[7], l = t[8], h = t[9], u = t[10], d = t[11], m = t[12], _ = t[13], x = t[14], v = t[15], A = n * c - i * o, b = n * a - r * o, p = n * f - s * o, E = i * a - r * c, R = i * f - s * c, T = r * f - s * a, w = l * _ - h * m, g = l * x - u * m, y = l * v - d * m, M = h * x - u * _, S = h * v - d * _, U = u * v - d * x, P = A * U - b * S + p * M + E * y - R * g + T * w;
|
|
152
|
+
return P ? (P = 1 / P, e[0] = (c * U - a * S + f * M) * P, e[1] = (r * S - i * U - s * M) * P, e[2] = (_ * T - x * R + v * E) * P, e[3] = (u * R - h * T - d * E) * P, e[4] = (a * y - o * U - f * g) * P, e[5] = (n * U - r * y + s * g) * P, e[6] = (x * p - m * T - v * b) * P, e[7] = (l * T - u * p + d * b) * P, e[8] = (o * S - c * y + f * w) * P, e[9] = (i * y - n * S - s * w) * P, e[10] = (m * R - _ * p + v * A) * P, e[11] = (h * p - l * R - d * A) * P, e[12] = (c * g - o * M - a * w) * P, e[13] = (n * M - i * g + r * w) * P, e[14] = (_ * b - m * E - x * A) * P, e[15] = (l * E - h * b + u * A) * P, e) : null;
|
|
153
153
|
}
|
|
154
154
|
function Xt(e, t, n) {
|
|
155
|
-
var i = t[0], r = t[1], s = t[2], o = t[3], c = t[4], a = t[5], f = t[6], l = t[7], h = t[8], u = t[9], d = t[10],
|
|
156
|
-
return e[0] = b * i +
|
|
155
|
+
var i = t[0], r = t[1], s = t[2], o = t[3], c = t[4], a = t[5], f = t[6], l = t[7], h = t[8], u = t[9], d = t[10], m = t[11], _ = t[12], x = t[13], v = t[14], A = t[15], b = n[0], p = n[1], E = n[2], R = n[3];
|
|
156
|
+
return e[0] = b * i + p * c + E * h + R * _, e[1] = b * r + p * a + E * u + R * x, e[2] = b * s + p * f + E * d + R * v, e[3] = b * o + p * l + E * m + R * A, b = n[4], p = n[5], E = n[6], R = n[7], e[4] = b * i + p * c + E * h + R * _, e[5] = b * r + p * a + E * u + R * x, e[6] = b * s + p * f + E * d + R * v, e[7] = b * o + p * l + E * m + R * A, b = n[8], p = n[9], E = n[10], R = n[11], e[8] = b * i + p * c + E * h + R * _, e[9] = b * r + p * a + E * u + R * x, e[10] = b * s + p * f + E * d + R * v, e[11] = b * o + p * l + E * m + R * A, b = n[12], p = n[13], E = n[14], R = n[15], e[12] = b * i + p * c + E * h + R * _, e[13] = b * r + p * a + E * u + R * x, e[14] = b * s + p * f + E * d + R * v, e[15] = b * o + p * l + E * m + R * A, e;
|
|
157
157
|
}
|
|
158
158
|
function Wt(e, t, n) {
|
|
159
159
|
var i = n[0], r = n[1], s = n[2];
|
|
160
160
|
return e[0] = t[0] * i, e[1] = t[1] * i, e[2] = t[2] * i, e[3] = t[3] * i, e[4] = t[4] * r, e[5] = t[5] * r, e[6] = t[6] * r, e[7] = t[7] * r, e[8] = t[8] * s, e[9] = t[9] * s, e[10] = t[10] * s, e[11] = t[11] * s, e[12] = t[12], e[13] = t[13], e[14] = t[14], e[15] = t[15], e;
|
|
161
161
|
}
|
|
162
162
|
function Ke(e, t) {
|
|
163
|
-
var n = t[0], i = t[1], r = t[2], s = t[3], o = n + n, c = i + i, a = r + r, f = n * o, l = i * o, h = i * c, u = r * o, d = r * c,
|
|
164
|
-
return e[0] = 1 - h -
|
|
163
|
+
var n = t[0], i = t[1], r = t[2], s = t[3], o = n + n, c = i + i, a = r + r, f = n * o, l = i * o, h = i * c, u = r * o, d = r * c, m = r * a, _ = s * o, x = s * c, v = s * a;
|
|
164
|
+
return e[0] = 1 - h - m, e[1] = l + v, e[2] = u - x, e[3] = 0, e[4] = l - v, e[5] = 1 - f - m, e[6] = d + _, e[7] = 0, e[8] = u + x, e[9] = d - _, e[10] = 1 - f - h, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, e;
|
|
165
165
|
}
|
|
166
166
|
function jt(e, t, n, i, r) {
|
|
167
167
|
var s = 1 / Math.tan(t / 2), o;
|
|
168
168
|
return e[0] = s / n, e[1] = 0, e[2] = 0, e[3] = 0, e[4] = 0, e[5] = s, e[6] = 0, e[7] = 0, e[8] = 0, e[9] = 0, e[11] = -1, e[12] = 0, e[13] = 0, e[15] = 0, r != null && r !== 1 / 0 ? (o = 1 / (i - r), e[10] = (r + i) * o, e[14] = 2 * r * i * o) : (e[10] = -1, e[14] = -2 * i), e;
|
|
169
169
|
}
|
|
170
170
|
var Bt = jt;
|
|
171
|
-
function
|
|
171
|
+
function I() {
|
|
172
172
|
var e = new W(3);
|
|
173
173
|
return W != Float32Array && (e[0] = 0, e[1] = 0, e[2] = 0), e;
|
|
174
174
|
}
|
|
@@ -220,7 +220,7 @@ function Ht(e, t, n, i) {
|
|
|
220
220
|
}
|
|
221
221
|
var se = Yt, Gt = Vt;
|
|
222
222
|
(function() {
|
|
223
|
-
var e =
|
|
223
|
+
var e = I();
|
|
224
224
|
return function(t, n, i, r, s, o) {
|
|
225
225
|
var c, a;
|
|
226
226
|
for (n || (n = 3), i || (i = 0), r ? a = Math.min(r * n + i, t.length) : a = t.length, c = i; c < a; c += n)
|
|
@@ -290,8 +290,8 @@ function sn(e, t) {
|
|
|
290
290
|
return Math.acos(2 * n * n - 1);
|
|
291
291
|
}
|
|
292
292
|
function Ie(e, t, n, i) {
|
|
293
|
-
var r = t[0], s = t[1], o = t[2], c = t[3], a = n[0], f = n[1], l = n[2], h = n[3], u, d,
|
|
294
|
-
return d = r * a + s * f + o * l + c * h, d < 0 && (d = -d, a = -a, f = -f, l = -l, h = -h), 1 - d > Nt ? (u = Math.acos(d),
|
|
293
|
+
var r = t[0], s = t[1], o = t[2], c = t[3], a = n[0], f = n[1], l = n[2], h = n[3], u, d, m, _, x;
|
|
294
|
+
return d = r * a + s * f + o * l + c * h, d < 0 && (d = -d, a = -a, f = -f, l = -l, h = -h), 1 - d > Nt ? (u = Math.acos(d), m = Math.sin(u), _ = Math.sin((1 - i) * u) / m, x = Math.sin(i * u) / m) : (_ = 1 - i, x = i), e[0] = _ * r + x * a, e[1] = _ * s + x * f, e[2] = _ * o + x * l, e[3] = _ * c + x * h, e;
|
|
295
295
|
}
|
|
296
296
|
function on(e, t) {
|
|
297
297
|
var n = t[0] + t[4] + t[8], i;
|
|
@@ -307,7 +307,7 @@ function on(e, t) {
|
|
|
307
307
|
}
|
|
308
308
|
var an = mt, cn = tn, pt = en;
|
|
309
309
|
(function() {
|
|
310
|
-
var e =
|
|
310
|
+
var e = I(), t = st(1, 0, 0), n = st(0, 1, 0);
|
|
311
311
|
return function(i, r, s) {
|
|
312
312
|
var o = kt(r, s);
|
|
313
313
|
return o < -0.999999 ? (Ze(e, t, r), Gt(e) < 1e-6 && Ze(e, n, r), $t(e, e), rn(i, e, Math.PI), i) : o > 0.999999 ? (i[0] = 0, i[1] = 0, i[2] = 0, i[3] = 1, i) : (Ze(e, r, s), i[0] = e[0], i[1] = e[1], i[2] = e[2], i[3] = 1 + o, pt(i, i));
|
|
@@ -369,23 +369,23 @@ var xn = dn;
|
|
|
369
369
|
const F = 40075017, De = (e) => e / 180 * Math.PI, En = (e) => e * 180 / Math.PI, _n = (e, t, n) => {
|
|
370
370
|
const i = Math.sqrt(t * t - 4 * e * n);
|
|
371
371
|
return [(-t - i) / (2 * e), (-t + i) / (2 * e)];
|
|
372
|
-
}, yn = (e, t, n) => Math.min(Math.max(e, t), n), ct = Math.atan(Math.sinh(Math.PI)),
|
|
372
|
+
}, yn = (e, t, n) => Math.min(Math.max(e, t), n), ct = Math.atan(Math.sinh(Math.PI)), N = ([e = 0, t = 0, n = 0], i = I()) => be(
|
|
373
373
|
i,
|
|
374
374
|
e / 360 + 0.5,
|
|
375
375
|
-Math.asinh(Math.tan(yn(De(t), -ct, ct))) / (2 * Math.PI) + 0.5,
|
|
376
376
|
n / F
|
|
377
|
-
), oe = ([e = 0, t = 0, n = 0], i =
|
|
377
|
+
), oe = ([e = 0, t = 0, n = 0], i = I()) => be(
|
|
378
378
|
i,
|
|
379
379
|
(e - 0.5) * 360,
|
|
380
380
|
En(Math.atan(Math.sinh(-(t - 0.5) * (2 * Math.PI)))),
|
|
381
381
|
n * F
|
|
382
|
-
), vt = ([e = 0, t = 0, n = 0], i =
|
|
382
|
+
), vt = ([e = 0, t = 0, n = 0], i = I()) => {
|
|
383
383
|
const r = 2 ** -n;
|
|
384
384
|
return be(i, e * r, t * r, 0);
|
|
385
385
|
}, xt = ([e = 0, t = 0, n = 0]) => {
|
|
386
386
|
const i = Math.cos(e * 0.5), r = Math.sin(e * 0.5), s = Math.cos(t * 0.5), o = Math.sin(t * 0.5), c = Math.cos(n * 0.5), a = Math.sin(n * 0.5), f = r * s * c + i * o * a, l = i * o * c - r * s * a, h = i * s * a + r * o * c, u = i * s * c - r * o * a;
|
|
387
387
|
return [f, l, h, u];
|
|
388
|
-
},
|
|
388
|
+
}, wn = ([e = 0, t = 0, n = 0, i = 0]) => {
|
|
389
389
|
const r = (a, f, l) => Math.max(f, Math.min(a, l)), s = Math.atan2(2 * (i * e - t * n), 1 - 2 * (e * e + t * t)), o = Math.asin(r(2 * (i * t + n * e), -1, 1)), c = Math.atan2(2 * (i * n - e * t), 1 - 2 * (t * t + n * n));
|
|
390
390
|
return [s, o, c];
|
|
391
391
|
}, Et = {
|
|
@@ -398,54 +398,54 @@ const F = 40075017, De = (e) => e / 180 * Math.PI, En = (e) => e * 180 / Math.PI
|
|
|
398
398
|
const { target: n, offset: i, distance: r, orientation: s, fieldOfView: o } = {
|
|
399
399
|
...Et,
|
|
400
400
|
...e
|
|
401
|
-
}, [c = 0, a = 0] = t, [f = 0, l = 0] = i, h = Math.tan(De(45) / 2) / Math.tan(De(o) / 2), u = r / F, d = Math.max(1e3 / F, u),
|
|
402
|
-
Ot(b), Bt(b, De(o), c / a,
|
|
403
|
-
const
|
|
404
|
-
Ke(
|
|
405
|
-
const
|
|
406
|
-
if (!
|
|
401
|
+
}, [c = 0, a = 0] = t, [f = 0, l = 0] = i, h = Math.tan(De(45) / 2) / Math.tan(De(o) / 2), u = r / F, d = Math.max(1e3 / F, u), m = 1e3, _ = 1e-3, x = d * m * h, v = d * _ * h, A = ne(), b = he();
|
|
402
|
+
Ot(b), Bt(b, De(o), c / a, v, x), Wt(b, b, [1, -1, 1]);
|
|
403
|
+
const p = he();
|
|
404
|
+
Ke(p, xt(s));
|
|
405
|
+
const E = Xt(he(), b, p), R = Ct(he(), E);
|
|
406
|
+
if (!R)
|
|
407
407
|
throw new Error("No inverse");
|
|
408
|
-
const
|
|
408
|
+
const T = (O) => {
|
|
409
409
|
const Z = [c * O, a * O], H = [f * O, l * O];
|
|
410
410
|
return te({ ...e, offset: H }, Z);
|
|
411
|
-
},
|
|
412
|
-
const Q = 2 * O / c - 1,
|
|
413
|
-
return ot(H, Q,
|
|
414
|
-
}, g = ([O = 0, Z = 0, , H = 0], Q = ve()) => H < 0 ? Q : un(Q, (1 + O / H) * c * 0.5, (1 - Z / H) * a * 0.5),
|
|
415
|
-
const [H = 0, Q = 0,
|
|
416
|
-
return be(Z, H /
|
|
417
|
-
}, M = ([O = 0, Z = 0, H = 0], Q = ne()) => at(Q, ot(Q, O, Z, H, 1),
|
|
418
|
-
(X - P) ** 2 + (C -
|
|
419
|
-
2 * (P * (X - P) +
|
|
420
|
-
P ** 2 +
|
|
411
|
+
}, w = ([O = 0, Z = 0], H = ne()) => {
|
|
412
|
+
const Q = 2 * O / c - 1, we = -(2 * Z / a - 1);
|
|
413
|
+
return ot(H, Q, we, 0, 1);
|
|
414
|
+
}, g = ([O = 0, Z = 0, , H = 0], Q = ve()) => H < 0 ? Q : un(Q, (1 + O / H) * c * 0.5, (1 - Z / H) * a * 0.5), y = (O, Z = I()) => {
|
|
415
|
+
const [H = 0, Q = 0, we = 0, Te = 0] = at(A, O, R);
|
|
416
|
+
return be(Z, H / Te, Q / Te, we / Te);
|
|
417
|
+
}, M = ([O = 0, Z = 0, H = 0], Q = ne()) => at(Q, ot(Q, O, Z, H, 1), E), [S = 0, U = 0] = w([f + c / 2, l + a / 2]), [P = 0, z = 0, L = 0] = y([S, U, -1, 1]), [X = 0, C = 0, Y = 0] = y([S, U, 1.00001, 1]), [j = 0] = _n(
|
|
418
|
+
(X - P) ** 2 + (C - z) ** 2 + (Y - L) ** 2,
|
|
419
|
+
2 * (P * (X - P) + z * (C - z) + L * (Y - L)),
|
|
420
|
+
P ** 2 + z ** 2 + L ** 2 - (u * h) ** 2
|
|
421
421
|
);
|
|
422
422
|
if (isNaN(j))
|
|
423
423
|
throw new Error("Unexpected");
|
|
424
424
|
const q = [
|
|
425
425
|
P + j * (X - P),
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
], J = se(
|
|
426
|
+
z + j * (C - z),
|
|
427
|
+
L + j * (Y - L)
|
|
428
|
+
], J = se(I(), N(n), q), $ = (O, Z = I()) => re(Z, O, J), k = (O, Z = I()) => se(Z, O, J);
|
|
429
429
|
return {
|
|
430
430
|
camera: J,
|
|
431
431
|
screen: t,
|
|
432
432
|
projection: b,
|
|
433
|
-
modelView:
|
|
433
|
+
modelView: p,
|
|
434
434
|
fieldScale: h,
|
|
435
|
-
scale:
|
|
436
|
-
screenToClip:
|
|
435
|
+
scale: T,
|
|
436
|
+
screenToClip: w,
|
|
437
437
|
clipToScreen: g,
|
|
438
|
-
clipToLocal:
|
|
438
|
+
clipToLocal: y,
|
|
439
439
|
localToClip: M,
|
|
440
440
|
localToWorld: $,
|
|
441
441
|
worldToLocal: k,
|
|
442
|
-
project: (O) => g(M(k(
|
|
442
|
+
project: (O) => g(M(k(N(O)))),
|
|
443
443
|
unproject: (O, { targetZ: Z = 0 } = {}) => {
|
|
444
|
-
const H =
|
|
445
|
-
return Ht(
|
|
444
|
+
const H = w(O), [Q = 0, we = 0, , Te = 0] = H, St = [Q, we, -1, Te], tt = oe($(y(H))), nt = oe($(y(St))), [, , Ve = 0] = tt, [, , it = 0] = nt, Ut = Ve === it ? 0 : (Z - Ve) / (it - Ve);
|
|
445
|
+
return Ht(I(), tt, nt, Ut);
|
|
446
446
|
}
|
|
447
447
|
};
|
|
448
|
-
},
|
|
448
|
+
}, Tn = 100, Si = (e, t, n) => {
|
|
449
449
|
const {
|
|
450
450
|
enabled: i = () => !0,
|
|
451
451
|
draggable: r = () => !0,
|
|
@@ -453,72 +453,76 @@ const F = 40075017, De = (e) => e / 180 * Math.PI, En = (e) => e * 180 / Math.PI
|
|
|
453
453
|
onChangeView: o
|
|
454
454
|
} = n;
|
|
455
455
|
let c = !1, a = !1;
|
|
456
|
-
const { view: f } = n, l = ([
|
|
457
|
-
const [
|
|
456
|
+
const { view: f } = n, l = ([T = 0, w = 0]) => {
|
|
457
|
+
const [g, y] = [
|
|
458
458
|
e.width / devicePixelRatio,
|
|
459
459
|
e.height / devicePixelRatio
|
|
460
|
-
], { camera:
|
|
461
|
-
if (!
|
|
460
|
+
], { camera: M, fieldScale: S } = te(f(), [g, y]), { position: U, layer: P } = t.pick([T, w]);
|
|
461
|
+
if (!P)
|
|
462
462
|
return;
|
|
463
|
-
const
|
|
463
|
+
const z = Me(N(U), M) * F / S, L = [T - g / 2, w - y / 2];
|
|
464
464
|
o({
|
|
465
|
-
offset:
|
|
466
|
-
target:
|
|
467
|
-
distance:
|
|
468
|
-
});
|
|
469
|
-
}, h = (
|
|
465
|
+
offset: L,
|
|
466
|
+
target: U,
|
|
467
|
+
distance: z
|
|
468
|
+
}), a = !0;
|
|
469
|
+
}, h = (T, w) => {
|
|
470
470
|
if (!r() || t.dragging)
|
|
471
471
|
return;
|
|
472
|
-
a ||
|
|
473
|
-
const [
|
|
472
|
+
a || l([T, w]);
|
|
473
|
+
const [g, y] = [
|
|
474
474
|
e.width / devicePixelRatio,
|
|
475
475
|
e.height / devicePixelRatio
|
|
476
476
|
];
|
|
477
477
|
o({
|
|
478
|
-
offset: [
|
|
478
|
+
offset: [T - g / 2, w - y / 2]
|
|
479
479
|
});
|
|
480
|
-
}, u = (
|
|
480
|
+
}, u = (T, w, g, y) => {
|
|
481
481
|
if (!s())
|
|
482
482
|
return;
|
|
483
|
-
r() && !a &&
|
|
484
|
-
const [
|
|
483
|
+
r() && !a && l([T, w]);
|
|
484
|
+
const [M, S] = [
|
|
485
485
|
e.width / devicePixelRatio,
|
|
486
486
|
e.height / devicePixelRatio
|
|
487
|
-
], [
|
|
487
|
+
], [U = 0, P = 0, z = 0] = f().orientation ?? [], L = [
|
|
488
488
|
Math.min(
|
|
489
489
|
Math.PI / 2 - 0.1,
|
|
490
|
-
Math.max(0.1,
|
|
490
|
+
Math.max(0.1, U - y / S * Math.PI)
|
|
491
491
|
),
|
|
492
|
-
|
|
493
|
-
|
|
492
|
+
P,
|
|
493
|
+
z - g / M * Math.PI
|
|
494
494
|
];
|
|
495
495
|
o({
|
|
496
|
-
orientation:
|
|
496
|
+
orientation: L
|
|
497
497
|
});
|
|
498
|
-
}
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
}, _ = (
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
498
|
+
};
|
|
499
|
+
let d = !1;
|
|
500
|
+
const m = (T) => {
|
|
501
|
+
T.preventDefault(), a = !1, d = !0;
|
|
502
|
+
}, _ = () => {
|
|
503
|
+
d = !1;
|
|
504
|
+
}, x = ({ buttons: T, movementX: w, movementY: g, x: y, y: M }) => {
|
|
505
|
+
!i() || !d || (T === 1 && r() ? h(y, M) : T === 2 && s() && u(y, M, w, g));
|
|
506
|
+
}, v = (T) => {
|
|
507
|
+
T.preventDefault();
|
|
508
|
+
const w = T.touches.item(0);
|
|
509
|
+
if (!w)
|
|
506
510
|
return;
|
|
507
|
-
const { clientX:
|
|
508
|
-
h(
|
|
509
|
-
},
|
|
511
|
+
const { clientX: g, clientY: y } = w;
|
|
512
|
+
h(g, y);
|
|
513
|
+
}, A = Pt(() => c = !1, 100), b = ({ x: T, y: w, deltaY: g }) => {
|
|
510
514
|
if (!i())
|
|
511
515
|
return;
|
|
512
|
-
c || (r() && l([
|
|
516
|
+
c || (r() && l([T, w]), c = !0);
|
|
513
517
|
let { distance: y } = { ...Et, ...f() };
|
|
514
518
|
y = Math.min(
|
|
515
|
-
Math.max(y * Math.exp(
|
|
519
|
+
Math.max(y * Math.exp(g * 1e-3), Tn),
|
|
516
520
|
F
|
|
517
|
-
), o({ distance: y }),
|
|
518
|
-
},
|
|
519
|
-
return e.addEventListener("mousedown",
|
|
521
|
+
), o({ distance: y }), A();
|
|
522
|
+
}, p = (T) => T.preventDefault(), E = (T) => T.preventDefault();
|
|
523
|
+
return e.addEventListener("mousedown", m), e.addEventListener("mousemove", x), e.addEventListener("touchstart", m, { passive: !1 }), e.addEventListener("touchmove", v, { passive: !1 }), e.addEventListener("gesturestart", p), e.addEventListener("wheel", b, { passive: !0 }), e.addEventListener("contextmenu", E), window.addEventListener("mouseup", _), {
|
|
520
524
|
dispose: () => {
|
|
521
|
-
e.removeEventListener("mousedown",
|
|
525
|
+
e.removeEventListener("mousedown", m), e.removeEventListener("mousemove", x), e.removeEventListener("touchstart", m), e.removeEventListener("touchmove", v), e.removeEventListener("gesturestart", p), e.removeEventListener("wheel", b), e.removeEventListener("contextmenu", E), window.removeEventListener("mouseup", _);
|
|
522
526
|
}
|
|
523
527
|
};
|
|
524
528
|
}, V = ({
|
|
@@ -637,7 +641,7 @@ const Pe = gn(), Rn = ({
|
|
|
637
641
|
0
|
|
638
642
|
);
|
|
639
643
|
}, dispose: () => e.deleteTexture(t) };
|
|
640
|
-
},
|
|
644
|
+
}, wt = ({
|
|
641
645
|
gl: e,
|
|
642
646
|
url: t,
|
|
643
647
|
onLoad: n
|
|
@@ -739,12 +743,12 @@ const Ui = (e, t = {}) => {
|
|
|
739
743
|
);
|
|
740
744
|
const a = ce(
|
|
741
745
|
() => t.url?.() ?? "",
|
|
742
|
-
(
|
|
743
|
-
const _ =
|
|
746
|
+
(m) => {
|
|
747
|
+
const _ = wt({
|
|
744
748
|
gl: n,
|
|
745
|
-
url:
|
|
746
|
-
onLoad: ({ width:
|
|
747
|
-
r = [
|
|
749
|
+
url: m,
|
|
750
|
+
onLoad: ({ width: x, height: v }) => {
|
|
751
|
+
r = [x, v], n.texParameteri(n.TEXTURE_2D, n.TEXTURE_MIN_FILTER, n.LINEAR), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_MAG_FILTER, n.LINEAR), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_WRAP_S, n.CLAMP_TO_EDGE), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_WRAP_T, n.CLAMP_TO_EDGE), i?.dispose(), i = _;
|
|
748
752
|
}
|
|
749
753
|
});
|
|
750
754
|
}
|
|
@@ -753,25 +757,25 @@ const Ui = (e, t = {}) => {
|
|
|
753
757
|
uvBuffer: o,
|
|
754
758
|
indexBuffer: c
|
|
755
759
|
}), h = ({
|
|
756
|
-
viewport: { projection:
|
|
760
|
+
viewport: { projection: m, modelView: _, camera: x, screen: v },
|
|
757
761
|
depth: A = !1,
|
|
758
762
|
index: b = 0
|
|
759
763
|
}) => {
|
|
760
|
-
const
|
|
764
|
+
const p = t.position?.() ?? [0, 0, 0], E = t.color?.() ?? [1, 1, 1, 1], R = t.size?.() ?? 100, T = t.minSizePixels?.() ?? 0, w = t.maxSizePixels?.() ?? Number.MAX_VALUE;
|
|
761
765
|
if (a(), !i || Ee(n, A, t))
|
|
762
766
|
return;
|
|
763
767
|
(A ? l : f).execute({
|
|
764
|
-
projection:
|
|
768
|
+
projection: m,
|
|
765
769
|
modelView: _,
|
|
766
|
-
camera: K(
|
|
767
|
-
screen:
|
|
770
|
+
camera: K(x),
|
|
771
|
+
screen: v,
|
|
768
772
|
image: i,
|
|
769
773
|
imageSize: r,
|
|
770
|
-
position: K(
|
|
771
|
-
color:
|
|
772
|
-
size:
|
|
773
|
-
minSizePixels:
|
|
774
|
-
maxSizePixels:
|
|
774
|
+
position: K(N(p)),
|
|
775
|
+
color: E,
|
|
776
|
+
size: R,
|
|
777
|
+
minSizePixels: T,
|
|
778
|
+
maxSizePixels: w,
|
|
775
779
|
index: b
|
|
776
780
|
});
|
|
777
781
|
}, u = () => {
|
|
@@ -795,22 +799,22 @@ const Ui = (e, t = {}) => {
|
|
|
795
799
|
stride: 2 * Float32Array.BYTES_PER_ELEMENT
|
|
796
800
|
}), h = f.attribute2f("uv", i, {
|
|
797
801
|
stride: 2 * Float32Array.BYTES_PER_ELEMENT
|
|
798
|
-
}), u = f.uniformMatrix4f("projection"), d = f.uniformMatrix4f("model_view"),
|
|
802
|
+
}), u = f.uniformMatrix4f("projection"), d = f.uniformMatrix4f("model_view"), m = f.uniform3i("camera"), _ = f.uniform2f("screen"), x = f.uniform1i("image"), v = f.uniform2f("image_size"), A = f.uniform3i("position"), b = f.uniform4f("color"), p = f.uniform1i("index"), E = f.uniform1f("size"), R = f.uniform1f("min_size_pixels"), T = f.uniform1f("max_size_pixels");
|
|
799
803
|
return { execute: ({
|
|
800
804
|
projection: g,
|
|
801
|
-
modelView:
|
|
805
|
+
modelView: y,
|
|
802
806
|
camera: M,
|
|
803
807
|
screen: S,
|
|
804
808
|
image: U,
|
|
805
809
|
imageSize: P,
|
|
806
|
-
position:
|
|
807
|
-
color:
|
|
810
|
+
position: z,
|
|
811
|
+
color: L,
|
|
808
812
|
size: X,
|
|
809
813
|
minSizePixels: C,
|
|
810
814
|
maxSizePixels: Y,
|
|
811
815
|
index: j
|
|
812
816
|
}) => {
|
|
813
|
-
f.use(), l.use(), h.use(), u.set(g), d.set(
|
|
817
|
+
f.use(), l.use(), h.use(), u.set(g), d.set(y), m.set(M), _.set(S), v.set(P), A.set(z), b.set(L), E.set(X), R.set(C), T.set(Y), p.set(j), e.activeTexture(e.TEXTURE0), x.set(0), U.use(), r.use(), e.drawElements(e.TRIANGLES, 6, e.UNSIGNED_SHORT, 0);
|
|
814
818
|
} };
|
|
815
819
|
}, o = s(), c = s(!0);
|
|
816
820
|
return { renderProgram: o, depthProgram: c };
|
|
@@ -934,70 +938,70 @@ const Ii = (e, t = {}) => {
|
|
|
934
938
|
}), l = yt(n);
|
|
935
939
|
l.use(), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_MIN_FILTER, n.LINEAR), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_MAG_FILTER, n.LINEAR), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_WRAP_S, n.CLAMP_TO_EDGE), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_WRAP_T, n.REPEAT);
|
|
936
940
|
const h = ({
|
|
937
|
-
viewport: { projection:
|
|
938
|
-
depth:
|
|
939
|
-
index:
|
|
941
|
+
viewport: { projection: x, modelView: v, camera: A, screen: b },
|
|
942
|
+
depth: p = !1,
|
|
943
|
+
index: E = 0
|
|
940
944
|
}) => {
|
|
941
945
|
u(), d();
|
|
942
|
-
const
|
|
943
|
-
if (Ee(n,
|
|
946
|
+
const R = t.color?.() ?? [1, 1, 1, 1], T = t.width?.() ?? 1, w = t.minWidthPixels?.() ?? 0, g = t.maxWidthPixels?.() ?? Number.MAX_VALUE, y = t.depthWidthPixels?.(), M = t.dashSize?.() ?? 1e3, S = t.dashOffset?.() ?? 0;
|
|
947
|
+
if (Ee(n, p, t))
|
|
944
948
|
return;
|
|
945
|
-
(
|
|
946
|
-
projection:
|
|
947
|
-
modelView:
|
|
949
|
+
(p ? f : a).execute({
|
|
950
|
+
projection: x,
|
|
951
|
+
modelView: v,
|
|
948
952
|
camera: K(A),
|
|
949
953
|
screen: b,
|
|
950
954
|
count: i,
|
|
951
|
-
color:
|
|
952
|
-
width:
|
|
953
|
-
minWidthPixels:
|
|
954
|
-
maxWidthPixels:
|
|
955
|
-
index:
|
|
955
|
+
color: R,
|
|
956
|
+
width: T,
|
|
957
|
+
minWidthPixels: p && y !== void 0 ? Math.max(w, y) : w,
|
|
958
|
+
maxWidthPixels: p && y !== void 0 ? Math.max(g, y) : g,
|
|
959
|
+
index: E,
|
|
956
960
|
dash: l,
|
|
957
961
|
dashSize: M,
|
|
958
962
|
dashOffset: S
|
|
959
963
|
});
|
|
960
964
|
}, u = ce(
|
|
961
965
|
() => t.points?.() ?? [],
|
|
962
|
-
(
|
|
963
|
-
const
|
|
964
|
-
const [
|
|
965
|
-
return !
|
|
966
|
-
const
|
|
966
|
+
(x) => {
|
|
967
|
+
const v = x.flatMap((E) => {
|
|
968
|
+
const [R] = E, [T] = E.slice(-1);
|
|
969
|
+
return !R || !T ? [] : ((g) => {
|
|
970
|
+
const y = new Array(g.length * 3 * 4);
|
|
967
971
|
for (let M = 0; M < g.length; M++) {
|
|
968
972
|
const [S = 0, U = 0, P = 0] = g[M] ?? [];
|
|
969
|
-
for (let
|
|
970
|
-
const
|
|
971
|
-
|
|
973
|
+
for (let z = 0; z < 4; z++) {
|
|
974
|
+
const L = M * 3 * 4 + z * 3;
|
|
975
|
+
y[L + 0] = S, y[L + 1] = U, y[L + 2] = P;
|
|
972
976
|
}
|
|
973
977
|
}
|
|
974
|
-
return
|
|
975
|
-
})([
|
|
976
|
-
}), { indexData: A } =
|
|
977
|
-
({ indexData:
|
|
978
|
-
if (
|
|
979
|
-
return { indexData:
|
|
980
|
-
const
|
|
981
|
-
const [
|
|
982
|
-
(P) => P + g * 2 +
|
|
978
|
+
return y;
|
|
979
|
+
})([R, ...E, T].map((g) => K(N(g))));
|
|
980
|
+
}), { indexData: A } = x.reduce(
|
|
981
|
+
({ indexData: E, count: R }, T) => {
|
|
982
|
+
if (T.length === 0)
|
|
983
|
+
return { indexData: E, count: R };
|
|
984
|
+
const w = xe(0, (T.length - 1) * 2).flatMap((g) => {
|
|
985
|
+
const [y = 0, M = 0, S = 0, U = 0] = [0, 1, 2, 3].map(
|
|
986
|
+
(P) => P + g * 2 + R
|
|
983
987
|
);
|
|
984
988
|
return [
|
|
985
|
-
|
|
989
|
+
y,
|
|
986
990
|
M,
|
|
987
991
|
U,
|
|
988
992
|
/**/
|
|
989
|
-
|
|
993
|
+
y,
|
|
990
994
|
U,
|
|
991
995
|
S
|
|
992
996
|
];
|
|
993
997
|
});
|
|
994
|
-
return
|
|
998
|
+
return R += (T.length + 2) * 4, E = E.concat(w), { indexData: E, count: R };
|
|
995
999
|
},
|
|
996
1000
|
{ indexData: [], count: 0 }
|
|
997
1001
|
);
|
|
998
1002
|
i = A.length;
|
|
999
|
-
const b =
|
|
1000
|
-
(
|
|
1003
|
+
const b = x.flatMap(
|
|
1004
|
+
(E) => E.length === 0 ? [] : xe(0, (E.length + 1) * 2).flatMap(() => [
|
|
1001
1005
|
-1,
|
|
1002
1006
|
-1,
|
|
1003
1007
|
//
|
|
@@ -1010,43 +1014,43 @@ const Ii = (e, t = {}) => {
|
|
|
1010
1014
|
1,
|
|
1011
1015
|
1
|
|
1012
1016
|
])
|
|
1013
|
-
),
|
|
1014
|
-
const
|
|
1015
|
-
(M, S) => Me(
|
|
1017
|
+
), p = x.flatMap((E) => {
|
|
1018
|
+
const T = E.map(
|
|
1019
|
+
(M, S) => Me(N(M), N(E[S - 1] ?? M)) * F
|
|
1016
1020
|
).reduce(
|
|
1017
1021
|
({ current: M, result: S }, U) => (M += U, S.push(M), { current: M, result: S }),
|
|
1018
1022
|
{ current: 0, result: [] }
|
|
1019
|
-
).result, [
|
|
1020
|
-
return
|
|
1023
|
+
).result, [w] = T, [g] = T.slice(-1);
|
|
1024
|
+
return w === void 0 || g === void 0 ? [] : ((M) => {
|
|
1021
1025
|
const S = new Array(M.length * 4);
|
|
1022
1026
|
for (let U = 0; U < M.length; U++)
|
|
1023
1027
|
S[U * 4 + 0] = M[U], S[U * 4 + 1] = M[U], S[U * 4 + 2] = M[U], S[U * 4 + 3] = M[U];
|
|
1024
1028
|
return S;
|
|
1025
|
-
})([
|
|
1029
|
+
})([w, ...T, g]);
|
|
1026
1030
|
});
|
|
1027
|
-
r.set(
|
|
1031
|
+
r.set(v), s.set(A), o.set(b), c.set(p);
|
|
1028
1032
|
}
|
|
1029
1033
|
), d = ce(
|
|
1030
1034
|
() => t.dashPattern?.(),
|
|
1031
|
-
(
|
|
1032
|
-
|
|
1035
|
+
(x) => {
|
|
1036
|
+
x = x ?? [[1, 1, 1, 1]], l.use(), n.texImage2D(
|
|
1033
1037
|
n.TEXTURE_2D,
|
|
1034
1038
|
0,
|
|
1035
1039
|
n.RGBA,
|
|
1036
|
-
|
|
1040
|
+
x.length,
|
|
1037
1041
|
1,
|
|
1038
1042
|
0,
|
|
1039
1043
|
n.RGBA,
|
|
1040
1044
|
n.UNSIGNED_BYTE,
|
|
1041
|
-
new Uint8Array(
|
|
1045
|
+
new Uint8Array(x.flatMap((v) => [...v.map((A) => A * 255)]))
|
|
1042
1046
|
);
|
|
1043
1047
|
}
|
|
1044
|
-
),
|
|
1048
|
+
), m = () => {
|
|
1045
1049
|
l.dispose(), r.dispose(), s.dispose(), o.dispose(), c.dispose();
|
|
1046
1050
|
}, _ = ye(t);
|
|
1047
1051
|
return {
|
|
1048
1052
|
render: h,
|
|
1049
|
-
dispose:
|
|
1053
|
+
dispose: m,
|
|
1050
1054
|
..._
|
|
1051
1055
|
};
|
|
1052
1056
|
}, Pn = ({ gl: e, programs: t }, {
|
|
@@ -1061,21 +1065,21 @@ const Ii = (e, t = {}) => {
|
|
|
1061
1065
|
fragmentSource: f ? _e : Sn
|
|
1062
1066
|
}), h = Float32Array.BYTES_PER_ELEMENT, u = Int32Array.BYTES_PER_ELEMENT, d = l.attribute3i("previous", n, {
|
|
1063
1067
|
stride: u * 3
|
|
1064
|
-
}),
|
|
1068
|
+
}), m = l.attribute3i("current", n, {
|
|
1065
1069
|
stride: u * 3,
|
|
1066
1070
|
offset: u * 3 * 4
|
|
1067
1071
|
}), _ = l.attribute3i("next", n, {
|
|
1068
1072
|
stride: u * 3,
|
|
1069
1073
|
offset: u * 3 * 4 * 2
|
|
1070
|
-
}),
|
|
1074
|
+
}), x = l.attribute2f("corner", r, {
|
|
1071
1075
|
stride: h * 2
|
|
1072
|
-
}),
|
|
1076
|
+
}), v = l.attribute1f("distance", s, {
|
|
1073
1077
|
stride: h,
|
|
1074
1078
|
offset: h * 1 * 4
|
|
1075
|
-
}), A = l.uniformMatrix4f("projection"), b = l.uniformMatrix4f("model_view"),
|
|
1079
|
+
}), A = l.uniformMatrix4f("projection"), b = l.uniformMatrix4f("model_view"), p = l.uniform3i("camera"), E = l.uniform2f("screen"), R = l.uniform4f("color"), T = l.uniform1f("width"), w = l.uniform1f("max_width_pixels"), g = l.uniform1f("min_width_pixels"), y = l.uniform1i("index"), M = l.uniform1i("dash"), S = l.uniform1f("dash_size"), U = l.uniform1f("dash_offset");
|
|
1076
1080
|
return { execute: ({
|
|
1077
|
-
projection:
|
|
1078
|
-
modelView:
|
|
1081
|
+
projection: z,
|
|
1082
|
+
modelView: L,
|
|
1079
1083
|
camera: X,
|
|
1080
1084
|
screen: C,
|
|
1081
1085
|
count: Y,
|
|
@@ -1088,7 +1092,7 @@ const Ii = (e, t = {}) => {
|
|
|
1088
1092
|
dashSize: et,
|
|
1089
1093
|
dashOffset: O
|
|
1090
1094
|
}) => {
|
|
1091
|
-
Y !== 0 && (l.use(), d.use(),
|
|
1095
|
+
Y !== 0 && (l.use(), d.use(), m.use(), _.use(), x.use(), v.use(), A.set(z), b.set(L), p.set(X), E.set(C), R.set(j), T.set(q), g.set(J), w.set($), y.set(k), S.set(et), U.set(O), e.activeTexture(e.TEXTURE0), M.set(0), Je.use(), i.use(), e.drawElements(e.TRIANGLES, Y, e.UNSIGNED_SHORT, 0));
|
|
1092
1096
|
} };
|
|
1093
1097
|
}, c = o(), a = o(!0);
|
|
1094
1098
|
return { renderProgram: c, depthProgram: a };
|
|
@@ -1151,35 +1155,35 @@ const Di = (e, t = {}) => {
|
|
|
1151
1155
|
indexBuffer: s,
|
|
1152
1156
|
normalBuffer: o
|
|
1153
1157
|
}), f = ({
|
|
1154
|
-
viewport: { projection: d, modelView:
|
|
1155
|
-
depth:
|
|
1158
|
+
viewport: { projection: d, modelView: m, camera: _, screen: x },
|
|
1159
|
+
depth: v = !1,
|
|
1156
1160
|
index: A = 0
|
|
1157
1161
|
}) => {
|
|
1158
|
-
const b = t.position?.() ?? [0, 0, 0],
|
|
1159
|
-
if (l(), Ee(n,
|
|
1162
|
+
const b = t.position?.() ?? [0, 0, 0], p = t.orientation?.() ?? [0, 0, 0, 1], E = t.color?.() ?? [1, 1, 1, 1], R = t.diffuse?.() ?? [0, 0, 0, 0], T = t.size?.() ?? 1, w = t.minSizePixels?.() ?? 0, g = t.maxSizePixels?.() ?? Number.MAX_VALUE;
|
|
1163
|
+
if (l(), Ee(n, v, t))
|
|
1160
1164
|
return;
|
|
1161
|
-
const
|
|
1162
|
-
(
|
|
1165
|
+
const y = ([S = 0, U = 0, P = 0, z = 0]) => [-S, U, P, z];
|
|
1166
|
+
(v ? a : c).execute({
|
|
1163
1167
|
projection: d,
|
|
1164
|
-
modelView:
|
|
1168
|
+
modelView: m,
|
|
1165
1169
|
camera: K(_),
|
|
1166
|
-
screen:
|
|
1170
|
+
screen: x,
|
|
1167
1171
|
count: i,
|
|
1168
|
-
position: K(
|
|
1169
|
-
orientation: Ke(he(),
|
|
1170
|
-
color:
|
|
1171
|
-
diffuse:
|
|
1172
|
-
size:
|
|
1173
|
-
minSizePixels:
|
|
1172
|
+
position: K(N(b)),
|
|
1173
|
+
orientation: Ke(he(), y(p)),
|
|
1174
|
+
color: E,
|
|
1175
|
+
diffuse: R,
|
|
1176
|
+
size: T,
|
|
1177
|
+
minSizePixels: w,
|
|
1174
1178
|
maxSizePixels: g,
|
|
1175
1179
|
index: A
|
|
1176
1180
|
});
|
|
1177
1181
|
}, l = ce(
|
|
1178
1182
|
() => t.mesh?.(),
|
|
1179
1183
|
(d) => {
|
|
1180
|
-
const { vertices:
|
|
1181
|
-
r.set(
|
|
1182
|
-
|
|
1184
|
+
const { vertices: m = [], indices: _ = [], normals: x = [] } = d ?? {};
|
|
1185
|
+
r.set(m.flatMap((v) => [...v])), s.set(_.flatMap((v) => [...v])), o.set(
|
|
1186
|
+
x.length === 0 ? m.flatMap(() => [0, 0, 0]) : x.flatMap((v) => [...v])
|
|
1183
1187
|
), i = _.length * 3;
|
|
1184
1188
|
}
|
|
1185
1189
|
), h = () => {
|
|
@@ -1199,28 +1203,28 @@ const Di = (e, t = {}) => {
|
|
|
1199
1203
|
const f = t.get({
|
|
1200
1204
|
vertexSource: Ln,
|
|
1201
1205
|
fragmentSource: a ? _e : zn
|
|
1202
|
-
}), l = f.attribute3f("vertex", n), h = f.attribute3f("normal", r), u = f.uniformMatrix4f("projection"), d = f.uniformMatrix4f("model_view"),
|
|
1206
|
+
}), l = f.attribute3f("vertex", n), h = f.attribute3f("normal", r), u = f.uniformMatrix4f("projection"), d = f.uniformMatrix4f("model_view"), m = f.uniform3i("camera"), _ = f.uniform3i("position"), x = f.uniformMatrix4f("orientation"), v = f.uniform2f("screen"), A = f.uniform4f("color"), b = f.uniform4f("diffuse"), p = f.uniform1f("size"), E = f.uniform1f("min_size_pixels"), R = f.uniform1f("max_size_pixels"), T = f.uniform1i("index");
|
|
1203
1207
|
return { execute: ({
|
|
1204
1208
|
projection: g,
|
|
1205
|
-
modelView:
|
|
1209
|
+
modelView: y,
|
|
1206
1210
|
camera: M,
|
|
1207
1211
|
screen: S,
|
|
1208
1212
|
count: U,
|
|
1209
1213
|
position: P,
|
|
1210
|
-
orientation:
|
|
1211
|
-
color:
|
|
1214
|
+
orientation: z,
|
|
1215
|
+
color: L,
|
|
1212
1216
|
diffuse: X,
|
|
1213
1217
|
size: C,
|
|
1214
1218
|
minSizePixels: Y,
|
|
1215
1219
|
maxSizePixels: j,
|
|
1216
1220
|
index: q
|
|
1217
1221
|
}) => {
|
|
1218
|
-
f.use(), l.use(), h.use(), u.set(g), d.set(
|
|
1222
|
+
f.use(), l.use(), h.use(), u.set(g), d.set(y), m.set(M), v.set(S), _.set(P), x.set(z), A.set(L), b.set(X), p.set(C), E.set(Y), R.set(j), T.set(q), i.use(), e.drawElements(e.TRIANGLES, U, e.UNSIGNED_SHORT, 0);
|
|
1219
1223
|
} };
|
|
1220
1224
|
}, o = s(), c = s(!0);
|
|
1221
1225
|
return { renderProgram: o, depthProgram: c };
|
|
1222
1226
|
};
|
|
1223
|
-
var
|
|
1227
|
+
var Tt = function(e, t, n, i, r) {
|
|
1224
1228
|
let s, o = null;
|
|
1225
1229
|
if (r === Gn(e, t, n, i) > 0)
|
|
1226
1230
|
for (s = t; s < n; s += i)
|
|
@@ -1272,21 +1276,21 @@ var wt = function(e, t, n, i, r) {
|
|
|
1272
1276
|
if (D(r, s, o) >= 0)
|
|
1273
1277
|
return !1;
|
|
1274
1278
|
const c = r.x < s.x ? r.x < o.x ? r.x : o.x : s.x < o.x ? s.x : o.x, a = r.y < s.y ? r.y < o.y ? r.y : o.y : s.y < o.y ? s.y : o.y, f = r.x > s.x ? r.x > o.x ? r.x : o.x : s.x > o.x ? s.x : o.x, l = r.y > s.y ? r.y > o.y ? r.y : o.y : s.y > o.y ? s.y : o.y, h = Ge(c, a, t, n, i), u = Ge(f, l, t, n, i);
|
|
1275
|
-
let { prevZ: d, nextZ:
|
|
1276
|
-
for (; d !== null &&
|
|
1277
|
-
if (d !== e.prev && d !== e.next && me(r.x, r.y, s.x, s.y, o.x, o.y, d.x, d.y) && D(d.prev, d, d.next) >= 0 || (d = d.prevZ,
|
|
1279
|
+
let { prevZ: d, nextZ: m } = e;
|
|
1280
|
+
for (; d !== null && m !== null && d.z >= h && m.z <= u; ) {
|
|
1281
|
+
if (d !== e.prev && d !== e.next && me(r.x, r.y, s.x, s.y, o.x, o.y, d.x, d.y) && D(d.prev, d, d.next) >= 0 || (d = d.prevZ, m !== e.prev && m !== e.next && me(r.x, r.y, s.x, s.y, o.x, o.y, m.x, m.y) && D(m.prev, m, m.next) >= 0))
|
|
1278
1282
|
return !1;
|
|
1279
|
-
|
|
1283
|
+
m = m.nextZ;
|
|
1280
1284
|
}
|
|
1281
1285
|
for (; d !== null && d.z >= h; ) {
|
|
1282
1286
|
if (d !== e.prev && d !== e.next && me(r.x, r.y, s.x, s.y, o.x, o.y, d.x, d.y) && D(d.prev, d, d.next) >= 0)
|
|
1283
1287
|
return !1;
|
|
1284
1288
|
d = d.prevZ;
|
|
1285
1289
|
}
|
|
1286
|
-
for (;
|
|
1287
|
-
if (
|
|
1290
|
+
for (; m !== null && m.z <= u; ) {
|
|
1291
|
+
if (m !== e.prev && m !== e.next && me(r.x, r.y, s.x, s.y, o.x, o.y, m.x, m.y) && D(m.prev, m, m.next) >= 0)
|
|
1288
1292
|
return !1;
|
|
1289
|
-
|
|
1293
|
+
m = m.nextZ;
|
|
1290
1294
|
}
|
|
1291
1295
|
return !0;
|
|
1292
1296
|
}, On = function(e, t, n) {
|
|
@@ -1314,7 +1318,7 @@ var wt = function(e, t, n, i, r) {
|
|
|
1314
1318
|
const r = [];
|
|
1315
1319
|
let s, o, c, a, f;
|
|
1316
1320
|
for (s = 0, o = t.length; s < o; s++)
|
|
1317
|
-
c = t[s] * i, a = s < o - 1 ? t[s + 1] * i : e.length, f =
|
|
1321
|
+
c = t[s] * i, a = s < o - 1 ? t[s + 1] * i : e.length, f = Tt(e, c, a, i, !1), f === f.next && (f.steiner = !0), r.push(Yn(f));
|
|
1318
1322
|
for (r.sort(Wn), s = 0; s < r.length; s++)
|
|
1319
1323
|
n = jn(r[s], n), n = ae(n, n.next);
|
|
1320
1324
|
return n;
|
|
@@ -1444,15 +1448,15 @@ class Xe {
|
|
|
1444
1448
|
}
|
|
1445
1449
|
function Fn(e, t = [], n = 2) {
|
|
1446
1450
|
const i = t.length > 0, r = i ? t[0] * n : e.length;
|
|
1447
|
-
let s =
|
|
1451
|
+
let s = Tt(e, 0, r, n, !0);
|
|
1448
1452
|
const o = [];
|
|
1449
1453
|
if (s === null || s.next === s.prev)
|
|
1450
1454
|
return o;
|
|
1451
1455
|
let c = 1 / 0, a = 1 / 0, f = -1 / 0, l = -1 / 0, h = 0, u, d;
|
|
1452
1456
|
if (i && (s = Xn(e, t, s, n)), e.length > 80 * n) {
|
|
1453
1457
|
c = f = e[0], a = l = e[1];
|
|
1454
|
-
for (let
|
|
1455
|
-
u = e[
|
|
1458
|
+
for (let m = n; m < r; m += n)
|
|
1459
|
+
u = e[m], d = e[m + 1], u < c && (c = u), d < a && (a = d), u > f && (f = u), d > l && (l = d);
|
|
1456
1460
|
h = Math.max(f - c, l - a), h = h !== 0 ? 1 / h : 0;
|
|
1457
1461
|
}
|
|
1458
1462
|
return ge(s, o, n, c, a, h, 0), o;
|
|
@@ -1587,27 +1591,27 @@ const Oi = (e, t = {}) => {
|
|
|
1587
1591
|
positionBuffer: r,
|
|
1588
1592
|
indexBuffer: s
|
|
1589
1593
|
}), a = ({
|
|
1590
|
-
viewport: { projection: u, modelView: d, camera:
|
|
1591
|
-
depth:
|
|
1592
|
-
index:
|
|
1594
|
+
viewport: { projection: u, modelView: d, camera: m, screen: _ },
|
|
1595
|
+
depth: x = !1,
|
|
1596
|
+
index: v = 0
|
|
1593
1597
|
}) => {
|
|
1594
1598
|
const A = t.color?.() ?? [1, 1, 1, 1];
|
|
1595
|
-
if (f(), Ee(n,
|
|
1599
|
+
if (f(), Ee(n, x, t))
|
|
1596
1600
|
return;
|
|
1597
|
-
(
|
|
1601
|
+
(x ? c : o).execute({
|
|
1598
1602
|
projection: u,
|
|
1599
1603
|
modelView: d,
|
|
1600
|
-
camera: K(
|
|
1604
|
+
camera: K(m),
|
|
1601
1605
|
screen: _,
|
|
1602
1606
|
count: i,
|
|
1603
1607
|
color: A,
|
|
1604
|
-
index:
|
|
1608
|
+
index: v
|
|
1605
1609
|
});
|
|
1606
1610
|
}, f = ce(
|
|
1607
1611
|
() => t.points?.() ?? [],
|
|
1608
1612
|
(u) => {
|
|
1609
|
-
const { vertices: d, indices:
|
|
1610
|
-
r.set(d), s.set(
|
|
1613
|
+
const { vertices: d, indices: m } = u.length > 0 ? Qn(u.map((_) => _.map((x) => [...K(N(x))]))) : { vertices: [], indices: [] };
|
|
1614
|
+
r.set(d), s.set(m), i = m.length;
|
|
1611
1615
|
}
|
|
1612
1616
|
), l = () => {
|
|
1613
1617
|
r.dispose(), s.dispose();
|
|
@@ -1627,17 +1631,17 @@ const Oi = (e, t = {}) => {
|
|
|
1627
1631
|
fragmentSource: c ? _e : ei
|
|
1628
1632
|
}), f = a.attribute3i("position", n, {
|
|
1629
1633
|
stride: 3 * Int32Array.BYTES_PER_ELEMENT
|
|
1630
|
-
}), l = a.uniformMatrix4f("projection"), h = a.uniformMatrix4f("model_view"), u = a.uniform3i("camera"), d = a.uniform2f("screen"),
|
|
1634
|
+
}), l = a.uniformMatrix4f("projection"), h = a.uniformMatrix4f("model_view"), u = a.uniform3i("camera"), d = a.uniform2f("screen"), m = a.uniform4f("color"), _ = a.uniform1i("index");
|
|
1631
1635
|
return { execute: ({
|
|
1632
|
-
projection:
|
|
1636
|
+
projection: v,
|
|
1633
1637
|
modelView: A,
|
|
1634
1638
|
camera: b,
|
|
1635
|
-
screen:
|
|
1636
|
-
count:
|
|
1637
|
-
color:
|
|
1638
|
-
index:
|
|
1639
|
+
screen: p,
|
|
1640
|
+
count: E,
|
|
1641
|
+
color: R,
|
|
1642
|
+
index: T
|
|
1639
1643
|
}) => {
|
|
1640
|
-
|
|
1644
|
+
E !== 0 && (a.use(), f.use(), l.set(v), h.set(A), u.set(b), d.set(p), m.set(R), _.set(T), i.use(), e.drawElements(e.TRIANGLES, E, e.UNSIGNED_SHORT, 0));
|
|
1641
1645
|
} };
|
|
1642
1646
|
}, s = r(), o = r(!0);
|
|
1643
1647
|
return { renderProgram: s, depthProgram: o };
|
|
@@ -1708,23 +1712,23 @@ const Ci = (e, t = {}) => {
|
|
|
1708
1712
|
uvBuffer: r,
|
|
1709
1713
|
indexBuffer: s
|
|
1710
1714
|
}), f = ({
|
|
1711
|
-
viewport: { projection: u, modelView: d, camera:
|
|
1712
|
-
depth:
|
|
1713
|
-
index:
|
|
1715
|
+
viewport: { projection: u, modelView: d, camera: m, screen: _ },
|
|
1716
|
+
depth: x = !1,
|
|
1717
|
+
index: v = 0
|
|
1714
1718
|
}) => {
|
|
1715
|
-
const A = t.position?.() ?? [0, 0, 0], b = t.orientation?.() ?? [0, 0, 0, 1],
|
|
1716
|
-
if (o(), Ee(n,
|
|
1719
|
+
const A = t.position?.() ?? [0, 0, 0], b = t.orientation?.() ?? [0, 0, 0, 1], p = t.range?.() ?? 1e3;
|
|
1720
|
+
if (o(), Ee(n, x, t))
|
|
1717
1721
|
return;
|
|
1718
|
-
(
|
|
1722
|
+
(x ? a : c).execute({
|
|
1719
1723
|
projection: u,
|
|
1720
1724
|
modelView: d,
|
|
1721
|
-
camera: K(
|
|
1725
|
+
camera: K(m),
|
|
1722
1726
|
screen: _,
|
|
1723
1727
|
image: i,
|
|
1724
|
-
range:
|
|
1725
|
-
position: K(
|
|
1728
|
+
range: p,
|
|
1729
|
+
position: K(N(A)),
|
|
1726
1730
|
orientation: Ke(he(), b),
|
|
1727
|
-
index:
|
|
1731
|
+
index: v
|
|
1728
1732
|
});
|
|
1729
1733
|
}, l = () => {
|
|
1730
1734
|
r.dispose(), s.dispose(), i.dispose();
|
|
@@ -1744,19 +1748,19 @@ const Ci = (e, t = {}) => {
|
|
|
1744
1748
|
fragmentSource: c ? _e : ii
|
|
1745
1749
|
}), f = a.attribute2f("uv", n, {
|
|
1746
1750
|
stride: 2 * Float32Array.BYTES_PER_ELEMENT
|
|
1747
|
-
}), l = a.uniformMatrix4f("projection"), h = a.uniformMatrix4f("model_view"), u = a.uniform3i("camera"), d = a.uniform2f("screen"),
|
|
1751
|
+
}), l = a.uniformMatrix4f("projection"), h = a.uniformMatrix4f("model_view"), u = a.uniform3i("camera"), d = a.uniform2f("screen"), m = a.uniform1i("image"), _ = a.uniform1f("range"), x = a.uniform3i("position"), v = a.uniformMatrix4f("orientation"), A = a.uniform1i("index");
|
|
1748
1752
|
return { execute: ({
|
|
1749
|
-
projection:
|
|
1750
|
-
modelView:
|
|
1751
|
-
camera:
|
|
1752
|
-
screen:
|
|
1753
|
-
image:
|
|
1753
|
+
projection: p,
|
|
1754
|
+
modelView: E,
|
|
1755
|
+
camera: R,
|
|
1756
|
+
screen: T,
|
|
1757
|
+
image: w,
|
|
1754
1758
|
range: g,
|
|
1755
|
-
position:
|
|
1759
|
+
position: y,
|
|
1756
1760
|
orientation: M,
|
|
1757
1761
|
index: S
|
|
1758
1762
|
}) => {
|
|
1759
|
-
a.use(), f.use(), l.set(
|
|
1763
|
+
a.use(), f.use(), l.set(p), h.set(E), u.set(R), d.set(T), _.set(g), x.set(y), v.set(M), A.set(S), e.activeTexture(e.TEXTURE0), m.set(0), w.use(), i.use(), e.drawElements(e.TRIANGLES, 6, e.UNSIGNED_SHORT, 0);
|
|
1760
1764
|
} };
|
|
1761
1765
|
}, s = r(), o = r(!0);
|
|
1762
1766
|
return { renderProgram: s, depthProgram: o };
|
|
@@ -1931,7 +1935,7 @@ class qe {
|
|
|
1931
1935
|
#_;
|
|
1932
1936
|
#y;
|
|
1933
1937
|
#d;
|
|
1934
|
-
#
|
|
1938
|
+
#w;
|
|
1935
1939
|
#A;
|
|
1936
1940
|
#l;
|
|
1937
1941
|
/**
|
|
@@ -1965,7 +1969,7 @@ class qe {
|
|
|
1965
1969
|
isBackgroundFetch: (n) => t.#t(n),
|
|
1966
1970
|
backgroundFetch: (n, i, r, s) => t.#L(n, i, r, s),
|
|
1967
1971
|
moveToTail: (n) => t.#S(n),
|
|
1968
|
-
indexes: (n) => t.#
|
|
1972
|
+
indexes: (n) => t.#T(n),
|
|
1969
1973
|
rindexes: (n) => t.#g(n),
|
|
1970
1974
|
isStale: (n) => t.#m(n)
|
|
1971
1975
|
};
|
|
@@ -2014,21 +2018,21 @@ class qe {
|
|
|
2014
2018
|
return this.#v;
|
|
2015
2019
|
}
|
|
2016
2020
|
constructor(t) {
|
|
2017
|
-
const { max: n = 0, ttl: i, ttlResolution: r = 1, ttlAutopurge: s, updateAgeOnGet: o, updateAgeOnHas: c, allowStale: a, dispose: f, disposeAfter: l, noDisposeOnSet: h, noUpdateTTL: u, maxSize: d = 0, maxEntrySize:
|
|
2021
|
+
const { max: n = 0, ttl: i, ttlResolution: r = 1, ttlAutopurge: s, updateAgeOnGet: o, updateAgeOnHas: c, allowStale: a, dispose: f, disposeAfter: l, noDisposeOnSet: h, noUpdateTTL: u, maxSize: d = 0, maxEntrySize: m = 0, sizeCalculation: _, fetchMethod: x, noDeleteOnFetchRejection: v, noDeleteOnStaleGet: A, allowStaleOnFetchRejection: b, allowStaleOnFetchAbort: p, ignoreFetchAbort: E } = t;
|
|
2018
2022
|
if (n !== 0 && !ee(n))
|
|
2019
2023
|
throw new TypeError("max option must be a nonnegative integer");
|
|
2020
|
-
const
|
|
2021
|
-
if (!
|
|
2024
|
+
const R = n ? Mt(n) : Array;
|
|
2025
|
+
if (!R)
|
|
2022
2026
|
throw new Error("invalid max value: " + n);
|
|
2023
|
-
if (this.#c = n, this.#u = d, this.maxEntrySize =
|
|
2027
|
+
if (this.#c = n, this.#u = d, this.maxEntrySize = m || this.#u, this.sizeCalculation = _, this.sizeCalculation) {
|
|
2024
2028
|
if (!this.#u && !this.maxEntrySize)
|
|
2025
2029
|
throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");
|
|
2026
2030
|
if (typeof this.sizeCalculation != "function")
|
|
2027
2031
|
throw new TypeError("sizeCalculation set to non-function");
|
|
2028
2032
|
}
|
|
2029
|
-
if (
|
|
2033
|
+
if (x !== void 0 && typeof x != "function")
|
|
2030
2034
|
throw new TypeError("fetchMethod must be a function if specified");
|
|
2031
|
-
if (this.#U =
|
|
2035
|
+
if (this.#U = x, this.#A = !!x, this.#i = /* @__PURE__ */ new Map(), this.#n = new Array(n).fill(void 0), this.#e = new Array(n).fill(void 0), this.#f = new R(n), this.#h = new R(n), this.#a = 0, this.#s = 0, this.#E = pe.create(n), this.#r = 0, this.#x = 0, typeof f == "function" && (this.#p = f), typeof l == "function" ? (this.#v = l, this.#o = []) : (this.#v = void 0, this.#o = void 0), this.#w = !!this.#p, this.#l = !!this.#v, this.noDisposeOnSet = !!h, this.noUpdateTTL = !!u, this.noDeleteOnFetchRejection = !!v, this.allowStaleOnFetchRejection = !!b, this.allowStaleOnFetchAbort = !!p, this.ignoreFetchAbort = !!E, this.maxEntrySize !== 0) {
|
|
2032
2036
|
if (this.#u !== 0 && !ee(this.#u))
|
|
2033
2037
|
throw new TypeError("maxSize must be a positive integer if specified");
|
|
2034
2038
|
if (!ee(this.maxEntrySize))
|
|
@@ -2043,8 +2047,8 @@ class qe {
|
|
|
2043
2047
|
if (this.#c === 0 && this.ttl === 0 && this.#u === 0)
|
|
2044
2048
|
throw new TypeError("At least one of max, maxSize, or ttl is required");
|
|
2045
2049
|
if (!this.ttlAutopurge && !this.#c && !this.#u) {
|
|
2046
|
-
const
|
|
2047
|
-
ai(
|
|
2050
|
+
const T = "LRU_CACHE_UNBOUNDED";
|
|
2051
|
+
ai(T) && (At.add(T), bt("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.", "UnboundedCacheWarning", T, qe));
|
|
2048
2052
|
}
|
|
2049
2053
|
}
|
|
2050
2054
|
/**
|
|
@@ -2141,7 +2145,7 @@ class qe {
|
|
|
2141
2145
|
throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");
|
|
2142
2146
|
return 0;
|
|
2143
2147
|
};
|
|
2144
|
-
*#
|
|
2148
|
+
*#T({ allowStale: t = this.allowStale } = {}) {
|
|
2145
2149
|
if (this.#r)
|
|
2146
2150
|
for (let n = this.#s; !(!this.#O(n) || ((t || !this.#m(n)) && (yield n), n === this.#a)); )
|
|
2147
2151
|
n = this.#h[n];
|
|
@@ -2159,7 +2163,7 @@ class qe {
|
|
|
2159
2163
|
* in order from most recently used to least recently used.
|
|
2160
2164
|
*/
|
|
2161
2165
|
*entries() {
|
|
2162
|
-
for (const t of this.#
|
|
2166
|
+
for (const t of this.#T())
|
|
2163
2167
|
this.#e[t] !== void 0 && this.#n[t] !== void 0 && !this.#t(this.#e[t]) && (yield [this.#n[t], this.#e[t]]);
|
|
2164
2168
|
}
|
|
2165
2169
|
/**
|
|
@@ -2177,7 +2181,7 @@ class qe {
|
|
|
2177
2181
|
* in order from most recently used to least recently used.
|
|
2178
2182
|
*/
|
|
2179
2183
|
*keys() {
|
|
2180
|
-
for (const t of this.#
|
|
2184
|
+
for (const t of this.#T()) {
|
|
2181
2185
|
const n = this.#n[t];
|
|
2182
2186
|
n !== void 0 && !this.#t(this.#e[t]) && (yield n);
|
|
2183
2187
|
}
|
|
@@ -2199,7 +2203,7 @@ class qe {
|
|
|
2199
2203
|
* in order from most recently used to least recently used.
|
|
2200
2204
|
*/
|
|
2201
2205
|
*values() {
|
|
2202
|
-
for (const t of this.#
|
|
2206
|
+
for (const t of this.#T())
|
|
2203
2207
|
this.#e[t] !== void 0 && !this.#t(this.#e[t]) && (yield this.#e[t]);
|
|
2204
2208
|
}
|
|
2205
2209
|
/**
|
|
@@ -2229,7 +2233,7 @@ class qe {
|
|
|
2229
2233
|
* similar to Array.find(). fn is called as fn(value, key, cache).
|
|
2230
2234
|
*/
|
|
2231
2235
|
find(t, n = {}) {
|
|
2232
|
-
for (const i of this.#
|
|
2236
|
+
for (const i of this.#T()) {
|
|
2233
2237
|
const r = this.#e[i], s = this.#t(r) ? r.__staleWhileFetching : r;
|
|
2234
2238
|
if (s !== void 0 && t(s, this.#n[i], this))
|
|
2235
2239
|
return this.get(this.#n[i], n);
|
|
@@ -2242,7 +2246,7 @@ class qe {
|
|
|
2242
2246
|
* Does not iterate over stale values.
|
|
2243
2247
|
*/
|
|
2244
2248
|
forEach(t, n = this) {
|
|
2245
|
-
for (const i of this.#
|
|
2249
|
+
for (const i of this.#T()) {
|
|
2246
2250
|
const r = this.#e[i], s = this.#t(r) ? r.__staleWhileFetching : r;
|
|
2247
2251
|
s !== void 0 && t.call(n, s, this.#n[i], this);
|
|
2248
2252
|
}
|
|
@@ -2296,7 +2300,7 @@ class qe {
|
|
|
2296
2300
|
*/
|
|
2297
2301
|
dump() {
|
|
2298
2302
|
const t = [];
|
|
2299
|
-
for (const n of this.#
|
|
2303
|
+
for (const n of this.#T({ allowStale: !0 })) {
|
|
2300
2304
|
const i = this.#n[n], r = this.#e[n], s = this.#t(r) ? r.__staleWhileFetching : r;
|
|
2301
2305
|
if (s === void 0 || i === void 0)
|
|
2302
2306
|
continue;
|
|
@@ -2349,9 +2353,9 @@ class qe {
|
|
|
2349
2353
|
if (this.#A && this.#t(u)) {
|
|
2350
2354
|
u.__abortController.abort(new Error("replaced"));
|
|
2351
2355
|
const { __staleWhileFetching: d } = u;
|
|
2352
|
-
d !== void 0 && !o && (this.#
|
|
2356
|
+
d !== void 0 && !o && (this.#w && this.#p?.(d, t, "set"), this.#l && this.#o?.push([d, t, "set"]));
|
|
2353
2357
|
} else
|
|
2354
|
-
o || (this.#
|
|
2358
|
+
o || (this.#w && this.#p?.(u, t, "set"), this.#l && this.#o?.push([u, t, "set"]));
|
|
2355
2359
|
if (this.#M(h), this.#P(h, l, a), this.#e[h] = n, a) {
|
|
2356
2360
|
a.set = "replace";
|
|
2357
2361
|
const d = u && this.#t(u) ? u.__staleWhileFetching : u;
|
|
@@ -2393,7 +2397,7 @@ class qe {
|
|
|
2393
2397
|
}
|
|
2394
2398
|
#z(t) {
|
|
2395
2399
|
const n = this.#a, i = this.#n[n], r = this.#e[n];
|
|
2396
|
-
return this.#A && this.#t(r) ? r.__abortController.abort(new Error("evicted")) : (this.#
|
|
2400
|
+
return this.#A && this.#t(r) ? r.__abortController.abort(new Error("evicted")) : (this.#w || this.#l) && (this.#w && this.#p?.(r, i, "evict"), this.#l && this.#o?.push([r, i, "evict"])), this.#M(n), t && (this.#n[n] = void 0, this.#e[n] = void 0, this.#E.push(n)), this.#r === 1 ? (this.#a = this.#s = 0, this.#E.length = 0) : this.#a = this.#f[n], this.#i.delete(i), this.#r--, n;
|
|
2397
2401
|
}
|
|
2398
2402
|
/**
|
|
2399
2403
|
* Check if a key is in the cache, without updating the recency of use.
|
|
@@ -2443,31 +2447,31 @@ class qe {
|
|
|
2443
2447
|
signal: o.signal,
|
|
2444
2448
|
options: i,
|
|
2445
2449
|
context: r
|
|
2446
|
-
}, f = (_,
|
|
2447
|
-
const { aborted:
|
|
2448
|
-
if (i.status && (
|
|
2450
|
+
}, f = (_, x = !1) => {
|
|
2451
|
+
const { aborted: v } = o.signal, A = i.ignoreFetchAbort && _ !== void 0;
|
|
2452
|
+
if (i.status && (v && !x ? (i.status.fetchAborted = !0, i.status.fetchError = o.signal.reason, A && (i.status.fetchAbortIgnored = !0)) : i.status.fetchResolved = !0), v && !A && !x)
|
|
2449
2453
|
return h(o.signal.reason);
|
|
2450
2454
|
const b = d;
|
|
2451
2455
|
return this.#e[n] === d && (_ === void 0 ? b.__staleWhileFetching ? this.#e[n] = b.__staleWhileFetching : this.delete(t) : (i.status && (i.status.fetchUpdated = !0), this.set(t, _, a.options))), _;
|
|
2452
2456
|
}, l = (_) => (i.status && (i.status.fetchRejected = !0, i.status.fetchError = _), h(_)), h = (_) => {
|
|
2453
|
-
const { aborted:
|
|
2454
|
-
if (this.#e[n] === d && (!b ||
|
|
2455
|
-
return i.status &&
|
|
2456
|
-
if (
|
|
2457
|
+
const { aborted: x } = o.signal, v = x && i.allowStaleOnFetchAbort, A = v || i.allowStaleOnFetchRejection, b = A || i.noDeleteOnFetchRejection, p = d;
|
|
2458
|
+
if (this.#e[n] === d && (!b || p.__staleWhileFetching === void 0 ? this.delete(t) : v || (this.#e[n] = p.__staleWhileFetching)), A)
|
|
2459
|
+
return i.status && p.__staleWhileFetching !== void 0 && (i.status.returnedStale = !0), p.__staleWhileFetching;
|
|
2460
|
+
if (p.__returned === p)
|
|
2457
2461
|
throw _;
|
|
2458
|
-
}, u = (_,
|
|
2459
|
-
const
|
|
2460
|
-
|
|
2462
|
+
}, u = (_, x) => {
|
|
2463
|
+
const v = this.#U?.(t, s, a);
|
|
2464
|
+
v && v instanceof Promise && v.then((A) => _(A === void 0 ? void 0 : A), x), o.signal.addEventListener("abort", () => {
|
|
2461
2465
|
(!i.ignoreFetchAbort || i.allowStaleOnFetchAbort) && (_(void 0), i.allowStaleOnFetchAbort && (_ = (A) => f(A, !0)));
|
|
2462
2466
|
});
|
|
2463
2467
|
};
|
|
2464
2468
|
i.status && (i.status.fetchDispatched = !0);
|
|
2465
|
-
const d = new Promise(u).then(f, l),
|
|
2469
|
+
const d = new Promise(u).then(f, l), m = Object.assign(d, {
|
|
2466
2470
|
__abortController: o,
|
|
2467
2471
|
__staleWhileFetching: s,
|
|
2468
2472
|
__returned: void 0
|
|
2469
2473
|
});
|
|
2470
|
-
return n === void 0 ? (this.set(t,
|
|
2474
|
+
return n === void 0 ? (this.set(t, m, { ...a.options, status: void 0 }), n = this.#i.get(t)) : this.#e[n] = m, m;
|
|
2471
2475
|
}
|
|
2472
2476
|
#t(t) {
|
|
2473
2477
|
if (!this.#A)
|
|
@@ -2491,18 +2495,18 @@ class qe {
|
|
|
2491
2495
|
noDeleteOnFetchRejection: h = this.noDeleteOnFetchRejection,
|
|
2492
2496
|
allowStaleOnFetchRejection: u = this.allowStaleOnFetchRejection,
|
|
2493
2497
|
ignoreFetchAbort: d = this.ignoreFetchAbort,
|
|
2494
|
-
allowStaleOnFetchAbort:
|
|
2498
|
+
allowStaleOnFetchAbort: m = this.allowStaleOnFetchAbort,
|
|
2495
2499
|
context: _,
|
|
2496
|
-
forceRefresh:
|
|
2497
|
-
status:
|
|
2500
|
+
forceRefresh: x = !1,
|
|
2501
|
+
status: v,
|
|
2498
2502
|
signal: A
|
|
2499
2503
|
} = n;
|
|
2500
2504
|
if (!this.#A)
|
|
2501
|
-
return
|
|
2505
|
+
return v && (v.fetch = "get"), this.get(t, {
|
|
2502
2506
|
allowStale: i,
|
|
2503
2507
|
updateAgeOnGet: r,
|
|
2504
2508
|
noDeleteOnStaleGet: s,
|
|
2505
|
-
status:
|
|
2509
|
+
status: v
|
|
2506
2510
|
});
|
|
2507
2511
|
const b = {
|
|
2508
2512
|
allowStale: i,
|
|
@@ -2515,27 +2519,27 @@ class qe {
|
|
|
2515
2519
|
noUpdateTTL: l,
|
|
2516
2520
|
noDeleteOnFetchRejection: h,
|
|
2517
2521
|
allowStaleOnFetchRejection: u,
|
|
2518
|
-
allowStaleOnFetchAbort:
|
|
2522
|
+
allowStaleOnFetchAbort: m,
|
|
2519
2523
|
ignoreFetchAbort: d,
|
|
2520
|
-
status:
|
|
2524
|
+
status: v,
|
|
2521
2525
|
signal: A
|
|
2522
2526
|
};
|
|
2523
|
-
let
|
|
2524
|
-
if (
|
|
2525
|
-
|
|
2526
|
-
const
|
|
2527
|
-
return
|
|
2527
|
+
let p = this.#i.get(t);
|
|
2528
|
+
if (p === void 0) {
|
|
2529
|
+
v && (v.fetch = "miss");
|
|
2530
|
+
const E = this.#L(t, p, b, _);
|
|
2531
|
+
return E.__returned = E;
|
|
2528
2532
|
} else {
|
|
2529
|
-
const
|
|
2530
|
-
if (this.#t(
|
|
2531
|
-
const
|
|
2532
|
-
return
|
|
2533
|
+
const E = this.#e[p];
|
|
2534
|
+
if (this.#t(E)) {
|
|
2535
|
+
const y = i && E.__staleWhileFetching !== void 0;
|
|
2536
|
+
return v && (v.fetch = "inflight", y && (v.returnedStale = !0)), y ? E.__staleWhileFetching : E.__returned = E;
|
|
2533
2537
|
}
|
|
2534
|
-
const
|
|
2535
|
-
if (!
|
|
2536
|
-
return
|
|
2537
|
-
const
|
|
2538
|
-
return
|
|
2538
|
+
const R = this.#m(p);
|
|
2539
|
+
if (!x && !R)
|
|
2540
|
+
return v && (v.fetch = "hit"), this.#S(p), r && this.#b(p), v && this.#R(v, p), E;
|
|
2541
|
+
const T = this.#L(t, p, b, _), g = T.__staleWhileFetching !== void 0 && i;
|
|
2542
|
+
return v && (v.fetch = R ? "stale" : "refresh", g && R && (v.returnedStale = !0)), g ? T.__staleWhileFetching : T.__returned = T;
|
|
2539
2543
|
}
|
|
2540
2544
|
}
|
|
2541
2545
|
/**
|
|
@@ -2572,7 +2576,7 @@ class qe {
|
|
|
2572
2576
|
else {
|
|
2573
2577
|
this.#M(i);
|
|
2574
2578
|
const r = this.#e[i];
|
|
2575
|
-
if (this.#t(r) ? r.__abortController.abort(new Error("deleted")) : (this.#
|
|
2579
|
+
if (this.#t(r) ? r.__abortController.abort(new Error("deleted")) : (this.#w || this.#l) && (this.#w && this.#p?.(r, t, "delete"), this.#l && this.#o?.push([r, t, "delete"])), this.#i.delete(t), this.#n[i] = void 0, this.#e[i] = void 0, i === this.#s)
|
|
2576
2580
|
this.#s = this.#h[i];
|
|
2577
2581
|
else if (i === this.#a)
|
|
2578
2582
|
this.#a = this.#f[i];
|
|
@@ -2603,7 +2607,7 @@ class qe {
|
|
|
2603
2607
|
n.__abortController.abort(new Error("deleted"));
|
|
2604
2608
|
else {
|
|
2605
2609
|
const i = this.#n[t];
|
|
2606
|
-
this.#
|
|
2610
|
+
this.#w && this.#p?.(n, i, "delete"), this.#l && this.#o?.push([n, i, "delete"]);
|
|
2607
2611
|
}
|
|
2608
2612
|
}
|
|
2609
2613
|
if (this.#i.clear(), this.#e.fill(void 0), this.#n.fill(void 0), this.#d && this.#y && (this.#d.fill(0), this.#y.fill(0)), this.#_ && this.#_.fill(0), this.#a = 0, this.#s = 0, this.#E.length = 0, this.#x = 0, this.#r = 0, this.#l && this.#o) {
|
|
@@ -2645,22 +2649,22 @@ const je = (e) => {
|
|
|
2645
2649
|
const h = i.get([a, f, l]);
|
|
2646
2650
|
if (!h)
|
|
2647
2651
|
return;
|
|
2648
|
-
const { texture: u, downsample: d } = h,
|
|
2649
|
-
if (
|
|
2650
|
-
return { buffer:
|
|
2651
|
-
const
|
|
2652
|
-
return e.bindFramebuffer(e.FRAMEBUFFER, r), u.attach(), e.readPixels(0, 0, ie, ie, e.RGBA, e.UNSIGNED_BYTE,
|
|
2652
|
+
const { texture: u, downsample: d } = h, m = 2 ** d, _ = [Math.floor(a / m), Math.floor(f / m), l - d], x = n.get(_);
|
|
2653
|
+
if (x)
|
|
2654
|
+
return { buffer: x, downsample: d };
|
|
2655
|
+
const v = new Uint8Array(4 * ie * ie);
|
|
2656
|
+
return e.bindFramebuffer(e.FRAMEBUFFER, r), u.attach(), e.readPixels(0, 0, ie, ie, e.RGBA, e.UNSIGNED_BYTE, v), e.bindFramebuffer(e.FRAMEBUFFER, null), n.set(_, v), { buffer: v, downsample: d };
|
|
2653
2657
|
};
|
|
2654
2658
|
return { get: ([a = 0, f = 0], l = ci) => {
|
|
2655
|
-
const h = 2 ** l, u =
|
|
2656
|
-
let [_ = 0,
|
|
2657
|
-
const
|
|
2658
|
-
if (!
|
|
2659
|
+
const h = 2 ** l, u = N([a, f, 0]).map((y) => y * h), [d = 0, m = 0] = u.map((y) => Math.floor(y % h));
|
|
2660
|
+
let [_ = 0, x = 0] = u.map((y) => y % 1);
|
|
2661
|
+
const v = s([d, m, l]);
|
|
2662
|
+
if (!v)
|
|
2659
2663
|
return 0;
|
|
2660
|
-
const { buffer: A, downsample: b } =
|
|
2661
|
-
[_,
|
|
2662
|
-
const
|
|
2663
|
-
return (
|
|
2664
|
+
const { buffer: A, downsample: b } = v, p = 2 ** b;
|
|
2665
|
+
[_, x] = [(d % p + _) / p, (m % p + x) / p];
|
|
2666
|
+
const E = 4 * ie * Math.floor(x * ie) + 4 * Math.floor(_ * ie), [R = 0, T = 0, w = 0] = A.slice(E, E + 4);
|
|
2667
|
+
return (R * 65536 + T * 256 + w) / 10 - 1e4;
|
|
2664
2668
|
}, dispose: () => {
|
|
2665
2669
|
e.deleteFramebuffer(r);
|
|
2666
2670
|
} };
|
|
@@ -2702,23 +2706,23 @@ const ut = ({
|
|
|
2702
2706
|
const [l = 0, h = 0, u = 0] = a;
|
|
2703
2707
|
let d = t.replace("{x}", `${l}`).replace("{y}", `${h}`).replace("{z}", `${u}`);
|
|
2704
2708
|
if (d.includes("{bbox}")) {
|
|
2705
|
-
const [_ = 0,
|
|
2709
|
+
const [_ = 0, x = 0, v = 0] = a, A = 2 ** v - x - 1, [[b, p] = [], [E, R] = []] = [
|
|
2706
2710
|
[0, 0],
|
|
2707
2711
|
[1, 1]
|
|
2708
|
-
].map(([
|
|
2709
|
-
(
|
|
2710
|
-
(
|
|
2712
|
+
].map(([T = 0, w = 0]) => [_ + T, A + w, v]).map((T) => vt(T, T)).map(([T = 0, w = 0]) => [
|
|
2713
|
+
(T - 0.5) * 2 * Math.PI * 6378137,
|
|
2714
|
+
(w - 0.5) * 2 * Math.PI * 6378137
|
|
2711
2715
|
]);
|
|
2712
|
-
d = d.replace("{bbox}", [b,
|
|
2716
|
+
d = d.replace("{bbox}", [b, p, E, R].join(","));
|
|
2713
2717
|
}
|
|
2714
|
-
const
|
|
2718
|
+
const m = wt({
|
|
2715
2719
|
gl: e,
|
|
2716
2720
|
url: d,
|
|
2717
2721
|
onLoad: () => {
|
|
2718
2722
|
r.delete(a), n?.();
|
|
2719
2723
|
}
|
|
2720
2724
|
});
|
|
2721
|
-
i.set(a,
|
|
2725
|
+
i.set(a, m), r.set(a, !0);
|
|
2722
2726
|
}
|
|
2723
2727
|
}, o = setInterval(() => r.purgeStale(), 200);
|
|
2724
2728
|
return { get: s, dispose: () => {
|
|
@@ -2740,7 +2744,7 @@ const ut = ({
|
|
|
2740
2744
|
return s;
|
|
2741
2745
|
const [o = 0, c = 0, a = 0] = r, f = n.map(([l = 0, h = 0]) => [o + l, c + h, a]).map((l) => vt(l, l)).map((l) => oe(l, l)).map((l) => {
|
|
2742
2746
|
const [h = 0, u = 0] = l, d = Math.max(a - 5, 0);
|
|
2743
|
-
return
|
|
2747
|
+
return N(
|
|
2744
2748
|
be(l, h, u, e.get([h, u], d)),
|
|
2745
2749
|
l
|
|
2746
2750
|
);
|
|
@@ -2830,43 +2834,43 @@ const B = 34, di = 22, mi = xe(0, B).flatMap(
|
|
|
2830
2834
|
n.texParameteri(n.TEXTURE_2D, n.TEXTURE_MIN_FILTER, n.NEAREST), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_MAG_FILTER, n.NEAREST), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_WRAP_S, n.CLAMP_TO_EDGE), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_WRAP_T, n.CLAMP_TO_EDGE);
|
|
2831
2835
|
}
|
|
2832
2836
|
}), l = Fe(f, 3), h = fi({ gl: n, terrainCache: f }), u = ui(h), d = V({ gl: n, type: "f32", target: "array" });
|
|
2833
|
-
d.set(pi.flatMap(([g = 0,
|
|
2834
|
-
const
|
|
2835
|
-
|
|
2836
|
-
const { renderProgram: _, depthProgram:
|
|
2837
|
+
d.set(pi.flatMap(([g = 0, y = 0, M = 0]) => [g, y, M]));
|
|
2838
|
+
const m = V({ gl: n, type: "u16", target: "element" });
|
|
2839
|
+
m.set(mi);
|
|
2840
|
+
const { renderProgram: _, depthProgram: x } = vi(e, {
|
|
2837
2841
|
uvwBuffer: d,
|
|
2838
|
-
indexBuffer:
|
|
2839
|
-
}),
|
|
2840
|
-
const { worldToLocal:
|
|
2841
|
-
const [
|
|
2842
|
+
indexBuffer: m
|
|
2843
|
+
}), v = [0, 1, 2, 3], A = v.map(I), b = v.map(ne), p = v.map(ve), E = (g) => {
|
|
2844
|
+
const { worldToLocal: y, localToClip: M, clipToScreen: S } = g, U = 512 * Math.pow(2, t.downsample?.() ?? 0), P = (z) => {
|
|
2845
|
+
const [L = 0, X = 0, C = 0] = z, j = u.get(z).map(($, k) => y($, A[k])).map(($, k) => M($, b[k]));
|
|
2842
2846
|
return xi(j) ? [] : Ei(
|
|
2843
|
-
_i(j).map(($, k) => S($,
|
|
2847
|
+
_i(j).map(($, k) => S($, p[k]))
|
|
2844
2848
|
) > U && C < di ? [
|
|
2845
|
-
[2 *
|
|
2846
|
-
[2 *
|
|
2847
|
-
[2 *
|
|
2848
|
-
[2 *
|
|
2849
|
-
].flatMap((k) => P(k)) : [
|
|
2849
|
+
[2 * L, 2 * X, C + 1],
|
|
2850
|
+
[2 * L + 1, 2 * X, C + 1],
|
|
2851
|
+
[2 * L, 2 * X + 1, C + 1],
|
|
2852
|
+
[2 * L + 1, 2 * X + 1, C + 1]
|
|
2853
|
+
].flatMap((k) => P(k)) : [z];
|
|
2850
2854
|
};
|
|
2851
2855
|
return P([0, 0, 0]);
|
|
2852
|
-
},
|
|
2856
|
+
}, R = ({
|
|
2853
2857
|
viewport: g,
|
|
2854
|
-
depth:
|
|
2858
|
+
depth: y = !1,
|
|
2855
2859
|
index: M = 0
|
|
2856
2860
|
}) => {
|
|
2857
2861
|
const S = t.color?.() ?? [1, 1, 1, 1];
|
|
2858
|
-
if (c(), Ee(n,
|
|
2862
|
+
if (c(), Ee(n, y, t))
|
|
2859
2863
|
return;
|
|
2860
|
-
const U =
|
|
2864
|
+
const U = y ? x : _, { projection: P, modelView: z, camera: L } = g, X = E(g);
|
|
2861
2865
|
for (const C of X) {
|
|
2862
|
-
const Y =
|
|
2863
|
-
if (!
|
|
2866
|
+
const Y = y ? void 0 : r?.get(C), j = l.get(C);
|
|
2867
|
+
if (!y && !Y || !j)
|
|
2864
2868
|
continue;
|
|
2865
2869
|
const { texture: q, downsample: J } = j, { texture: $ = q, downsample: k = 0 } = Y ?? {};
|
|
2866
2870
|
U.execute({
|
|
2867
2871
|
projection: P,
|
|
2868
|
-
modelView:
|
|
2869
|
-
camera: K(
|
|
2872
|
+
modelView: z,
|
|
2873
|
+
camera: K(L),
|
|
2870
2874
|
xyz: C,
|
|
2871
2875
|
imagery: $,
|
|
2872
2876
|
terrain: q,
|
|
@@ -2876,13 +2880,13 @@ const B = 34, di = 22, mi = xe(0, B).flatMap(
|
|
|
2876
2880
|
index: M
|
|
2877
2881
|
});
|
|
2878
2882
|
}
|
|
2879
|
-
},
|
|
2883
|
+
}, T = () => {
|
|
2880
2884
|
i?.dispose(), f.dispose(), h.dispose();
|
|
2881
|
-
},
|
|
2885
|
+
}, w = ye(t);
|
|
2882
2886
|
return {
|
|
2883
|
-
render:
|
|
2884
|
-
dispose:
|
|
2885
|
-
...
|
|
2887
|
+
render: R,
|
|
2888
|
+
dispose: T,
|
|
2889
|
+
...w,
|
|
2886
2890
|
elevation: h.get
|
|
2887
2891
|
};
|
|
2888
2892
|
}, vi = ({ gl: e, programs: t }, { uvwBuffer: n, indexBuffer: i }) => {
|
|
@@ -2890,20 +2894,20 @@ const B = 34, di = 22, mi = xe(0, B).flatMap(
|
|
|
2890
2894
|
const a = t.get({
|
|
2891
2895
|
vertexSource: hi,
|
|
2892
2896
|
fragmentSource: c ? _e : li
|
|
2893
|
-
}), f = a.attribute3f("uvw", n), l = a.uniformMatrix4f("projection"), h = a.uniformMatrix4f("model_view"), u = a.uniform1i("imagery"), d = a.uniform1i("terrain"),
|
|
2897
|
+
}), f = a.attribute3f("uvw", n), l = a.uniformMatrix4f("projection"), h = a.uniformMatrix4f("model_view"), u = a.uniform1i("imagery"), d = a.uniform1i("terrain"), m = a.uniform1i("downsample_imagery"), _ = a.uniform1i("downsample_terrain"), x = a.uniform4f("color"), v = a.uniform3i("xyz"), A = a.uniform3i("camera"), b = a.uniform1i("index");
|
|
2894
2898
|
return { execute: ({
|
|
2895
|
-
projection:
|
|
2896
|
-
modelView:
|
|
2897
|
-
camera:
|
|
2898
|
-
xyz:
|
|
2899
|
+
projection: E,
|
|
2900
|
+
modelView: R,
|
|
2901
|
+
camera: T,
|
|
2902
|
+
xyz: w,
|
|
2899
2903
|
imagery: g,
|
|
2900
|
-
terrain:
|
|
2904
|
+
terrain: y,
|
|
2901
2905
|
downsampleImagery: M,
|
|
2902
2906
|
downsampleTerrain: S,
|
|
2903
2907
|
color: U,
|
|
2904
2908
|
index: P
|
|
2905
2909
|
}) => {
|
|
2906
|
-
a.use(), f.use(), l.set(
|
|
2910
|
+
a.use(), f.use(), l.set(E), h.set(R), v.set(w), A.set(T), m.set(M), _.set(S), x.set(U), b.set(P), e.activeTexture(e.TEXTURE0), u.set(0), g.use(), e.activeTexture(e.TEXTURE1), d.set(1), y.use(), i.use(), e.drawElements(e.TRIANGLES, B * B * 2 * 3, e.UNSIGNED_SHORT, 0);
|
|
2907
2911
|
} };
|
|
2908
2912
|
}, s = r(), o = r(!0);
|
|
2909
2913
|
return { renderProgram: s, depthProgram: o };
|
|
@@ -2915,9 +2919,9 @@ const B = 34, di = 22, mi = xe(0, B).flatMap(
|
|
|
2915
2919
|
)
|
|
2916
2920
|
).reduce((t, n) => t + n, 0) / e.length
|
|
2917
2921
|
), ht = (e, t) => {
|
|
2918
|
-
const [n = 0, i = 0, r = 0, s = 0] = t, o = ([l = 0, h = 0, u = 0, d = 0]) => n * l + i * h + r * u + s * d >= 0, c = ([l = 0, h = 0, u = 0, d = 0], [
|
|
2919
|
-
const A = n * l + i * h + r * u + s * d, b = n *
|
|
2920
|
-
return [
|
|
2922
|
+
const [n = 0, i = 0, r = 0, s = 0] = t, o = ([l = 0, h = 0, u = 0, d = 0]) => n * l + i * h + r * u + s * d >= 0, c = ([l = 0, h = 0, u = 0, d = 0], [m = 0, _ = 0, x = 0, v = 0]) => {
|
|
2923
|
+
const A = n * l + i * h + r * u + s * d, b = n * m + i * _ + r * x + s * v, p = A / (A - b), E = l + p * (m - l), R = h + p * (_ - h), T = u + p * (x - u), w = d + p * (v - d);
|
|
2924
|
+
return [E, R, T, w];
|
|
2921
2925
|
}, a = [];
|
|
2922
2926
|
let f = e[e.length - 1] ?? [0, 0, 0, 0];
|
|
2923
2927
|
for (const l of e)
|
|
@@ -2982,7 +2986,7 @@ const B = 34, di = 22, mi = xe(0, B).flatMap(
|
|
|
2982
2986
|
};
|
|
2983
2987
|
}, yi = fe(
|
|
2984
2988
|
({ time: e, current: t, target: n }) => (Math.abs(n - t) < Ue ? t = n : t = t + (n - t) * (1 - Math.exp(-Se * e)), t)
|
|
2985
|
-
),
|
|
2989
|
+
), wi = (e) => fe(({ time: t, current: n, target: i }) => (pn(n, i) < Ue ? ln(n, i) : n = hn(
|
|
2986
2990
|
ve(),
|
|
2987
2991
|
n,
|
|
2988
2992
|
mn(
|
|
@@ -2999,14 +3003,14 @@ const B = 34, di = 22, mi = xe(0, B).flatMap(
|
|
|
2999
3003
|
1 - Math.exp(-Se * t)
|
|
3000
3004
|
)
|
|
3001
3005
|
), n))(() => mt(e())), Yi = (e) => fe(({ time: t, current: n, target: i }) => {
|
|
3002
|
-
const r = Me(
|
|
3006
|
+
const r = Me(N(n), N(i));
|
|
3003
3007
|
return r * F < Ue || r > 1e5 / F ? Zt(n, i) : n = oe(
|
|
3004
3008
|
re(
|
|
3005
|
-
|
|
3006
|
-
|
|
3009
|
+
I(),
|
|
3010
|
+
N(n),
|
|
3007
3011
|
de(
|
|
3008
|
-
|
|
3009
|
-
se(
|
|
3012
|
+
I(),
|
|
3013
|
+
se(I(), N(i), N(n)),
|
|
3010
3014
|
1 - Math.exp(-Se * t)
|
|
3011
3015
|
)
|
|
3012
3016
|
)
|
|
@@ -3014,46 +3018,46 @@ const B = 34, di = 22, mi = xe(0, B).flatMap(
|
|
|
3014
3018
|
})(() => dt(e())), $i = (e) => {
|
|
3015
3019
|
let t = [0, 0, 0], n = [0, 0, 0], i, r;
|
|
3016
3020
|
return fe(({ time: o, current: c, target: a }) => {
|
|
3017
|
-
if (a === c || o > 1 || Me(
|
|
3021
|
+
if (a === c || o > 1 || Me(N(a), N(c)) > 1e3 / F)
|
|
3018
3022
|
return i = void 0, t = [0, 0, 0], n = [0, 0, 0], a;
|
|
3019
3023
|
const f = performance.now();
|
|
3020
3024
|
i ? a !== i && r !== void 0 && f - r > 1 && (n = de(
|
|
3021
|
-
|
|
3022
|
-
se(
|
|
3025
|
+
I(),
|
|
3026
|
+
se(I(), N(a), N(i)),
|
|
3023
3027
|
1e3 / (f - r)
|
|
3024
3028
|
), i = a, r = f) : (i = a, r = o);
|
|
3025
3029
|
const l = re(
|
|
3026
|
-
|
|
3030
|
+
I(),
|
|
3027
3031
|
t,
|
|
3028
3032
|
de(
|
|
3029
|
-
|
|
3030
|
-
se(
|
|
3033
|
+
I(),
|
|
3034
|
+
se(I(), n, t),
|
|
3031
3035
|
2 * o
|
|
3032
3036
|
)
|
|
3033
3037
|
);
|
|
3034
3038
|
return c = oe(
|
|
3035
3039
|
re(
|
|
3036
|
-
|
|
3037
|
-
|
|
3040
|
+
I(),
|
|
3041
|
+
N(c),
|
|
3038
3042
|
re(
|
|
3039
|
-
|
|
3043
|
+
I(),
|
|
3040
3044
|
de(
|
|
3041
|
-
|
|
3042
|
-
re(
|
|
3045
|
+
I(),
|
|
3046
|
+
re(I(), t, l),
|
|
3043
3047
|
0.5 * o
|
|
3044
3048
|
),
|
|
3045
3049
|
de(
|
|
3046
|
-
|
|
3047
|
-
se(
|
|
3050
|
+
I(),
|
|
3051
|
+
se(I(), N(a), N(c)),
|
|
3048
3052
|
o
|
|
3049
3053
|
)
|
|
3050
3054
|
)
|
|
3051
3055
|
)
|
|
3052
3056
|
), t = l, c;
|
|
3053
3057
|
})(() => dt(e()));
|
|
3054
|
-
},
|
|
3058
|
+
}, Ti = (e) => {
|
|
3055
3059
|
const t = gi(() => xt(e()));
|
|
3056
|
-
return () =>
|
|
3060
|
+
return () => wn(t());
|
|
3057
3061
|
}, gi = (e) => fe(({ time: t, current: n, target: i }) => {
|
|
3058
3062
|
let r = sn(n, i);
|
|
3059
3063
|
return isNaN(r) && (r = 0), n = Ie(
|
|
@@ -3063,22 +3067,22 @@ const B = 34, di = 22, mi = xe(0, B).flatMap(
|
|
|
3063
3067
|
Se * 0.5 * Math.max(0.5, r) * t
|
|
3064
3068
|
), r < Ue && (n = i), n;
|
|
3065
3069
|
})(() => an(e())), Ri = 8, ki = (e) => {
|
|
3066
|
-
const t =
|
|
3070
|
+
const t = Ti(() => e().orientation), n = wi(() => e().offset), i = yi(() => e().fieldOfView);
|
|
3067
3071
|
return fe(({ time: s, current: o, target: c }) => {
|
|
3068
|
-
let a = Me(
|
|
3072
|
+
let a = Me(N(o.target), N(c.target)) * F;
|
|
3069
3073
|
a < 1e3 && (a = 0);
|
|
3070
3074
|
const f = Math.max(c.distance, a), l = 1 - Math.exp(-Ri * s), h = Math.exp(
|
|
3071
3075
|
Math.log(o.distance) + (Math.log(f) - Math.log(o.distance)) * l
|
|
3072
3076
|
), u = o.distance > a ? 1 : o.distance / a, d = oe(
|
|
3073
3077
|
re(
|
|
3074
|
-
|
|
3075
|
-
|
|
3078
|
+
I(),
|
|
3079
|
+
N(o.target),
|
|
3076
3080
|
de(
|
|
3077
|
-
|
|
3081
|
+
I(),
|
|
3078
3082
|
se(
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
|
|
3083
|
+
I(),
|
|
3084
|
+
N(c.target),
|
|
3085
|
+
N(o.target)
|
|
3082
3086
|
),
|
|
3083
3087
|
l * u
|
|
3084
3088
|
)
|
|
@@ -3135,8 +3139,8 @@ const B = 34, di = 22, mi = xe(0, B).flatMap(
|
|
|
3135
3139
|
resize: o,
|
|
3136
3140
|
read: ([l = 0, h = 0]) => {
|
|
3137
3141
|
r(), e.readPixels(l, s - h, 1, 1, e.RGBA, e.UNSIGNED_BYTE, c), e.bindFramebuffer(e.FRAMEBUFFER, null);
|
|
3138
|
-
const [u = 0, d = 0,
|
|
3139
|
-
return [
|
|
3142
|
+
const [u = 0, d = 0, m = 0, _ = 0] = c, v = 2 * ((u * 256 + d) / (256 * 256 - 1)) - 1, A = m * 256 + _;
|
|
3143
|
+
return [v, A];
|
|
3140
3144
|
},
|
|
3141
3145
|
dispose: () => {
|
|
3142
3146
|
e.deleteTexture(t), e.deleteFramebuffer(i), e.deleteRenderbuffer(n);
|
|
@@ -3151,42 +3155,42 @@ const B = 34, di = 22, mi = xe(0, B).flatMap(
|
|
|
3151
3155
|
let s = !1, o, c;
|
|
3152
3156
|
const a = () => {
|
|
3153
3157
|
s = !0;
|
|
3154
|
-
}, f = (
|
|
3155
|
-
const { x: _, y:
|
|
3158
|
+
}, f = (m) => {
|
|
3159
|
+
const { x: _, y: x, movementX: v, movementY: A } = m;
|
|
3156
3160
|
if (o) {
|
|
3157
3161
|
if (o.onDrag) {
|
|
3158
|
-
const { point:
|
|
3159
|
-
o.onDrag({ point:
|
|
3162
|
+
const { point: R, position: T, layer: w } = i([_, x], { terrain: !0 });
|
|
3163
|
+
o.onDrag({ point: R, position: T, layer: w });
|
|
3160
3164
|
}
|
|
3161
3165
|
if (o.onDragFlat) {
|
|
3162
|
-
const
|
|
3163
|
-
o.onDragFlat({ point: [_,
|
|
3166
|
+
const T = te(t(), n()).unproject([_, x], { targetZ: c });
|
|
3167
|
+
o.onDragFlat({ point: [_, x], position: T, layer: void 0 });
|
|
3164
3168
|
}
|
|
3165
3169
|
return;
|
|
3166
3170
|
}
|
|
3167
|
-
if (s &&
|
|
3171
|
+
if (s && m.buttons === 1 && (Math.abs(v) > 1 || Math.abs(A) > 1)) {
|
|
3168
3172
|
s = !1;
|
|
3169
|
-
const { point:
|
|
3170
|
-
(
|
|
3173
|
+
const { point: R, position: T, layer: w } = i([_, x]);
|
|
3174
|
+
(w?.onDrag || w?.onDragFlat) && (o = w, o.onDragStart?.({ point: R, position: T, layer: w }), [, , c] = T);
|
|
3171
3175
|
return;
|
|
3172
3176
|
}
|
|
3173
|
-
const { point: b, position:
|
|
3174
|
-
|
|
3175
|
-
}, l = (
|
|
3176
|
-
if (s && h(
|
|
3177
|
-
const { x: _, y:
|
|
3178
|
-
o.onDragEnd?.({ point:
|
|
3177
|
+
const { point: b, position: p, layer: E } = i([_, x]);
|
|
3178
|
+
E?.onMouseMove?.({ point: b, position: p, layer: E });
|
|
3179
|
+
}, l = (m) => {
|
|
3180
|
+
if (s && h(m), s = !1, o) {
|
|
3181
|
+
const { x: _, y: x } = m, { point: v, position: A, layer: b } = i([_, x]);
|
|
3182
|
+
o.onDragEnd?.({ point: v, position: A, layer: b });
|
|
3179
3183
|
}
|
|
3180
3184
|
o = void 0;
|
|
3181
|
-
}, h = (
|
|
3182
|
-
const { x: _, y:
|
|
3183
|
-
(
|
|
3184
|
-
{ point: A, position: b, layer:
|
|
3185
|
-
|
|
3185
|
+
}, h = (m) => {
|
|
3186
|
+
const { x: _, y: x, button: v } = m, { point: A, position: b, layer: p } = i([_, x]);
|
|
3187
|
+
(v === 2 ? p?.onRightClick : p?.onClick)?.(
|
|
3188
|
+
{ point: A, position: b, layer: p },
|
|
3189
|
+
m
|
|
3186
3190
|
);
|
|
3187
|
-
}, u = ({ x:
|
|
3188
|
-
const { point:
|
|
3189
|
-
A?.onDoubleClick?.({ point:
|
|
3191
|
+
}, u = ({ x: m, y: _ }) => {
|
|
3192
|
+
const { point: x, position: v, layer: A } = i([m, _]);
|
|
3193
|
+
A?.onDoubleClick?.({ point: x, position: v, layer: A });
|
|
3190
3194
|
};
|
|
3191
3195
|
return r?.addEventListener("mousedown", a), r?.addEventListener("mousemove", f), r?.addEventListener("dblclick", u), window.addEventListener("mouseup", l), {
|
|
3192
3196
|
get dragging() {
|
|
@@ -3202,62 +3206,62 @@ const Hi = ({ gl: e }, t) => {
|
|
|
3202
3206
|
const { view: n, layers: i } = t;
|
|
3203
3207
|
let r = !0, s = [0, 0];
|
|
3204
3208
|
e.enable(e.CULL_FACE), e.cullFace(e.FRONT), e.depthFunc(e.LEQUAL);
|
|
3205
|
-
const o = Ai(e), { canvas: c } = e, a = ([
|
|
3206
|
-
|
|
3209
|
+
const o = Ai(e), { canvas: c } = e, a = ([p = 0, E = 0]) => {
|
|
3210
|
+
p = p || 1, E = E || 1, s = [p, E], c.width = p * devicePixelRatio, c.height = E * devicePixelRatio, o.resize([c.width, c.height]);
|
|
3207
3211
|
};
|
|
3208
3212
|
a([c.width, c.height]);
|
|
3209
|
-
const f = new ResizeObserver(([
|
|
3210
|
-
if (!
|
|
3213
|
+
const f = new ResizeObserver(([p]) => {
|
|
3214
|
+
if (!p)
|
|
3211
3215
|
return;
|
|
3212
|
-
const { contentRect:
|
|
3213
|
-
a([
|
|
3216
|
+
const { contentRect: E } = p, { width: R, height: T } = E;
|
|
3217
|
+
a([R, T]);
|
|
3214
3218
|
});
|
|
3215
3219
|
c instanceof HTMLCanvasElement && f.observe(c);
|
|
3216
|
-
const l = ([
|
|
3217
|
-
e.viewport(0, 0,
|
|
3220
|
+
const l = ([p = 0, E = 0]) => {
|
|
3221
|
+
e.viewport(0, 0, p * devicePixelRatio, E * devicePixelRatio), e.clear(e.COLOR_BUFFER_BIT | e.DEPTH_BUFFER_BIT);
|
|
3218
3222
|
}, h = () => {
|
|
3219
|
-
const
|
|
3220
|
-
l(s), Ce(i()).forEach((
|
|
3221
|
-
}, u = (
|
|
3222
|
-
const
|
|
3223
|
-
l(s), (
|
|
3224
|
-
(
|
|
3223
|
+
const p = te(n(), s);
|
|
3224
|
+
l(s), Ce(i()).forEach((E) => E.render?.({ viewport: p }));
|
|
3225
|
+
}, u = (p) => {
|
|
3226
|
+
const E = te(n(), s);
|
|
3227
|
+
l(s), (p ? [p] : Ce(i())).forEach(
|
|
3228
|
+
(R, T) => R.render?.({ viewport: E, depth: !0, index: T + 1 })
|
|
3225
3229
|
);
|
|
3226
3230
|
}, d = () => {
|
|
3227
3231
|
r && (h(), requestAnimationFrame(d));
|
|
3228
3232
|
};
|
|
3229
3233
|
requestAnimationFrame(d);
|
|
3230
|
-
const
|
|
3231
|
-
const { screenToClip:
|
|
3234
|
+
const m = (p) => te(n(), s).project(p), _ = (p) => te(n(), s).unproject(p), x = (p, { terrain: E } = {}) => {
|
|
3235
|
+
const { screenToClip: R, clipToLocal: T, localToWorld: w } = te(
|
|
3232
3236
|
n(),
|
|
3233
3237
|
s
|
|
3234
3238
|
);
|
|
3235
3239
|
o.use();
|
|
3236
|
-
const [g] =
|
|
3240
|
+
const [g] = E ? i() : [];
|
|
3237
3241
|
u(g);
|
|
3238
|
-
const [
|
|
3239
|
-
|
|
3242
|
+
const [y = 0, M = 0] = p, [S, U] = o.read([
|
|
3243
|
+
y * devicePixelRatio,
|
|
3240
3244
|
M * devicePixelRatio
|
|
3241
|
-
]), [P = 0,
|
|
3242
|
-
return { point:
|
|
3243
|
-
},
|
|
3245
|
+
]), [P = 0, z = 0] = R(p), L = oe(w(T([P, z, S, 1]))), X = U === 0 ? void 0 : g ?? Ce(i())[U - 1];
|
|
3246
|
+
return { point: p, position: L, layer: X };
|
|
3247
|
+
}, v = bi(e, {
|
|
3244
3248
|
view: n,
|
|
3245
3249
|
screen: () => s,
|
|
3246
|
-
pick:
|
|
3250
|
+
pick: x
|
|
3247
3251
|
});
|
|
3248
3252
|
return {
|
|
3249
|
-
project:
|
|
3253
|
+
project: m,
|
|
3250
3254
|
unproject: _,
|
|
3251
|
-
pick:
|
|
3252
|
-
elevation: (
|
|
3253
|
-
const [
|
|
3254
|
-
return
|
|
3255
|
+
pick: x,
|
|
3256
|
+
elevation: (p) => {
|
|
3257
|
+
const [E] = i();
|
|
3258
|
+
return E.elevation(p);
|
|
3255
3259
|
},
|
|
3256
3260
|
get dragging() {
|
|
3257
|
-
return
|
|
3261
|
+
return v.dragging;
|
|
3258
3262
|
},
|
|
3259
3263
|
dispose: () => {
|
|
3260
|
-
r = !1,
|
|
3264
|
+
r = !1, v.dispose(), o.dispose(), c instanceof HTMLCanvasElement && f.unobserve(c);
|
|
3261
3265
|
}
|
|
3262
3266
|
};
|
|
3263
3267
|
}, Ce = (e) => e.flatMap((t) => [...Ce(t.children ?? []), t]);
|
|
@@ -3276,7 +3280,7 @@ export {
|
|
|
3276
3280
|
ye as createMouseEvents,
|
|
3277
3281
|
yi as createNumberTransition,
|
|
3278
3282
|
Di as createObjectLayer,
|
|
3279
|
-
|
|
3283
|
+
Ti as createOrientationTransition,
|
|
3280
3284
|
Oi as createPolygonLayer,
|
|
3281
3285
|
Yi as createPositionTransition,
|
|
3282
3286
|
$i as createPositionVelocityTransition,
|
|
@@ -3285,7 +3289,7 @@ export {
|
|
|
3285
3289
|
Li as createRenderLayer,
|
|
3286
3290
|
ji as createTerrainLayer,
|
|
3287
3291
|
fe as createTransition,
|
|
3288
|
-
|
|
3292
|
+
wi as createVec2Transition,
|
|
3289
3293
|
Zi as createVec4Transition,
|
|
3290
3294
|
ki as createViewTransition,
|
|
3291
3295
|
Hi as createWorld,
|
|
@@ -3294,12 +3298,12 @@ export {
|
|
|
3294
3298
|
Et as defaultView,
|
|
3295
3299
|
En as degrees,
|
|
3296
3300
|
oe as geodetic,
|
|
3297
|
-
|
|
3301
|
+
N as mercator,
|
|
3298
3302
|
_n as quadratic,
|
|
3299
3303
|
De as radians,
|
|
3300
3304
|
xe as range,
|
|
3301
3305
|
vt as tileToMercator,
|
|
3302
|
-
|
|
3306
|
+
wn as toOrientation,
|
|
3303
3307
|
xt as toQuaternion
|
|
3304
3308
|
};
|
|
3305
3309
|
//# sourceMappingURL=index.js.map
|