world.ts 0.3.18 → 0.3.19
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 +479 -438
- package/dist/index.js.map +1 -1
- package/dist/layers/index.d.ts +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ const bt = (e, t) => {
|
|
|
3
3
|
return (...i) => {
|
|
4
4
|
clearTimeout(n), n = setTimeout(() => e(...i), t);
|
|
5
5
|
};
|
|
6
|
-
},
|
|
6
|
+
}, xe = (e, t) => Array.from({ length: t - e }, (n, i) => i + e), St = ({
|
|
7
7
|
gl: e,
|
|
8
8
|
vertexSource: t,
|
|
9
9
|
fragmentSource: n
|
|
@@ -22,75 +22,79 @@ const bt = (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 = (
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
25
|
+
const o = () => e.useProgram(i), c = {}, a = (T, g) => {
|
|
26
|
+
if (c[T])
|
|
27
|
+
return c[T];
|
|
28
|
+
const R = e.getUniformLocation(i, T);
|
|
29
|
+
let b;
|
|
30
|
+
const U = (S) => {
|
|
31
|
+
R && S !== b && (g(R, S), b = S);
|
|
32
|
+
};
|
|
33
|
+
return c[T] = { set: U }, { set: U };
|
|
34
|
+
}, f = (T) => a(T, (g, R) => e.uniform1f(g, R)), l = (T) => a(T, (g, R) => e.uniform1i(g, R)), h = (T) => a(
|
|
35
|
+
T,
|
|
36
|
+
(g, [R = 0, b = 0]) => e.uniform2f(g, R, b)
|
|
37
|
+
), u = (T) => a(
|
|
38
|
+
T,
|
|
39
|
+
(g, [R = 0, b = 0]) => e.uniform2i(g, R, b)
|
|
40
|
+
), d = (T) => a(
|
|
41
|
+
T,
|
|
42
|
+
(g, [R = 0, b = 0, U = 0]) => e.uniform3f(g, R, b, U)
|
|
43
|
+
), m = (T) => a(
|
|
44
|
+
T,
|
|
45
|
+
(g, [R = 0, b = 0, U = 0]) => e.uniform3i(g, R, b, U)
|
|
46
|
+
), y = (T) => a(
|
|
47
|
+
T,
|
|
48
|
+
(g, [R = 0, b = 0, U = 0, S = 0]) => e.uniform4f(g, R, b, U, S)
|
|
49
|
+
), E = (T) => a(
|
|
50
|
+
T,
|
|
51
|
+
(g, [R = 0, b = 0, U = 0, S = 0]) => e.uniform4i(g, R, b, U, S)
|
|
52
|
+
), p = (T) => a(
|
|
53
|
+
T,
|
|
54
|
+
(g, R) => e.uniformMatrix4fv(g, !1, R)
|
|
55
|
+
), A = ({
|
|
56
|
+
name: T,
|
|
57
|
+
buffer: g,
|
|
54
58
|
size: R,
|
|
55
|
-
type:
|
|
56
|
-
stride:
|
|
57
|
-
offset:
|
|
59
|
+
type: b,
|
|
60
|
+
stride: U,
|
|
61
|
+
offset: S
|
|
58
62
|
}) => {
|
|
59
|
-
const P = e.getAttribLocation(i,
|
|
63
|
+
const P = e.getAttribLocation(i, T);
|
|
60
64
|
if (P === -1)
|
|
61
|
-
throw new Error(`Missing attribute: ${
|
|
65
|
+
throw new Error(`Missing attribute: ${T}`);
|
|
62
66
|
return { use: () => {
|
|
63
|
-
|
|
67
|
+
g.use(), e.enableVertexAttribArray(P), ["u16", "i32"].includes(b) ? e.vertexAttribIPointer(
|
|
64
68
|
P,
|
|
65
69
|
R,
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
70
|
+
b === "u16" ? e.UNSIGNED_SHORT : e.INT,
|
|
71
|
+
U || 0,
|
|
72
|
+
S || 0
|
|
69
73
|
) : e.vertexAttribPointer(
|
|
70
74
|
P,
|
|
71
75
|
R,
|
|
72
76
|
e.FLOAT,
|
|
73
77
|
!1,
|
|
74
|
-
|
|
75
|
-
|
|
78
|
+
U || 0,
|
|
79
|
+
S || 0
|
|
76
80
|
);
|
|
77
81
|
} };
|
|
78
82
|
};
|
|
79
83
|
return {
|
|
80
84
|
use: o,
|
|
81
|
-
uniform1f:
|
|
82
|
-
uniform1i:
|
|
83
|
-
uniform2f:
|
|
84
|
-
uniform2i:
|
|
85
|
-
uniform3f:
|
|
86
|
-
uniform3i:
|
|
87
|
-
uniform4f:
|
|
88
|
-
uniform4i:
|
|
89
|
-
uniformMatrix4f:
|
|
90
|
-
attribute1f: (
|
|
91
|
-
attribute2f: (
|
|
92
|
-
attribute3f: (
|
|
93
|
-
attribute3i: (
|
|
85
|
+
uniform1f: f,
|
|
86
|
+
uniform1i: l,
|
|
87
|
+
uniform2f: h,
|
|
88
|
+
uniform2i: u,
|
|
89
|
+
uniform3f: d,
|
|
90
|
+
uniform3i: m,
|
|
91
|
+
uniform4f: y,
|
|
92
|
+
uniform4i: E,
|
|
93
|
+
uniformMatrix4f: p,
|
|
94
|
+
attribute1f: (T, g, R = {}) => A({ name: T, buffer: g, size: 1, type: "f32", ...R }),
|
|
95
|
+
attribute2f: (T, g, R = {}) => A({ name: T, buffer: g, size: 2, type: "f32", ...R }),
|
|
96
|
+
attribute3f: (T, g, R = {}) => A({ name: T, buffer: g, size: 3, type: "f32", ...R }),
|
|
97
|
+
attribute3i: (T, g, R = {}) => A({ name: T, buffer: g, size: 3, type: "i32", ...R }),
|
|
94
98
|
dispose: () => {
|
|
95
99
|
e.deleteProgram(i), e.deleteShader(r), e.deleteShader(s);
|
|
96
100
|
}
|
|
@@ -116,7 +120,7 @@ const bt = (e, t) => {
|
|
|
116
120
|
},
|
|
117
121
|
dispose: () => [...t.values()].forEach((r) => r.dispose())
|
|
118
122
|
};
|
|
119
|
-
},
|
|
123
|
+
}, Ai = (e) => {
|
|
120
124
|
const t = e.getContext("webgl2");
|
|
121
125
|
if (!t)
|
|
122
126
|
throw new Error("No WebGL2");
|
|
@@ -136,7 +140,7 @@ function Lt() {
|
|
|
136
140
|
var e = new k(9);
|
|
137
141
|
return k != Float32Array && (e[1] = 0, e[2] = 0, e[3] = 0, e[5] = 0, e[6] = 0, e[7] = 0), e[0] = 1, e[4] = 1, e[8] = 1, e;
|
|
138
142
|
}
|
|
139
|
-
function
|
|
143
|
+
function ve() {
|
|
140
144
|
var e = new k(16);
|
|
141
145
|
return k != Float32Array && (e[1] = 0, e[2] = 0, e[3] = 0, e[4] = 0, e[6] = 0, e[7] = 0, e[8] = 0, e[9] = 0, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0), e[0] = 1, e[5] = 1, e[10] = 1, e[15] = 1, e;
|
|
142
146
|
}
|
|
@@ -144,12 +148,12 @@ function rt(e) {
|
|
|
144
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;
|
|
145
149
|
}
|
|
146
150
|
function Nt(e, t) {
|
|
147
|
-
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],
|
|
148
|
-
return
|
|
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], y = t[13], E = t[14], p = t[15], A = n * c - i * o, x = n * a - r * o, _ = n * f - s * o, v = i * a - r * c, w = i * f - s * c, M = r * f - s * a, T = l * y - h * m, g = l * E - u * m, R = l * p - d * m, b = h * E - u * y, U = h * p - d * y, S = u * p - d * E, P = A * S - x * U + _ * b + v * R - w * g + M * T;
|
|
152
|
+
return P ? (P = 1 / P, e[0] = (c * S - a * U + f * b) * P, e[1] = (r * U - i * S - s * b) * P, e[2] = (y * M - E * w + p * v) * P, e[3] = (u * w - h * M - d * v) * P, e[4] = (a * R - o * S - f * g) * P, e[5] = (n * S - r * R + s * g) * P, e[6] = (E * _ - m * M - p * x) * P, e[7] = (l * M - u * _ + d * x) * P, e[8] = (o * U - c * R + f * T) * P, e[9] = (i * R - n * U - s * T) * P, e[10] = (m * w - y * _ + p * A) * P, e[11] = (h * _ - l * w - d * A) * P, e[12] = (c * g - o * b - a * T) * P, e[13] = (n * b - i * g + r * T) * P, e[14] = (y * x - m * v - E * A) * P, e[15] = (l * v - h * x + u * A) * P, e) : null;
|
|
149
153
|
}
|
|
150
154
|
function It(e, t, n) {
|
|
151
|
-
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],
|
|
152
|
-
return e[0] = x * i + _ * c + v * h +
|
|
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], y = t[12], E = t[13], p = t[14], A = t[15], x = n[0], _ = n[1], v = n[2], w = n[3];
|
|
156
|
+
return e[0] = x * i + _ * c + v * h + w * y, e[1] = x * r + _ * a + v * u + w * E, e[2] = x * s + _ * f + v * d + w * p, e[3] = x * o + _ * l + v * m + w * A, x = n[4], _ = n[5], v = n[6], w = n[7], e[4] = x * i + _ * c + v * h + w * y, e[5] = x * r + _ * a + v * u + w * E, e[6] = x * s + _ * f + v * d + w * p, e[7] = x * o + _ * l + v * m + w * A, x = n[8], _ = n[9], v = n[10], w = n[11], e[8] = x * i + _ * c + v * h + w * y, e[9] = x * r + _ * a + v * u + w * E, e[10] = x * s + _ * f + v * d + w * p, e[11] = x * o + _ * l + v * m + w * A, x = n[12], _ = n[13], v = n[14], w = n[15], e[12] = x * i + _ * c + v * h + w * y, e[13] = x * r + _ * a + v * u + w * E, e[14] = x * s + _ * f + v * d + w * p, e[15] = x * o + _ * l + v * m + w * A, e;
|
|
153
157
|
}
|
|
154
158
|
function Dt(e, t, n) {
|
|
155
159
|
var i = n[0], r = n[1], s = n[2];
|
|
@@ -168,8 +172,8 @@ function Xt(e, t, n) {
|
|
|
168
172
|
return t !== e && (e[8] = t[8], e[9] = t[9], e[10] = t[10], e[11] = t[11], e[12] = t[12], e[13] = t[13], e[14] = t[14], e[15] = t[15]), e[0] = s * r + f * i, e[1] = o * r + l * i, e[2] = c * r + h * i, e[3] = a * r + u * i, e[4] = f * r - s * i, e[5] = l * r - o * i, e[6] = h * r - c * i, e[7] = u * r - a * i, e;
|
|
169
173
|
}
|
|
170
174
|
function ht(e, t) {
|
|
171
|
-
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,
|
|
172
|
-
return e[0] = 1 - h - m, e[1] = l + p, e[2] = u - E, e[3] = 0, e[4] = l - p, e[5] = 1 - f - m, e[6] = d +
|
|
175
|
+
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, y = s * o, E = s * c, p = s * a;
|
|
176
|
+
return e[0] = 1 - h - m, e[1] = l + p, e[2] = u - E, e[3] = 0, e[4] = l - p, e[5] = 1 - f - m, e[6] = d + y, e[7] = 0, e[8] = u + E, e[9] = d - y, e[10] = 1 - f - h, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, e;
|
|
173
177
|
}
|
|
174
178
|
function Wt(e, t, n, i, r) {
|
|
175
179
|
var s = 1 / Math.tan(t / 2), o;
|
|
@@ -200,7 +204,7 @@ function re(e, t, n) {
|
|
|
200
204
|
function Zt(e, t, n) {
|
|
201
205
|
return e[0] = t[0] - n[0], e[1] = t[1] - n[1], e[2] = t[2] - n[2], e;
|
|
202
206
|
}
|
|
203
|
-
function
|
|
207
|
+
function he(e, t, n) {
|
|
204
208
|
return e[0] = t[0] * n, e[1] = t[1] * n, e[2] = t[2] * n, e;
|
|
205
209
|
}
|
|
206
210
|
function be(e, t) {
|
|
@@ -222,7 +226,7 @@ function kt(e, t, n, i) {
|
|
|
222
226
|
var r = t[0], s = t[1], o = t[2];
|
|
223
227
|
return e[0] = r + i * (n[0] - r), e[1] = s + i * (n[1] - s), e[2] = o + i * (n[2] - o), e;
|
|
224
228
|
}
|
|
225
|
-
var
|
|
229
|
+
var se = Zt, Ht = Bt;
|
|
226
230
|
(function() {
|
|
227
231
|
var e = L();
|
|
228
232
|
return function(t, n, i, r, s, o) {
|
|
@@ -290,8 +294,8 @@ function rn(e, t) {
|
|
|
290
294
|
return Math.acos(2 * n * n - 1);
|
|
291
295
|
}
|
|
292
296
|
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, m,
|
|
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 > Pt ? (u = Math.acos(d), m = Math.sin(u),
|
|
297
|
+
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, y, E;
|
|
298
|
+
return d = r * a + s * f + o * l + c * h, d < 0 && (d = -d, a = -a, f = -f, l = -l, h = -h), 1 - d > Pt ? (u = Math.acos(d), m = Math.sin(u), y = Math.sin((1 - i) * u) / m, E = Math.sin(i * u) / m) : (y = 1 - i, E = i), e[0] = y * r + E * a, e[1] = y * s + E * f, e[2] = y * o + E * l, e[3] = y * c + E * h, e;
|
|
295
299
|
}
|
|
296
300
|
function sn(e, t) {
|
|
297
301
|
var n = t[0] + t[4] + t[8], i;
|
|
@@ -325,7 +329,7 @@ var on = en, dt = Jt;
|
|
|
325
329
|
return e[0] = i[0], e[3] = i[1], e[6] = i[2], e[1] = r[0], e[4] = r[1], e[7] = r[2], e[2] = -n[0], e[5] = -n[1], e[8] = -n[2], dt(t, sn(t, e));
|
|
326
330
|
};
|
|
327
331
|
})();
|
|
328
|
-
function
|
|
332
|
+
function pe() {
|
|
329
333
|
var e = new k(2);
|
|
330
334
|
return k != Float32Array && (e[0] = 0, e[1] = 0), e;
|
|
331
335
|
}
|
|
@@ -354,7 +358,7 @@ function dn(e, t) {
|
|
|
354
358
|
}
|
|
355
359
|
var mn = ln;
|
|
356
360
|
(function() {
|
|
357
|
-
var e =
|
|
361
|
+
var e = pe();
|
|
358
362
|
return function(t, n, i, r, s, o) {
|
|
359
363
|
var c, a;
|
|
360
364
|
for (n || (n = 2), i || (i = 0), r ? a = Math.min(r * n + i, t.length) : a = t.length, c = i; c < a; c += n)
|
|
@@ -370,7 +374,7 @@ const H = 40075017, De = (e) => e / 180 * Math.PI, vn = (e) => e * 180 / Math.PI
|
|
|
370
374
|
e / 360 + 0.5,
|
|
371
375
|
-Math.asinh(Math.tan(xn(De(t), -ct, ct))) / (2 * Math.PI) + 0.5,
|
|
372
376
|
n / H
|
|
373
|
-
),
|
|
377
|
+
), oe = ([e = 0, t = 0, n = 0], i = L()) => Me(
|
|
374
378
|
i,
|
|
375
379
|
(e - 0.5) * 360,
|
|
376
380
|
vn(Math.atan(Math.sinh(-(t - 0.5) * (2 * Math.PI)))),
|
|
@@ -390,58 +394,58 @@ const H = 40075017, De = (e) => e / 180 * Math.PI, vn = (e) => e * 180 / Math.PI
|
|
|
390
394
|
distance: H,
|
|
391
395
|
orientation: [0, 0, 0],
|
|
392
396
|
fieldOfView: 45
|
|
393
|
-
}, _n =
|
|
397
|
+
}, _n = ve(), yn = ne(), te = (e, t) => {
|
|
394
398
|
const { target: n, offset: i, distance: r, orientation: s, fieldOfView: o } = {
|
|
395
399
|
...vt,
|
|
396
400
|
...e
|
|
397
|
-
}, [c = 0, a = 0] = t, [f = 0, l = 0] = i, [h = 0, u = 0, d = 0] = s, m = Math.tan(De(45) / 2) / Math.tan(De(o) / 2),
|
|
401
|
+
}, [c = 0, a = 0] = t, [f = 0, l = 0] = i, [h = 0, u = 0, d = 0] = s, m = Math.tan(De(45) / 2) / Math.tan(De(o) / 2), y = r / H * m, E = y / 100, p = y * 1e6, A = ve();
|
|
398
402
|
rt(A), jt(A, De(o), c / a, E, p), Dt(A, A, [1, -1, 1]);
|
|
399
|
-
const x =
|
|
403
|
+
const x = ve();
|
|
400
404
|
rt(x), Ot(x, x, h), Ct(x, x, u), Xt(x, x, d);
|
|
401
|
-
const _ = It(_n, A, x), v = Nt(
|
|
405
|
+
const _ = It(_n, A, x), v = Nt(ve(), _);
|
|
402
406
|
if (!v)
|
|
403
407
|
throw new Error("No inverse");
|
|
404
|
-
const
|
|
405
|
-
const j = [c *
|
|
408
|
+
const w = (O) => {
|
|
409
|
+
const j = [c * O, a * O], $ = [f * O, l * O];
|
|
406
410
|
return te({ ...e, offset: $ }, j);
|
|
407
|
-
},
|
|
408
|
-
const Q = 2 *
|
|
411
|
+
}, M = ([O = 0, j = 0], $ = ne()) => {
|
|
412
|
+
const Q = 2 * O / c - 1, Te = -(2 * j / a - 1);
|
|
409
413
|
return ot($, Q, Te, 0, 1);
|
|
410
|
-
},
|
|
411
|
-
const [$ = 0, Q = 0, Te = 0, we = 0] = at(yn,
|
|
414
|
+
}, T = ([O = 0, j = 0, , $ = 0], Q = pe()) => $ < 0 ? Q : cn(Q, (1 + O / $) * c * 0.5, (1 - j / $) * a * 0.5), g = (O, j = L()) => {
|
|
415
|
+
const [$ = 0, Q = 0, Te = 0, we = 0] = at(yn, O, v);
|
|
412
416
|
return Me(j, $ / we, Q / we, Te / we);
|
|
413
|
-
},
|
|
414
|
-
(
|
|
415
|
-
|
|
416
|
-
|
|
417
|
+
}, R = ([O = 0, j = 0, $ = 0], Q = ne()) => at(Q, ot(Q, O, j, $, 1), _), [b = 0, U = 0] = M([f + c / 2, l + a / 2]), [S = 0, P = 0, N = 0] = g([b, U, -1, 1]), [I = 0, X = 0, C = 0] = g([b, U, 1.00001, 1]), [W = 0] = pn(
|
|
418
|
+
(I - S) * (I - S) + (X - P) * (X - P) + (C - N) * (C - N),
|
|
419
|
+
S * (I - S) + P * (X - P) + N * (C - N),
|
|
420
|
+
S * S + P * P + N * N - r * r / H / H * m * m
|
|
417
421
|
);
|
|
418
422
|
if (isNaN(W))
|
|
419
423
|
throw new Error("Unexpected");
|
|
420
424
|
const Z = [
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
], Y =
|
|
425
|
+
S + W * (I - S),
|
|
426
|
+
P + W * (X - P),
|
|
427
|
+
N + W * (C - N)
|
|
428
|
+
], Y = se(L(), z(n), Z), q = (O, j = L()) => re(j, O, Y), G = (O, j = L()) => se(j, O, Y);
|
|
425
429
|
return {
|
|
426
430
|
camera: Y,
|
|
427
431
|
screen: t,
|
|
428
432
|
projection: A,
|
|
429
433
|
modelView: x,
|
|
430
434
|
fieldScale: m,
|
|
431
|
-
scale:
|
|
432
|
-
screenToClip:
|
|
433
|
-
clipToScreen:
|
|
434
|
-
clipToLocal:
|
|
435
|
-
localToClip:
|
|
435
|
+
scale: w,
|
|
436
|
+
screenToClip: M,
|
|
437
|
+
clipToScreen: T,
|
|
438
|
+
clipToLocal: g,
|
|
439
|
+
localToClip: R,
|
|
436
440
|
localToWorld: q,
|
|
437
441
|
worldToLocal: G,
|
|
438
|
-
project: (
|
|
439
|
-
unproject: (
|
|
440
|
-
const $ =
|
|
442
|
+
project: (O) => T(R(G(z(O)))),
|
|
443
|
+
unproject: (O, { targetZ: j = 0 } = {}) => {
|
|
444
|
+
const $ = M(O), [Q = 0, Te = 0, , we = 0] = $, At = [Q, Te, -1, we], et = oe(q(g($))), tt = oe(q(g(At))), [, , Ze = 0] = et, [, , nt = 0] = tt, Mt = Ze === nt ? 0 : (j - Ze) / (nt - Ze);
|
|
441
445
|
return kt(L(), et, tt, Mt);
|
|
442
446
|
}
|
|
443
447
|
};
|
|
444
|
-
}, Tn = 100,
|
|
448
|
+
}, Tn = 100, Mi = (e, t, n) => {
|
|
445
449
|
const {
|
|
446
450
|
enabled: i = () => !0,
|
|
447
451
|
draggable: r = () => !0,
|
|
@@ -449,72 +453,72 @@ const H = 40075017, De = (e) => e / 180 * Math.PI, vn = (e) => e * 180 / Math.PI
|
|
|
449
453
|
onChangeView: o
|
|
450
454
|
} = n;
|
|
451
455
|
let c = !1, a = !1;
|
|
452
|
-
const { view: f } = n, l = ([v = 0,
|
|
453
|
-
const [
|
|
456
|
+
const { view: f } = n, l = ([v = 0, w = 0]) => {
|
|
457
|
+
const [M, T] = [
|
|
454
458
|
e.width / devicePixelRatio,
|
|
455
459
|
e.height / devicePixelRatio
|
|
456
|
-
], { camera:
|
|
460
|
+
], { camera: g, fieldScale: R } = te(f(), [M, T]), { position: b, layer: U } = t.pick([v, w]);
|
|
457
461
|
if (!U)
|
|
458
462
|
return;
|
|
459
|
-
const
|
|
463
|
+
const S = be(z(b), g) * H / R, P = [v - M / 2, w - T / 2];
|
|
460
464
|
o({
|
|
461
|
-
offset:
|
|
465
|
+
offset: P,
|
|
462
466
|
target: b,
|
|
463
|
-
distance:
|
|
467
|
+
distance: S
|
|
464
468
|
});
|
|
465
|
-
}, h = (v,
|
|
469
|
+
}, h = (v, w) => {
|
|
466
470
|
if (!r())
|
|
467
471
|
return;
|
|
468
|
-
a || (l([v,
|
|
469
|
-
const [
|
|
472
|
+
a || (l([v, w]), a = !0);
|
|
473
|
+
const [M, T] = [
|
|
470
474
|
e.width / devicePixelRatio,
|
|
471
475
|
e.height / devicePixelRatio
|
|
472
476
|
];
|
|
473
477
|
o({
|
|
474
|
-
offset: [v -
|
|
478
|
+
offset: [v - M / 2, w - T / 2]
|
|
475
479
|
});
|
|
476
|
-
}, u = (v,
|
|
480
|
+
}, u = (v, w, M, T) => {
|
|
477
481
|
if (!s())
|
|
478
482
|
return;
|
|
479
|
-
r() && !a && (l([v,
|
|
480
|
-
const [
|
|
483
|
+
r() && !a && (l([v, w]), a = !0);
|
|
484
|
+
const [g, R] = [
|
|
481
485
|
e.width / devicePixelRatio,
|
|
482
486
|
e.height / devicePixelRatio
|
|
483
|
-
], { orientation: [b = 0, U = 0,
|
|
487
|
+
], { orientation: [b = 0, U = 0, S = 0] = [] } = f(), P = [
|
|
484
488
|
Math.min(
|
|
485
489
|
Math.PI / 2 - 0.1,
|
|
486
|
-
Math.max(0.1, b -
|
|
490
|
+
Math.max(0.1, b - T / R * Math.PI)
|
|
487
491
|
),
|
|
488
492
|
U,
|
|
489
|
-
|
|
493
|
+
S - M / g * Math.PI
|
|
490
494
|
];
|
|
491
495
|
o({
|
|
492
|
-
orientation:
|
|
496
|
+
orientation: P
|
|
493
497
|
});
|
|
494
498
|
}, d = (v) => {
|
|
495
499
|
v.preventDefault(), a = !1;
|
|
496
|
-
}, m = ({ buttons: v, movementX:
|
|
497
|
-
!i() || !v || (v === 1 && r() ? h(
|
|
498
|
-
},
|
|
500
|
+
}, m = ({ buttons: v, movementX: w, movementY: M, x: T, y: g }) => {
|
|
501
|
+
!i() || !v || (v === 1 && r() ? h(T, g) : v === 2 && s() && u(T, g, w, M));
|
|
502
|
+
}, y = (v) => {
|
|
499
503
|
v.preventDefault();
|
|
500
|
-
const
|
|
501
|
-
if (!
|
|
504
|
+
const w = v.touches.item(0);
|
|
505
|
+
if (!w)
|
|
502
506
|
return;
|
|
503
|
-
const { clientX:
|
|
504
|
-
h(
|
|
505
|
-
}, E = bt(() => c = !1, 100), p = ({ x: v, y:
|
|
507
|
+
const { clientX: M, clientY: T } = w;
|
|
508
|
+
h(M, T);
|
|
509
|
+
}, E = bt(() => c = !1, 100), p = ({ x: v, y: w, deltaY: M }) => {
|
|
506
510
|
if (!i())
|
|
507
511
|
return;
|
|
508
|
-
c || (r() && l([v,
|
|
509
|
-
let { distance:
|
|
510
|
-
|
|
511
|
-
Math.max(
|
|
512
|
+
c || (r() && l([v, w]), c = !0);
|
|
513
|
+
let { distance: T } = { ...vt, ...f() };
|
|
514
|
+
T = Math.min(
|
|
515
|
+
Math.max(T * Math.exp(M * 1e-3), Tn),
|
|
512
516
|
H
|
|
513
|
-
), o({ distance:
|
|
517
|
+
), o({ distance: T }), E();
|
|
514
518
|
}, A = (v) => v.preventDefault(), x = (v) => v.preventDefault();
|
|
515
|
-
return e.addEventListener("mousedown", d), e.addEventListener("mousemove", m), e.addEventListener("touchstart", d, { passive: !1 }), e.addEventListener("touchmove",
|
|
519
|
+
return e.addEventListener("mousedown", d), e.addEventListener("mousemove", m), e.addEventListener("touchstart", d, { passive: !1 }), e.addEventListener("touchmove", y, { passive: !1 }), e.addEventListener("gesturestart", A), e.addEventListener("wheel", p, { passive: !0 }), e.addEventListener("contextmenu", x), {
|
|
516
520
|
dispose: () => {
|
|
517
|
-
e.removeEventListener("mousedown", d), e.removeEventListener("mousemove", m), e.removeEventListener("touchstart", d), e.removeEventListener("touchmove",
|
|
521
|
+
e.removeEventListener("mousedown", d), e.removeEventListener("mousemove", m), e.removeEventListener("touchstart", d), e.removeEventListener("touchmove", y), e.removeEventListener("gesturestart", A), e.removeEventListener("wheel", p), e.removeEventListener("contextmenu", x);
|
|
518
522
|
}
|
|
519
523
|
};
|
|
520
524
|
}, V = ({
|
|
@@ -709,7 +713,7 @@ void main(void) {
|
|
|
709
713
|
uv_out = uv;
|
|
710
714
|
color_out = color;
|
|
711
715
|
}`;
|
|
712
|
-
const
|
|
716
|
+
const bi = (e, t = {}) => {
|
|
713
717
|
const { gl: n } = e;
|
|
714
718
|
let i, r = [0, 0];
|
|
715
719
|
const s = V({ gl: n, type: "f32", target: "array" }), o = V({ gl: n, type: "f32", target: "array" }), c = V({ gl: n, type: "u16", target: "element" });
|
|
@@ -733,14 +737,14 @@ const Si = (e, t = {}) => {
|
|
|
733
737
|
[0, 3, 2]
|
|
734
738
|
].flat()
|
|
735
739
|
);
|
|
736
|
-
const a =
|
|
740
|
+
const a = ce(
|
|
737
741
|
() => t.url?.() ?? "",
|
|
738
742
|
(m) => {
|
|
739
|
-
const
|
|
743
|
+
const y = Et({
|
|
740
744
|
gl: n,
|
|
741
745
|
url: m,
|
|
742
746
|
onLoad: ({ width: E, height: p }) => {
|
|
743
|
-
r = [E, p], 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 =
|
|
747
|
+
r = [E, p], 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 = y;
|
|
744
748
|
}
|
|
745
749
|
});
|
|
746
750
|
}
|
|
@@ -749,25 +753,25 @@ const Si = (e, t = {}) => {
|
|
|
749
753
|
uvBuffer: o,
|
|
750
754
|
indexBuffer: c
|
|
751
755
|
}), h = ({
|
|
752
|
-
viewport: { projection: m, modelView:
|
|
756
|
+
viewport: { projection: m, modelView: y, camera: E, screen: p },
|
|
753
757
|
depth: A = !1,
|
|
754
758
|
index: x = 0
|
|
755
759
|
}) => {
|
|
756
|
-
const _ = t.position?.() ?? [0, 0, 0], v = t.color?.() ?? [1, 1, 1, 1],
|
|
760
|
+
const _ = t.position?.() ?? [0, 0, 0], v = t.color?.() ?? [1, 1, 1, 1], w = t.size?.() ?? 100, M = t.minSizePixels?.() ?? 0, T = t.maxSizePixels?.() ?? Number.MAX_VALUE;
|
|
757
761
|
if (a(), !i || Ee(n, A, t))
|
|
758
762
|
return;
|
|
759
763
|
(A ? l : f).execute({
|
|
760
764
|
projection: m,
|
|
761
|
-
modelView:
|
|
765
|
+
modelView: y,
|
|
762
766
|
camera: K(E),
|
|
763
767
|
screen: p,
|
|
764
768
|
image: i,
|
|
765
769
|
imageSize: r,
|
|
766
770
|
position: K(z(_)),
|
|
767
771
|
color: v,
|
|
768
|
-
size:
|
|
769
|
-
minSizePixels:
|
|
770
|
-
maxSizePixels:
|
|
772
|
+
size: w,
|
|
773
|
+
minSizePixels: M,
|
|
774
|
+
maxSizePixels: T,
|
|
771
775
|
index: x
|
|
772
776
|
});
|
|
773
777
|
}, u = () => {
|
|
@@ -791,29 +795,29 @@ const Si = (e, t = {}) => {
|
|
|
791
795
|
stride: 2 * Float32Array.BYTES_PER_ELEMENT
|
|
792
796
|
}), h = f.attribute2f("uv", i, {
|
|
793
797
|
stride: 2 * Float32Array.BYTES_PER_ELEMENT
|
|
794
|
-
}), u = f.uniformMatrix4f("projection"), d = f.uniformMatrix4f("model_view"), m = f.uniform3i("camera"),
|
|
798
|
+
}), u = f.uniformMatrix4f("projection"), d = f.uniformMatrix4f("model_view"), m = f.uniform3i("camera"), y = f.uniform2f("screen"), E = f.uniform1i("image"), p = f.uniform2f("image_size"), A = f.uniform3i("position"), x = f.uniform4f("color"), _ = f.uniform1i("index"), v = f.uniform1f("size"), w = f.uniform1f("min_size_pixels"), M = f.uniform1f("max_size_pixels");
|
|
795
799
|
return { execute: ({
|
|
796
|
-
projection:
|
|
797
|
-
modelView:
|
|
800
|
+
projection: g,
|
|
801
|
+
modelView: R,
|
|
798
802
|
camera: b,
|
|
799
803
|
screen: U,
|
|
800
|
-
image:
|
|
801
|
-
imageSize:
|
|
802
|
-
position:
|
|
803
|
-
color:
|
|
804
|
+
image: S,
|
|
805
|
+
imageSize: P,
|
|
806
|
+
position: N,
|
|
807
|
+
color: I,
|
|
804
808
|
size: X,
|
|
805
|
-
minSizePixels:
|
|
809
|
+
minSizePixels: C,
|
|
806
810
|
maxSizePixels: W,
|
|
807
811
|
index: Z
|
|
808
812
|
}) => {
|
|
809
|
-
f.use(), l.use(), h.use(), u.set(
|
|
813
|
+
f.use(), l.use(), h.use(), u.set(g), d.set(R), m.set(b), y.set(U), p.set(P), A.set(N), x.set(I), v.set(X), w.set(C), M.set(W), _.set(Z), e.activeTexture(e.TEXTURE0), E.set(0), S.use(), r.use(), e.drawElements(e.TRIANGLES, 6, e.UNSIGNED_SHORT, 0);
|
|
810
814
|
} };
|
|
811
815
|
}, o = s(), c = s(!0);
|
|
812
816
|
return { renderProgram: o, depthProgram: c };
|
|
813
|
-
},
|
|
817
|
+
}, Si = (e) => ({
|
|
814
818
|
children: e,
|
|
815
819
|
dispose: () => e.forEach((n) => n.dispose())
|
|
816
|
-
}),
|
|
820
|
+
}), Ui = (e) => {
|
|
817
821
|
const { keys: t, create: n } = e, i = /* @__PURE__ */ new Map();
|
|
818
822
|
return {
|
|
819
823
|
get children() {
|
|
@@ -829,11 +833,11 @@ const Si = (e, t = {}) => {
|
|
|
829
833
|
},
|
|
830
834
|
dispose: () => Object.values(i).forEach((o) => o.dispose())
|
|
831
835
|
};
|
|
832
|
-
},
|
|
836
|
+
}, Pi = (e) => ({
|
|
833
837
|
render: e,
|
|
834
838
|
dispose: () => {
|
|
835
839
|
}
|
|
836
|
-
}),
|
|
840
|
+
}), zi = () => ({ dispose: () => {
|
|
837
841
|
} });
|
|
838
842
|
var bn = `#version 300 es
|
|
839
843
|
|
|
@@ -919,7 +923,7 @@ void main(void) {
|
|
|
919
923
|
color_out = color;
|
|
920
924
|
distance_out = distance;
|
|
921
925
|
}`;
|
|
922
|
-
const
|
|
926
|
+
const Li = (e, t = {}) => {
|
|
923
927
|
const { gl: n } = e;
|
|
924
928
|
let i = 0;
|
|
925
929
|
const r = V({ gl: n, type: "i32", target: "array" }), s = V({ gl: n, type: "u16", target: "element" }), o = V({ gl: n, type: "f32", target: "array" }), c = V({ gl: n, type: "f32", target: "array" }), { renderProgram: a, depthProgram: f } = Un(e, {
|
|
@@ -935,7 +939,7 @@ const Ni = (e, t = {}) => {
|
|
|
935
939
|
index: v = 0
|
|
936
940
|
}) => {
|
|
937
941
|
u(), d();
|
|
938
|
-
const
|
|
942
|
+
const w = t.color?.() ?? [1, 1, 1, 1], M = t.width?.() ?? 1, T = t.minWidthPixels?.() ?? 0, g = t.maxWidthPixels?.() ?? Number.MAX_VALUE, R = t.depthWidthPixels?.(), b = t.dashSize?.() ?? 1e3, U = t.dashOffset?.() ?? 0;
|
|
939
943
|
if (Ee(n, _, t))
|
|
940
944
|
return;
|
|
941
945
|
(_ ? f : a).execute({
|
|
@@ -944,60 +948,85 @@ const Ni = (e, t = {}) => {
|
|
|
944
948
|
camera: K(A),
|
|
945
949
|
screen: x,
|
|
946
950
|
count: i,
|
|
947
|
-
color:
|
|
948
|
-
width:
|
|
949
|
-
minWidthPixels: _ &&
|
|
950
|
-
maxWidthPixels: _ &&
|
|
951
|
+
color: w,
|
|
952
|
+
width: M,
|
|
953
|
+
minWidthPixels: _ && R !== void 0 ? Math.max(T, R) : T,
|
|
954
|
+
maxWidthPixels: _ && R !== void 0 ? Math.max(g, R) : g,
|
|
951
955
|
index: v,
|
|
952
956
|
dash: l,
|
|
953
957
|
dashSize: b,
|
|
954
958
|
dashOffset: U
|
|
955
959
|
});
|
|
956
|
-
}, u =
|
|
960
|
+
}, u = ce(
|
|
957
961
|
() => t.points?.() ?? [],
|
|
958
962
|
(E) => {
|
|
959
963
|
const p = E.flatMap((v) => {
|
|
960
|
-
const [
|
|
961
|
-
return !
|
|
964
|
+
const [w] = v, [M] = v.slice(-1);
|
|
965
|
+
return !w || !M ? [] : ((g) => {
|
|
966
|
+
const R = new Array(g.length * 3 * 4);
|
|
967
|
+
for (let b = 0; b < g.length; b++) {
|
|
968
|
+
const [U = 0, S = 0, P = 0] = g[b] ?? [];
|
|
969
|
+
for (let N = 0; N < 4; N++) {
|
|
970
|
+
const I = b * 3 * 4 + N * 3;
|
|
971
|
+
R[I + 0] = U, R[I + 1] = S, R[I + 2] = P;
|
|
972
|
+
}
|
|
973
|
+
}
|
|
974
|
+
return R;
|
|
975
|
+
})([w, ...v, M].map((g) => K(z(g))));
|
|
962
976
|
}), { indexData: A } = E.reduce(
|
|
963
|
-
({ indexData: v, count:
|
|
964
|
-
if (
|
|
965
|
-
return { indexData: v, count:
|
|
966
|
-
const
|
|
967
|
-
const [
|
|
968
|
-
(
|
|
977
|
+
({ indexData: v, count: w }, M) => {
|
|
978
|
+
if (M.length === 0)
|
|
979
|
+
return { indexData: v, count: w };
|
|
980
|
+
const T = xe(0, (M.length - 1) * 2).flatMap((g) => {
|
|
981
|
+
const [R = 0, b = 0, U = 0, S = 0] = [0, 1, 2, 3].map(
|
|
982
|
+
(P) => P + g * 2 + w
|
|
969
983
|
);
|
|
970
984
|
return [
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
985
|
+
R,
|
|
986
|
+
b,
|
|
987
|
+
S,
|
|
988
|
+
/**/
|
|
989
|
+
R,
|
|
990
|
+
S,
|
|
991
|
+
U
|
|
992
|
+
];
|
|
974
993
|
});
|
|
975
|
-
return
|
|
994
|
+
return w += (M.length + 2) * 4, v = v.concat(T), { indexData: v, count: w };
|
|
976
995
|
},
|
|
977
996
|
{ indexData: [], count: 0 }
|
|
978
997
|
);
|
|
979
998
|
i = A.length;
|
|
980
999
|
const x = E.flatMap(
|
|
981
|
-
(v) => v.length === 0 ? [] :
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
1000
|
+
(v) => v.length === 0 ? [] : xe(0, (v.length + 1) * 2).flatMap(() => [
|
|
1001
|
+
-1,
|
|
1002
|
+
-1,
|
|
1003
|
+
//
|
|
1004
|
+
-1,
|
|
1005
|
+
1,
|
|
1006
|
+
//
|
|
1007
|
+
1,
|
|
1008
|
+
-1,
|
|
1009
|
+
//
|
|
1010
|
+
1,
|
|
1011
|
+
1
|
|
1012
|
+
])
|
|
989
1013
|
), _ = E.flatMap((v) => {
|
|
990
|
-
const
|
|
991
|
-
(
|
|
1014
|
+
const M = v.map(
|
|
1015
|
+
(b, U) => be(z(b), z(v[U - 1] ?? b)) * H
|
|
992
1016
|
).reduce(
|
|
993
|
-
({ current:
|
|
1017
|
+
({ current: b, result: U }, S) => (b += S, U.push(b), { current: b, result: U }),
|
|
994
1018
|
{ current: 0, result: [] }
|
|
995
|
-
).result, [
|
|
996
|
-
return
|
|
1019
|
+
).result, [T] = M, [g] = M.slice(-1);
|
|
1020
|
+
return T === void 0 || g === void 0 ? [] : ((b) => {
|
|
1021
|
+
const U = new Array(b.length * 4);
|
|
1022
|
+
for (let S = 0; S < b.length; S++)
|
|
1023
|
+
U[S * 4 + 0] = b[S], U[S * 4 + 1] = b[S], U[S * 4 + 2] = b[S], U[S * 4 + 3] = b[S];
|
|
1024
|
+
return U;
|
|
1025
|
+
})([T, ...M, g]);
|
|
997
1026
|
});
|
|
998
1027
|
r.set(p), s.set(A), o.set(x), c.set(_);
|
|
999
1028
|
}
|
|
1000
|
-
), d =
|
|
1029
|
+
), d = ce(
|
|
1001
1030
|
() => t.dashPattern?.(),
|
|
1002
1031
|
(E) => {
|
|
1003
1032
|
E = E ?? [[1, 1, 1, 1]], l.use(), n.texImage2D(
|
|
@@ -1014,11 +1043,11 @@ const Ni = (e, t = {}) => {
|
|
|
1014
1043
|
}
|
|
1015
1044
|
), m = () => {
|
|
1016
1045
|
l.dispose(), r.dispose(), s.dispose(), o.dispose(), c.dispose();
|
|
1017
|
-
},
|
|
1046
|
+
}, y = ye(t);
|
|
1018
1047
|
return {
|
|
1019
1048
|
render: h,
|
|
1020
1049
|
dispose: m,
|
|
1021
|
-
...
|
|
1050
|
+
...y
|
|
1022
1051
|
};
|
|
1023
1052
|
}, Un = ({ gl: e, programs: t }, {
|
|
1024
1053
|
positionBuffer: n,
|
|
@@ -1035,7 +1064,7 @@ const Ni = (e, t = {}) => {
|
|
|
1035
1064
|
}), m = l.attribute3i("current", n, {
|
|
1036
1065
|
stride: u * 3,
|
|
1037
1066
|
offset: u * 3 * 4
|
|
1038
|
-
}),
|
|
1067
|
+
}), y = l.attribute3i("next", n, {
|
|
1039
1068
|
stride: u * 3,
|
|
1040
1069
|
offset: u * 3 * 4 * 2
|
|
1041
1070
|
}), E = l.attribute2f("corner", r, {
|
|
@@ -1043,12 +1072,12 @@ const Ni = (e, t = {}) => {
|
|
|
1043
1072
|
}), p = l.attribute1f("distance", s, {
|
|
1044
1073
|
stride: h,
|
|
1045
1074
|
offset: h * 1 * 4
|
|
1046
|
-
}), A = l.uniformMatrix4f("projection"), x = l.uniformMatrix4f("model_view"), _ = l.uniform3i("camera"), v = l.uniform2f("screen"),
|
|
1075
|
+
}), A = l.uniformMatrix4f("projection"), x = l.uniformMatrix4f("model_view"), _ = l.uniform3i("camera"), v = l.uniform2f("screen"), w = l.uniform4f("color"), M = l.uniform1f("width"), T = l.uniform1f("max_width_pixels"), g = l.uniform1f("min_width_pixels"), R = l.uniform1i("index"), b = l.uniform1i("dash"), U = l.uniform1f("dash_size"), S = l.uniform1f("dash_offset");
|
|
1047
1076
|
return { execute: ({
|
|
1048
|
-
projection:
|
|
1049
|
-
modelView:
|
|
1077
|
+
projection: N,
|
|
1078
|
+
modelView: I,
|
|
1050
1079
|
camera: X,
|
|
1051
|
-
screen:
|
|
1080
|
+
screen: C,
|
|
1052
1081
|
count: W,
|
|
1053
1082
|
color: Z,
|
|
1054
1083
|
width: Y,
|
|
@@ -1056,10 +1085,10 @@ const Ni = (e, t = {}) => {
|
|
|
1056
1085
|
maxWidthPixels: G,
|
|
1057
1086
|
index: J,
|
|
1058
1087
|
dash: Je,
|
|
1059
|
-
dashSize:
|
|
1088
|
+
dashSize: O,
|
|
1060
1089
|
dashOffset: j
|
|
1061
1090
|
}) => {
|
|
1062
|
-
W !== 0 && (l.use(), d.use(), m.use(),
|
|
1091
|
+
W !== 0 && (l.use(), d.use(), m.use(), y.use(), E.use(), p.use(), A.set(N), x.set(I), _.set(X), v.set(C), w.set(Z), M.set(Y), g.set(q), T.set(G), R.set(J), U.set(O), S.set(j), e.activeTexture(e.TEXTURE0), b.set(0), Je.use(), i.use(), e.drawElements(e.TRIANGLES, W, e.UNSIGNED_SHORT, 0));
|
|
1063
1092
|
} };
|
|
1064
1093
|
}, c = o(), a = o(!0);
|
|
1065
1094
|
return { renderProgram: c, depthProgram: a };
|
|
@@ -1114,7 +1143,7 @@ void main(void) {
|
|
|
1114
1143
|
|
|
1115
1144
|
color_out = color + diffuse * vec4(vec3(clamp(dot(qn.xyz / qn.w, vec3(0.f, 0.f, 1.f)), 0.f, 1.f)), 1.f);
|
|
1116
1145
|
}`;
|
|
1117
|
-
const
|
|
1146
|
+
const Ni = (e, t = {}) => {
|
|
1118
1147
|
const { gl: n } = e;
|
|
1119
1148
|
let i = 0;
|
|
1120
1149
|
const r = V({ gl: n, type: "f32", target: "array" }), s = V({ gl: n, type: "u16", target: "element" }), o = V({ gl: n, type: "f32", target: "array" }), { renderProgram: c, depthProgram: a } = Ln(e, {
|
|
@@ -1122,35 +1151,35 @@ const Ii = (e, t = {}) => {
|
|
|
1122
1151
|
indexBuffer: s,
|
|
1123
1152
|
normalBuffer: o
|
|
1124
1153
|
}), f = ({
|
|
1125
|
-
viewport: { projection: d, modelView: m, camera:
|
|
1154
|
+
viewport: { projection: d, modelView: m, camera: y, screen: E },
|
|
1126
1155
|
depth: p = !1,
|
|
1127
1156
|
index: A = 0
|
|
1128
1157
|
}) => {
|
|
1129
|
-
const x = t.position?.() ?? [0, 0, 0], _ = t.orientation?.() ?? [0, 0, 0, 1], v = t.color?.() ?? [1, 1, 1, 1],
|
|
1158
|
+
const x = t.position?.() ?? [0, 0, 0], _ = t.orientation?.() ?? [0, 0, 0, 1], v = t.color?.() ?? [1, 1, 1, 1], w = t.diffuse?.() ?? [0, 0, 0, 0], M = t.size?.() ?? 1, T = t.minSizePixels?.() ?? 0, g = t.maxSizePixels?.() ?? Number.MAX_VALUE;
|
|
1130
1159
|
if (l(), Ee(n, p, t))
|
|
1131
1160
|
return;
|
|
1132
1161
|
(p ? a : c).execute({
|
|
1133
1162
|
projection: d,
|
|
1134
1163
|
modelView: m,
|
|
1135
|
-
camera: K(
|
|
1164
|
+
camera: K(y),
|
|
1136
1165
|
screen: E,
|
|
1137
1166
|
count: i,
|
|
1138
1167
|
position: K(z(x)),
|
|
1139
|
-
orientation: ht(
|
|
1168
|
+
orientation: ht(ve(), _),
|
|
1140
1169
|
color: v,
|
|
1141
|
-
diffuse:
|
|
1142
|
-
size:
|
|
1143
|
-
minSizePixels:
|
|
1144
|
-
maxSizePixels:
|
|
1170
|
+
diffuse: w,
|
|
1171
|
+
size: M,
|
|
1172
|
+
minSizePixels: T,
|
|
1173
|
+
maxSizePixels: g,
|
|
1145
1174
|
index: A
|
|
1146
1175
|
});
|
|
1147
|
-
}, l =
|
|
1176
|
+
}, l = ce(
|
|
1148
1177
|
() => t.mesh?.(),
|
|
1149
1178
|
(d) => {
|
|
1150
|
-
const { vertices: m = [], indices:
|
|
1151
|
-
r.set(m.flatMap((p) => [...p])), s.set(
|
|
1179
|
+
const { vertices: m = [], indices: y = [], normals: E = [] } = d ?? {};
|
|
1180
|
+
r.set(m.flatMap((p) => [...p])), s.set(y.flatMap((p) => [...p])), o.set(
|
|
1152
1181
|
E.length === 0 ? m.flatMap(() => [0, 0, 0]) : E.flatMap((p) => [...p])
|
|
1153
|
-
), i =
|
|
1182
|
+
), i = y.length * 3;
|
|
1154
1183
|
}
|
|
1155
1184
|
), h = () => {
|
|
1156
1185
|
r.dispose(), s.dispose(), o.dispose();
|
|
@@ -1169,23 +1198,23 @@ const Ii = (e, t = {}) => {
|
|
|
1169
1198
|
const f = t.get({
|
|
1170
1199
|
vertexSource: zn,
|
|
1171
1200
|
fragmentSource: a ? _e : Pn
|
|
1172
|
-
}), l = f.attribute3f("vertex", n), h = f.attribute3f("normal", r), u = f.uniformMatrix4f("projection"), d = f.uniformMatrix4f("model_view"), m = f.uniform3i("camera"),
|
|
1201
|
+
}), l = f.attribute3f("vertex", n), h = f.attribute3f("normal", r), u = f.uniformMatrix4f("projection"), d = f.uniformMatrix4f("model_view"), m = f.uniform3i("camera"), y = f.uniform3i("position"), E = f.uniformMatrix4f("orientation"), p = f.uniform2f("screen"), A = f.uniform4f("color"), x = f.uniform4f("diffuse"), _ = f.uniform1f("size"), v = f.uniform1f("min_size_pixels"), w = f.uniform1f("max_size_pixels"), M = f.uniform1i("index");
|
|
1173
1202
|
return { execute: ({
|
|
1174
|
-
projection:
|
|
1175
|
-
modelView:
|
|
1203
|
+
projection: g,
|
|
1204
|
+
modelView: R,
|
|
1176
1205
|
camera: b,
|
|
1177
1206
|
screen: U,
|
|
1178
|
-
count:
|
|
1179
|
-
position:
|
|
1180
|
-
orientation:
|
|
1181
|
-
color:
|
|
1207
|
+
count: S,
|
|
1208
|
+
position: P,
|
|
1209
|
+
orientation: N,
|
|
1210
|
+
color: I,
|
|
1182
1211
|
diffuse: X,
|
|
1183
|
-
size:
|
|
1212
|
+
size: C,
|
|
1184
1213
|
minSizePixels: W,
|
|
1185
1214
|
maxSizePixels: Z,
|
|
1186
1215
|
index: Y
|
|
1187
1216
|
}) => {
|
|
1188
|
-
f.use(), l.use(), h.use(), u.set(
|
|
1217
|
+
f.use(), l.use(), h.use(), u.set(g), d.set(R), m.set(b), p.set(U), y.set(P), E.set(N), A.set(I), x.set(X), _.set(C), v.set(W), w.set(Z), M.set(Y), i.use(), e.drawElements(e.TRIANGLES, S, e.UNSIGNED_SHORT, 0);
|
|
1189
1218
|
} };
|
|
1190
1219
|
}, o = s(), c = s(!0);
|
|
1191
1220
|
return { renderProgram: o, depthProgram: c };
|
|
@@ -1199,11 +1228,11 @@ var _t = function(e, t, n, i, r) {
|
|
|
1199
1228
|
for (s = n - i; s >= t; s -= i)
|
|
1200
1229
|
o = new Xe(s, e[s], e[s + 1], o);
|
|
1201
1230
|
return o !== null && Be(o, o.next) && (Ae(o), o = o.next), o;
|
|
1202
|
-
},
|
|
1231
|
+
}, ae = function(e, t) {
|
|
1203
1232
|
t === void 0 && (t = e);
|
|
1204
1233
|
let n = e, i;
|
|
1205
1234
|
do
|
|
1206
|
-
if (i = !1, !n.steiner && (Be(n, n.next) ||
|
|
1235
|
+
if (i = !1, !n.steiner && (Be(n, n.next) || D(n.prev, n, n.next) === 0)) {
|
|
1207
1236
|
if (Ae(n), n = t = n.prev, n === n.next)
|
|
1208
1237
|
break;
|
|
1209
1238
|
i = !0;
|
|
@@ -1222,39 +1251,39 @@ var _t = function(e, t, n, i, r) {
|
|
|
1222
1251
|
continue;
|
|
1223
1252
|
}
|
|
1224
1253
|
if (e = f, e === c) {
|
|
1225
|
-
o === 0 ? ge(
|
|
1254
|
+
o === 0 ? ge(ae(e), t, n, i, r, s, 1) : o === 1 ? (e = Dn(ae(e), t, n), ge(e, t, n, i, r, s, 2)) : o === 2 && On(e, t, n, i, r, s);
|
|
1226
1255
|
break;
|
|
1227
1256
|
}
|
|
1228
1257
|
}
|
|
1229
1258
|
}, Nn = function(e) {
|
|
1230
1259
|
const t = e.prev, n = e, i = e.next;
|
|
1231
|
-
if (
|
|
1260
|
+
if (D(t, n, i) >= 0)
|
|
1232
1261
|
return !1;
|
|
1233
1262
|
let r = e.next.next;
|
|
1234
1263
|
for (; r !== e.prev; ) {
|
|
1235
|
-
if (
|
|
1264
|
+
if (de(t.x, t.y, n.x, n.y, i.x, i.y, r.x, r.y) && D(r.prev, r, r.next) >= 0)
|
|
1236
1265
|
return !1;
|
|
1237
1266
|
r = r.next;
|
|
1238
1267
|
}
|
|
1239
1268
|
return !0;
|
|
1240
1269
|
}, In = function(e, t, n, i) {
|
|
1241
1270
|
const r = e.prev, s = e, o = e.next;
|
|
1242
|
-
if (
|
|
1271
|
+
if (D(r, s, o) >= 0)
|
|
1243
1272
|
return !1;
|
|
1244
1273
|
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 = Fe(c, a, t, n, i), u = Fe(f, l, t, n, i);
|
|
1245
1274
|
let { prevZ: d, nextZ: m } = e;
|
|
1246
1275
|
for (; d !== null && m !== null && d.z >= h && m.z <= u; ) {
|
|
1247
|
-
if (d !== e.prev && d !== e.next &&
|
|
1276
|
+
if (d !== e.prev && d !== e.next && de(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 && de(r.x, r.y, s.x, s.y, o.x, o.y, m.x, m.y) && D(m.prev, m, m.next) >= 0))
|
|
1248
1277
|
return !1;
|
|
1249
1278
|
m = m.nextZ;
|
|
1250
1279
|
}
|
|
1251
1280
|
for (; d !== null && d.z >= h; ) {
|
|
1252
|
-
if (d !== e.prev && d !== e.next &&
|
|
1281
|
+
if (d !== e.prev && d !== e.next && de(r.x, r.y, s.x, s.y, o.x, o.y, d.x, d.y) && D(d.prev, d, d.next) >= 0)
|
|
1253
1282
|
return !1;
|
|
1254
1283
|
d = d.prevZ;
|
|
1255
1284
|
}
|
|
1256
1285
|
for (; m !== null && m.z <= u; ) {
|
|
1257
|
-
if (m !== e.prev && m !== e.next &&
|
|
1286
|
+
if (m !== e.prev && m !== e.next && de(r.x, r.y, s.x, s.y, o.x, o.y, m.x, m.y) && D(m.prev, m, m.next) >= 0)
|
|
1258
1287
|
return !1;
|
|
1259
1288
|
m = m.nextZ;
|
|
1260
1289
|
}
|
|
@@ -1273,7 +1302,7 @@ var _t = function(e, t, n, i, r) {
|
|
|
1273
1302
|
for (; c !== o.prev; ) {
|
|
1274
1303
|
if (o.i !== c.i && Yn(o, c)) {
|
|
1275
1304
|
let a = Tt(o, c);
|
|
1276
|
-
o =
|
|
1305
|
+
o = ae(o, o.next), a = ae(a, a.next), ge(o, t, n, i, r, s, 0), ge(a, t, n, i, r, s, 0);
|
|
1277
1306
|
return;
|
|
1278
1307
|
}
|
|
1279
1308
|
c = c.next;
|
|
@@ -1286,7 +1315,7 @@ var _t = function(e, t, n, i, r) {
|
|
|
1286
1315
|
for (s = 0, o = t.length; s < o; s++)
|
|
1287
1316
|
c = t[s] * i, a = s < o - 1 ? t[s + 1] * i : e.length, f = _t(e, c, a, i, !1), f === f.next && (f.steiner = !0), r.push(Zn(f));
|
|
1288
1317
|
for (r.sort(Xn), s = 0; s < r.length; s++)
|
|
1289
|
-
n = Wn(r[s], n), n =
|
|
1318
|
+
n = Wn(r[s], n), n = ae(n, n.next);
|
|
1290
1319
|
return n;
|
|
1291
1320
|
}, Xn = function(e, t) {
|
|
1292
1321
|
return e.x - t.x;
|
|
@@ -1295,8 +1324,8 @@ var _t = function(e, t, n, i, r) {
|
|
|
1295
1324
|
if (n === null)
|
|
1296
1325
|
return t;
|
|
1297
1326
|
{
|
|
1298
|
-
const i = Tt(n, e), r =
|
|
1299
|
-
return
|
|
1327
|
+
const i = Tt(n, e), r = ae(n, n.next);
|
|
1328
|
+
return ae(i, i.next), t === n ? r : t;
|
|
1300
1329
|
}
|
|
1301
1330
|
}, jn = function(e, t) {
|
|
1302
1331
|
let n = t;
|
|
@@ -1325,7 +1354,7 @@ var _t = function(e, t, n, i, r) {
|
|
|
1325
1354
|
let l = 1 / 0, h;
|
|
1326
1355
|
n = o;
|
|
1327
1356
|
do
|
|
1328
|
-
i >= n.x && n.x >= a && i !== n.x &&
|
|
1357
|
+
i >= n.x && n.x >= a && i !== n.x && de(r < f ? i : s, r, a, f, r < f ? s : i, r, n.x, n.y) && (h = Math.abs(r - n.y) / (i - n.x), Re(n, e) && (h < l || h === l && (n.x > o.x || n.x === o.x && D(o.prev, o, n.prev) < 0 && D(n.next, o, o.next) < 0)) && (o = n, l = h)), n = n.next;
|
|
1329
1358
|
while (n !== c);
|
|
1330
1359
|
return o;
|
|
1331
1360
|
}, Bn = function(e, t, n, i) {
|
|
@@ -1355,16 +1384,16 @@ var _t = function(e, t, n, i, r) {
|
|
|
1355
1384
|
(t.x < n.x || t.x === n.x && t.y < n.y) && (n = t), t = t.next;
|
|
1356
1385
|
while (t !== e);
|
|
1357
1386
|
return n;
|
|
1358
|
-
},
|
|
1387
|
+
}, de = function(e, t, n, i, r, s, o, c) {
|
|
1359
1388
|
return (r - o) * (t - c) - (e - o) * (s - c) >= 0 && (e - o) * (i - c) - (n - o) * (t - c) >= 0 && (n - o) * (s - c) - (r - o) * (i - c) >= 0;
|
|
1360
1389
|
}, Yn = function(e, t) {
|
|
1361
|
-
return e.next.i !== t.i && e.prev.i !== t.i && !$n(e, t) && (Re(e, t) && Re(t, e) && kn(e, t) && (
|
|
1362
|
-
},
|
|
1390
|
+
return e.next.i !== t.i && e.prev.i !== t.i && !$n(e, t) && (Re(e, t) && Re(t, e) && kn(e, t) && (D(e.prev, e, t.prev) !== 0 || D(e, t.prev, t) !== 0) || Be(e, t) && D(e.prev, e, e.next) > 0 && D(t.prev, t, t.next) > 0);
|
|
1391
|
+
}, D = function(e, t, n) {
|
|
1363
1392
|
return (t.y - e.y) * (n.x - t.x) - (t.x - e.x) * (n.y - t.y);
|
|
1364
1393
|
}, Be = function(e, t) {
|
|
1365
1394
|
return e.x === t.x && e.y === t.y;
|
|
1366
1395
|
}, yt = function(e, t, n, i) {
|
|
1367
|
-
const r = ze(
|
|
1396
|
+
const r = ze(D(e, t, n)), s = ze(D(e, t, i)), o = ze(D(n, i, e)), c = ze(D(n, i, t));
|
|
1368
1397
|
return !!(r !== s && o !== c || r === 0 && Le(e, n, t) || s === 0 && Le(e, i, t) || o === 0 && Le(n, e, i) || c === 0 && Le(n, t, i));
|
|
1369
1398
|
}, ze = function(e) {
|
|
1370
1399
|
return e > 0 ? 1 : e < 0 ? -1 : 0;
|
|
@@ -1379,7 +1408,7 @@ var _t = function(e, t, n, i, r) {
|
|
|
1379
1408
|
} while (n !== e);
|
|
1380
1409
|
return !1;
|
|
1381
1410
|
}, Re = function(e, t) {
|
|
1382
|
-
return
|
|
1411
|
+
return D(e.prev, e, e.next) < 0 ? D(e, t, e.next) >= 0 && D(e, e.prev, t) >= 0 : D(e, t, e.prev) < 0 || D(e, e.next, t) < 0;
|
|
1383
1412
|
}, kn = function(e, t) {
|
|
1384
1413
|
const n = (e.x + t.x) / 2, i = (e.y + t.y) / 2;
|
|
1385
1414
|
let r = e, s = !1;
|
|
@@ -1443,33 +1472,33 @@ function Qn(e, t, n, i) {
|
|
|
1443
1472
|
var Kn = function(e, t, n, i, r, s, o, c) {
|
|
1444
1473
|
const a = i[e * s + o], f = i[t * s + o], l = i[n * s + o];
|
|
1445
1474
|
if (a < f && a < l) {
|
|
1446
|
-
const h = a + c -
|
|
1475
|
+
const h = a + c - le(a, c);
|
|
1447
1476
|
if (h > a && h <= f && h <= l && (f !== h || f !== h))
|
|
1448
1477
|
return ke(h, e, t, n, a, f, l, i, r, s, o, c);
|
|
1449
1478
|
} else if (a > f && a > l) {
|
|
1450
|
-
let h =
|
|
1479
|
+
let h = le(a, c);
|
|
1451
1480
|
h === 0 && (h = c);
|
|
1452
1481
|
const u = a - h;
|
|
1453
1482
|
if (u < a && u >= f && u >= l && (f !== u || f !== u))
|
|
1454
1483
|
return He(u, e, t, n, a, f, l, i, r, s, o, c);
|
|
1455
1484
|
}
|
|
1456
1485
|
if (f < a && f < l) {
|
|
1457
|
-
const h = f + c -
|
|
1486
|
+
const h = f + c - le(f, c);
|
|
1458
1487
|
if (h > f && h <= l && h <= a && (a !== h || l !== h))
|
|
1459
1488
|
return ke(h, t, n, e, f, l, a, i, r, s, o, c);
|
|
1460
1489
|
} else if (f > a && f > l) {
|
|
1461
|
-
let h =
|
|
1490
|
+
let h = le(f, c);
|
|
1462
1491
|
h === 0 && (h = c);
|
|
1463
1492
|
const u = f - h;
|
|
1464
1493
|
if (u < f && u >= l && u >= a && (a !== u || l !== u))
|
|
1465
1494
|
return He(u, t, n, e, f, l, a, i, r, s, o, c);
|
|
1466
1495
|
}
|
|
1467
1496
|
if (l < a && l < f) {
|
|
1468
|
-
const h = l + c -
|
|
1497
|
+
const h = l + c - le(l, c);
|
|
1469
1498
|
if (h > l && h <= a && h <= f && (a !== h || f !== h))
|
|
1470
1499
|
return ke(h, n, e, t, l, a, f, i, r, s, o, c);
|
|
1471
1500
|
} else if (l > a && l > f) {
|
|
1472
|
-
let h =
|
|
1501
|
+
let h = le(l, c);
|
|
1473
1502
|
h === 0 && (h = c);
|
|
1474
1503
|
const u = l - h;
|
|
1475
1504
|
if (u < l && u >= a && u >= f && (a !== u || f !== u))
|
|
@@ -1503,7 +1532,7 @@ var Kn = function(e, t, n, i, r, s, o, c) {
|
|
|
1503
1532
|
a.push(d, u), d = F(e, t, i, r, o, c, f, l), a.push(d, d, u), u = F(e, t, n, r, s, c, f, l), a.push(u), e -= h;
|
|
1504
1533
|
return a.push(d, u, i), [i, u, n];
|
|
1505
1534
|
}
|
|
1506
|
-
},
|
|
1535
|
+
}, le = function(e, t) {
|
|
1507
1536
|
return (e % t + t) % t;
|
|
1508
1537
|
};
|
|
1509
1538
|
function qn(e) {
|
|
@@ -1550,14 +1579,14 @@ void main(void) {
|
|
|
1550
1579
|
gl_Position = transform(position);
|
|
1551
1580
|
color_out = color;
|
|
1552
1581
|
}`;
|
|
1553
|
-
const
|
|
1582
|
+
const Ii = (e, t = {}) => {
|
|
1554
1583
|
const { gl: n } = e;
|
|
1555
1584
|
let i = 0;
|
|
1556
1585
|
const r = V({ gl: n, type: "i32", target: "array" }), s = V({ gl: n, type: "u16", target: "element" }), { renderProgram: o, depthProgram: c } = ti(e, {
|
|
1557
1586
|
positionBuffer: r,
|
|
1558
1587
|
indexBuffer: s
|
|
1559
1588
|
}), a = ({
|
|
1560
|
-
viewport: { projection: u, modelView: d, camera: m, screen:
|
|
1589
|
+
viewport: { projection: u, modelView: d, camera: m, screen: y },
|
|
1561
1590
|
depth: E = !1,
|
|
1562
1591
|
index: p = 0
|
|
1563
1592
|
}) => {
|
|
@@ -1568,15 +1597,15 @@ const Di = (e, t = {}) => {
|
|
|
1568
1597
|
projection: u,
|
|
1569
1598
|
modelView: d,
|
|
1570
1599
|
camera: K(m),
|
|
1571
|
-
screen:
|
|
1600
|
+
screen: y,
|
|
1572
1601
|
count: i,
|
|
1573
1602
|
color: A,
|
|
1574
1603
|
index: p
|
|
1575
1604
|
});
|
|
1576
|
-
}, f =
|
|
1605
|
+
}, f = ce(
|
|
1577
1606
|
() => t.points?.() ?? [],
|
|
1578
1607
|
(u) => {
|
|
1579
|
-
const { vertices: d, indices: m } = u.length > 0 ? Fn(u.map((
|
|
1608
|
+
const { vertices: d, indices: m } = u.length > 0 ? Fn(u.map((y) => y.map((E) => [...K(z(E))]))) : { vertices: [], indices: [] };
|
|
1580
1609
|
r.set(d), s.set(m), i = m.length;
|
|
1581
1610
|
}
|
|
1582
1611
|
), l = () => {
|
|
@@ -1597,17 +1626,17 @@ const Di = (e, t = {}) => {
|
|
|
1597
1626
|
fragmentSource: c ? _e : Jn
|
|
1598
1627
|
}), f = a.attribute3i("position", n, {
|
|
1599
1628
|
stride: 3 * Int32Array.BYTES_PER_ELEMENT
|
|
1600
|
-
}), l = a.uniformMatrix4f("projection"), h = a.uniformMatrix4f("model_view"), u = a.uniform3i("camera"), d = a.uniform2f("screen"), m = a.uniform4f("color"),
|
|
1629
|
+
}), l = a.uniformMatrix4f("projection"), h = a.uniformMatrix4f("model_view"), u = a.uniform3i("camera"), d = a.uniform2f("screen"), m = a.uniform4f("color"), y = a.uniform1i("index");
|
|
1601
1630
|
return { execute: ({
|
|
1602
1631
|
projection: p,
|
|
1603
1632
|
modelView: A,
|
|
1604
1633
|
camera: x,
|
|
1605
1634
|
screen: _,
|
|
1606
1635
|
count: v,
|
|
1607
|
-
color:
|
|
1608
|
-
index:
|
|
1636
|
+
color: w,
|
|
1637
|
+
index: M
|
|
1609
1638
|
}) => {
|
|
1610
|
-
v !== 0 && (a.use(), f.use(), l.set(p), h.set(A), u.set(x), d.set(_), m.set(
|
|
1639
|
+
v !== 0 && (a.use(), f.use(), l.set(p), h.set(A), u.set(x), d.set(_), m.set(w), y.set(M), i.use(), e.drawElements(e.TRIANGLES, v, e.UNSIGNED_SHORT, 0));
|
|
1611
1640
|
} };
|
|
1612
1641
|
}, s = r(), o = r(!0);
|
|
1613
1642
|
return { renderProgram: s, depthProgram: o };
|
|
@@ -1654,7 +1683,7 @@ void main(void) {
|
|
|
1654
1683
|
gl_Position = transform(q.xyz / q.w);
|
|
1655
1684
|
uv_out = uv;
|
|
1656
1685
|
}`;
|
|
1657
|
-
const
|
|
1686
|
+
const Di = (e, t = {}) => {
|
|
1658
1687
|
const { gl: n } = e, i = si(n), r = V({ gl: n, type: "f32", target: "array" }), s = V({ gl: n, type: "u16", target: "element" });
|
|
1659
1688
|
r.set(
|
|
1660
1689
|
[
|
|
@@ -1669,7 +1698,7 @@ const Oi = (e, t = {}) => {
|
|
|
1669
1698
|
[0, 3, 2]
|
|
1670
1699
|
].flat()
|
|
1671
1700
|
);
|
|
1672
|
-
const o =
|
|
1701
|
+
const o = ce(
|
|
1673
1702
|
() => t.image?.(),
|
|
1674
1703
|
(u) => {
|
|
1675
1704
|
u && i.set(u);
|
|
@@ -1678,7 +1707,7 @@ const Oi = (e, t = {}) => {
|
|
|
1678
1707
|
uvBuffer: r,
|
|
1679
1708
|
indexBuffer: s
|
|
1680
1709
|
}), f = ({
|
|
1681
|
-
viewport: { projection: u, modelView: d, camera: m, screen:
|
|
1710
|
+
viewport: { projection: u, modelView: d, camera: m, screen: y },
|
|
1682
1711
|
depth: E = !1,
|
|
1683
1712
|
index: p = 0
|
|
1684
1713
|
}) => {
|
|
@@ -1689,11 +1718,11 @@ const Oi = (e, t = {}) => {
|
|
|
1689
1718
|
projection: u,
|
|
1690
1719
|
modelView: d,
|
|
1691
1720
|
camera: K(m),
|
|
1692
|
-
screen:
|
|
1721
|
+
screen: y,
|
|
1693
1722
|
image: i,
|
|
1694
1723
|
range: _,
|
|
1695
1724
|
position: K(z(A)),
|
|
1696
|
-
orientation: ht(
|
|
1725
|
+
orientation: ht(ve(), x),
|
|
1697
1726
|
index: p
|
|
1698
1727
|
});
|
|
1699
1728
|
}, l = () => {
|
|
@@ -1714,19 +1743,19 @@ const Oi = (e, t = {}) => {
|
|
|
1714
1743
|
fragmentSource: c ? _e : ni
|
|
1715
1744
|
}), f = a.attribute2f("uv", n, {
|
|
1716
1745
|
stride: 2 * Float32Array.BYTES_PER_ELEMENT
|
|
1717
|
-
}), l = a.uniformMatrix4f("projection"), h = a.uniformMatrix4f("model_view"), u = a.uniform3i("camera"), d = a.uniform2f("screen"), m = a.uniform1i("image"),
|
|
1746
|
+
}), l = a.uniformMatrix4f("projection"), h = a.uniformMatrix4f("model_view"), u = a.uniform3i("camera"), d = a.uniform2f("screen"), m = a.uniform1i("image"), y = a.uniform1f("range"), E = a.uniform3i("position"), p = a.uniformMatrix4f("orientation"), A = a.uniform1i("index");
|
|
1718
1747
|
return { execute: ({
|
|
1719
1748
|
projection: _,
|
|
1720
1749
|
modelView: v,
|
|
1721
|
-
camera:
|
|
1722
|
-
screen:
|
|
1723
|
-
image:
|
|
1724
|
-
range:
|
|
1725
|
-
position:
|
|
1750
|
+
camera: w,
|
|
1751
|
+
screen: M,
|
|
1752
|
+
image: T,
|
|
1753
|
+
range: g,
|
|
1754
|
+
position: R,
|
|
1726
1755
|
orientation: b,
|
|
1727
1756
|
index: U
|
|
1728
1757
|
}) => {
|
|
1729
|
-
a.use(), f.use(), l.set(_), h.set(v), u.set(
|
|
1758
|
+
a.use(), f.use(), l.set(_), h.set(v), u.set(w), d.set(M), y.set(g), E.set(R), p.set(b), A.set(U), e.activeTexture(e.TEXTURE0), m.set(0), T.use(), i.use(), e.drawElements(e.TRIANGLES, 6, e.UNSIGNED_SHORT, 0);
|
|
1730
1759
|
} };
|
|
1731
1760
|
}, s = r(), o = r(!0);
|
|
1732
1761
|
return { renderProgram: s, depthProgram: o };
|
|
@@ -1754,7 +1783,7 @@ const Oi = (e, t = {}) => {
|
|
|
1754
1783
|
return { texture: a, downsample: s };
|
|
1755
1784
|
}
|
|
1756
1785
|
}
|
|
1757
|
-
}),
|
|
1786
|
+
}), ue = typeof performance == "object" && performance && typeof performance.now == "function" ? performance : Date, wt = /* @__PURE__ */ new Set(), Ke = typeof process == "object" && process ? process : {}, gt = (e, t, n, i) => {
|
|
1758
1787
|
typeof Ke.emitWarning == "function" ? Ke.emitWarning(e, t, n, i) : console.error(`[${n}] ${t}: ${e}`);
|
|
1759
1788
|
};
|
|
1760
1789
|
let We = globalThis.AbortController, lt = globalThis.AbortSignal;
|
|
@@ -1792,7 +1821,7 @@ class Oe extends Array {
|
|
|
1792
1821
|
super(t), this.fill(0);
|
|
1793
1822
|
}
|
|
1794
1823
|
}
|
|
1795
|
-
class
|
|
1824
|
+
class me {
|
|
1796
1825
|
heap;
|
|
1797
1826
|
length;
|
|
1798
1827
|
// private constructor
|
|
@@ -1801,12 +1830,12 @@ class ve {
|
|
|
1801
1830
|
const n = Rt(t);
|
|
1802
1831
|
if (!n)
|
|
1803
1832
|
return [];
|
|
1804
|
-
|
|
1805
|
-
const i = new
|
|
1806
|
-
return
|
|
1833
|
+
me.#c = !0;
|
|
1834
|
+
const i = new me(t, n);
|
|
1835
|
+
return me.#c = !1, i;
|
|
1807
1836
|
}
|
|
1808
1837
|
constructor(t, n) {
|
|
1809
|
-
if (!
|
|
1838
|
+
if (!me.#c)
|
|
1810
1839
|
throw new TypeError("instantiate Stack using Stack.create(n)");
|
|
1811
1840
|
this.heap = new n(t), this.length = 0;
|
|
1812
1841
|
}
|
|
@@ -1984,13 +2013,13 @@ class qe {
|
|
|
1984
2013
|
return this.#p;
|
|
1985
2014
|
}
|
|
1986
2015
|
constructor(t) {
|
|
1987
|
-
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:
|
|
2016
|
+
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: y, fetchMethod: E, noDeleteOnFetchRejection: p, noDeleteOnStaleGet: A, allowStaleOnFetchRejection: x, allowStaleOnFetchAbort: _, ignoreFetchAbort: v } = t;
|
|
1988
2017
|
if (n !== 0 && !ee(n))
|
|
1989
2018
|
throw new TypeError("max option must be a nonnegative integer");
|
|
1990
|
-
const
|
|
1991
|
-
if (!
|
|
2019
|
+
const w = n ? Rt(n) : Array;
|
|
2020
|
+
if (!w)
|
|
1992
2021
|
throw new Error("invalid max value: " + n);
|
|
1993
|
-
if (this.#c = n, this.#u = d, this.maxEntrySize = m || this.#u, this.sizeCalculation =
|
|
2022
|
+
if (this.#c = n, this.#u = d, this.maxEntrySize = m || this.#u, this.sizeCalculation = y, this.sizeCalculation) {
|
|
1994
2023
|
if (!this.#u && !this.maxEntrySize)
|
|
1995
2024
|
throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");
|
|
1996
2025
|
if (typeof this.sizeCalculation != "function")
|
|
@@ -1998,7 +2027,7 @@ class qe {
|
|
|
1998
2027
|
}
|
|
1999
2028
|
if (E !== void 0 && typeof E != "function")
|
|
2000
2029
|
throw new TypeError("fetchMethod must be a function if specified");
|
|
2001
|
-
if (this.#U = E, this.#A = !!E, this.#i = /* @__PURE__ */ new Map(), this.#n = new Array(n).fill(void 0), this.#e = new Array(n).fill(void 0), this.#f = new
|
|
2030
|
+
if (this.#U = E, this.#A = !!E, this.#i = /* @__PURE__ */ new Map(), this.#n = new Array(n).fill(void 0), this.#e = new Array(n).fill(void 0), this.#f = new w(n), this.#h = new w(n), this.#a = 0, this.#s = 0, this.#E = me.create(n), this.#r = 0, this.#x = 0, typeof f == "function" && (this.#v = f), typeof l == "function" ? (this.#p = l, this.#o = []) : (this.#p = void 0, this.#o = void 0), this.#T = !!this.#v, this.#l = !!this.#p, this.noDisposeOnSet = !!h, this.noUpdateTTL = !!u, this.noDeleteOnFetchRejection = !!p, this.allowStaleOnFetchRejection = !!x, this.allowStaleOnFetchAbort = !!_, this.ignoreFetchAbort = !!v, this.maxEntrySize !== 0) {
|
|
2002
2031
|
if (this.#u !== 0 && !ee(this.#u))
|
|
2003
2032
|
throw new TypeError("maxSize must be a positive integer if specified");
|
|
2004
2033
|
if (!ee(this.maxEntrySize))
|
|
@@ -2013,8 +2042,8 @@ class qe {
|
|
|
2013
2042
|
if (this.#c === 0 && this.ttl === 0 && this.#u === 0)
|
|
2014
2043
|
throw new TypeError("At least one of max, maxSize, or ttl is required");
|
|
2015
2044
|
if (!this.ttlAutopurge && !this.#c && !this.#u) {
|
|
2016
|
-
const
|
|
2017
|
-
oi(
|
|
2045
|
+
const M = "LRU_CACHE_UNBOUNDED";
|
|
2046
|
+
oi(M) && (wt.add(M), gt("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.", "UnboundedCacheWarning", M, qe));
|
|
2018
2047
|
}
|
|
2019
2048
|
}
|
|
2020
2049
|
/**
|
|
@@ -2025,7 +2054,7 @@ class qe {
|
|
|
2025
2054
|
}
|
|
2026
2055
|
#N() {
|
|
2027
2056
|
const t = new Oe(this.#c), n = new Oe(this.#c);
|
|
2028
|
-
this.#d = t, this.#y = n, this.#I = (s, o, c =
|
|
2057
|
+
this.#d = t, this.#y = n, this.#I = (s, o, c = ue.now()) => {
|
|
2029
2058
|
if (n[s] = o !== 0 ? c : 0, t[s] = o, o !== 0 && this.ttlAutopurge) {
|
|
2030
2059
|
const a = setTimeout(() => {
|
|
2031
2060
|
this.#m(s) && this.delete(this.#n[s]);
|
|
@@ -2033,7 +2062,7 @@ class qe {
|
|
|
2033
2062
|
a.unref && a.unref();
|
|
2034
2063
|
}
|
|
2035
2064
|
}, this.#M = (s) => {
|
|
2036
|
-
n[s] = t[s] !== 0 ?
|
|
2065
|
+
n[s] = t[s] !== 0 ? ue.now() : 0;
|
|
2037
2066
|
}, this.#R = (s, o) => {
|
|
2038
2067
|
if (t[o]) {
|
|
2039
2068
|
const c = t[o], a = n[o];
|
|
@@ -2046,7 +2075,7 @@ class qe {
|
|
|
2046
2075
|
};
|
|
2047
2076
|
let i = 0;
|
|
2048
2077
|
const r = () => {
|
|
2049
|
-
const s =
|
|
2078
|
+
const s = ue.now();
|
|
2050
2079
|
if (this.ttlResolution > 0) {
|
|
2051
2080
|
i = s;
|
|
2052
2081
|
const o = setTimeout(() => i = 0, this.ttlResolution);
|
|
@@ -2254,7 +2283,7 @@ class qe {
|
|
|
2254
2283
|
if (this.#d && this.#y) {
|
|
2255
2284
|
const o = this.#d[n], c = this.#y[n];
|
|
2256
2285
|
if (o && c) {
|
|
2257
|
-
const a = o - (
|
|
2286
|
+
const a = o - (ue.now() - c);
|
|
2258
2287
|
s.ttl = a, s.start = Date.now();
|
|
2259
2288
|
}
|
|
2260
2289
|
}
|
|
@@ -2273,7 +2302,7 @@ class qe {
|
|
|
2273
2302
|
const o = { value: s };
|
|
2274
2303
|
if (this.#d && this.#y) {
|
|
2275
2304
|
o.ttl = this.#d[n];
|
|
2276
|
-
const c =
|
|
2305
|
+
const c = ue.now() - this.#y[n];
|
|
2277
2306
|
o.start = Math.floor(Date.now() - c);
|
|
2278
2307
|
}
|
|
2279
2308
|
this.#_ && (o.size = this.#_[n]), t.unshift([i, o]);
|
|
@@ -2290,7 +2319,7 @@ class qe {
|
|
|
2290
2319
|
for (const [n, i] of t) {
|
|
2291
2320
|
if (i.start) {
|
|
2292
2321
|
const r = Date.now() - i.start;
|
|
2293
|
-
i.start =
|
|
2322
|
+
i.start = ue.now() - r;
|
|
2294
2323
|
}
|
|
2295
2324
|
this.set(n, i.value, i);
|
|
2296
2325
|
}
|
|
@@ -2413,22 +2442,22 @@ class qe {
|
|
|
2413
2442
|
signal: o.signal,
|
|
2414
2443
|
options: i,
|
|
2415
2444
|
context: r
|
|
2416
|
-
}, f = (
|
|
2417
|
-
const { aborted: p } = o.signal, A = i.ignoreFetchAbort &&
|
|
2445
|
+
}, f = (y, E = !1) => {
|
|
2446
|
+
const { aborted: p } = o.signal, A = i.ignoreFetchAbort && y !== void 0;
|
|
2418
2447
|
if (i.status && (p && !E ? (i.status.fetchAborted = !0, i.status.fetchError = o.signal.reason, A && (i.status.fetchAbortIgnored = !0)) : i.status.fetchResolved = !0), p && !A && !E)
|
|
2419
2448
|
return h(o.signal.reason);
|
|
2420
2449
|
const x = d;
|
|
2421
|
-
return this.#e[n] === d && (
|
|
2422
|
-
}, l = (
|
|
2450
|
+
return this.#e[n] === d && (y === void 0 ? x.__staleWhileFetching ? this.#e[n] = x.__staleWhileFetching : this.delete(t) : (i.status && (i.status.fetchUpdated = !0), this.set(t, y, a.options))), y;
|
|
2451
|
+
}, l = (y) => (i.status && (i.status.fetchRejected = !0, i.status.fetchError = y), h(y)), h = (y) => {
|
|
2423
2452
|
const { aborted: E } = o.signal, p = E && i.allowStaleOnFetchAbort, A = p || i.allowStaleOnFetchRejection, x = A || i.noDeleteOnFetchRejection, _ = d;
|
|
2424
2453
|
if (this.#e[n] === d && (!x || _.__staleWhileFetching === void 0 ? this.delete(t) : p || (this.#e[n] = _.__staleWhileFetching)), A)
|
|
2425
2454
|
return i.status && _.__staleWhileFetching !== void 0 && (i.status.returnedStale = !0), _.__staleWhileFetching;
|
|
2426
2455
|
if (_.__returned === _)
|
|
2427
|
-
throw
|
|
2428
|
-
}, u = (
|
|
2456
|
+
throw y;
|
|
2457
|
+
}, u = (y, E) => {
|
|
2429
2458
|
const p = this.#U?.(t, s, a);
|
|
2430
|
-
p && p instanceof Promise && p.then((A) =>
|
|
2431
|
-
(!i.ignoreFetchAbort || i.allowStaleOnFetchAbort) && (
|
|
2459
|
+
p && p instanceof Promise && p.then((A) => y(A === void 0 ? void 0 : A), E), o.signal.addEventListener("abort", () => {
|
|
2460
|
+
(!i.ignoreFetchAbort || i.allowStaleOnFetchAbort) && (y(void 0), i.allowStaleOnFetchAbort && (y = (A) => f(A, !0)));
|
|
2432
2461
|
});
|
|
2433
2462
|
};
|
|
2434
2463
|
i.status && (i.status.fetchDispatched = !0);
|
|
@@ -2462,7 +2491,7 @@ class qe {
|
|
|
2462
2491
|
allowStaleOnFetchRejection: u = this.allowStaleOnFetchRejection,
|
|
2463
2492
|
ignoreFetchAbort: d = this.ignoreFetchAbort,
|
|
2464
2493
|
allowStaleOnFetchAbort: m = this.allowStaleOnFetchAbort,
|
|
2465
|
-
context:
|
|
2494
|
+
context: y,
|
|
2466
2495
|
forceRefresh: E = !1,
|
|
2467
2496
|
status: p,
|
|
2468
2497
|
signal: A
|
|
@@ -2493,19 +2522,19 @@ class qe {
|
|
|
2493
2522
|
let _ = this.#i.get(t);
|
|
2494
2523
|
if (_ === void 0) {
|
|
2495
2524
|
p && (p.fetch = "miss");
|
|
2496
|
-
const v = this.#L(t, _, x,
|
|
2525
|
+
const v = this.#L(t, _, x, y);
|
|
2497
2526
|
return v.__returned = v;
|
|
2498
2527
|
} else {
|
|
2499
2528
|
const v = this.#e[_];
|
|
2500
2529
|
if (this.#t(v)) {
|
|
2501
|
-
const
|
|
2502
|
-
return p && (p.fetch = "inflight",
|
|
2530
|
+
const R = i && v.__staleWhileFetching !== void 0;
|
|
2531
|
+
return p && (p.fetch = "inflight", R && (p.returnedStale = !0)), R ? v.__staleWhileFetching : v.__returned = v;
|
|
2503
2532
|
}
|
|
2504
|
-
const
|
|
2505
|
-
if (!E && !
|
|
2533
|
+
const w = this.#m(_);
|
|
2534
|
+
if (!E && !w)
|
|
2506
2535
|
return p && (p.fetch = "hit"), this.#S(_), r && this.#M(_), p && this.#R(p, _), v;
|
|
2507
|
-
const
|
|
2508
|
-
return p && (p.fetch =
|
|
2536
|
+
const M = this.#L(t, _, x, y), g = M.__staleWhileFetching !== void 0 && i;
|
|
2537
|
+
return p && (p.fetch = w ? "stale" : "refresh", g && w && (p.returnedStale = !0)), g ? M.__staleWhileFetching : M.__returned = M;
|
|
2509
2538
|
}
|
|
2510
2539
|
}
|
|
2511
2540
|
/**
|
|
@@ -2615,22 +2644,22 @@ const je = (e) => {
|
|
|
2615
2644
|
const h = i.get([a, f, l]);
|
|
2616
2645
|
if (!h)
|
|
2617
2646
|
return;
|
|
2618
|
-
const { texture: u, downsample: d } = h, m = 2 ** d,
|
|
2647
|
+
const { texture: u, downsample: d } = h, m = 2 ** d, y = [Math.floor(a / m), Math.floor(f / m), l - d], E = n.get(y);
|
|
2619
2648
|
if (E)
|
|
2620
2649
|
return { buffer: E, downsample: d };
|
|
2621
2650
|
const p = new Uint8Array(4 * ie * ie);
|
|
2622
|
-
return e.bindFramebuffer(e.FRAMEBUFFER, r), u.attach(), e.readPixels(0, 0, ie, ie, e.RGBA, e.UNSIGNED_BYTE, p), e.bindFramebuffer(e.FRAMEBUFFER, null), n.set(
|
|
2651
|
+
return e.bindFramebuffer(e.FRAMEBUFFER, r), u.attach(), e.readPixels(0, 0, ie, ie, e.RGBA, e.UNSIGNED_BYTE, p), e.bindFramebuffer(e.FRAMEBUFFER, null), n.set(y, p), { buffer: p, downsample: d };
|
|
2623
2652
|
};
|
|
2624
2653
|
return { get: ([a = 0, f = 0], l = ai) => {
|
|
2625
|
-
const h = 2 ** l, u = z([a, f, 0]).map((
|
|
2626
|
-
let [
|
|
2654
|
+
const h = 2 ** l, u = z([a, f, 0]).map((R) => R * h), [d = 0, m = 0] = u.map((R) => Math.floor(R % h));
|
|
2655
|
+
let [y = 0, E = 0] = u.map((R) => R % 1);
|
|
2627
2656
|
const p = s([d, m, l]);
|
|
2628
2657
|
if (!p)
|
|
2629
2658
|
return 0;
|
|
2630
2659
|
const { buffer: A, downsample: x } = p, _ = 2 ** x;
|
|
2631
|
-
[
|
|
2632
|
-
const v = 4 * ie * Math.floor(E * ie) + 4 * Math.floor(
|
|
2633
|
-
return (
|
|
2660
|
+
[y, E] = [(d % _ + y) / _, (m % _ + E) / _];
|
|
2661
|
+
const v = 4 * ie * Math.floor(E * ie) + 4 * Math.floor(y * ie), [w = 0, M = 0, T = 0] = A.slice(v, v + 4);
|
|
2662
|
+
return (w * 65536 + M * 256 + T) / 10 - 1e4;
|
|
2634
2663
|
}, dispose: () => {
|
|
2635
2664
|
e.deleteFramebuffer(r);
|
|
2636
2665
|
} };
|
|
@@ -2672,14 +2701,14 @@ const ut = ({
|
|
|
2672
2701
|
const [l = 0, h = 0, u = 0] = a;
|
|
2673
2702
|
let d = t.replace("{x}", `${l}`).replace("{y}", `${h}`).replace("{z}", `${u}`);
|
|
2674
2703
|
if (d.includes("{bbox}")) {
|
|
2675
|
-
const [
|
|
2704
|
+
const [y = 0, E = 0, p = 0] = a, A = 2 ** p - E - 1, [[x, _] = [], [v, w] = []] = [
|
|
2676
2705
|
[0, 0],
|
|
2677
2706
|
[1, 1]
|
|
2678
|
-
].map(([
|
|
2679
|
-
(
|
|
2680
|
-
(
|
|
2707
|
+
].map(([M = 0, T = 0]) => [y + M, A + T, p]).map((M) => mt(M, M)).map(([M = 0, T = 0]) => [
|
|
2708
|
+
(M - 0.5) * 2 * Math.PI * 6378137,
|
|
2709
|
+
(T - 0.5) * 2 * Math.PI * 6378137
|
|
2681
2710
|
]);
|
|
2682
|
-
d = d.replace("{bbox}", [x, _, v,
|
|
2711
|
+
d = d.replace("{bbox}", [x, _, v, w].join(","));
|
|
2683
2712
|
}
|
|
2684
2713
|
const m = Et({
|
|
2685
2714
|
gl: e,
|
|
@@ -2708,7 +2737,7 @@ const ut = ({
|
|
|
2708
2737
|
const s = t.get(r);
|
|
2709
2738
|
if (s)
|
|
2710
2739
|
return s;
|
|
2711
|
-
const [o = 0, c = 0, a = 0] = r, f = n.map(([l = 0, h = 0]) => [o + l, c + h, a]).map((l) => mt(l, l)).map((l) =>
|
|
2740
|
+
const [o = 0, c = 0, a = 0] = r, f = n.map(([l = 0, h = 0]) => [o + l, c + h, a]).map((l) => mt(l, l)).map((l) => oe(l, l)).map((l) => {
|
|
2712
2741
|
const [h = 0, u = 0] = l, d = Math.max(a - 5, 0);
|
|
2713
2742
|
return z(
|
|
2714
2743
|
Me(l, h, u, e.get([h, u], d)),
|
|
@@ -2755,8 +2784,8 @@ void main(void) {
|
|
|
2755
2784
|
uv = downsample(downsample_imagery);
|
|
2756
2785
|
color_out = color;
|
|
2757
2786
|
}`;
|
|
2758
|
-
const B = 34, hi = 22, di =
|
|
2759
|
-
(e) =>
|
|
2787
|
+
const B = 34, hi = 22, di = xe(0, B).flatMap(
|
|
2788
|
+
(e) => xe(0, B).flatMap((t) => [
|
|
2760
2789
|
e * (B + 1) + t,
|
|
2761
2790
|
e * (B + 1) + t + 1,
|
|
2762
2791
|
(e + 1) * (B + 1) + t + 1,
|
|
@@ -2764,22 +2793,22 @@ const B = 34, hi = 22, di = se(0, B).flatMap(
|
|
|
2764
2793
|
(e + 1) * (B + 1) + t + 1,
|
|
2765
2794
|
(e + 1) * (B + 1) + t
|
|
2766
2795
|
])
|
|
2767
|
-
), Ne = 0.1, mi =
|
|
2768
|
-
(e) =>
|
|
2796
|
+
), Ne = 0.1, mi = xe(0, B + 1).flatMap(
|
|
2797
|
+
(e) => xe(0, B + 1).map((t) => {
|
|
2769
2798
|
let n = (t - 1) / (B - 2), i = (e - 1) / (B - 2), r = 0;
|
|
2770
2799
|
return t === 0 && (n = 0, r = -Ne), t === B && (n = 1, r = -Ne), e === 0 && (i = 0, r = -Ne), e === B && (i = 1, r = -Ne), [n, i, r];
|
|
2771
2800
|
})
|
|
2772
|
-
),
|
|
2801
|
+
), Xi = (e, t = {}) => {
|
|
2773
2802
|
const { gl: n } = e;
|
|
2774
2803
|
let i, r;
|
|
2775
2804
|
const s = n.getExtension(
|
|
2776
2805
|
"EXT_texture_filter_anisotropic"
|
|
2777
|
-
), o = s ? n.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT) : void 0, c =
|
|
2806
|
+
), o = s ? n.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT) : void 0, c = ce(
|
|
2778
2807
|
() => t.imageryUrl?.() ?? "",
|
|
2779
|
-
(
|
|
2808
|
+
(g) => {
|
|
2780
2809
|
i?.dispose(), i = ut({
|
|
2781
2810
|
gl: n,
|
|
2782
|
-
urlPattern:
|
|
2811
|
+
urlPattern: g,
|
|
2783
2812
|
onLoad: () => {
|
|
2784
2813
|
s && o && n.texParameterf(
|
|
2785
2814
|
n.TEXTURE_2D,
|
|
@@ -2800,49 +2829,49 @@ const B = 34, hi = 22, di = se(0, B).flatMap(
|
|
|
2800
2829
|
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);
|
|
2801
2830
|
}
|
|
2802
2831
|
}), l = Qe(f, 3), h = ci({ gl: n, terrainCache: f }), u = li(h), d = V({ gl: n, type: "f32", target: "array" });
|
|
2803
|
-
d.set(mi.flatMap(([
|
|
2832
|
+
d.set(mi.flatMap(([g = 0, R = 0, b = 0]) => [g, R, b]));
|
|
2804
2833
|
const m = V({ gl: n, type: "u16", target: "element" });
|
|
2805
2834
|
m.set(di);
|
|
2806
|
-
const { renderProgram:
|
|
2835
|
+
const { renderProgram: y, depthProgram: E } = vi(e, {
|
|
2807
2836
|
uvwBuffer: d,
|
|
2808
2837
|
indexBuffer: m
|
|
2809
|
-
}), p = [0, 1, 2, 3], A = p.map(L), x = p.map(ne), _ = p.map(
|
|
2810
|
-
const { camera:
|
|
2811
|
-
const [
|
|
2812
|
-
let Z = pi(
|
|
2838
|
+
}), p = [0, 1, 2, 3], A = p.map(L), x = p.map(ne), _ = p.map(pe), v = (g) => {
|
|
2839
|
+
const { camera: R, worldToLocal: b, localToClip: U, clipToScreen: S } = g, P = (N) => {
|
|
2840
|
+
const [I = 0, X = 0, C = 0] = N, W = u.get(N);
|
|
2841
|
+
let Z = pi(R, W);
|
|
2813
2842
|
if (!Z) {
|
|
2814
2843
|
const Y = W.map((G, J) => b(G, A[J])).map((G, J) => U(G, x[J]));
|
|
2815
2844
|
if (xi(Y))
|
|
2816
2845
|
return [];
|
|
2817
|
-
Z = Ei(Y.map((G, J) =>
|
|
2846
|
+
Z = Ei(Y.map((G, J) => S(G, _[J]))) > 512 / devicePixelRatio;
|
|
2818
2847
|
}
|
|
2819
|
-
return Z &&
|
|
2820
|
-
[2 *
|
|
2821
|
-
[2 *
|
|
2822
|
-
[2 *
|
|
2823
|
-
[2 *
|
|
2824
|
-
].flatMap((q) =>
|
|
2848
|
+
return Z && C < hi ? [
|
|
2849
|
+
[2 * I, 2 * X, C + 1],
|
|
2850
|
+
[2 * I + 1, 2 * X, C + 1],
|
|
2851
|
+
[2 * I, 2 * X + 1, C + 1],
|
|
2852
|
+
[2 * I + 1, 2 * X + 1, C + 1]
|
|
2853
|
+
].flatMap((q) => P(q)) : [N];
|
|
2825
2854
|
};
|
|
2826
|
-
return
|
|
2827
|
-
},
|
|
2828
|
-
viewport:
|
|
2829
|
-
depth:
|
|
2855
|
+
return P([0, 0, 0]);
|
|
2856
|
+
}, w = ({
|
|
2857
|
+
viewport: g,
|
|
2858
|
+
depth: R = !1,
|
|
2830
2859
|
index: b = 0
|
|
2831
2860
|
}) => {
|
|
2832
2861
|
const U = t.color?.() ?? [1, 1, 1, 1];
|
|
2833
|
-
if (c(), Ee(n,
|
|
2862
|
+
if (c(), Ee(n, R, t))
|
|
2834
2863
|
return;
|
|
2835
|
-
const
|
|
2836
|
-
for (const
|
|
2837
|
-
const W =
|
|
2838
|
-
if (!
|
|
2864
|
+
const S = R ? E : y, { projection: P, modelView: N, camera: I } = g, X = v(g);
|
|
2865
|
+
for (const C of X) {
|
|
2866
|
+
const W = R ? void 0 : r?.get(C), Z = l.get(C);
|
|
2867
|
+
if (!R && !W || !Z)
|
|
2839
2868
|
continue;
|
|
2840
2869
|
const { texture: Y, downsample: q } = Z, { texture: G = Y, downsample: J = 0 } = W ?? {};
|
|
2841
|
-
|
|
2842
|
-
projection:
|
|
2843
|
-
modelView:
|
|
2844
|
-
camera: K(
|
|
2845
|
-
xyz:
|
|
2870
|
+
S.execute({
|
|
2871
|
+
projection: P,
|
|
2872
|
+
modelView: N,
|
|
2873
|
+
camera: K(I),
|
|
2874
|
+
xyz: C,
|
|
2846
2875
|
imagery: G,
|
|
2847
2876
|
terrain: Y,
|
|
2848
2877
|
downsampleImagery: J,
|
|
@@ -2851,33 +2880,33 @@ const B = 34, hi = 22, di = se(0, B).flatMap(
|
|
|
2851
2880
|
index: b
|
|
2852
2881
|
});
|
|
2853
2882
|
}
|
|
2854
|
-
},
|
|
2883
|
+
}, M = () => {
|
|
2855
2884
|
i?.dispose(), f.dispose(), h.dispose();
|
|
2856
|
-
},
|
|
2885
|
+
}, T = ye(t);
|
|
2857
2886
|
return {
|
|
2858
|
-
render:
|
|
2859
|
-
dispose:
|
|
2860
|
-
...
|
|
2887
|
+
render: w,
|
|
2888
|
+
dispose: M,
|
|
2889
|
+
...T
|
|
2861
2890
|
};
|
|
2862
2891
|
}, vi = ({ gl: e, programs: t }, { uvwBuffer: n, indexBuffer: i }) => {
|
|
2863
2892
|
const r = (c = !1) => {
|
|
2864
2893
|
const a = t.get({
|
|
2865
2894
|
vertexSource: ui,
|
|
2866
2895
|
fragmentSource: c ? _e : fi
|
|
2867
|
-
}), 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"),
|
|
2896
|
+
}), 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"), y = a.uniform1i("downsample_terrain"), E = a.uniform4f("color"), p = a.uniform3i("xyz"), A = a.uniform3i("camera"), x = a.uniform1i("index");
|
|
2868
2897
|
return { execute: ({
|
|
2869
2898
|
projection: v,
|
|
2870
|
-
modelView:
|
|
2871
|
-
camera:
|
|
2872
|
-
xyz:
|
|
2873
|
-
imagery:
|
|
2874
|
-
terrain:
|
|
2899
|
+
modelView: w,
|
|
2900
|
+
camera: M,
|
|
2901
|
+
xyz: T,
|
|
2902
|
+
imagery: g,
|
|
2903
|
+
terrain: R,
|
|
2875
2904
|
downsampleImagery: b,
|
|
2876
2905
|
downsampleTerrain: U,
|
|
2877
|
-
color:
|
|
2878
|
-
index:
|
|
2906
|
+
color: S,
|
|
2907
|
+
index: P
|
|
2879
2908
|
}) => {
|
|
2880
|
-
a.use(), f.use(), l.set(v), h.set(
|
|
2909
|
+
a.use(), f.use(), l.set(v), h.set(w), p.set(T), A.set(M), m.set(b), y.set(U), E.set(S), x.set(P), e.activeTexture(e.TEXTURE0), u.set(0), g.use(), e.activeTexture(e.TEXTURE1), d.set(1), R.use(), i.use(), e.drawElements(e.TRIANGLES, B * B * 2 * 3, e.UNSIGNED_SHORT, 0);
|
|
2881
2910
|
} };
|
|
2882
2911
|
}, s = r(), o = r(!0);
|
|
2883
2912
|
return { renderProgram: s, depthProgram: o };
|
|
@@ -2899,11 +2928,11 @@ const B = 34, hi = 22, di = se(0, B).flatMap(
|
|
|
2899
2928
|
e[(n + 1) % e.length] ?? [0, 0]
|
|
2900
2929
|
)
|
|
2901
2930
|
).reduce((t, n) => t + n, 0) / e.length
|
|
2902
|
-
),
|
|
2931
|
+
), Wi = {
|
|
2903
2932
|
pickable: !0,
|
|
2904
2933
|
depth: !0,
|
|
2905
2934
|
polygonOffset: 0
|
|
2906
|
-
},
|
|
2935
|
+
}, ji = (e, t) => {
|
|
2907
2936
|
let n;
|
|
2908
2937
|
return () => {
|
|
2909
2938
|
const i = e.map((s) => s());
|
|
@@ -2915,7 +2944,19 @@ const B = 34, hi = 22, di = se(0, B).flatMap(
|
|
|
2915
2944
|
const r = t(i);
|
|
2916
2945
|
return n = [i, r], r;
|
|
2917
2946
|
};
|
|
2918
|
-
},
|
|
2947
|
+
}, ce = (e, t) => {
|
|
2948
|
+
let n;
|
|
2949
|
+
return () => {
|
|
2950
|
+
const i = e();
|
|
2951
|
+
if (n) {
|
|
2952
|
+
const [s, o] = n;
|
|
2953
|
+
if (s === i)
|
|
2954
|
+
return o;
|
|
2955
|
+
}
|
|
2956
|
+
const r = t(i);
|
|
2957
|
+
return n = [i, r], r;
|
|
2958
|
+
};
|
|
2959
|
+
}, ye = (e) => {
|
|
2919
2960
|
const {
|
|
2920
2961
|
onClick: t,
|
|
2921
2962
|
onRightClick: n,
|
|
@@ -2934,7 +2975,7 @@ const B = 34, hi = 22, di = se(0, B).flatMap(
|
|
|
2934
2975
|
onDragStart: o,
|
|
2935
2976
|
onDragEnd: c
|
|
2936
2977
|
};
|
|
2937
|
-
}, Ve = 10, Se = 1e-3,
|
|
2978
|
+
}, Ve = 10, Se = 1e-3, fe = (e) => (t) => {
|
|
2938
2979
|
let n, i;
|
|
2939
2980
|
return () => {
|
|
2940
2981
|
const r = performance.now(), s = (r - (i ?? r)) / 1e3;
|
|
@@ -2942,19 +2983,19 @@ const B = 34, hi = 22, di = se(0, B).flatMap(
|
|
|
2942
2983
|
const o = t();
|
|
2943
2984
|
return n = n ?? o, n = e({ time: s, current: n, target: o }), n;
|
|
2944
2985
|
};
|
|
2945
|
-
},
|
|
2986
|
+
}, _i = fe(
|
|
2946
2987
|
({ time: e, current: t, target: n }) => (Math.abs(n - t) < Se ? t = n : t = t + (n - t) * (1 - Math.exp(-Ve * e)), t)
|
|
2947
|
-
),
|
|
2988
|
+
), yi = fe(
|
|
2948
2989
|
({ time: e, current: t, target: n }) => (hn(t, n) < Se ? an(t, n) : t = fn(
|
|
2949
|
-
|
|
2990
|
+
pe(),
|
|
2950
2991
|
t,
|
|
2951
2992
|
un(
|
|
2952
|
-
|
|
2953
|
-
mn(
|
|
2993
|
+
pe(),
|
|
2994
|
+
mn(pe(), n, t),
|
|
2954
2995
|
1 - Math.exp(-Ve * e)
|
|
2955
2996
|
)
|
|
2956
2997
|
), t)
|
|
2957
|
-
), Bi =
|
|
2998
|
+
), Bi = fe(
|
|
2958
2999
|
({ time: e, current: t, target: n }) => (qt(t, n) < Se ? Gt(t, n) : t = Ft(
|
|
2959
3000
|
ne(),
|
|
2960
3001
|
t,
|
|
@@ -2964,16 +3005,16 @@ const B = 34, hi = 22, di = se(0, B).flatMap(
|
|
|
2964
3005
|
1 - Math.exp(-Ve * e)
|
|
2965
3006
|
)
|
|
2966
3007
|
), t)
|
|
2967
|
-
), Vi =
|
|
3008
|
+
), Vi = fe(
|
|
2968
3009
|
({ time: e, current: t, target: n }) => {
|
|
2969
3010
|
const i = be(z(t), z(n));
|
|
2970
|
-
return i * H < Se || i > 1e5 / H ? Vt(t, n) : t =
|
|
3011
|
+
return i * H < Se || i > 1e5 / H ? Vt(t, n) : t = oe(
|
|
2971
3012
|
re(
|
|
2972
3013
|
L(),
|
|
2973
3014
|
z(t),
|
|
2974
|
-
|
|
3015
|
+
he(
|
|
2975
3016
|
L(),
|
|
2976
|
-
|
|
3017
|
+
se(L(), z(n), z(t)),
|
|
2977
3018
|
1 - Math.exp(-Ve * e)
|
|
2978
3019
|
)
|
|
2979
3020
|
)
|
|
@@ -2981,44 +3022,44 @@ const B = 34, hi = 22, di = se(0, B).flatMap(
|
|
|
2981
3022
|
}
|
|
2982
3023
|
), Zi = (e) => {
|
|
2983
3024
|
let t = [0, 0, 0], n = [0, 0, 0], i, r;
|
|
2984
|
-
return
|
|
3025
|
+
return fe(({ time: o, current: c, target: a }) => {
|
|
2985
3026
|
if (a === c || o > 1 || be(z(a), z(c)) > 1e3 / H)
|
|
2986
3027
|
return i = void 0, t = [0, 0, 0], n = [0, 0, 0], a;
|
|
2987
|
-
i ? a !== i && r !== void 0 && o - r > 1 && (n =
|
|
3028
|
+
i ? a !== i && r !== void 0 && o - r > 1 && (n = he(
|
|
2988
3029
|
L(),
|
|
2989
|
-
|
|
3030
|
+
se(L(), z(a), z(i)),
|
|
2990
3031
|
1e3 / (performance.now() - r)
|
|
2991
3032
|
), i = a, r = performance.now()) : (i = a, r = o);
|
|
2992
3033
|
const f = re(
|
|
2993
3034
|
L(),
|
|
2994
3035
|
t,
|
|
2995
|
-
|
|
3036
|
+
he(
|
|
2996
3037
|
L(),
|
|
2997
|
-
|
|
3038
|
+
se(L(), n, t),
|
|
2998
3039
|
2 * o
|
|
2999
3040
|
)
|
|
3000
3041
|
);
|
|
3001
|
-
return c =
|
|
3042
|
+
return c = oe(
|
|
3002
3043
|
re(
|
|
3003
3044
|
L(),
|
|
3004
3045
|
z(c),
|
|
3005
3046
|
re(
|
|
3006
3047
|
L(),
|
|
3007
|
-
|
|
3048
|
+
he(
|
|
3008
3049
|
L(),
|
|
3009
3050
|
re(L(), t, f),
|
|
3010
3051
|
0.5 * o
|
|
3011
3052
|
),
|
|
3012
|
-
|
|
3053
|
+
he(
|
|
3013
3054
|
L(),
|
|
3014
|
-
|
|
3055
|
+
se(L(), z(a), z(c)),
|
|
3015
3056
|
o
|
|
3016
3057
|
)
|
|
3017
3058
|
)
|
|
3018
3059
|
)
|
|
3019
3060
|
), t = f, c;
|
|
3020
3061
|
})(e);
|
|
3021
|
-
},
|
|
3062
|
+
}, Ti = fe(
|
|
3022
3063
|
({ time: e, current: t, target: n }) => (t = En(
|
|
3023
3064
|
Ie(
|
|
3024
3065
|
Ge(),
|
|
@@ -3027,18 +3068,18 @@ const B = 34, hi = 22, di = se(0, B).flatMap(
|
|
|
3027
3068
|
Math.PI * e
|
|
3028
3069
|
)
|
|
3029
3070
|
), rn(Ue(t), Ue(n)) < Se && (n = t), t)
|
|
3030
|
-
),
|
|
3031
|
-
const t =
|
|
3032
|
-
return
|
|
3033
|
-
const a = be(z(o.target), z(c.target)) * H, f = Math.max(c.distance, a), l = 1 - Math.exp(-
|
|
3071
|
+
), wi = 10, Yi = (e) => {
|
|
3072
|
+
const t = Ti(() => e().orientation), n = yi(() => e().offset), i = _i(() => e().fieldOfView);
|
|
3073
|
+
return fe(({ time: s, current: o, target: c }) => {
|
|
3074
|
+
const a = be(z(o.target), z(c.target)) * H, f = Math.max(c.distance, a), l = 1 - Math.exp(-wi * s), h = Math.exp(
|
|
3034
3075
|
Math.log(o.distance) + (Math.log(f) - Math.log(o.distance)) * l
|
|
3035
|
-
), u = o.distance > a ? 1 : o.distance / a, d =
|
|
3076
|
+
), u = o.distance > a ? 1 : o.distance / a, d = oe(
|
|
3036
3077
|
re(
|
|
3037
3078
|
L(),
|
|
3038
3079
|
z(o.target),
|
|
3039
|
-
|
|
3080
|
+
he(
|
|
3040
3081
|
L(),
|
|
3041
|
-
|
|
3082
|
+
se(
|
|
3042
3083
|
L(),
|
|
3043
3084
|
z(c.target),
|
|
3044
3085
|
z(o.target)
|
|
@@ -3056,7 +3097,7 @@ const B = 34, hi = 22, di = se(0, B).flatMap(
|
|
|
3056
3097
|
fieldOfView: i()
|
|
3057
3098
|
};
|
|
3058
3099
|
})(e);
|
|
3059
|
-
},
|
|
3100
|
+
}, gi = (e) => {
|
|
3060
3101
|
const t = e.createTexture();
|
|
3061
3102
|
e.bindTexture(e.TEXTURE_2D, t), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MIN_FILTER, e.NEAREST), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MAG_FILTER, e.NEAREST), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_S, e.CLAMP_TO_EDGE), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_T, e.CLAMP_TO_EDGE);
|
|
3062
3103
|
const n = e.createRenderbuffer();
|
|
@@ -3098,14 +3139,14 @@ const B = 34, hi = 22, di = se(0, B).flatMap(
|
|
|
3098
3139
|
resize: o,
|
|
3099
3140
|
read: ([l = 0, h = 0]) => {
|
|
3100
3141
|
r(), e.readPixels(l, s - h, 1, 1, e.RGBA, e.UNSIGNED_BYTE, c), e.bindFramebuffer(e.FRAMEBUFFER, null);
|
|
3101
|
-
const [u = 0, d = 0, m = 0,
|
|
3142
|
+
const [u = 0, d = 0, m = 0, y = 0] = c, p = 2 * ((u * 256 + d) / (256 * 256 - 1)) - 1, A = m * 256 + y;
|
|
3102
3143
|
return [p, A];
|
|
3103
3144
|
},
|
|
3104
3145
|
dispose: () => {
|
|
3105
3146
|
e.deleteTexture(t), e.deleteFramebuffer(i), e.deleteRenderbuffer(n);
|
|
3106
3147
|
}
|
|
3107
3148
|
};
|
|
3108
|
-
},
|
|
3149
|
+
}, Ri = (e, {
|
|
3109
3150
|
view: t,
|
|
3110
3151
|
screen: n,
|
|
3111
3152
|
pick: i
|
|
@@ -3115,37 +3156,37 @@ const B = 34, hi = 22, di = se(0, B).flatMap(
|
|
|
3115
3156
|
const a = () => {
|
|
3116
3157
|
s = !0;
|
|
3117
3158
|
}, f = (m) => {
|
|
3118
|
-
const { x:
|
|
3159
|
+
const { x: y, y: E, movementX: p, movementY: A } = m;
|
|
3119
3160
|
if (o) {
|
|
3120
3161
|
if (o.onDrag) {
|
|
3121
|
-
const { point: x, position: _, layer: v } = i([
|
|
3162
|
+
const { point: x, position: _, layer: v } = i([y, E], { terrain: !0 });
|
|
3122
3163
|
o.onDrag({ point: x, position: _, layer: v });
|
|
3123
3164
|
}
|
|
3124
3165
|
if (o.onDragFlat) {
|
|
3125
|
-
const _ = te(t(), n()).unproject([
|
|
3126
|
-
o.onDragFlat({ point: [
|
|
3166
|
+
const _ = te(t(), n()).unproject([y, E], { targetZ: c });
|
|
3167
|
+
o.onDragFlat({ point: [y, E], position: _, layer: void 0 });
|
|
3127
3168
|
}
|
|
3128
3169
|
return;
|
|
3129
3170
|
}
|
|
3130
3171
|
if (s && (Math.abs(p) > 1 || Math.abs(A) > 1)) {
|
|
3131
3172
|
s = !1;
|
|
3132
|
-
const { point: x, position: _, layer: v } = i([
|
|
3173
|
+
const { point: x, position: _, layer: v } = i([y, E]);
|
|
3133
3174
|
(v?.onDrag || v?.onDragFlat) && (o = v, o.onDragStart?.({ point: x, position: _, layer: v }), [, , c] = _);
|
|
3134
3175
|
}
|
|
3135
3176
|
}, l = (m) => {
|
|
3136
3177
|
if (s && h(m), s = !1, o) {
|
|
3137
|
-
const { x:
|
|
3178
|
+
const { x: y, y: E } = m, { point: p, position: A, layer: x } = i([y, E]);
|
|
3138
3179
|
o.onDragEnd?.({ point: p, position: A, layer: x });
|
|
3139
3180
|
}
|
|
3140
3181
|
o = void 0;
|
|
3141
3182
|
}, h = (m) => {
|
|
3142
|
-
const { x:
|
|
3183
|
+
const { x: y, y: E, button: p } = m, { point: A, position: x, layer: _ } = i([y, E]);
|
|
3143
3184
|
(p === 2 ? _?.onRightClick : _?.onClick)?.(
|
|
3144
3185
|
{ point: A, position: x, layer: _ },
|
|
3145
3186
|
m
|
|
3146
3187
|
);
|
|
3147
|
-
}, u = ({ x: m, y
|
|
3148
|
-
const { point: E, position: p, layer: A } = i([m,
|
|
3188
|
+
}, u = ({ x: m, y }) => {
|
|
3189
|
+
const { point: E, position: p, layer: A } = i([m, y]);
|
|
3149
3190
|
A?.onDoubleClick?.({ point: E, position: p, layer: A });
|
|
3150
3191
|
};
|
|
3151
3192
|
return r?.addEventListener("mousedown", a), r?.addEventListener("mousemove", f), r?.addEventListener("dblclick", u), window.addEventListener("mouseup", l), { dispose: () => {
|
|
@@ -3157,15 +3198,15 @@ const $i = ({ gl: e }, t) => {
|
|
|
3157
3198
|
const { view: n, layers: i } = t;
|
|
3158
3199
|
let r = !0, s = [0, 0];
|
|
3159
3200
|
e.enable(e.CULL_FACE), e.cullFace(e.FRONT), e.depthFunc(e.LEQUAL);
|
|
3160
|
-
const o =
|
|
3201
|
+
const o = gi(e), { canvas: c } = e, a = ([x = 0, _ = 0]) => {
|
|
3161
3202
|
x = x || 1, _ = _ || 1, s = [x, _], c.width = x * devicePixelRatio, c.height = _ * devicePixelRatio, o.resize([c.width, c.height]);
|
|
3162
3203
|
};
|
|
3163
3204
|
a([c.width, c.height]);
|
|
3164
3205
|
const f = new ResizeObserver(([x]) => {
|
|
3165
3206
|
if (!x)
|
|
3166
3207
|
return;
|
|
3167
|
-
const { contentRect: _ } = x, { width: v, height:
|
|
3168
|
-
a([v,
|
|
3208
|
+
const { contentRect: _ } = x, { width: v, height: w } = _;
|
|
3209
|
+
a([v, w]);
|
|
3169
3210
|
});
|
|
3170
3211
|
c instanceof HTMLCanvasElement && f.observe(c);
|
|
3171
3212
|
const l = ([x = 0, _ = 0]) => {
|
|
@@ -3176,33 +3217,33 @@ const $i = ({ gl: e }, t) => {
|
|
|
3176
3217
|
}, u = (x) => {
|
|
3177
3218
|
const _ = te(n(), s);
|
|
3178
3219
|
l(s), (x ? [x] : Ce(i())).forEach(
|
|
3179
|
-
(v,
|
|
3220
|
+
(v, w) => v.render?.({ viewport: _, depth: !0, index: w + 1 })
|
|
3180
3221
|
);
|
|
3181
3222
|
}, d = () => {
|
|
3182
3223
|
r && (h(), requestAnimationFrame(d));
|
|
3183
3224
|
};
|
|
3184
3225
|
requestAnimationFrame(d);
|
|
3185
|
-
const m = (x) => te(n(), s).project(x),
|
|
3186
|
-
const { screenToClip: v, clipToLocal:
|
|
3226
|
+
const m = (x) => te(n(), s).project(x), y = (x) => te(n(), s).unproject(x), E = (x, { terrain: _ } = {}) => {
|
|
3227
|
+
const { screenToClip: v, clipToLocal: w, localToWorld: M } = te(
|
|
3187
3228
|
n(),
|
|
3188
3229
|
s
|
|
3189
3230
|
);
|
|
3190
3231
|
o.use();
|
|
3191
|
-
const [
|
|
3192
|
-
u(
|
|
3193
|
-
const [
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
]), [
|
|
3197
|
-
return { point: x, position:
|
|
3198
|
-
}, p =
|
|
3232
|
+
const [T] = _ ? i() : [];
|
|
3233
|
+
u(T);
|
|
3234
|
+
const [g = 0, R = 0] = x, [b, U] = o.read([
|
|
3235
|
+
g * devicePixelRatio,
|
|
3236
|
+
R * devicePixelRatio
|
|
3237
|
+
]), [S = 0, P = 0] = v(x), N = oe(M(w([S, P, b, 1]))), I = U === 0 ? void 0 : T ?? Ce(i())[U - 1];
|
|
3238
|
+
return { point: x, position: N, layer: I };
|
|
3239
|
+
}, p = Ri(e, {
|
|
3199
3240
|
view: n,
|
|
3200
3241
|
screen: () => s,
|
|
3201
3242
|
pick: E
|
|
3202
3243
|
});
|
|
3203
3244
|
return {
|
|
3204
3245
|
project: m,
|
|
3205
|
-
unproject:
|
|
3246
|
+
unproject: y,
|
|
3206
3247
|
pick: E,
|
|
3207
3248
|
dispose: () => {
|
|
3208
3249
|
r = !1, p.dispose(), o.dispose(), c instanceof HTMLCanvasElement && f.unobserve(c);
|
|
@@ -3210,41 +3251,41 @@ const $i = ({ gl: e }, t) => {
|
|
|
3210
3251
|
};
|
|
3211
3252
|
}, Ce = (e) => e.flatMap((t) => [...Ce(t.children ?? []), t]);
|
|
3212
3253
|
export {
|
|
3213
|
-
|
|
3214
|
-
|
|
3254
|
+
ce as cache,
|
|
3255
|
+
ji as cacheAll,
|
|
3215
3256
|
H as circumference,
|
|
3216
|
-
|
|
3217
|
-
|
|
3218
|
-
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
|
|
3257
|
+
bi as createBillboardLayer,
|
|
3258
|
+
Si as createContainer,
|
|
3259
|
+
Ai as createContext,
|
|
3260
|
+
Ui as createDynamicContainer,
|
|
3261
|
+
zi as createEmptyLayer,
|
|
3262
|
+
Li as createLineLayer,
|
|
3222
3263
|
si as createMemoryTexture,
|
|
3223
|
-
|
|
3264
|
+
Mi as createMouseControl,
|
|
3224
3265
|
ye as createMouseEvents,
|
|
3225
|
-
|
|
3226
|
-
|
|
3227
|
-
|
|
3228
|
-
|
|
3266
|
+
_i as createNumberTransition,
|
|
3267
|
+
Ni as createObjectLayer,
|
|
3268
|
+
Ti as createOrientationTransition,
|
|
3269
|
+
Ii as createPolygonLayer,
|
|
3229
3270
|
Vi as createPositionTransition,
|
|
3230
3271
|
Zi as createPositionVelocityTransition,
|
|
3231
|
-
|
|
3232
|
-
|
|
3233
|
-
|
|
3234
|
-
|
|
3235
|
-
|
|
3272
|
+
Di as createRadarLayer,
|
|
3273
|
+
Pi as createRenderLayer,
|
|
3274
|
+
Xi as createTerrainLayer,
|
|
3275
|
+
fe as createTransition,
|
|
3276
|
+
yi as createVec2Transition,
|
|
3236
3277
|
Bi as createVec4Transition,
|
|
3237
3278
|
Yi as createViewTransition,
|
|
3238
3279
|
$i as createWorld,
|
|
3239
3280
|
bt as debounce,
|
|
3240
|
-
|
|
3281
|
+
Wi as defaultLayerOptions,
|
|
3241
3282
|
vt as defaultView,
|
|
3242
3283
|
vn as degrees,
|
|
3243
|
-
|
|
3284
|
+
oe as geodetic,
|
|
3244
3285
|
z as mercator,
|
|
3245
3286
|
pn as quadratic,
|
|
3246
3287
|
De as radians,
|
|
3247
|
-
|
|
3288
|
+
xe as range,
|
|
3248
3289
|
mt as tileToMercator,
|
|
3249
3290
|
En as toOrientation,
|
|
3250
3291
|
Ue as toQuaternion
|