world.ts 0.2.7 → 0.3.0
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
CHANGED
|
@@ -22,48 +22,48 @@ const Rt = (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
|
-
const R = e.getUniformLocation(i,
|
|
25
|
+
const o = () => e.useProgram(i), c = (E, T) => {
|
|
26
|
+
const R = e.getUniformLocation(i, E);
|
|
27
27
|
return { set: (b) => {
|
|
28
28
|
R && T(R, b);
|
|
29
29
|
} };
|
|
30
|
-
}, a = (
|
|
31
|
-
|
|
32
|
-
(T, [R = 0,
|
|
33
|
-
), u = (
|
|
34
|
-
|
|
35
|
-
(T, [R = 0,
|
|
36
|
-
), h = (
|
|
37
|
-
|
|
38
|
-
(T, [R = 0,
|
|
39
|
-
), d = (
|
|
40
|
-
|
|
41
|
-
(T, [R = 0,
|
|
42
|
-
), m = (
|
|
43
|
-
|
|
44
|
-
(T, [R = 0,
|
|
45
|
-
),
|
|
46
|
-
|
|
47
|
-
(T, [R = 0,
|
|
48
|
-
),
|
|
49
|
-
|
|
30
|
+
}, a = (E) => c(E, (T, R) => e.uniform1f(T, R)), f = (E) => c(E, (T, R) => e.uniform1i(T, R)), l = (E) => c(
|
|
31
|
+
E,
|
|
32
|
+
(T, [R = 0, M = 0]) => e.uniform2f(T, R, M)
|
|
33
|
+
), u = (E) => c(
|
|
34
|
+
E,
|
|
35
|
+
(T, [R = 0, M = 0]) => e.uniform2i(T, R, M)
|
|
36
|
+
), h = (E) => c(
|
|
37
|
+
E,
|
|
38
|
+
(T, [R = 0, M = 0, b = 0]) => e.uniform3f(T, R, M, b)
|
|
39
|
+
), d = (E) => c(
|
|
40
|
+
E,
|
|
41
|
+
(T, [R = 0, M = 0, b = 0]) => e.uniform3i(T, R, M, b)
|
|
42
|
+
), m = (E) => c(
|
|
43
|
+
E,
|
|
44
|
+
(T, [R = 0, M = 0, b = 0, P = 0]) => e.uniform4f(T, R, M, b, P)
|
|
45
|
+
), y = (E) => c(
|
|
46
|
+
E,
|
|
47
|
+
(T, [R = 0, M = 0, b = 0, P = 0]) => e.uniform4i(T, R, M, b, P)
|
|
48
|
+
), w = (E) => c(
|
|
49
|
+
E,
|
|
50
50
|
(T, R) => e.uniformMatrix4fv(T, !1, R)
|
|
51
|
-
),
|
|
52
|
-
name:
|
|
51
|
+
), x = ({
|
|
52
|
+
name: E,
|
|
53
53
|
buffer: T,
|
|
54
54
|
size: R,
|
|
55
|
-
type:
|
|
55
|
+
type: M,
|
|
56
56
|
stride: b,
|
|
57
57
|
offset: P
|
|
58
58
|
}) => {
|
|
59
|
-
const U = e.getAttribLocation(i,
|
|
59
|
+
const U = e.getAttribLocation(i, E);
|
|
60
60
|
if (U === -1)
|
|
61
|
-
throw new Error(`Missing attribute: ${
|
|
61
|
+
throw new Error(`Missing attribute: ${E}`);
|
|
62
62
|
return { use: () => {
|
|
63
|
-
T.use(), e.enableVertexAttribArray(U), ["u16", "i32"].includes(
|
|
63
|
+
T.use(), e.enableVertexAttribArray(U), ["u16", "i32"].includes(M) ? e.vertexAttribIPointer(
|
|
64
64
|
U,
|
|
65
65
|
R,
|
|
66
|
-
|
|
66
|
+
M === "u16" ? e.UNSIGNED_SHORT : e.INT,
|
|
67
67
|
b || 0,
|
|
68
68
|
P || 0
|
|
69
69
|
) : e.vertexAttribPointer(
|
|
@@ -85,12 +85,12 @@ const Rt = (e, t) => {
|
|
|
85
85
|
uniform3f: h,
|
|
86
86
|
uniform3i: d,
|
|
87
87
|
uniform4f: m,
|
|
88
|
-
uniform4i:
|
|
89
|
-
uniformMatrix4f:
|
|
90
|
-
attribute1f: (
|
|
91
|
-
attribute2f: (
|
|
92
|
-
attribute3f: (
|
|
93
|
-
attribute3i: (
|
|
88
|
+
uniform4i: y,
|
|
89
|
+
uniformMatrix4f: w,
|
|
90
|
+
attribute1f: (E, T, R = {}) => x({ name: E, buffer: T, size: 1, type: "f32", ...R }),
|
|
91
|
+
attribute2f: (E, T, R = {}) => x({ name: E, buffer: T, size: 2, type: "f32", ...R }),
|
|
92
|
+
attribute3f: (E, T, R = {}) => x({ name: E, buffer: T, size: 3, type: "f32", ...R }),
|
|
93
|
+
attribute3i: (E, T, R = {}) => x({ name: E, buffer: T, size: 3, type: "i32", ...R }),
|
|
94
94
|
dispose: () => {
|
|
95
95
|
e.deleteProgram(i), e.deleteShader(r), e.deleteShader(s);
|
|
96
96
|
}
|
|
@@ -101,7 +101,7 @@ const Rt = (e, t) => {
|
|
|
101
101
|
if (e.shaderSource(t, n), e.compileShader(t), !e.getShaderParameter(t, e.COMPILE_STATUS))
|
|
102
102
|
throw console.error("Compilation failed", e.getShaderInfoLog(t)), new Error("Compilation failure");
|
|
103
103
|
return t;
|
|
104
|
-
},
|
|
104
|
+
}, Mt = (e) => {
|
|
105
105
|
const t = /* @__PURE__ */ new Map();
|
|
106
106
|
return {
|
|
107
107
|
get: ({
|
|
@@ -116,16 +116,16 @@ const Rt = (e, t) => {
|
|
|
116
116
|
},
|
|
117
117
|
dispose: () => [...t.values()].forEach((r) => r.dispose())
|
|
118
118
|
};
|
|
119
|
-
},
|
|
119
|
+
}, wi = (e) => {
|
|
120
120
|
const t = e.getContext("webgl2");
|
|
121
121
|
if (!t)
|
|
122
122
|
throw new Error("No WebGL2");
|
|
123
|
-
const n =
|
|
123
|
+
const n = Mt(t), { dispose: i } = n;
|
|
124
124
|
return { gl: t, programs: n, dispose: i };
|
|
125
125
|
};
|
|
126
|
-
var
|
|
127
|
-
function
|
|
128
|
-
|
|
126
|
+
var bt = 1e-6, Y = typeof Float32Array < "u" ? Float32Array : Array;
|
|
127
|
+
function St(e) {
|
|
128
|
+
Y = e;
|
|
129
129
|
}
|
|
130
130
|
Math.hypot || (Math.hypot = function() {
|
|
131
131
|
for (var e = 0, t = arguments.length; t--; )
|
|
@@ -133,23 +133,23 @@ Math.hypot || (Math.hypot = function() {
|
|
|
133
133
|
return Math.sqrt(e);
|
|
134
134
|
});
|
|
135
135
|
function Ut() {
|
|
136
|
-
var e = new
|
|
137
|
-
return
|
|
136
|
+
var e = new Y(9);
|
|
137
|
+
return Y != 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
138
|
}
|
|
139
139
|
function xe() {
|
|
140
|
-
var e = new
|
|
141
|
-
return
|
|
140
|
+
var e = new Y(16);
|
|
141
|
+
return Y != 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
142
|
}
|
|
143
143
|
function rt(e) {
|
|
144
144
|
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
145
|
}
|
|
146
146
|
function Pt(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], u = t[9], h = t[10], d = t[11], m = t[12],
|
|
148
|
-
return
|
|
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], u = t[9], h = t[10], d = t[11], m = t[12], y = t[13], w = t[14], x = t[15], A = n * c - i * o, p = n * a - r * o, v = n * f - s * o, _ = i * a - r * c, g = i * f - s * c, E = r * f - s * a, T = l * y - u * m, R = l * w - h * m, M = l * x - d * m, b = u * w - h * y, P = u * x - d * y, U = h * x - d * w, S = A * U - p * P + v * b + _ * M - g * R + E * T;
|
|
148
|
+
return S ? (S = 1 / S, e[0] = (c * U - a * P + f * b) * S, e[1] = (r * P - i * U - s * b) * S, e[2] = (y * E - w * g + x * _) * S, e[3] = (h * g - u * E - d * _) * S, e[4] = (a * M - o * U - f * R) * S, e[5] = (n * U - r * M + s * R) * S, e[6] = (w * v - m * E - x * p) * S, e[7] = (l * E - h * v + d * p) * S, e[8] = (o * P - c * M + f * T) * S, e[9] = (i * M - n * P - s * T) * S, e[10] = (m * g - y * v + x * A) * S, e[11] = (u * v - l * g - d * A) * S, e[12] = (c * R - o * b - a * T) * S, e[13] = (n * b - i * R + r * T) * S, e[14] = (y * p - m * _ - w * A) * S, e[15] = (l * _ - u * p + h * A) * S, e) : null;
|
|
149
149
|
}
|
|
150
150
|
function zt(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], u = t[8], h = t[9], d = t[10], m = t[11],
|
|
152
|
-
return e[0] = p * i +
|
|
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], u = t[8], h = t[9], d = t[10], m = t[11], y = t[12], w = t[13], x = t[14], A = t[15], p = n[0], v = n[1], _ = n[2], g = n[3];
|
|
152
|
+
return e[0] = p * i + v * c + _ * u + g * y, e[1] = p * r + v * a + _ * h + g * w, e[2] = p * s + v * f + _ * d + g * x, e[3] = p * o + v * l + _ * m + g * A, p = n[4], v = n[5], _ = n[6], g = n[7], e[4] = p * i + v * c + _ * u + g * y, e[5] = p * r + v * a + _ * h + g * w, e[6] = p * s + v * f + _ * d + g * x, e[7] = p * o + v * l + _ * m + g * A, p = n[8], v = n[9], _ = n[10], g = n[11], e[8] = p * i + v * c + _ * u + g * y, e[9] = p * r + v * a + _ * h + g * w, e[10] = p * s + v * f + _ * d + g * x, e[11] = p * o + v * l + _ * m + g * A, p = n[12], v = n[13], _ = n[14], g = n[15], e[12] = p * i + v * c + _ * u + g * y, e[13] = p * r + v * a + _ * h + g * w, e[14] = p * s + v * f + _ * d + g * x, e[15] = p * o + v * l + _ * m + g * A, e;
|
|
153
153
|
}
|
|
154
154
|
function Lt(e, t, n) {
|
|
155
155
|
var i = n[0], r = n[1], s = n[2];
|
|
@@ -168,8 +168,8 @@ function Dt(e, t, n) {
|
|
|
168
168
|
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 + u * i, e[3] = a * r + h * i, e[4] = f * r - s * i, e[5] = l * r - o * i, e[6] = u * r - c * i, e[7] = h * r - a * i, e;
|
|
169
169
|
}
|
|
170
170
|
function Ot(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, u = i * c, h = r * o, d = r * c, m = r * a,
|
|
172
|
-
return e[0] = 1 - u - m, e[1] = l +
|
|
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, u = i * c, h = r * o, d = r * c, m = r * a, y = s * o, w = s * c, x = s * a;
|
|
172
|
+
return e[0] = 1 - u - m, e[1] = l + x, e[2] = h - w, e[3] = 0, e[4] = l - x, e[5] = 1 - f - m, e[6] = d + y, e[7] = 0, e[8] = h + w, e[9] = d - y, e[10] = 1 - f - u, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, e;
|
|
173
173
|
}
|
|
174
174
|
function Ct(e, t, n, i, r) {
|
|
175
175
|
var s = 1 / Math.tan(t / 2), o;
|
|
@@ -177,15 +177,15 @@ function Ct(e, t, n, i, r) {
|
|
|
177
177
|
}
|
|
178
178
|
var Xt = Ct;
|
|
179
179
|
function z() {
|
|
180
|
-
var e = new
|
|
181
|
-
return
|
|
180
|
+
var e = new Y(3);
|
|
181
|
+
return Y != Float32Array && (e[0] = 0, e[1] = 0, e[2] = 0), e;
|
|
182
182
|
}
|
|
183
183
|
function Wt(e) {
|
|
184
184
|
var t = e[0], n = e[1], i = e[2];
|
|
185
185
|
return Math.hypot(t, n, i);
|
|
186
186
|
}
|
|
187
187
|
function st(e, t, n) {
|
|
188
|
-
var i = new
|
|
188
|
+
var i = new Y(3);
|
|
189
189
|
return i[0] = e, i[1] = t, i[2] = n, i;
|
|
190
190
|
}
|
|
191
191
|
function jt(e, t) {
|
|
@@ -200,7 +200,7 @@ function ne(e, t, n) {
|
|
|
200
200
|
function Bt(e, t, n) {
|
|
201
201
|
return e[0] = t[0] - n[0], e[1] = t[1] - n[1], e[2] = t[2] - n[2], e;
|
|
202
202
|
}
|
|
203
|
-
function
|
|
203
|
+
function le(e, t, n) {
|
|
204
204
|
return e[0] = t[0] * n, e[1] = t[1] * n, e[2] = t[2] * n, e;
|
|
205
205
|
}
|
|
206
206
|
function Te(e, t) {
|
|
@@ -233,8 +233,8 @@ var re = Bt, $t = Wt;
|
|
|
233
233
|
};
|
|
234
234
|
})();
|
|
235
235
|
function ee() {
|
|
236
|
-
var e = new
|
|
237
|
-
return
|
|
236
|
+
var e = new Y(4);
|
|
237
|
+
return Y != Float32Array && (e[0] = 0, e[1] = 0, e[2] = 0, e[3] = 0), e;
|
|
238
238
|
}
|
|
239
239
|
function kt(e, t) {
|
|
240
240
|
return e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], e;
|
|
@@ -277,8 +277,8 @@ var Jt = Gt;
|
|
|
277
277
|
};
|
|
278
278
|
})();
|
|
279
279
|
function He() {
|
|
280
|
-
var e = new
|
|
281
|
-
return
|
|
280
|
+
var e = new Y(4);
|
|
281
|
+
return Y != Float32Array && (e[0] = 0, e[1] = 0, e[2] = 0), e[3] = 1, e;
|
|
282
282
|
}
|
|
283
283
|
function en(e, t, n) {
|
|
284
284
|
n = n * 0.5;
|
|
@@ -290,8 +290,8 @@ function tn(e, t) {
|
|
|
290
290
|
return Math.acos(2 * n * n - 1);
|
|
291
291
|
}
|
|
292
292
|
function Ne(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], u = n[3], h, d, m,
|
|
294
|
-
return d = r * a + s * f + o * l + c * u, d < 0 && (d = -d, a = -a, f = -f, l = -l, u = -u), 1 - d >
|
|
293
|
+
var r = t[0], s = t[1], o = t[2], c = t[3], a = n[0], f = n[1], l = n[2], u = n[3], h, d, m, y, w;
|
|
294
|
+
return d = r * a + s * f + o * l + c * u, d < 0 && (d = -d, a = -a, f = -f, l = -l, u = -u), 1 - d > bt ? (h = Math.acos(d), m = Math.sin(h), y = Math.sin((1 - i) * h) / m, w = Math.sin(i * h) / m) : (y = 1 - i, w = i), e[0] = y * r + w * a, e[1] = y * s + w * f, e[2] = y * o + w * l, e[3] = y * c + w * u, e;
|
|
295
295
|
}
|
|
296
296
|
function nn(e, t) {
|
|
297
297
|
var n = t[0] + t[4] + t[8], i;
|
|
@@ -325,9 +325,9 @@ var rn = qt, ht = Qt;
|
|
|
325
325
|
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], ht(t, nn(t, e));
|
|
326
326
|
};
|
|
327
327
|
})();
|
|
328
|
-
function
|
|
329
|
-
var e = new
|
|
330
|
-
return
|
|
328
|
+
function de() {
|
|
329
|
+
var e = new Y(2);
|
|
330
|
+
return Y != Float32Array && (e[0] = 0, e[1] = 0), e;
|
|
331
331
|
}
|
|
332
332
|
function sn(e, t) {
|
|
333
333
|
return e[0] = t[0], e[1] = t[1], e;
|
|
@@ -354,7 +354,7 @@ function hn(e, t) {
|
|
|
354
354
|
}
|
|
355
355
|
var un = cn;
|
|
356
356
|
(function() {
|
|
357
|
-
var e =
|
|
357
|
+
var e = de();
|
|
358
358
|
return function(t, n, i, r, s, o) {
|
|
359
359
|
var c, a;
|
|
360
360
|
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)
|
|
@@ -375,13 +375,13 @@ const H = 40075017, Ie = (e) => e / 180 * Math.PI, dn = (e) => e * 180 / Math.PI
|
|
|
375
375
|
(e - 0.5) * 360,
|
|
376
376
|
dn(Math.atan(Math.sinh(-(t - 0.5) * (2 * Math.PI)))),
|
|
377
377
|
n * H
|
|
378
|
-
),
|
|
378
|
+
), vn = ([e = 0, t = 0, n = 0], i = z()) => {
|
|
379
379
|
const r = 2 ** -n;
|
|
380
380
|
return we(i, e * r, t * r, 0);
|
|
381
|
-
},
|
|
381
|
+
}, Se = ([e = 0, t = 0, n = 0]) => {
|
|
382
382
|
const i = Math.cos(t * 0.5), r = Math.sin(t * 0.5), s = Math.cos(e * 0.5), o = Math.sin(e * 0.5), c = Math.cos(n * 0.5), a = Math.sin(n * 0.5), f = c * s * i + a * o * r, l = a * s * i - c * o * r, u = c * o * i + a * s * r, h = c * s * r - a * o * i;
|
|
383
383
|
return [l, u, h, f];
|
|
384
|
-
},
|
|
384
|
+
}, pn = ([e = 0, t = 0, n = 0, i = 0]) => {
|
|
385
385
|
const r = Math.atan2(2 * (i * e + t * n), 1 - 2 * (e * e + t * t)), s = Math.asin(Math.min(1, 2 * (i * t - n * e))), o = Math.atan2(2 * (i * n + e * t), 1 - 2 * (t * t + n * n));
|
|
386
386
|
return [s, o, r];
|
|
387
387
|
}, ut = {
|
|
@@ -394,51 +394,51 @@ const H = 40075017, Ie = (e) => e / 180 * Math.PI, dn = (e) => e * 180 / Math.PI
|
|
|
394
394
|
const { target: n, offset: i, distance: r, orientation: s, fieldOfView: o } = {
|
|
395
395
|
...ut,
|
|
396
396
|
...e
|
|
397
|
-
}, [c = 0, a = 0] = t, [f = 0, l = 0] = i, [u = 0, h = 0, d = 0] = s, m = Math.tan(Ie(45) / 2) / Math.tan(Ie(o) / 2),
|
|
398
|
-
rt(
|
|
397
|
+
}, [c = 0, a = 0] = t, [f = 0, l = 0] = i, [u = 0, h = 0, d = 0] = s, m = Math.tan(Ie(45) / 2) / Math.tan(Ie(o) / 2), y = r / H * m, w = y / 100, x = y * 1e6, A = xe();
|
|
398
|
+
rt(A), Xt(A, Ie(o), c / a, w, x), Lt(A, A, [1, -1, 1]);
|
|
399
399
|
const p = xe();
|
|
400
400
|
rt(p), Nt(p, p, u), It(p, p, h), Dt(p, p, d);
|
|
401
|
-
const
|
|
402
|
-
const
|
|
403
|
-
return J({ ...e, offset:
|
|
404
|
-
},
|
|
405
|
-
const K = 2 * O / c - 1,
|
|
406
|
-
return ot(
|
|
407
|
-
}, T = ([O = 0,
|
|
408
|
-
const [
|
|
409
|
-
return we(
|
|
410
|
-
},
|
|
411
|
-
(D - U) * (D - U) + (
|
|
412
|
-
U * (D - U) +
|
|
413
|
-
U * U +
|
|
401
|
+
const v = zt(xn, A, p), _ = Pt(xe(), v), g = (O) => {
|
|
402
|
+
const W = [c * O, a * O], k = [f * O, l * O];
|
|
403
|
+
return J({ ...e, offset: k }, W);
|
|
404
|
+
}, E = ([O = 0, W = 0], k = ee()) => {
|
|
405
|
+
const K = 2 * O / c - 1, ve = -(2 * W / a - 1);
|
|
406
|
+
return ot(k, K, ve, 0, 1);
|
|
407
|
+
}, T = ([O = 0, W = 0, , k = 0], K = de()) => on(K, (1 + O / k) * c * 0.5, (1 - W / k) * a * 0.5), R = (O, W = z()) => {
|
|
408
|
+
const [k = 0, K = 0, ve = 0, pe = 0] = at(En, O, _);
|
|
409
|
+
return we(W, k / pe, K / pe, ve / pe);
|
|
410
|
+
}, M = ([O = 0, W = 0, k = 0], K = ee()) => at(K, ot(K, O, W, k, 1), v), [b = 0, P = 0] = E([f + c / 2, l + a / 2]), [U = 0, S = 0, N = 0] = R([b, P, -1, 1]), [D = 0, j = 0, X = 0] = R([b, P, 1.00001, 1]), [C = 0] = mn(
|
|
411
|
+
(D - U) * (D - U) + (j - S) * (j - S) + (X - N) * (X - N),
|
|
412
|
+
U * (D - U) + S * (j - S) + N * (X - N),
|
|
413
|
+
U * U + S * S + N * N - r * r / H / H * m * m
|
|
414
414
|
);
|
|
415
|
-
if (isNaN(
|
|
415
|
+
if (isNaN(C))
|
|
416
416
|
throw new Error("Unexpected");
|
|
417
|
-
const
|
|
418
|
-
U +
|
|
419
|
-
|
|
420
|
-
N +
|
|
421
|
-
],
|
|
417
|
+
const G = [
|
|
418
|
+
U + C * (D - U),
|
|
419
|
+
S + C * (j - S),
|
|
420
|
+
N + C * (X - N)
|
|
421
|
+
], Z = re(z(), L(n), G), $ = (O, W = z()) => ne(W, O, Z), be = (O, W = z()) => re(W, O, Z);
|
|
422
422
|
return {
|
|
423
|
-
camera:
|
|
423
|
+
camera: Z,
|
|
424
424
|
screen: t,
|
|
425
|
-
projection:
|
|
425
|
+
projection: A,
|
|
426
426
|
modelView: p,
|
|
427
427
|
fieldScale: m,
|
|
428
|
-
scale:
|
|
429
|
-
screenToClip:
|
|
428
|
+
scale: g,
|
|
429
|
+
screenToClip: E,
|
|
430
430
|
clipToScreen: T,
|
|
431
431
|
clipToLocal: R,
|
|
432
|
-
localToClip:
|
|
433
|
-
localToWorld:
|
|
434
|
-
worldToLocal:
|
|
435
|
-
project: (O) => T(
|
|
436
|
-
unproject: (O, { targetZ:
|
|
437
|
-
const
|
|
432
|
+
localToClip: M,
|
|
433
|
+
localToWorld: $,
|
|
434
|
+
worldToLocal: be,
|
|
435
|
+
project: (O) => T(M(be(L(O)))),
|
|
436
|
+
unproject: (O, { targetZ: W = 0 } = {}) => {
|
|
437
|
+
const k = E(O), [K = 0, ve = 0, , pe = 0] = k, Tt = [K, ve, -1, pe], et = se($(R(k))), tt = se($(R(Tt))), [, , Ze = 0] = et, [, , nt = 0] = tt, gt = Ze === nt ? 0 : (W - Ze) / (nt - Ze);
|
|
438
438
|
return Yt(z(), et, tt, gt);
|
|
439
439
|
}
|
|
440
440
|
};
|
|
441
|
-
}, _n = 100,
|
|
441
|
+
}, _n = 100, Ti = (e, t, n) => {
|
|
442
442
|
const {
|
|
443
443
|
enabled: i = () => !0,
|
|
444
444
|
draggable: r = () => !0,
|
|
@@ -446,62 +446,74 @@ const H = 40075017, Ie = (e) => e / 180 * Math.PI, dn = (e) => e * 180 / Math.PI
|
|
|
446
446
|
onChangeView: o
|
|
447
447
|
} = n;
|
|
448
448
|
let c = !1, a = !1;
|
|
449
|
-
const { view: f } = n, l = ([v = 0,
|
|
450
|
-
const [
|
|
449
|
+
const { view: f } = n, l = ([v = 0, _ = 0]) => {
|
|
450
|
+
const [g, E] = [
|
|
451
451
|
e.width / devicePixelRatio,
|
|
452
452
|
e.height / devicePixelRatio
|
|
453
|
-
], { camera:
|
|
454
|
-
if (!
|
|
453
|
+
], { camera: T, fieldScale: R } = J(f(), [g, E]), { position: M, layer: b } = t.pick([v, _]);
|
|
454
|
+
if (!b)
|
|
455
455
|
return;
|
|
456
|
-
const
|
|
456
|
+
const P = Te(L(M), T) * H / R, U = [v - g / 2, _ - E / 2];
|
|
457
457
|
o({
|
|
458
|
-
offset:
|
|
459
|
-
target:
|
|
460
|
-
distance:
|
|
458
|
+
offset: U,
|
|
459
|
+
target: M,
|
|
460
|
+
distance: P
|
|
461
461
|
});
|
|
462
|
-
}, u = () => {
|
|
463
|
-
|
|
464
|
-
}, h = ({ buttons: v, movementX: g, movementY: p, x, y: w }) => {
|
|
465
|
-
if (!i() || !v)
|
|
462
|
+
}, u = (v, _) => {
|
|
463
|
+
if (!r())
|
|
466
464
|
return;
|
|
467
|
-
|
|
468
|
-
const [
|
|
465
|
+
a || (l([v, _]), a = !0);
|
|
466
|
+
const [g, E] = [
|
|
469
467
|
e.width / devicePixelRatio,
|
|
470
468
|
e.height / devicePixelRatio
|
|
471
469
|
];
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
470
|
+
o({
|
|
471
|
+
offset: [v - g / 2, _ - E / 2]
|
|
472
|
+
});
|
|
473
|
+
}, h = (v, _, g, E) => {
|
|
474
|
+
if (!s())
|
|
475
|
+
return;
|
|
476
|
+
r() && !a && (l([v, _]), a = !0);
|
|
477
|
+
const [T, R] = [
|
|
478
|
+
e.width / devicePixelRatio,
|
|
479
|
+
e.height / devicePixelRatio
|
|
480
|
+
], { orientation: [M = 0, b = 0, P = 0] = [] } = f(), U = [
|
|
481
|
+
Math.min(
|
|
482
|
+
Math.PI / 2 - 0.1,
|
|
483
|
+
Math.max(0.1, M - E / R * Math.PI)
|
|
484
|
+
),
|
|
485
|
+
b,
|
|
486
|
+
P - g / T * Math.PI
|
|
487
|
+
];
|
|
488
|
+
o({
|
|
489
|
+
orientation: U
|
|
490
|
+
});
|
|
491
|
+
}, d = (v) => {
|
|
492
|
+
a = !1;
|
|
493
|
+
}, m = ({ buttons: v, movementX: _, movementY: g, x: E, y: T }) => {
|
|
494
|
+
!i() || !v || (v === 1 && r() ? u(E, T) : v === 2 && s() && h(E, T, _, g));
|
|
495
|
+
}, y = ({ touches: v }) => {
|
|
496
|
+
const _ = v.item(0);
|
|
497
|
+
if (!_)
|
|
498
|
+
return;
|
|
499
|
+
const { clientX: g, clientY: E } = _;
|
|
500
|
+
u(g, E);
|
|
501
|
+
}, w = Rt(() => c = !1, 100), x = ({ x: v, y: _, deltaY: g }) => {
|
|
490
502
|
if (!i())
|
|
491
503
|
return;
|
|
492
|
-
c || (r() && l([v,
|
|
493
|
-
let { distance:
|
|
494
|
-
|
|
495
|
-
Math.max(
|
|
504
|
+
c || (r() && l([v, _]), c = !0);
|
|
505
|
+
let { distance: E } = { ...ut, ...f() };
|
|
506
|
+
E = Math.min(
|
|
507
|
+
Math.max(E * Math.exp(g * 1e-3), _n),
|
|
496
508
|
H
|
|
497
|
-
), o({ distance:
|
|
498
|
-
},
|
|
499
|
-
return e.addEventListener("mousedown",
|
|
509
|
+
), o({ distance: E }), w();
|
|
510
|
+
}, A = (v) => v.preventDefault();
|
|
511
|
+
return e.addEventListener("touchstart", d), e.addEventListener("mousedown", d), e.addEventListener("mousemove", m), e.addEventListener("touchmove", y), e.addEventListener("wheel", x, { passive: !0 }), e.addEventListener("contextmenu", A), {
|
|
500
512
|
dispose: () => {
|
|
501
|
-
e.removeEventListener("mousedown",
|
|
513
|
+
e.removeEventListener("mousedown", d), e.removeEventListener("mousemove", m), e.removeEventListener("wheel", x), e.removeEventListener("contextmenu", A);
|
|
502
514
|
}
|
|
503
515
|
};
|
|
504
|
-
},
|
|
516
|
+
}, V = ({
|
|
505
517
|
gl: e,
|
|
506
518
|
type: t,
|
|
507
519
|
target: n
|
|
@@ -561,8 +573,8 @@ vec2 pack_index(in int index) {
|
|
|
561
573
|
void main(void) {
|
|
562
574
|
result = vec4(pack_depth(gl_FragCoord.z), pack_index(index));
|
|
563
575
|
}`;
|
|
564
|
-
const dt = "KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2FkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGFzeW5jIG49Pntjb25zdFtpLHRdPW4uZGF0YTtpZihpIT09ImxvYWQiKXJldHVybjtjb25zdCBvPW5ldyBBYm9ydENvbnRyb2xsZXIse3NpZ25hbDpjfT1vLHI9ZT0+
|
|
565
|
-
function
|
|
576
|
+
const dt = "KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2FkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGFzeW5jIG49Pntjb25zdFtpLHRdPW4uZGF0YTtpZihpIT09ImxvYWQiKXJldHVybjtjb25zdCBvPW5ldyBBYm9ydENvbnRyb2xsZXIse3NpZ25hbDpjfT1vLHI9ZT0+e2NvbnN0W2Esc109ZS5kYXRhO2E9PT0iY2FuY2VsIiYmcz09PXQmJm8uYWJvcnQoKX07YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIscik7dHJ5e2NvbnN0IGU9YXdhaXQgZmV0Y2godCx7bW9kZToiY29ycyIsc2lnbmFsOmN9KTtpZighZS5vayl7cG9zdE1lc3NhZ2Uoe3VybDp0LGltYWdlOnZvaWQgMH0pO3JldHVybn1jb25zdCBhPWF3YWl0IGUuYmxvYigpLHM9YXdhaXQgY3JlYXRlSW1hZ2VCaXRtYXAoYSk7cG9zdE1lc3NhZ2Uoe3VybDp0LGltYWdlOnN9KX1jYXRjaChlKXtpZighKGUgaW5zdGFuY2VvZiBFcnJvciYmZS5tZXNzYWdlPT09IlRoZSB1c2VyIGFib3J0ZWQgYSByZXF1ZXN0LiIpKXRocm93IGV9ZmluYWxseXtyZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyKX19KX0pKCk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWltYWdlLWxvYWQtd29ya2VyLUJfWjJxRGl1LmpzLm1hcAo=", yn = (e) => Uint8Array.from(atob(e), (t) => t.charCodeAt(0)), ct = typeof window < "u" && window.Blob && new Blob([yn(dt)], { type: "text/javascript;charset=utf-8" });
|
|
577
|
+
function wn(e) {
|
|
566
578
|
let t;
|
|
567
579
|
try {
|
|
568
580
|
if (t = ct && (window.URL || window.webkitURL).createObjectURL(ct), !t)
|
|
@@ -584,7 +596,7 @@ function yn(e) {
|
|
|
584
596
|
t && (window.URL || window.webkitURL).revokeObjectURL(t);
|
|
585
597
|
}
|
|
586
598
|
}
|
|
587
|
-
const Ue =
|
|
599
|
+
const Ue = wn(), Tn = ({
|
|
588
600
|
url: e,
|
|
589
601
|
onLoad: t
|
|
590
602
|
}) => {
|
|
@@ -617,12 +629,12 @@ const Ue = yn(), wn = ({
|
|
|
617
629
|
0
|
|
618
630
|
);
|
|
619
631
|
}, dispose: () => e.deleteTexture(t) };
|
|
620
|
-
},
|
|
632
|
+
}, vt = ({
|
|
621
633
|
gl: e,
|
|
622
634
|
url: t,
|
|
623
635
|
onLoad: n
|
|
624
636
|
}) => {
|
|
625
|
-
const i = mt(e), r =
|
|
637
|
+
const i = mt(e), r = Tn({
|
|
626
638
|
url: t,
|
|
627
639
|
onLoad: (a) => {
|
|
628
640
|
a && (i.use(), e.texImage2D(
|
|
@@ -646,7 +658,7 @@ const Ue = yn(), wn = ({
|
|
|
646
658
|
}
|
|
647
659
|
};
|
|
648
660
|
};
|
|
649
|
-
var
|
|
661
|
+
var gn = `#version 300 es
|
|
650
662
|
|
|
651
663
|
precision highp float;
|
|
652
664
|
|
|
@@ -658,7 +670,7 @@ out vec4 result;
|
|
|
658
670
|
void main() {
|
|
659
671
|
result = texture(image, uv_out) * color_out;
|
|
660
672
|
if (result.a == 0.f) discard;
|
|
661
|
-
}`,
|
|
673
|
+
}`, Rn = `#version 300 es
|
|
662
674
|
|
|
663
675
|
precision highp float;
|
|
664
676
|
|
|
@@ -693,10 +705,10 @@ void main(void) {
|
|
|
693
705
|
uv_out = uv;
|
|
694
706
|
color_out = color;
|
|
695
707
|
}`;
|
|
696
|
-
const
|
|
708
|
+
const gi = (e, t = {}) => {
|
|
697
709
|
const { gl: n } = e;
|
|
698
710
|
let i, r = [0, 0];
|
|
699
|
-
const s =
|
|
711
|
+
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" });
|
|
700
712
|
s.set(
|
|
701
713
|
[
|
|
702
714
|
[-1, -1],
|
|
@@ -717,40 +729,40 @@ const Ti = (e, t = {}) => {
|
|
|
717
729
|
[0, 3, 2]
|
|
718
730
|
].flat()
|
|
719
731
|
);
|
|
720
|
-
const a =
|
|
732
|
+
const a = me(
|
|
721
733
|
() => t.url?.() ?? "",
|
|
722
734
|
(m) => {
|
|
723
|
-
const
|
|
735
|
+
const y = vt({
|
|
724
736
|
gl: n,
|
|
725
737
|
url: m,
|
|
726
|
-
onLoad: ({ width:
|
|
727
|
-
r = [
|
|
738
|
+
onLoad: ({ width: w, height: x }) => {
|
|
739
|
+
r = [w, x], 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;
|
|
728
740
|
}
|
|
729
741
|
});
|
|
730
742
|
}
|
|
731
|
-
), { renderProgram: f, depthProgram: l } =
|
|
743
|
+
), { renderProgram: f, depthProgram: l } = An(e, {
|
|
732
744
|
cornerBuffer: s,
|
|
733
745
|
uvBuffer: o,
|
|
734
746
|
indexBuffer: c
|
|
735
747
|
}), u = ({
|
|
736
|
-
viewport: { projection: m, modelView:
|
|
737
|
-
depth:
|
|
748
|
+
viewport: { projection: m, modelView: y, camera: w, screen: x },
|
|
749
|
+
depth: A = !1,
|
|
738
750
|
index: p = 0
|
|
739
751
|
}) => {
|
|
740
|
-
const
|
|
741
|
-
if (a(), !i || ge(n,
|
|
752
|
+
const v = t.position?.() ?? [0, 0, 0], _ = t.color?.() ?? [1, 1, 1, 1], g = t.size?.() ?? 100, E = t.minSizePixels?.() ?? 0, T = t.maxSizePixels?.() ?? Number.MAX_VALUE;
|
|
753
|
+
if (a(), !i || ge(n, A, t))
|
|
742
754
|
return;
|
|
743
|
-
(
|
|
755
|
+
(A ? l : f).execute({
|
|
744
756
|
projection: m,
|
|
745
|
-
modelView:
|
|
746
|
-
camera: Q(
|
|
747
|
-
screen:
|
|
757
|
+
modelView: y,
|
|
758
|
+
camera: Q(w),
|
|
759
|
+
screen: x,
|
|
748
760
|
image: i,
|
|
749
761
|
imageSize: r,
|
|
750
|
-
position: Q(L(
|
|
751
|
-
color:
|
|
752
|
-
size:
|
|
753
|
-
minSizePixels:
|
|
762
|
+
position: Q(L(v)),
|
|
763
|
+
color: _,
|
|
764
|
+
size: g,
|
|
765
|
+
minSizePixels: E,
|
|
754
766
|
maxSizePixels: T,
|
|
755
767
|
index: p
|
|
756
768
|
});
|
|
@@ -762,42 +774,42 @@ const Ti = (e, t = {}) => {
|
|
|
762
774
|
dispose: h,
|
|
763
775
|
...d
|
|
764
776
|
};
|
|
765
|
-
},
|
|
777
|
+
}, An = ({ gl: e, programs: t }, {
|
|
766
778
|
cornerBuffer: n,
|
|
767
779
|
uvBuffer: i,
|
|
768
780
|
indexBuffer: r
|
|
769
781
|
}) => {
|
|
770
782
|
const s = (a = !1) => {
|
|
771
783
|
const f = t.get({
|
|
772
|
-
vertexSource:
|
|
773
|
-
fragmentSource: a ? Re :
|
|
784
|
+
vertexSource: Rn,
|
|
785
|
+
fragmentSource: a ? Re : gn
|
|
774
786
|
}), l = f.attribute2f("corner", n, {
|
|
775
787
|
stride: 2 * Float32Array.BYTES_PER_ELEMENT
|
|
776
788
|
}), u = f.attribute2f("uv", i, {
|
|
777
789
|
stride: 2 * Float32Array.BYTES_PER_ELEMENT
|
|
778
|
-
}), h = f.uniformMatrix4f("projection"), d = f.uniformMatrix4f("model_view"), m = f.uniform3i("camera"),
|
|
790
|
+
}), h = f.uniformMatrix4f("projection"), d = f.uniformMatrix4f("model_view"), m = f.uniform3i("camera"), y = f.uniform2f("screen"), w = f.uniform1i("image"), x = f.uniform2f("image_size"), A = f.uniform3i("position"), p = f.uniform4f("color"), v = f.uniform1i("index"), _ = f.uniform1f("size"), g = f.uniform1f("min_size_pixels"), E = f.uniform1f("max_size_pixels");
|
|
779
791
|
return { execute: ({
|
|
780
792
|
projection: R,
|
|
781
|
-
modelView:
|
|
793
|
+
modelView: M,
|
|
782
794
|
camera: b,
|
|
783
795
|
screen: P,
|
|
784
796
|
image: U,
|
|
785
|
-
imageSize:
|
|
797
|
+
imageSize: S,
|
|
786
798
|
position: N,
|
|
787
799
|
color: D,
|
|
788
|
-
size:
|
|
789
|
-
minSizePixels:
|
|
790
|
-
maxSizePixels:
|
|
791
|
-
index:
|
|
800
|
+
size: j,
|
|
801
|
+
minSizePixels: X,
|
|
802
|
+
maxSizePixels: C,
|
|
803
|
+
index: G
|
|
792
804
|
}) => {
|
|
793
|
-
f.use(), l.use(), u.use(), h.set(R), d.set(
|
|
805
|
+
f.use(), l.use(), u.use(), h.set(R), d.set(M), m.set(b), y.set(P), x.set(S), A.set(N), p.set(D), _.set(j), g.set(X), E.set(C), v.set(G), e.activeTexture(e.TEXTURE0), w.set(0), U.use(), r.use(), e.drawElements(e.TRIANGLES, 6, e.UNSIGNED_SHORT, 0);
|
|
794
806
|
} };
|
|
795
807
|
}, o = s(), c = s(!0);
|
|
796
808
|
return { renderProgram: o, depthProgram: c };
|
|
797
|
-
},
|
|
809
|
+
}, Ri = (e) => ({
|
|
798
810
|
children: e,
|
|
799
811
|
dispose: () => e.forEach((n) => n.dispose())
|
|
800
|
-
}),
|
|
812
|
+
}), Ai = (e) => {
|
|
801
813
|
const { keys: t, create: n } = e, i = /* @__PURE__ */ new Map();
|
|
802
814
|
return {
|
|
803
815
|
get children() {
|
|
@@ -813,13 +825,13 @@ const Ti = (e, t = {}) => {
|
|
|
813
825
|
},
|
|
814
826
|
dispose: () => Object.values(i).forEach((o) => o.dispose())
|
|
815
827
|
};
|
|
816
|
-
},
|
|
828
|
+
}, Mi = (e) => ({
|
|
817
829
|
render: e,
|
|
818
830
|
dispose: () => {
|
|
819
831
|
}
|
|
820
|
-
}),
|
|
832
|
+
}), bi = () => ({ dispose: () => {
|
|
821
833
|
} });
|
|
822
|
-
var
|
|
834
|
+
var Mn = `#version 300 es
|
|
823
835
|
|
|
824
836
|
precision highp float;
|
|
825
837
|
|
|
@@ -836,7 +848,7 @@ void main() {
|
|
|
836
848
|
result = color_out * texture(
|
|
837
849
|
dash,
|
|
838
850
|
vec2(fract((distance_out / dash_size) - dash_offset), 0.0));;
|
|
839
|
-
}`,
|
|
851
|
+
}`, bn = `#version 300 es
|
|
840
852
|
|
|
841
853
|
precision highp float;
|
|
842
854
|
|
|
@@ -903,10 +915,10 @@ void main(void) {
|
|
|
903
915
|
color_out = color;
|
|
904
916
|
distance_out = distance;
|
|
905
917
|
}`;
|
|
906
|
-
const
|
|
918
|
+
const Si = (e, t = {}) => {
|
|
907
919
|
const { gl: n } = e;
|
|
908
920
|
let i = 0;
|
|
909
|
-
const r =
|
|
921
|
+
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 } = Sn(e, {
|
|
910
922
|
positionBuffer: r,
|
|
911
923
|
indexBuffer: s,
|
|
912
924
|
cornerBuffer: o,
|
|
@@ -914,55 +926,55 @@ const Mi = (e, t = {}) => {
|
|
|
914
926
|
}), l = mt(n);
|
|
915
927
|
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);
|
|
916
928
|
const u = ({
|
|
917
|
-
viewport: { projection:
|
|
918
|
-
depth:
|
|
919
|
-
index:
|
|
929
|
+
viewport: { projection: w, modelView: x, camera: A, screen: p },
|
|
930
|
+
depth: v = !1,
|
|
931
|
+
index: _ = 0
|
|
920
932
|
}) => {
|
|
921
933
|
h(), d();
|
|
922
|
-
const
|
|
923
|
-
if (ge(n,
|
|
934
|
+
const g = t.color?.() ?? [1, 1, 1, 1], E = t.width?.() ?? 1, T = t.minWidthPixels?.() ?? 0, R = t.maxWidthPixels?.() ?? Number.MAX_VALUE, M = t.depthWidthPixels?.(), b = t.dashSize?.() ?? 1e3, P = t.dashOffset?.() ?? 0;
|
|
935
|
+
if (ge(n, v, t))
|
|
924
936
|
return;
|
|
925
|
-
(
|
|
926
|
-
projection:
|
|
927
|
-
modelView:
|
|
928
|
-
camera: Q(
|
|
937
|
+
(v ? f : a).execute({
|
|
938
|
+
projection: w,
|
|
939
|
+
modelView: x,
|
|
940
|
+
camera: Q(A),
|
|
929
941
|
screen: p,
|
|
930
942
|
count: i,
|
|
931
|
-
color:
|
|
932
|
-
width:
|
|
933
|
-
minWidthPixels:
|
|
934
|
-
maxWidthPixels:
|
|
935
|
-
index:
|
|
943
|
+
color: g,
|
|
944
|
+
width: E,
|
|
945
|
+
minWidthPixels: v && M !== void 0 ? Math.max(T, M) : T,
|
|
946
|
+
maxWidthPixels: v && M !== void 0 ? Math.max(R, M) : R,
|
|
947
|
+
index: _,
|
|
936
948
|
dash: l,
|
|
937
949
|
dashSize: b,
|
|
938
950
|
dashOffset: P
|
|
939
951
|
});
|
|
940
|
-
}, h =
|
|
952
|
+
}, h = me(
|
|
941
953
|
() => t.points?.() ?? [],
|
|
942
|
-
(
|
|
943
|
-
const
|
|
944
|
-
const [
|
|
945
|
-
return !
|
|
946
|
-
}), { indexData:
|
|
947
|
-
({ indexData:
|
|
948
|
-
if (
|
|
949
|
-
return { indexData:
|
|
950
|
-
const T = ie(0, (
|
|
951
|
-
const [
|
|
952
|
-
(
|
|
954
|
+
(w) => {
|
|
955
|
+
const x = w.flatMap((_) => {
|
|
956
|
+
const [g] = _, [E] = _.slice(-1);
|
|
957
|
+
return !g || !E ? [] : [g, ..._, E].map((T) => Q(L(T))).flatMap((T) => [...T, ...T, ...T, ...T]);
|
|
958
|
+
}), { indexData: A } = w.reduce(
|
|
959
|
+
({ indexData: _, count: g }, E) => {
|
|
960
|
+
if (E.length === 0)
|
|
961
|
+
return { indexData: _, count: g };
|
|
962
|
+
const T = ie(0, (E.length - 1) * 2).flatMap((R) => {
|
|
963
|
+
const [M = 0, b = 0, P = 0, U = 0] = ie(0, 4).map(
|
|
964
|
+
(S) => S + R * 2 + g
|
|
953
965
|
);
|
|
954
966
|
return [
|
|
955
|
-
[
|
|
956
|
-
[
|
|
967
|
+
[M, b, U],
|
|
968
|
+
[M, U, P]
|
|
957
969
|
].flat();
|
|
958
970
|
});
|
|
959
|
-
return
|
|
971
|
+
return g += (E.length + 2) * 4, _ = _.concat(T), { indexData: _, count: g };
|
|
960
972
|
},
|
|
961
973
|
{ indexData: [], count: 0 }
|
|
962
974
|
);
|
|
963
|
-
i =
|
|
964
|
-
const p =
|
|
965
|
-
(
|
|
975
|
+
i = A.length;
|
|
976
|
+
const p = w.flatMap(
|
|
977
|
+
(_) => _.length === 0 ? [] : ie(0, (_.length + 1) * 2).flatMap(
|
|
966
978
|
() => [
|
|
967
979
|
[-1, -1],
|
|
968
980
|
[-1, 1],
|
|
@@ -970,41 +982,41 @@ const Mi = (e, t = {}) => {
|
|
|
970
982
|
[1, 1]
|
|
971
983
|
].flat()
|
|
972
984
|
)
|
|
973
|
-
),
|
|
974
|
-
const
|
|
975
|
-
(
|
|
985
|
+
), v = w.flatMap((_) => {
|
|
986
|
+
const E = _.map(
|
|
987
|
+
(M, b) => Te(L(M), L(_[b - 1] ?? M)) * H
|
|
976
988
|
).reduce(
|
|
977
|
-
({ current:
|
|
989
|
+
({ current: M, result: b }, P) => (M += P, b.push(M), { current: M, result: b }),
|
|
978
990
|
{ current: 0, result: [] }
|
|
979
|
-
).result, [T] =
|
|
980
|
-
return T === void 0 || R === void 0 ? [] : [T, ...
|
|
991
|
+
).result, [T] = E, [R] = E.slice(-1);
|
|
992
|
+
return T === void 0 || R === void 0 ? [] : [T, ...E, R].flatMap((M) => [M, M, M, M]);
|
|
981
993
|
});
|
|
982
|
-
r.set(
|
|
994
|
+
r.set(x), s.set(A), o.set(p), c.set(v);
|
|
983
995
|
}
|
|
984
|
-
), d =
|
|
996
|
+
), d = me(
|
|
985
997
|
() => t.dashPattern?.(),
|
|
986
|
-
(
|
|
987
|
-
|
|
998
|
+
(w) => {
|
|
999
|
+
w = w ?? [[1, 1, 1, 1]], l.use(), n.texImage2D(
|
|
988
1000
|
n.TEXTURE_2D,
|
|
989
1001
|
0,
|
|
990
1002
|
n.RGBA,
|
|
991
|
-
|
|
1003
|
+
w.length,
|
|
992
1004
|
1,
|
|
993
1005
|
0,
|
|
994
1006
|
n.RGBA,
|
|
995
1007
|
n.UNSIGNED_BYTE,
|
|
996
|
-
new Uint8Array(
|
|
1008
|
+
new Uint8Array(w.flatMap((x) => [...x.map((A) => A * 255)]))
|
|
997
1009
|
);
|
|
998
1010
|
}
|
|
999
1011
|
), m = () => {
|
|
1000
1012
|
r.dispose(), s.dispose(), o.dispose(), c.dispose();
|
|
1001
|
-
},
|
|
1013
|
+
}, y = Ae(t);
|
|
1002
1014
|
return {
|
|
1003
1015
|
render: u,
|
|
1004
1016
|
dispose: m,
|
|
1005
|
-
...
|
|
1017
|
+
...y
|
|
1006
1018
|
};
|
|
1007
|
-
},
|
|
1019
|
+
}, Sn = ({ gl: e, programs: t }, {
|
|
1008
1020
|
positionBuffer: n,
|
|
1009
1021
|
indexBuffer: i,
|
|
1010
1022
|
cornerBuffer: r,
|
|
@@ -1012,43 +1024,43 @@ const Mi = (e, t = {}) => {
|
|
|
1012
1024
|
}) => {
|
|
1013
1025
|
const o = (f = !1) => {
|
|
1014
1026
|
const l = t.get({
|
|
1015
|
-
vertexSource:
|
|
1016
|
-
fragmentSource: f ? Re :
|
|
1027
|
+
vertexSource: bn,
|
|
1028
|
+
fragmentSource: f ? Re : Mn
|
|
1017
1029
|
}), u = Float32Array.BYTES_PER_ELEMENT, h = Int32Array.BYTES_PER_ELEMENT, d = l.attribute3i("previous", n, {
|
|
1018
1030
|
stride: h * 3
|
|
1019
1031
|
}), m = l.attribute3i("current", n, {
|
|
1020
1032
|
stride: h * 3,
|
|
1021
1033
|
offset: h * 3 * 4
|
|
1022
|
-
}),
|
|
1034
|
+
}), y = l.attribute3i("next", n, {
|
|
1023
1035
|
stride: h * 3,
|
|
1024
1036
|
offset: h * 3 * 4 * 2
|
|
1025
|
-
}),
|
|
1037
|
+
}), w = l.attribute2f("corner", r, {
|
|
1026
1038
|
stride: u * 2
|
|
1027
|
-
}),
|
|
1039
|
+
}), x = l.attribute1f("distance", s, {
|
|
1028
1040
|
stride: u,
|
|
1029
1041
|
offset: u * 1 * 4
|
|
1030
|
-
}),
|
|
1042
|
+
}), A = l.uniformMatrix4f("projection"), p = l.uniformMatrix4f("model_view"), v = l.uniform3i("camera"), _ = l.uniform2f("screen"), g = l.uniform4f("color"), E = l.uniform1f("width"), T = l.uniform1f("max_width_pixels"), R = l.uniform1f("min_width_pixels"), M = l.uniform1i("index"), b = l.uniform1i("dash"), P = l.uniform1f("dash_size"), U = l.uniform1f("dash_offset");
|
|
1031
1043
|
return { execute: ({
|
|
1032
1044
|
projection: N,
|
|
1033
1045
|
modelView: D,
|
|
1034
|
-
camera:
|
|
1035
|
-
screen:
|
|
1036
|
-
count:
|
|
1037
|
-
color:
|
|
1038
|
-
width:
|
|
1039
|
-
minWidthPixels:
|
|
1040
|
-
maxWidthPixels:
|
|
1046
|
+
camera: j,
|
|
1047
|
+
screen: X,
|
|
1048
|
+
count: C,
|
|
1049
|
+
color: G,
|
|
1050
|
+
width: Z,
|
|
1051
|
+
minWidthPixels: $,
|
|
1052
|
+
maxWidthPixels: be,
|
|
1041
1053
|
index: qe,
|
|
1042
1054
|
dash: Je,
|
|
1043
1055
|
dashSize: O,
|
|
1044
|
-
dashOffset:
|
|
1056
|
+
dashOffset: W
|
|
1045
1057
|
}) => {
|
|
1046
|
-
|
|
1058
|
+
C !== 0 && (l.use(), d.use(), m.use(), y.use(), w.use(), x.use(), A.set(N), p.set(D), v.set(j), _.set(X), g.set(G), E.set(Z), R.set($), T.set(be), M.set(qe), P.set(O), U.set(W), e.activeTexture(e.TEXTURE0), b.set(0), Je.use(), i.use(), e.drawElements(e.TRIANGLES, C, e.UNSIGNED_SHORT, 0));
|
|
1047
1059
|
} };
|
|
1048
1060
|
}, c = o(), a = o(!0);
|
|
1049
1061
|
return { renderProgram: c, depthProgram: a };
|
|
1050
1062
|
};
|
|
1051
|
-
var
|
|
1063
|
+
var Un = `#version 300 es
|
|
1052
1064
|
|
|
1053
1065
|
precision highp float;
|
|
1054
1066
|
|
|
@@ -1058,7 +1070,7 @@ out vec4 result;
|
|
|
1058
1070
|
void main() {
|
|
1059
1071
|
if (color_out.a == 0.f) discard;
|
|
1060
1072
|
result = color_out;
|
|
1061
|
-
}`,
|
|
1073
|
+
}`, Pn = `#version 300 es
|
|
1062
1074
|
|
|
1063
1075
|
precision highp float;
|
|
1064
1076
|
|
|
@@ -1069,11 +1081,13 @@ uniform vec2 screen;
|
|
|
1069
1081
|
uniform ivec3 position;
|
|
1070
1082
|
uniform mat4 orientation;
|
|
1071
1083
|
uniform vec4 color;
|
|
1084
|
+
uniform vec4 diffuse;
|
|
1072
1085
|
uniform float size;
|
|
1073
1086
|
uniform float min_size_pixels;
|
|
1074
1087
|
uniform float max_size_pixels;
|
|
1075
1088
|
|
|
1076
1089
|
in vec3 vertex;
|
|
1090
|
+
in vec3 normal;
|
|
1077
1091
|
out vec4 color_out;
|
|
1078
1092
|
|
|
1079
1093
|
const int ONE = 1073741824;
|
|
@@ -1092,83 +1106,89 @@ void main(void) {
|
|
|
1092
1106
|
vec4 q = orientation * vec4(vertex * scale, 1.f);
|
|
1093
1107
|
gl_Position = transform(q.xyz / q.w);
|
|
1094
1108
|
|
|
1095
|
-
|
|
1109
|
+
vec4 qn = orientation * vec4(normal, 1.f);
|
|
1110
|
+
|
|
1111
|
+
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);
|
|
1096
1112
|
}`;
|
|
1097
|
-
const
|
|
1113
|
+
const Ui = (e, t = {}) => {
|
|
1098
1114
|
const { gl: n } = e;
|
|
1099
1115
|
let i = 0;
|
|
1100
|
-
const r =
|
|
1116
|
+
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 } = zn(e, {
|
|
1101
1117
|
vertexBuffer: r,
|
|
1102
|
-
indexBuffer: s
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1118
|
+
indexBuffer: s,
|
|
1119
|
+
normalBuffer: o
|
|
1120
|
+
}), f = ({
|
|
1121
|
+
viewport: { projection: d, modelView: m, camera: y, screen: w },
|
|
1122
|
+
depth: x = !1,
|
|
1123
|
+
index: A = 0
|
|
1107
1124
|
}) => {
|
|
1108
|
-
const p = t.position?.() ?? [0, 0, 0],
|
|
1109
|
-
if (
|
|
1125
|
+
const p = t.position?.() ?? [0, 0, 0], v = t.orientation?.() ?? [0, 0, 0, 1], _ = t.color?.() ?? [1, 1, 1, 1], g = t.diffuse?.() ?? [0, 0, 0, 0], E = t.size?.() ?? 1, T = t.minSizePixels?.() ?? 0, R = t.maxSizePixels?.() ?? Number.MAX_VALUE;
|
|
1126
|
+
if (l(), ge(n, x, t))
|
|
1110
1127
|
return;
|
|
1111
|
-
(
|
|
1128
|
+
(x ? a : c).execute({
|
|
1112
1129
|
projection: d,
|
|
1113
1130
|
modelView: m,
|
|
1114
|
-
camera: Q(
|
|
1115
|
-
screen:
|
|
1131
|
+
camera: Q(y),
|
|
1132
|
+
screen: w,
|
|
1116
1133
|
count: i,
|
|
1117
1134
|
position: Q(L(p)),
|
|
1118
|
-
orientation: Ot(xe(),
|
|
1119
|
-
color:
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1135
|
+
orientation: Ot(xe(), v),
|
|
1136
|
+
color: _,
|
|
1137
|
+
diffuse: g,
|
|
1138
|
+
size: E,
|
|
1139
|
+
minSizePixels: T,
|
|
1140
|
+
maxSizePixels: R,
|
|
1141
|
+
index: A
|
|
1124
1142
|
});
|
|
1125
|
-
},
|
|
1126
|
-
() => t.
|
|
1127
|
-
(d) => r.set(d.flatMap((m) => [...m]))
|
|
1128
|
-
), l = ae(
|
|
1129
|
-
() => t.indices?.() ?? [],
|
|
1143
|
+
}, l = me(
|
|
1144
|
+
() => t.mesh?.(),
|
|
1130
1145
|
(d) => {
|
|
1131
|
-
|
|
1146
|
+
const { vertices: m = [], indices: y = [], normals: w = [] } = d ?? {};
|
|
1147
|
+
r.set(m.flatMap((x) => [...x])), s.set(y.flatMap((x) => [...x])), o.set(
|
|
1148
|
+
w.length === 0 ? m.flatMap(() => [0, 0, 0]) : w.flatMap((x) => [...x])
|
|
1149
|
+
), i = y.length * 3;
|
|
1132
1150
|
}
|
|
1133
1151
|
), u = () => {
|
|
1134
|
-
r.dispose(), s.dispose();
|
|
1152
|
+
r.dispose(), s.dispose(), o.dispose();
|
|
1135
1153
|
}, h = Ae(t);
|
|
1136
1154
|
return {
|
|
1137
|
-
render:
|
|
1155
|
+
render: f,
|
|
1138
1156
|
dispose: u,
|
|
1139
1157
|
...h
|
|
1140
1158
|
};
|
|
1141
|
-
},
|
|
1159
|
+
}, zn = ({ gl: e, programs: t }, {
|
|
1142
1160
|
vertexBuffer: n,
|
|
1143
|
-
indexBuffer: i
|
|
1161
|
+
indexBuffer: i,
|
|
1162
|
+
normalBuffer: r
|
|
1144
1163
|
}) => {
|
|
1145
|
-
const
|
|
1146
|
-
const
|
|
1147
|
-
vertexSource:
|
|
1148
|
-
fragmentSource:
|
|
1149
|
-
}),
|
|
1164
|
+
const s = (a = !1) => {
|
|
1165
|
+
const f = t.get({
|
|
1166
|
+
vertexSource: Pn,
|
|
1167
|
+
fragmentSource: a ? Re : Un
|
|
1168
|
+
}), l = f.attribute3f("vertex", n), u = f.attribute3f("normal", r), h = f.uniformMatrix4f("projection"), d = f.uniformMatrix4f("model_view"), m = f.uniform3i("camera"), y = f.uniform3i("position"), w = f.uniformMatrix4f("orientation"), x = f.uniform2f("screen"), A = f.uniform4f("color"), p = f.uniform4f("diffuse"), v = f.uniform1f("size"), _ = f.uniform1f("min_size_pixels"), g = f.uniform1f("max_size_pixels"), E = f.uniform1i("index");
|
|
1150
1169
|
return { execute: ({
|
|
1151
|
-
projection:
|
|
1152
|
-
modelView:
|
|
1153
|
-
camera:
|
|
1154
|
-
screen:
|
|
1155
|
-
count:
|
|
1156
|
-
position:
|
|
1157
|
-
orientation:
|
|
1158
|
-
color:
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1170
|
+
projection: R,
|
|
1171
|
+
modelView: M,
|
|
1172
|
+
camera: b,
|
|
1173
|
+
screen: P,
|
|
1174
|
+
count: U,
|
|
1175
|
+
position: S,
|
|
1176
|
+
orientation: N,
|
|
1177
|
+
color: D,
|
|
1178
|
+
diffuse: j,
|
|
1179
|
+
size: X,
|
|
1180
|
+
minSizePixels: C,
|
|
1181
|
+
maxSizePixels: G,
|
|
1182
|
+
index: Z
|
|
1163
1183
|
}) => {
|
|
1164
|
-
|
|
1184
|
+
f.use(), l.use(), u.use(), h.set(R), d.set(M), m.set(b), x.set(P), y.set(S), w.set(N), A.set(D), p.set(j), v.set(X), _.set(C), g.set(G), E.set(Z), i.use(), e.drawElements(e.TRIANGLES, U, e.UNSIGNED_SHORT, 0);
|
|
1165
1185
|
} };
|
|
1166
|
-
},
|
|
1167
|
-
return { renderProgram:
|
|
1186
|
+
}, o = s(), c = s(!0);
|
|
1187
|
+
return { renderProgram: o, depthProgram: c };
|
|
1168
1188
|
};
|
|
1169
|
-
var
|
|
1189
|
+
var pt = function(e, t, n, i, r) {
|
|
1170
1190
|
let s, o = null;
|
|
1171
|
-
if (r ===
|
|
1191
|
+
if (r === kn(e, t, n, i) > 0)
|
|
1172
1192
|
for (s = t; s < n; s += i)
|
|
1173
1193
|
o = new Ce(s, e[s], e[s + 1], o);
|
|
1174
1194
|
else
|
|
@@ -1190,64 +1210,64 @@ var vt = function(e, t, n, i, r) {
|
|
|
1190
1210
|
}, Ee = function(e, t, n, i, r, s, o) {
|
|
1191
1211
|
if (e === null)
|
|
1192
1212
|
return;
|
|
1193
|
-
o === 0 && s !== 0 &&
|
|
1213
|
+
o === 0 && s !== 0 && jn(e, i, r, s);
|
|
1194
1214
|
let c = e, a, f;
|
|
1195
1215
|
for (; e.prev !== e.next; ) {
|
|
1196
|
-
if (a = e.prev, f = e.next, s !== 0 ?
|
|
1216
|
+
if (a = e.prev, f = e.next, s !== 0 ? Nn(e, i, r, s) : Ln(e)) {
|
|
1197
1217
|
t.push(a.i / n), t.push(e.i / n), t.push(f.i / n), ye(e), e = f.next, c = f.next;
|
|
1198
1218
|
continue;
|
|
1199
1219
|
}
|
|
1200
1220
|
if (e = f, e === c) {
|
|
1201
|
-
o === 0 ? Ee(oe(e), t, n, i, r, s, 1) : o === 1 ? (e =
|
|
1221
|
+
o === 0 ? Ee(oe(e), t, n, i, r, s, 1) : o === 1 ? (e = In(oe(e), t, n), Ee(e, t, n, i, r, s, 2)) : o === 2 && Dn(e, t, n, i, r, s);
|
|
1202
1222
|
break;
|
|
1203
1223
|
}
|
|
1204
1224
|
}
|
|
1205
|
-
},
|
|
1225
|
+
}, Ln = function(e) {
|
|
1206
1226
|
const t = e.prev, n = e, i = e.next;
|
|
1207
1227
|
if (I(t, n, i) >= 0)
|
|
1208
1228
|
return !1;
|
|
1209
1229
|
let r = e.next.next;
|
|
1210
1230
|
for (; r !== e.prev; ) {
|
|
1211
|
-
if (
|
|
1231
|
+
if (he(t.x, t.y, n.x, n.y, i.x, i.y, r.x, r.y) && I(r.prev, r, r.next) >= 0)
|
|
1212
1232
|
return !1;
|
|
1213
1233
|
r = r.next;
|
|
1214
1234
|
}
|
|
1215
1235
|
return !0;
|
|
1216
|
-
},
|
|
1236
|
+
}, Nn = function(e, t, n, i) {
|
|
1217
1237
|
const r = e.prev, s = e, o = e.next;
|
|
1218
1238
|
if (I(r, s, o) >= 0)
|
|
1219
1239
|
return !1;
|
|
1220
1240
|
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, u = Ge(c, a, t, n, i), h = Ge(f, l, t, n, i);
|
|
1221
1241
|
let { prevZ: d, nextZ: m } = e;
|
|
1222
1242
|
for (; d !== null && m !== null && d.z >= u && m.z <= h; ) {
|
|
1223
|
-
if (d !== e.prev && d !== e.next &&
|
|
1243
|
+
if (d !== e.prev && d !== e.next && he(r.x, r.y, s.x, s.y, o.x, o.y, d.x, d.y) && I(d.prev, d, d.next) >= 0 || (d = d.prevZ, m !== e.prev && m !== e.next && he(r.x, r.y, s.x, s.y, o.x, o.y, m.x, m.y) && I(m.prev, m, m.next) >= 0))
|
|
1224
1244
|
return !1;
|
|
1225
1245
|
m = m.nextZ;
|
|
1226
1246
|
}
|
|
1227
1247
|
for (; d !== null && d.z >= u; ) {
|
|
1228
|
-
if (d !== e.prev && d !== e.next &&
|
|
1248
|
+
if (d !== e.prev && d !== e.next && he(r.x, r.y, s.x, s.y, o.x, o.y, d.x, d.y) && I(d.prev, d, d.next) >= 0)
|
|
1229
1249
|
return !1;
|
|
1230
1250
|
d = d.prevZ;
|
|
1231
1251
|
}
|
|
1232
1252
|
for (; m !== null && m.z <= h; ) {
|
|
1233
|
-
if (m !== e.prev && m !== e.next &&
|
|
1253
|
+
if (m !== e.prev && m !== e.next && he(r.x, r.y, s.x, s.y, o.x, o.y, m.x, m.y) && I(m.prev, m, m.next) >= 0)
|
|
1234
1254
|
return !1;
|
|
1235
1255
|
m = m.nextZ;
|
|
1236
1256
|
}
|
|
1237
1257
|
return !0;
|
|
1238
|
-
},
|
|
1258
|
+
}, In = function(e, t, n) {
|
|
1239
1259
|
let i = e;
|
|
1240
1260
|
do {
|
|
1241
1261
|
const r = i.prev, s = i.next.next;
|
|
1242
1262
|
!je(r, s) && xt(r, i, i.next, s) && _e(r, s) && _e(s, r) && (t.push(r.i / n), t.push(i.i / n), t.push(s.i / n), ye(i), ye(i.next), i = e = s), i = i.next;
|
|
1243
1263
|
} while (i !== e);
|
|
1244
1264
|
return i;
|
|
1245
|
-
},
|
|
1265
|
+
}, Dn = function(e, t, n, i, r, s) {
|
|
1246
1266
|
let o = e;
|
|
1247
1267
|
do {
|
|
1248
1268
|
let c = o.next.next;
|
|
1249
1269
|
for (; c !== o.prev; ) {
|
|
1250
|
-
if (o.i !== c.i &&
|
|
1270
|
+
if (o.i !== c.i && Vn(o, c)) {
|
|
1251
1271
|
let a = Et(o, c);
|
|
1252
1272
|
o = oe(o, o.next), a = oe(a, a.next), Ee(o, t, n, i, r, s, 0), Ee(a, t, n, i, r, s, 0);
|
|
1253
1273
|
return;
|
|
@@ -1256,25 +1276,25 @@ var vt = function(e, t, n, i, r) {
|
|
|
1256
1276
|
}
|
|
1257
1277
|
o = o.next;
|
|
1258
1278
|
} while (o !== e);
|
|
1259
|
-
},
|
|
1279
|
+
}, On = function(e, t, n, i) {
|
|
1260
1280
|
const r = [];
|
|
1261
1281
|
let s, o, c, a, f;
|
|
1262
1282
|
for (s = 0, o = t.length; s < o; s++)
|
|
1263
|
-
c = t[s] * i, a = s < o - 1 ? t[s + 1] * i : e.length, f =
|
|
1264
|
-
for (r.sort(
|
|
1265
|
-
n =
|
|
1283
|
+
c = t[s] * i, a = s < o - 1 ? t[s + 1] * i : e.length, f = pt(e, c, a, i, !1), f === f.next && (f.steiner = !0), r.push(Zn(f));
|
|
1284
|
+
for (r.sort(Cn), s = 0; s < r.length; s++)
|
|
1285
|
+
n = Xn(r[s], n), n = oe(n, n.next);
|
|
1266
1286
|
return n;
|
|
1267
|
-
}, On = function(e, t) {
|
|
1268
|
-
return e.x - t.x;
|
|
1269
1287
|
}, Cn = function(e, t) {
|
|
1270
|
-
|
|
1288
|
+
return e.x - t.x;
|
|
1289
|
+
}, Xn = function(e, t) {
|
|
1290
|
+
const n = Wn(e, t);
|
|
1271
1291
|
if (n === null)
|
|
1272
1292
|
return t;
|
|
1273
1293
|
{
|
|
1274
1294
|
const i = Et(n, e), r = oe(n, n.next);
|
|
1275
1295
|
return oe(i, i.next), t === n ? r : t;
|
|
1276
1296
|
}
|
|
1277
|
-
},
|
|
1297
|
+
}, Wn = function(e, t) {
|
|
1278
1298
|
let n = t;
|
|
1279
1299
|
const { x: i, y: r } = e;
|
|
1280
1300
|
let s = -1 / 0, o;
|
|
@@ -1301,16 +1321,16 @@ var vt = function(e, t, n, i, r) {
|
|
|
1301
1321
|
let l = 1 / 0, u;
|
|
1302
1322
|
n = o;
|
|
1303
1323
|
do
|
|
1304
|
-
i >= n.x && n.x >= a && i !== n.x &&
|
|
1324
|
+
i >= n.x && n.x >= a && i !== n.x && he(r < f ? i : s, r, a, f, r < f ? s : i, r, n.x, n.y) && (u = Math.abs(r - n.y) / (i - n.x), _e(n, e) && (u < l || u === l && (n.x > o.x || n.x === o.x && I(o.prev, o, n.prev) < 0 && I(n.next, o, o.next) < 0)) && (o = n, l = u)), n = n.next;
|
|
1305
1325
|
while (n !== c);
|
|
1306
1326
|
return o;
|
|
1307
|
-
},
|
|
1327
|
+
}, jn = function(e, t, n, i) {
|
|
1308
1328
|
let r = e;
|
|
1309
1329
|
do
|
|
1310
1330
|
r.z === void 0 && (r.z = Ge(r.x, r.y, t, n, i)), r.prevZ = r.prev, r.nextZ = r.next, r = r.next;
|
|
1311
1331
|
while (r !== e);
|
|
1312
|
-
r.prevZ !== null && (r.prevZ.nextZ = null), r.prevZ = null,
|
|
1313
|
-
},
|
|
1332
|
+
r.prevZ !== null && (r.prevZ.nextZ = null), r.prevZ = null, Bn(r);
|
|
1333
|
+
}, Bn = function(e) {
|
|
1314
1334
|
let t, n, i, r, s, o, c, a, f = 1;
|
|
1315
1335
|
do {
|
|
1316
1336
|
for (n = e, e = null, s = null, o = 0; n !== null; ) {
|
|
@@ -1325,16 +1345,16 @@ var vt = function(e, t, n, i, r) {
|
|
|
1325
1345
|
return e;
|
|
1326
1346
|
}, Ge = function(e, t, n, i, r) {
|
|
1327
1347
|
return e = 32767 * (e - n) * r, t = 32767 * (t - i) * r, e = (e | e << 8) & 16711935, e = (e | e << 4) & 252645135, e = (e | e << 2) & 858993459, e = (e | e << 1) & 1431655765, t = (t | t << 8) & 16711935, t = (t | t << 4) & 252645135, t = (t | t << 2) & 858993459, t = (t | t << 1) & 1431655765, e | t << 1;
|
|
1328
|
-
},
|
|
1348
|
+
}, Zn = function(e) {
|
|
1329
1349
|
let t = e, n = e;
|
|
1330
1350
|
do
|
|
1331
1351
|
(t.x < n.x || t.x === n.x && t.y < n.y) && (n = t), t = t.next;
|
|
1332
1352
|
while (t !== e);
|
|
1333
1353
|
return n;
|
|
1334
|
-
},
|
|
1354
|
+
}, he = function(e, t, n, i, r, s, o, c) {
|
|
1335
1355
|
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;
|
|
1336
|
-
},
|
|
1337
|
-
return e.next.i !== t.i && e.prev.i !== t.i && !
|
|
1356
|
+
}, Vn = function(e, t) {
|
|
1357
|
+
return e.next.i !== t.i && e.prev.i !== t.i && !Yn(e, t) && (_e(e, t) && _e(t, e) && $n(e, t) && (I(e.prev, e, t.prev) !== 0 || I(e, t.prev, t) !== 0) || je(e, t) && I(e.prev, e, e.next) > 0 && I(t.prev, t, t.next) > 0);
|
|
1338
1358
|
}, I = function(e, t, n) {
|
|
1339
1359
|
return (t.y - e.y) * (n.x - t.x) - (t.x - e.x) * (n.y - t.y);
|
|
1340
1360
|
}, je = function(e, t) {
|
|
@@ -1346,7 +1366,7 @@ var vt = function(e, t, n, i, r) {
|
|
|
1346
1366
|
return e > 0 ? 1 : e < 0 ? -1 : 0;
|
|
1347
1367
|
}, ze = function(e, t, n) {
|
|
1348
1368
|
return t.x <= Math.max(e.x, n.x) && t.x >= Math.min(e.x, n.x) && t.y <= Math.max(e.y, n.y) && t.y >= Math.min(e.y, n.y);
|
|
1349
|
-
},
|
|
1369
|
+
}, Yn = function(e, t) {
|
|
1350
1370
|
let n = e;
|
|
1351
1371
|
do {
|
|
1352
1372
|
if (n.i !== e.i && n.next?.i !== e.i && n.i !== t.i && n.next?.i !== t.i && xt(n, n.next, e, t))
|
|
@@ -1356,7 +1376,7 @@ var vt = function(e, t, n, i, r) {
|
|
|
1356
1376
|
return !1;
|
|
1357
1377
|
}, _e = function(e, t) {
|
|
1358
1378
|
return I(e.prev, e, e.next) < 0 ? I(e, t, e.next) >= 0 && I(e, e.prev, t) >= 0 : I(e, t, e.prev) < 0 || I(e, e.next, t) < 0;
|
|
1359
|
-
},
|
|
1379
|
+
}, $n = function(e, t) {
|
|
1360
1380
|
const n = (e.x + t.x) / 2, i = (e.y + t.y) / 2;
|
|
1361
1381
|
let r = e, s = !1;
|
|
1362
1382
|
do
|
|
@@ -1368,7 +1388,7 @@ var vt = function(e, t, n, i, r) {
|
|
|
1368
1388
|
return e.next = t, t.prev = e, n.next = r, r.prev = n, i.next = n, n.prev = i, s.next = i, i.prev = s, i;
|
|
1369
1389
|
}, ye = function(e) {
|
|
1370
1390
|
e.next.prev = e.prev, e.prev.next = e.next, e.prevZ !== null && (e.prevZ.nextZ = e.nextZ), e.nextZ !== null && (e.nextZ.prevZ = e.prevZ);
|
|
1371
|
-
},
|
|
1391
|
+
}, kn = function(e, t, n, i) {
|
|
1372
1392
|
let r = 0;
|
|
1373
1393
|
for (let s = t, o = n - i; s < n; s += i)
|
|
1374
1394
|
r += (e[o] - e[s]) * (e[s + 1] + e[o + 1]), o = s;
|
|
@@ -1388,14 +1408,14 @@ class Ce {
|
|
|
1388
1408
|
this.i = t, this.x = n, this.y = i, r === null ? (this.prev = this, this.next = this) : (this.next = r.next, this.prev = r, r.next.prev = this, r.next = this);
|
|
1389
1409
|
}
|
|
1390
1410
|
}
|
|
1391
|
-
function
|
|
1411
|
+
function Hn(e, t = [], n = 2) {
|
|
1392
1412
|
const i = t.length > 0, r = i ? t[0] * n : e.length;
|
|
1393
|
-
let s =
|
|
1413
|
+
let s = pt(e, 0, r, n, !0);
|
|
1394
1414
|
const o = [];
|
|
1395
1415
|
if (s === null || s.next === s.prev)
|
|
1396
1416
|
return o;
|
|
1397
1417
|
let c = 1 / 0, a = 1 / 0, f = -1 / 0, l = -1 / 0, u = 0, h, d;
|
|
1398
|
-
if (i && (s =
|
|
1418
|
+
if (i && (s = On(e, t, s, n)), e.length > 80 * n) {
|
|
1399
1419
|
c = f = e[0], a = l = e[1];
|
|
1400
1420
|
for (let m = n; m < r; m += n)
|
|
1401
1421
|
h = e[m], d = e[m + 1], h < c && (c = h), d < a && (a = d), h > f && (f = h), d > l && (l = d);
|
|
@@ -1403,86 +1423,86 @@ function kn(e, t = [], n = 2) {
|
|
|
1403
1423
|
}
|
|
1404
1424
|
return Ee(s, o, n, c, a, u, 0), o;
|
|
1405
1425
|
}
|
|
1406
|
-
function
|
|
1407
|
-
const { vertices: i, holeIndices: r, dim: s } =
|
|
1408
|
-
return t !== 1 / 0 &&
|
|
1426
|
+
function Gn(e, t = 1 / 0, n = 0) {
|
|
1427
|
+
const { vertices: i, holeIndices: r, dim: s } = Qn(e), o = Hn(i, r, s);
|
|
1428
|
+
return t !== 1 / 0 && Fn(i, o, t, s), { vertices: i, indices: o.map((c) => c + n) };
|
|
1409
1429
|
}
|
|
1410
|
-
function
|
|
1430
|
+
function Fn(e, t, n, i) {
|
|
1411
1431
|
let r, s, o;
|
|
1412
1432
|
for (let c = 0; c < i; c++)
|
|
1413
1433
|
for (let a = 0; a < t.length; a += 3) {
|
|
1414
1434
|
r = t[a], s = t[a + 1], o = t[a + 2];
|
|
1415
|
-
const f =
|
|
1435
|
+
const f = Kn(r, s, o, e, t, i, c, n);
|
|
1416
1436
|
f !== void 0 && (t[a] = f[0], t[a + 1] = f[1], t[a + 2] = f[2], a -= 3);
|
|
1417
1437
|
}
|
|
1418
1438
|
}
|
|
1419
|
-
var
|
|
1439
|
+
var Kn = function(e, t, n, i, r, s, o, c) {
|
|
1420
1440
|
const a = i[e * s + o], f = i[t * s + o], l = i[n * s + o];
|
|
1421
1441
|
if (a < f && a < l) {
|
|
1422
|
-
const u = a + c -
|
|
1442
|
+
const u = a + c - ce(a, c);
|
|
1423
1443
|
if (u > a && u <= f && u <= l && (f !== u || f !== u))
|
|
1424
1444
|
return $e(u, e, t, n, a, f, l, i, r, s, o, c);
|
|
1425
1445
|
} else if (a > f && a > l) {
|
|
1426
|
-
let u =
|
|
1446
|
+
let u = ce(a, c);
|
|
1427
1447
|
u === 0 && (u = c);
|
|
1428
1448
|
const h = a - u;
|
|
1429
1449
|
if (h < a && h >= f && h >= l && (f !== h || f !== h))
|
|
1430
1450
|
return ke(h, e, t, n, a, f, l, i, r, s, o, c);
|
|
1431
1451
|
}
|
|
1432
1452
|
if (f < a && f < l) {
|
|
1433
|
-
const u = f + c -
|
|
1453
|
+
const u = f + c - ce(f, c);
|
|
1434
1454
|
if (u > f && u <= l && u <= a && (a !== u || l !== u))
|
|
1435
1455
|
return $e(u, t, n, e, f, l, a, i, r, s, o, c);
|
|
1436
1456
|
} else if (f > a && f > l) {
|
|
1437
|
-
let u =
|
|
1457
|
+
let u = ce(f, c);
|
|
1438
1458
|
u === 0 && (u = c);
|
|
1439
1459
|
const h = f - u;
|
|
1440
1460
|
if (h < f && h >= l && h >= a && (a !== h || l !== h))
|
|
1441
1461
|
return ke(h, t, n, e, f, l, a, i, r, s, o, c);
|
|
1442
1462
|
}
|
|
1443
1463
|
if (l < a && l < f) {
|
|
1444
|
-
const u = l + c -
|
|
1464
|
+
const u = l + c - ce(l, c);
|
|
1445
1465
|
if (u > l && u <= a && u <= f && (a !== u || f !== u))
|
|
1446
1466
|
return $e(u, n, e, t, l, a, f, i, r, s, o, c);
|
|
1447
1467
|
} else if (l > a && l > f) {
|
|
1448
|
-
let u =
|
|
1468
|
+
let u = ce(l, c);
|
|
1449
1469
|
u === 0 && (u = c);
|
|
1450
1470
|
const h = l - u;
|
|
1451
1471
|
if (h < l && h >= a && h >= f && (a !== h || f !== h))
|
|
1452
1472
|
return ke(h, n, e, t, l, a, f, i, r, s, o, c);
|
|
1453
1473
|
}
|
|
1454
|
-
},
|
|
1474
|
+
}, F = function(e, t, n, i, r, s, o, c) {
|
|
1455
1475
|
const a = s.length / o, f = (r - i) / (e - i);
|
|
1456
1476
|
let l, u;
|
|
1457
1477
|
for (let h = 0; h < o; h++)
|
|
1458
1478
|
l = s[t * o + h], u = s[n * o + h], h !== c ? s.push(l + (u - l) / f) : s.push(e);
|
|
1459
1479
|
return a;
|
|
1460
1480
|
}, $e = function(e, t, n, i, r, s, o, c, a, f, l, u) {
|
|
1461
|
-
let h =
|
|
1481
|
+
let h = F(e, t, n, r, s, c, f, l), d = F(e, t, i, r, o, c, f, l);
|
|
1462
1482
|
if (a.push(t, h, d), e += u, s < o) {
|
|
1463
1483
|
for (; e < s; )
|
|
1464
|
-
a.push(d, h), d =
|
|
1484
|
+
a.push(d, h), d = F(e, t, i, r, o, c, f, l), a.push(d, d, h), h = F(e, t, n, r, s, c, f, l), a.push(h), e += u;
|
|
1465
1485
|
return a.push(d, h, n), [d, n, i];
|
|
1466
1486
|
} else {
|
|
1467
1487
|
for (; e < o; )
|
|
1468
|
-
a.push(d, h), d =
|
|
1488
|
+
a.push(d, h), d = F(e, t, i, r, o, c, f, l), a.push(d, d, h), h = F(e, t, n, r, s, c, f, l), a.push(h), e += u;
|
|
1469
1489
|
return a.push(d, h, i), [i, h, n];
|
|
1470
1490
|
}
|
|
1471
1491
|
}, ke = function(e, t, n, i, r, s, o, c, a, f, l, u) {
|
|
1472
|
-
let h =
|
|
1492
|
+
let h = F(e, t, n, r, s, c, f, l), d = F(e, t, i, r, o, c, f, l);
|
|
1473
1493
|
if (a.push(t, h, d), e -= u, s > o) {
|
|
1474
1494
|
for (; e > s; )
|
|
1475
|
-
a.push(d, h), d =
|
|
1495
|
+
a.push(d, h), d = F(e, t, i, r, o, c, f, l), a.push(d, d, h), h = F(e, t, n, r, s, c, f, l), a.push(h), e -= u;
|
|
1476
1496
|
return a.push(d, h, n), [d, n, i];
|
|
1477
1497
|
} else {
|
|
1478
1498
|
for (; e > o; )
|
|
1479
|
-
a.push(d, h), d =
|
|
1499
|
+
a.push(d, h), d = F(e, t, i, r, o, c, f, l), a.push(d, d, h), h = F(e, t, n, r, s, c, f, l), a.push(h), e -= u;
|
|
1480
1500
|
return a.push(d, h, i), [i, h, n];
|
|
1481
1501
|
}
|
|
1482
|
-
},
|
|
1502
|
+
}, ce = function(e, t) {
|
|
1483
1503
|
return (e % t + t) % t;
|
|
1484
1504
|
};
|
|
1485
|
-
function
|
|
1505
|
+
function Qn(e) {
|
|
1486
1506
|
let t = 0;
|
|
1487
1507
|
const n = e[0][0].length, i = [], r = [];
|
|
1488
1508
|
for (let s = 0, o = e.length; s < o; s++) {
|
|
@@ -1493,7 +1513,7 @@ function Kn(e) {
|
|
|
1493
1513
|
}
|
|
1494
1514
|
return { vertices: i, holeIndices: r, dim: n };
|
|
1495
1515
|
}
|
|
1496
|
-
var
|
|
1516
|
+
var qn = `#version 300 es
|
|
1497
1517
|
|
|
1498
1518
|
precision highp float;
|
|
1499
1519
|
|
|
@@ -1502,7 +1522,7 @@ out vec4 result;
|
|
|
1502
1522
|
|
|
1503
1523
|
void main() {
|
|
1504
1524
|
result = color_out;
|
|
1505
|
-
}`,
|
|
1525
|
+
}`, Jn = `#version 300 es
|
|
1506
1526
|
|
|
1507
1527
|
precision highp float;
|
|
1508
1528
|
|
|
@@ -1526,33 +1546,33 @@ void main(void) {
|
|
|
1526
1546
|
gl_Position = transform(position);
|
|
1527
1547
|
color_out = color;
|
|
1528
1548
|
}`;
|
|
1529
|
-
const
|
|
1549
|
+
const Pi = (e, t = {}) => {
|
|
1530
1550
|
const { gl: n } = e;
|
|
1531
1551
|
let i = 0;
|
|
1532
|
-
const r =
|
|
1552
|
+
const r = V({ gl: n, type: "i32", target: "array" }), s = V({ gl: n, type: "u16", target: "element" }), { renderProgram: o, depthProgram: c } = ei(e, {
|
|
1533
1553
|
positionBuffer: r,
|
|
1534
1554
|
indexBuffer: s
|
|
1535
1555
|
}), a = ({
|
|
1536
|
-
viewport: { projection: h, modelView: d, camera: m, screen:
|
|
1537
|
-
depth:
|
|
1538
|
-
index:
|
|
1556
|
+
viewport: { projection: h, modelView: d, camera: m, screen: y },
|
|
1557
|
+
depth: w = !1,
|
|
1558
|
+
index: x = 0
|
|
1539
1559
|
}) => {
|
|
1540
|
-
const
|
|
1541
|
-
if (f(), ge(n,
|
|
1560
|
+
const A = t.color?.() ?? [1, 1, 1, 1];
|
|
1561
|
+
if (f(), ge(n, w, t))
|
|
1542
1562
|
return;
|
|
1543
|
-
(
|
|
1563
|
+
(w ? c : o).execute({
|
|
1544
1564
|
projection: h,
|
|
1545
1565
|
modelView: d,
|
|
1546
1566
|
camera: Q(m),
|
|
1547
|
-
screen:
|
|
1567
|
+
screen: y,
|
|
1548
1568
|
count: i,
|
|
1549
|
-
color:
|
|
1550
|
-
index:
|
|
1569
|
+
color: A,
|
|
1570
|
+
index: x
|
|
1551
1571
|
});
|
|
1552
|
-
}, f =
|
|
1572
|
+
}, f = me(
|
|
1553
1573
|
() => t.points?.() ?? [],
|
|
1554
1574
|
(h) => {
|
|
1555
|
-
const { vertices: d, indices: m } = h.length > 0 ?
|
|
1575
|
+
const { vertices: d, indices: m } = h.length > 0 ? Gn(h.map((y) => y.map((w) => [...Q(L(w))]))) : { vertices: [], indices: [] };
|
|
1556
1576
|
r.set(d), s.set(m), i = m.length;
|
|
1557
1577
|
}
|
|
1558
1578
|
), l = () => {
|
|
@@ -1563,27 +1583,27 @@ const Ui = (e, t = {}) => {
|
|
|
1563
1583
|
dispose: l,
|
|
1564
1584
|
...u
|
|
1565
1585
|
};
|
|
1566
|
-
},
|
|
1586
|
+
}, ei = ({ gl: e, programs: t }, {
|
|
1567
1587
|
positionBuffer: n,
|
|
1568
1588
|
indexBuffer: i
|
|
1569
1589
|
}) => {
|
|
1570
1590
|
const r = (c = !1) => {
|
|
1571
1591
|
const a = t.get({
|
|
1572
|
-
vertexSource:
|
|
1573
|
-
fragmentSource: c ? Re :
|
|
1592
|
+
vertexSource: Jn,
|
|
1593
|
+
fragmentSource: c ? Re : qn
|
|
1574
1594
|
}), f = a.attribute3i("position", n, {
|
|
1575
1595
|
stride: 3 * Int32Array.BYTES_PER_ELEMENT
|
|
1576
|
-
}), l = a.uniformMatrix4f("projection"), u = a.uniformMatrix4f("model_view"), h = a.uniform3i("camera"), d = a.uniform2f("screen"), m = a.uniform4f("color"),
|
|
1596
|
+
}), l = a.uniformMatrix4f("projection"), u = a.uniformMatrix4f("model_view"), h = a.uniform3i("camera"), d = a.uniform2f("screen"), m = a.uniform4f("color"), y = a.uniform1i("index");
|
|
1577
1597
|
return { execute: ({
|
|
1578
|
-
projection:
|
|
1579
|
-
modelView:
|
|
1598
|
+
projection: x,
|
|
1599
|
+
modelView: A,
|
|
1580
1600
|
camera: p,
|
|
1581
|
-
screen:
|
|
1582
|
-
count:
|
|
1583
|
-
color:
|
|
1584
|
-
index:
|
|
1601
|
+
screen: v,
|
|
1602
|
+
count: _,
|
|
1603
|
+
color: g,
|
|
1604
|
+
index: E
|
|
1585
1605
|
}) => {
|
|
1586
|
-
|
|
1606
|
+
_ !== 0 && (a.use(), f.use(), l.set(x), u.set(A), h.set(p), d.set(v), m.set(g), y.set(E), i.use(), e.drawElements(e.TRIANGLES, _, e.UNSIGNED_SHORT, 0));
|
|
1587
1607
|
} };
|
|
1588
1608
|
}, s = r(), o = r(!0);
|
|
1589
1609
|
return { renderProgram: s, depthProgram: o };
|
|
@@ -1599,7 +1619,7 @@ const Ui = (e, t = {}) => {
|
|
|
1599
1619
|
return { texture: a, downsample: s };
|
|
1600
1620
|
}
|
|
1601
1621
|
}
|
|
1602
|
-
}),
|
|
1622
|
+
}), fe = typeof performance == "object" && performance && typeof performance.now == "function" ? performance : Date, _t = /* @__PURE__ */ new Set(), Ke = typeof process == "object" && process ? process : {}, yt = (e, t, n, i) => {
|
|
1603
1623
|
typeof Ke.emitWarning == "function" ? Ke.emitWarning(e, t, n, i) : console.error(`[${n}] ${t}: ${e}`);
|
|
1604
1624
|
};
|
|
1605
1625
|
let Xe = globalThis.AbortController, ft = globalThis.AbortSignal;
|
|
@@ -1631,13 +1651,13 @@ if (typeof Xe > "u") {
|
|
|
1631
1651
|
e && (e = !1, yt("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.", "NO_ABORT_CONTROLLER", "ENOTSUP", t));
|
|
1632
1652
|
};
|
|
1633
1653
|
}
|
|
1634
|
-
const
|
|
1654
|
+
const ti = (e) => !_t.has(e), q = (e) => e && e === Math.floor(e) && e > 0 && isFinite(e), wt = (e) => q(e) ? e <= Math.pow(2, 8) ? Uint8Array : e <= Math.pow(2, 16) ? Uint16Array : e <= Math.pow(2, 32) ? Uint32Array : e <= Number.MAX_SAFE_INTEGER ? De : null : null;
|
|
1635
1655
|
class De extends Array {
|
|
1636
1656
|
constructor(t) {
|
|
1637
1657
|
super(t), this.fill(0);
|
|
1638
1658
|
}
|
|
1639
1659
|
}
|
|
1640
|
-
class
|
|
1660
|
+
class ue {
|
|
1641
1661
|
heap;
|
|
1642
1662
|
length;
|
|
1643
1663
|
// private constructor
|
|
@@ -1646,12 +1666,12 @@ class de {
|
|
|
1646
1666
|
const n = wt(t);
|
|
1647
1667
|
if (!n)
|
|
1648
1668
|
return [];
|
|
1649
|
-
|
|
1650
|
-
const i = new
|
|
1651
|
-
return
|
|
1669
|
+
ue.#c = !0;
|
|
1670
|
+
const i = new ue(t, n);
|
|
1671
|
+
return ue.#c = !1, i;
|
|
1652
1672
|
}
|
|
1653
1673
|
constructor(t, n) {
|
|
1654
|
-
if (!
|
|
1674
|
+
if (!ue.#c)
|
|
1655
1675
|
throw new TypeError("instantiate Stack using Stack.create(n)");
|
|
1656
1676
|
this.heap = new n(t), this.length = 0;
|
|
1657
1677
|
}
|
|
@@ -1668,8 +1688,8 @@ class Qe {
|
|
|
1668
1688
|
// set defaults for various methods.
|
|
1669
1689
|
#c;
|
|
1670
1690
|
#h;
|
|
1671
|
-
#p;
|
|
1672
1691
|
#v;
|
|
1692
|
+
#p;
|
|
1673
1693
|
#U;
|
|
1674
1694
|
/**
|
|
1675
1695
|
* {@link LRUCache.OptionsBase.ttl}
|
|
@@ -1779,7 +1799,7 @@ class Qe {
|
|
|
1779
1799
|
// methods
|
|
1780
1800
|
isBackgroundFetch: (n) => t.#t(n),
|
|
1781
1801
|
backgroundFetch: (n, i, r, s) => t.#L(n, i, r, s),
|
|
1782
|
-
moveToTail: (n) => t.#
|
|
1802
|
+
moveToTail: (n) => t.#S(n),
|
|
1783
1803
|
indexes: (n) => t.#T(n),
|
|
1784
1804
|
rindexes: (n) => t.#g(n),
|
|
1785
1805
|
isStale: (n) => t.#m(n)
|
|
@@ -1820,37 +1840,37 @@ class Qe {
|
|
|
1820
1840
|
* {@link LRUCache.OptionsBase.dispose} (read-only)
|
|
1821
1841
|
*/
|
|
1822
1842
|
get dispose() {
|
|
1823
|
-
return this.#
|
|
1843
|
+
return this.#v;
|
|
1824
1844
|
}
|
|
1825
1845
|
/**
|
|
1826
1846
|
* {@link LRUCache.OptionsBase.disposeAfter} (read-only)
|
|
1827
1847
|
*/
|
|
1828
1848
|
get disposeAfter() {
|
|
1829
|
-
return this.#
|
|
1849
|
+
return this.#p;
|
|
1830
1850
|
}
|
|
1831
1851
|
constructor(t) {
|
|
1832
|
-
const { max: n = 0, ttl: i, ttlResolution: r = 1, ttlAutopurge: s, updateAgeOnGet: o, updateAgeOnHas: c, allowStale: a, dispose: f, disposeAfter: l, noDisposeOnSet: u, noUpdateTTL: h, maxSize: d = 0, maxEntrySize: m = 0, sizeCalculation:
|
|
1852
|
+
const { max: n = 0, ttl: i, ttlResolution: r = 1, ttlAutopurge: s, updateAgeOnGet: o, updateAgeOnHas: c, allowStale: a, dispose: f, disposeAfter: l, noDisposeOnSet: u, noUpdateTTL: h, maxSize: d = 0, maxEntrySize: m = 0, sizeCalculation: y, fetchMethod: w, noDeleteOnFetchRejection: x, noDeleteOnStaleGet: A, allowStaleOnFetchRejection: p, allowStaleOnFetchAbort: v, ignoreFetchAbort: _ } = t;
|
|
1833
1853
|
if (n !== 0 && !q(n))
|
|
1834
1854
|
throw new TypeError("max option must be a nonnegative integer");
|
|
1835
|
-
const
|
|
1836
|
-
if (!
|
|
1855
|
+
const g = n ? wt(n) : Array;
|
|
1856
|
+
if (!g)
|
|
1837
1857
|
throw new Error("invalid max value: " + n);
|
|
1838
|
-
if (this.#c = n, this.#h = d, this.maxEntrySize = m || this.#h, this.sizeCalculation =
|
|
1858
|
+
if (this.#c = n, this.#h = d, this.maxEntrySize = m || this.#h, this.sizeCalculation = y, this.sizeCalculation) {
|
|
1839
1859
|
if (!this.#h && !this.maxEntrySize)
|
|
1840
1860
|
throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");
|
|
1841
1861
|
if (typeof this.sizeCalculation != "function")
|
|
1842
1862
|
throw new TypeError("sizeCalculation set to non-function");
|
|
1843
1863
|
}
|
|
1844
|
-
if (
|
|
1864
|
+
if (w !== void 0 && typeof w != "function")
|
|
1845
1865
|
throw new TypeError("fetchMethod must be a function if specified");
|
|
1846
|
-
if (this.#U =
|
|
1866
|
+
if (this.#U = w, this.#A = !!w, this.#i = /* @__PURE__ */ new Map(), this.#n = new Array(n).fill(void 0), this.#e = new Array(n).fill(void 0), this.#f = new g(n), this.#u = new g(n), this.#a = 0, this.#s = 0, this.#E = ue.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.#w = !!this.#v, this.#l = !!this.#p, this.noDisposeOnSet = !!u, this.noUpdateTTL = !!h, this.noDeleteOnFetchRejection = !!x, this.allowStaleOnFetchRejection = !!p, this.allowStaleOnFetchAbort = !!v, this.ignoreFetchAbort = !!_, this.maxEntrySize !== 0) {
|
|
1847
1867
|
if (this.#h !== 0 && !q(this.#h))
|
|
1848
1868
|
throw new TypeError("maxSize must be a positive integer if specified");
|
|
1849
1869
|
if (!q(this.maxEntrySize))
|
|
1850
1870
|
throw new TypeError("maxEntrySize must be a positive integer if specified");
|
|
1851
1871
|
this.#X();
|
|
1852
1872
|
}
|
|
1853
|
-
if (this.allowStale = !!a, this.noDeleteOnStaleGet = !!
|
|
1873
|
+
if (this.allowStale = !!a, this.noDeleteOnStaleGet = !!A, this.updateAgeOnGet = !!o, this.updateAgeOnHas = !!c, this.ttlResolution = q(r) || r === 0 ? r : 1, this.ttlAutopurge = !!s, this.ttl = i || 0, this.ttl) {
|
|
1854
1874
|
if (!q(this.ttl))
|
|
1855
1875
|
throw new TypeError("ttl must be a positive integer if specified");
|
|
1856
1876
|
this.#N();
|
|
@@ -1858,8 +1878,8 @@ class Qe {
|
|
|
1858
1878
|
if (this.#c === 0 && this.ttl === 0 && this.#h === 0)
|
|
1859
1879
|
throw new TypeError("At least one of max, maxSize, or ttl is required");
|
|
1860
1880
|
if (!this.ttlAutopurge && !this.#c && !this.#h) {
|
|
1861
|
-
const
|
|
1862
|
-
|
|
1881
|
+
const E = "LRU_CACHE_UNBOUNDED";
|
|
1882
|
+
ti(E) && (_t.add(E), yt("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.", "UnboundedCacheWarning", E, Qe));
|
|
1863
1883
|
}
|
|
1864
1884
|
}
|
|
1865
1885
|
/**
|
|
@@ -1870,15 +1890,15 @@ class Qe {
|
|
|
1870
1890
|
}
|
|
1871
1891
|
#N() {
|
|
1872
1892
|
const t = new De(this.#c), n = new De(this.#c);
|
|
1873
|
-
this.#d = t, this.#y = n, this.#I = (s, o, c =
|
|
1893
|
+
this.#d = t, this.#y = n, this.#I = (s, o, c = fe.now()) => {
|
|
1874
1894
|
if (n[s] = o !== 0 ? c : 0, t[s] = o, o !== 0 && this.ttlAutopurge) {
|
|
1875
1895
|
const a = setTimeout(() => {
|
|
1876
1896
|
this.#m(s) && this.delete(this.#n[s]);
|
|
1877
1897
|
}, o + 1);
|
|
1878
1898
|
a.unref && a.unref();
|
|
1879
1899
|
}
|
|
1880
|
-
}, this.#
|
|
1881
|
-
n[s] = t[s] !== 0 ?
|
|
1900
|
+
}, this.#M = (s) => {
|
|
1901
|
+
n[s] = t[s] !== 0 ? fe.now() : 0;
|
|
1882
1902
|
}, this.#R = (s, o) => {
|
|
1883
1903
|
if (t[o]) {
|
|
1884
1904
|
const c = t[o], a = n[o];
|
|
@@ -1891,7 +1911,7 @@ class Qe {
|
|
|
1891
1911
|
};
|
|
1892
1912
|
let i = 0;
|
|
1893
1913
|
const r = () => {
|
|
1894
|
-
const s =
|
|
1914
|
+
const s = fe.now();
|
|
1895
1915
|
if (this.ttlResolution > 0) {
|
|
1896
1916
|
i = s;
|
|
1897
1917
|
const o = setTimeout(() => i = 0, this.ttlResolution);
|
|
@@ -1914,7 +1934,7 @@ class Qe {
|
|
|
1914
1934
|
};
|
|
1915
1935
|
}
|
|
1916
1936
|
// conditionally set private methods related to TTL
|
|
1917
|
-
#
|
|
1937
|
+
#M = () => {
|
|
1918
1938
|
};
|
|
1919
1939
|
#R = () => {
|
|
1920
1940
|
};
|
|
@@ -1924,7 +1944,7 @@ class Qe {
|
|
|
1924
1944
|
#m = () => !1;
|
|
1925
1945
|
#X() {
|
|
1926
1946
|
const t = new De(this.#c);
|
|
1927
|
-
this.#x = 0, this.#_ = t, this.#
|
|
1947
|
+
this.#x = 0, this.#_ = t, this.#b = (n) => {
|
|
1928
1948
|
this.#x -= t[n], t[n] = 0;
|
|
1929
1949
|
}, this.#D = (n, i, r, s) => {
|
|
1930
1950
|
if (this.#t(i))
|
|
@@ -1947,7 +1967,7 @@ class Qe {
|
|
|
1947
1967
|
this.#x += t[n], r && (r.entrySize = i, r.totalCalculatedSize = this.#x);
|
|
1948
1968
|
};
|
|
1949
1969
|
}
|
|
1950
|
-
#
|
|
1970
|
+
#b = (t) => {
|
|
1951
1971
|
};
|
|
1952
1972
|
#P = (t, n, i) => {
|
|
1953
1973
|
};
|
|
@@ -2099,7 +2119,7 @@ class Qe {
|
|
|
2099
2119
|
if (this.#d && this.#y) {
|
|
2100
2120
|
const o = this.#d[n], c = this.#y[n];
|
|
2101
2121
|
if (o && c) {
|
|
2102
|
-
const a = o - (
|
|
2122
|
+
const a = o - (fe.now() - c);
|
|
2103
2123
|
s.ttl = a, s.start = Date.now();
|
|
2104
2124
|
}
|
|
2105
2125
|
}
|
|
@@ -2118,7 +2138,7 @@ class Qe {
|
|
|
2118
2138
|
const o = { value: s };
|
|
2119
2139
|
if (this.#d && this.#y) {
|
|
2120
2140
|
o.ttl = this.#d[n];
|
|
2121
|
-
const c =
|
|
2141
|
+
const c = fe.now() - this.#y[n];
|
|
2122
2142
|
o.start = Math.floor(Date.now() - c);
|
|
2123
2143
|
}
|
|
2124
2144
|
this.#_ && (o.size = this.#_[n]), t.unshift([i, o]);
|
|
@@ -2135,7 +2155,7 @@ class Qe {
|
|
|
2135
2155
|
for (const [n, i] of t) {
|
|
2136
2156
|
if (i.start) {
|
|
2137
2157
|
const r = Date.now() - i.start;
|
|
2138
|
-
i.start =
|
|
2158
|
+
i.start = fe.now() - r;
|
|
2139
2159
|
}
|
|
2140
2160
|
this.set(n, i.value, i);
|
|
2141
2161
|
}
|
|
@@ -2158,16 +2178,16 @@ class Qe {
|
|
|
2158
2178
|
if (u === void 0)
|
|
2159
2179
|
u = this.#r === 0 ? this.#s : this.#E.length !== 0 ? this.#E.pop() : this.#r === this.#c ? this.#z(!1) : this.#r, this.#n[u] = t, this.#e[u] = n, this.#i.set(t, u), this.#f[this.#s] = u, this.#u[u] = this.#s, this.#s = u, this.#r++, this.#P(u, l, a), a && (a.set = "add"), f = !1;
|
|
2160
2180
|
else {
|
|
2161
|
-
this.#
|
|
2181
|
+
this.#S(u);
|
|
2162
2182
|
const h = this.#e[u];
|
|
2163
2183
|
if (n !== h) {
|
|
2164
2184
|
if (this.#A && this.#t(h)) {
|
|
2165
2185
|
h.__abortController.abort(new Error("replaced"));
|
|
2166
2186
|
const { __staleWhileFetching: d } = h;
|
|
2167
|
-
d !== void 0 && !o && (this.#w && this.#
|
|
2187
|
+
d !== void 0 && !o && (this.#w && this.#v?.(d, t, "set"), this.#l && this.#o?.push([d, t, "set"]));
|
|
2168
2188
|
} else
|
|
2169
|
-
o || (this.#w && this.#
|
|
2170
|
-
if (this.#
|
|
2189
|
+
o || (this.#w && this.#v?.(h, t, "set"), this.#l && this.#o?.push([h, t, "set"]));
|
|
2190
|
+
if (this.#b(u), this.#P(u, l, a), this.#e[u] = n, a) {
|
|
2171
2191
|
a.set = "replace";
|
|
2172
2192
|
const d = h && this.#t(h) ? h.__staleWhileFetching : h;
|
|
2173
2193
|
d !== void 0 && (a.oldValue = d);
|
|
@@ -2179,7 +2199,7 @@ class Qe {
|
|
|
2179
2199
|
const h = this.#o;
|
|
2180
2200
|
let d;
|
|
2181
2201
|
for (; d = h?.shift(); )
|
|
2182
|
-
this.#
|
|
2202
|
+
this.#p?.(...d);
|
|
2183
2203
|
}
|
|
2184
2204
|
return this;
|
|
2185
2205
|
}
|
|
@@ -2202,13 +2222,13 @@ class Qe {
|
|
|
2202
2222
|
const t = this.#o;
|
|
2203
2223
|
let n;
|
|
2204
2224
|
for (; n = t?.shift(); )
|
|
2205
|
-
this.#
|
|
2225
|
+
this.#p?.(...n);
|
|
2206
2226
|
}
|
|
2207
2227
|
}
|
|
2208
2228
|
}
|
|
2209
2229
|
#z(t) {
|
|
2210
2230
|
const n = this.#a, i = this.#n[n], r = this.#e[n];
|
|
2211
|
-
return this.#A && this.#t(r) ? r.__abortController.abort(new Error("evicted")) : (this.#w || this.#l) && (this.#w && this.#
|
|
2231
|
+
return this.#A && this.#t(r) ? r.__abortController.abort(new Error("evicted")) : (this.#w || this.#l) && (this.#w && this.#v?.(r, i, "evict"), this.#l && this.#o?.push([r, i, "evict"])), this.#b(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;
|
|
2212
2232
|
}
|
|
2213
2233
|
/**
|
|
2214
2234
|
* Check if a key is in the cache, without updating the recency of use.
|
|
@@ -2227,7 +2247,7 @@ class Qe {
|
|
|
2227
2247
|
if (this.#m(s))
|
|
2228
2248
|
r && (r.has = "stale", this.#R(r, s));
|
|
2229
2249
|
else
|
|
2230
|
-
return i && this.#
|
|
2250
|
+
return i && this.#M(s), r && (r.has = "hit", this.#R(r, s)), !0;
|
|
2231
2251
|
} else
|
|
2232
2252
|
r && (r.has = "miss");
|
|
2233
2253
|
return !1;
|
|
@@ -2258,22 +2278,22 @@ class Qe {
|
|
|
2258
2278
|
signal: o.signal,
|
|
2259
2279
|
options: i,
|
|
2260
2280
|
context: r
|
|
2261
|
-
}, f = (
|
|
2262
|
-
const { aborted:
|
|
2263
|
-
if (i.status && (
|
|
2281
|
+
}, f = (y, w = !1) => {
|
|
2282
|
+
const { aborted: x } = o.signal, A = i.ignoreFetchAbort && y !== void 0;
|
|
2283
|
+
if (i.status && (x && !w ? (i.status.fetchAborted = !0, i.status.fetchError = o.signal.reason, A && (i.status.fetchAbortIgnored = !0)) : i.status.fetchResolved = !0), x && !A && !w)
|
|
2264
2284
|
return u(o.signal.reason);
|
|
2265
2285
|
const p = d;
|
|
2266
|
-
return this.#e[n] === d && (
|
|
2267
|
-
}, l = (
|
|
2268
|
-
const { aborted:
|
|
2269
|
-
if (this.#e[n] === d && (!p ||
|
|
2270
|
-
return i.status &&
|
|
2271
|
-
if (
|
|
2272
|
-
throw
|
|
2273
|
-
}, h = (
|
|
2274
|
-
const
|
|
2275
|
-
|
|
2276
|
-
(!i.ignoreFetchAbort || i.allowStaleOnFetchAbort) && (
|
|
2286
|
+
return this.#e[n] === d && (y === void 0 ? p.__staleWhileFetching ? this.#e[n] = p.__staleWhileFetching : this.delete(t) : (i.status && (i.status.fetchUpdated = !0), this.set(t, y, a.options))), y;
|
|
2287
|
+
}, l = (y) => (i.status && (i.status.fetchRejected = !0, i.status.fetchError = y), u(y)), u = (y) => {
|
|
2288
|
+
const { aborted: w } = o.signal, x = w && i.allowStaleOnFetchAbort, A = x || i.allowStaleOnFetchRejection, p = A || i.noDeleteOnFetchRejection, v = d;
|
|
2289
|
+
if (this.#e[n] === d && (!p || v.__staleWhileFetching === void 0 ? this.delete(t) : x || (this.#e[n] = v.__staleWhileFetching)), A)
|
|
2290
|
+
return i.status && v.__staleWhileFetching !== void 0 && (i.status.returnedStale = !0), v.__staleWhileFetching;
|
|
2291
|
+
if (v.__returned === v)
|
|
2292
|
+
throw y;
|
|
2293
|
+
}, h = (y, w) => {
|
|
2294
|
+
const x = this.#U?.(t, s, a);
|
|
2295
|
+
x && x instanceof Promise && x.then((A) => y(A === void 0 ? void 0 : A), w), o.signal.addEventListener("abort", () => {
|
|
2296
|
+
(!i.ignoreFetchAbort || i.allowStaleOnFetchAbort) && (y(void 0), i.allowStaleOnFetchAbort && (y = (A) => f(A, !0)));
|
|
2277
2297
|
});
|
|
2278
2298
|
};
|
|
2279
2299
|
i.status && (i.status.fetchDispatched = !0);
|
|
@@ -2307,17 +2327,17 @@ class Qe {
|
|
|
2307
2327
|
allowStaleOnFetchRejection: h = this.allowStaleOnFetchRejection,
|
|
2308
2328
|
ignoreFetchAbort: d = this.ignoreFetchAbort,
|
|
2309
2329
|
allowStaleOnFetchAbort: m = this.allowStaleOnFetchAbort,
|
|
2310
|
-
context:
|
|
2311
|
-
forceRefresh:
|
|
2312
|
-
status:
|
|
2313
|
-
signal:
|
|
2330
|
+
context: y,
|
|
2331
|
+
forceRefresh: w = !1,
|
|
2332
|
+
status: x,
|
|
2333
|
+
signal: A
|
|
2314
2334
|
} = n;
|
|
2315
2335
|
if (!this.#A)
|
|
2316
|
-
return
|
|
2336
|
+
return x && (x.fetch = "get"), this.get(t, {
|
|
2317
2337
|
allowStale: i,
|
|
2318
2338
|
updateAgeOnGet: r,
|
|
2319
2339
|
noDeleteOnStaleGet: s,
|
|
2320
|
-
status:
|
|
2340
|
+
status: x
|
|
2321
2341
|
});
|
|
2322
2342
|
const p = {
|
|
2323
2343
|
allowStale: i,
|
|
@@ -2332,25 +2352,25 @@ class Qe {
|
|
|
2332
2352
|
allowStaleOnFetchRejection: h,
|
|
2333
2353
|
allowStaleOnFetchAbort: m,
|
|
2334
2354
|
ignoreFetchAbort: d,
|
|
2335
|
-
status:
|
|
2336
|
-
signal:
|
|
2355
|
+
status: x,
|
|
2356
|
+
signal: A
|
|
2337
2357
|
};
|
|
2338
|
-
let
|
|
2339
|
-
if (
|
|
2340
|
-
|
|
2341
|
-
const
|
|
2342
|
-
return
|
|
2358
|
+
let v = this.#i.get(t);
|
|
2359
|
+
if (v === void 0) {
|
|
2360
|
+
x && (x.fetch = "miss");
|
|
2361
|
+
const _ = this.#L(t, v, p, y);
|
|
2362
|
+
return _.__returned = _;
|
|
2343
2363
|
} else {
|
|
2344
|
-
const
|
|
2345
|
-
if (this.#t(
|
|
2346
|
-
const
|
|
2347
|
-
return
|
|
2364
|
+
const _ = this.#e[v];
|
|
2365
|
+
if (this.#t(_)) {
|
|
2366
|
+
const M = i && _.__staleWhileFetching !== void 0;
|
|
2367
|
+
return x && (x.fetch = "inflight", M && (x.returnedStale = !0)), M ? _.__staleWhileFetching : _.__returned = _;
|
|
2348
2368
|
}
|
|
2349
|
-
const
|
|
2350
|
-
if (!
|
|
2351
|
-
return
|
|
2352
|
-
const
|
|
2353
|
-
return
|
|
2369
|
+
const g = this.#m(v);
|
|
2370
|
+
if (!w && !g)
|
|
2371
|
+
return x && (x.fetch = "hit"), this.#S(v), r && this.#M(v), x && this.#R(x, v), _;
|
|
2372
|
+
const E = this.#L(t, v, p, y), R = E.__staleWhileFetching !== void 0 && i;
|
|
2373
|
+
return x && (x.fetch = g ? "stale" : "refresh", R && g && (x.returnedStale = !0)), R ? E.__staleWhileFetching : E.__returned = E;
|
|
2354
2374
|
}
|
|
2355
2375
|
}
|
|
2356
2376
|
/**
|
|
@@ -2363,14 +2383,14 @@ class Qe {
|
|
|
2363
2383
|
const { allowStale: i = this.allowStale, updateAgeOnGet: r = this.updateAgeOnGet, noDeleteOnStaleGet: s = this.noDeleteOnStaleGet, status: o } = n, c = this.#i.get(t);
|
|
2364
2384
|
if (c !== void 0) {
|
|
2365
2385
|
const a = this.#e[c], f = this.#t(a);
|
|
2366
|
-
return o && this.#R(o, c), this.#m(c) ? (o && (o.get = "stale"), f ? (o && i && a.__staleWhileFetching !== void 0 && (o.returnedStale = !0), i ? a.__staleWhileFetching : void 0) : (s || this.delete(t), o && i && (o.returnedStale = !0), i ? a : void 0)) : (o && (o.get = "hit"), f ? a.__staleWhileFetching : (this.#
|
|
2386
|
+
return o && this.#R(o, c), this.#m(c) ? (o && (o.get = "stale"), f ? (o && i && a.__staleWhileFetching !== void 0 && (o.returnedStale = !0), i ? a.__staleWhileFetching : void 0) : (s || this.delete(t), o && i && (o.returnedStale = !0), i ? a : void 0)) : (o && (o.get = "hit"), f ? a.__staleWhileFetching : (this.#S(c), r && this.#M(c), a));
|
|
2367
2387
|
} else
|
|
2368
2388
|
o && (o.get = "miss");
|
|
2369
2389
|
}
|
|
2370
2390
|
#C(t, n) {
|
|
2371
2391
|
this.#u[n] = t, this.#f[t] = n;
|
|
2372
2392
|
}
|
|
2373
|
-
#
|
|
2393
|
+
#S(t) {
|
|
2374
2394
|
t !== this.#s && (t === this.#a ? this.#a = this.#f[t] : this.#C(this.#u[t], this.#f[t]), this.#C(this.#s, t), this.#s = t);
|
|
2375
2395
|
}
|
|
2376
2396
|
/**
|
|
@@ -2385,9 +2405,9 @@ class Qe {
|
|
|
2385
2405
|
if (n = !0, this.#r === 1)
|
|
2386
2406
|
this.clear();
|
|
2387
2407
|
else {
|
|
2388
|
-
this.#
|
|
2408
|
+
this.#b(i);
|
|
2389
2409
|
const r = this.#e[i];
|
|
2390
|
-
if (this.#t(r) ? r.__abortController.abort(new Error("deleted")) : (this.#w || this.#l) && (this.#w && this.#
|
|
2410
|
+
if (this.#t(r) ? r.__abortController.abort(new Error("deleted")) : (this.#w || this.#l) && (this.#w && this.#v?.(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)
|
|
2391
2411
|
this.#s = this.#u[i];
|
|
2392
2412
|
else if (i === this.#a)
|
|
2393
2413
|
this.#a = this.#f[i];
|
|
@@ -2404,7 +2424,7 @@ class Qe {
|
|
|
2404
2424
|
const i = this.#o;
|
|
2405
2425
|
let r;
|
|
2406
2426
|
for (; r = i?.shift(); )
|
|
2407
|
-
this.#
|
|
2427
|
+
this.#p?.(...r);
|
|
2408
2428
|
}
|
|
2409
2429
|
return n;
|
|
2410
2430
|
}
|
|
@@ -2418,14 +2438,14 @@ class Qe {
|
|
|
2418
2438
|
n.__abortController.abort(new Error("deleted"));
|
|
2419
2439
|
else {
|
|
2420
2440
|
const i = this.#n[t];
|
|
2421
|
-
this.#w && this.#
|
|
2441
|
+
this.#w && this.#v?.(n, i, "delete"), this.#l && this.#o?.push([n, i, "delete"]);
|
|
2422
2442
|
}
|
|
2423
2443
|
}
|
|
2424
2444
|
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) {
|
|
2425
2445
|
const t = this.#o;
|
|
2426
2446
|
let n;
|
|
2427
2447
|
for (; n = t?.shift(); )
|
|
2428
|
-
this.#
|
|
2448
|
+
this.#p?.(...n);
|
|
2429
2449
|
}
|
|
2430
2450
|
}
|
|
2431
2451
|
}
|
|
@@ -2447,7 +2467,7 @@ const We = (e) => {
|
|
|
2447
2467
|
clear: () => t.clear(),
|
|
2448
2468
|
purgeStale: () => t.purgeStale()
|
|
2449
2469
|
};
|
|
2450
|
-
},
|
|
2470
|
+
}, ni = 15, te = 256, ii = ({
|
|
2451
2471
|
gl: e,
|
|
2452
2472
|
terrainCache: t
|
|
2453
2473
|
}) => {
|
|
@@ -2460,27 +2480,27 @@ const We = (e) => {
|
|
|
2460
2480
|
const u = i.get([a, f, l]);
|
|
2461
2481
|
if (!u)
|
|
2462
2482
|
return;
|
|
2463
|
-
const { texture: h, downsample: d } = u, m = 2 ** d,
|
|
2464
|
-
if (
|
|
2465
|
-
return { buffer:
|
|
2466
|
-
const
|
|
2467
|
-
return e.bindFramebuffer(e.FRAMEBUFFER, r), h.attach(), e.readPixels(0, 0, te, te, e.RGBA, e.UNSIGNED_BYTE,
|
|
2483
|
+
const { texture: h, downsample: d } = u, m = 2 ** d, y = [Math.floor(a / m), Math.floor(f / m), l - d], w = n.get(y);
|
|
2484
|
+
if (w)
|
|
2485
|
+
return { buffer: w, downsample: d };
|
|
2486
|
+
const x = new Uint8Array(4 * te * te);
|
|
2487
|
+
return e.bindFramebuffer(e.FRAMEBUFFER, r), h.attach(), e.readPixels(0, 0, te, te, e.RGBA, e.UNSIGNED_BYTE, x), e.bindFramebuffer(e.FRAMEBUFFER, null), n.set(y, x), { buffer: x, downsample: d };
|
|
2468
2488
|
};
|
|
2469
|
-
return { get: ([a = 0, f = 0], l =
|
|
2470
|
-
const u = 2 ** l, h = L([a, f, 0]).map((
|
|
2471
|
-
let [
|
|
2472
|
-
const
|
|
2473
|
-
if (!
|
|
2489
|
+
return { get: ([a = 0, f = 0], l = ni) => {
|
|
2490
|
+
const u = 2 ** l, h = L([a, f, 0]).map((M) => M * u), [d = 0, m = 0] = h.map((M) => Math.floor(M % u));
|
|
2491
|
+
let [y = 0, w = 0] = h.map((M) => M % 1);
|
|
2492
|
+
const x = s([d, m, l]);
|
|
2493
|
+
if (!x)
|
|
2474
2494
|
return 0;
|
|
2475
|
-
const { buffer:
|
|
2476
|
-
[
|
|
2477
|
-
const
|
|
2478
|
-
return (
|
|
2495
|
+
const { buffer: A, downsample: p } = x, v = 2 ** p;
|
|
2496
|
+
[y, w] = [(d % v + y) / v, (m % v + w) / v];
|
|
2497
|
+
const _ = 4 * te * Math.floor(w * te) + 4 * Math.floor(y * te), [g = 0, E = 0, T = 0] = A.slice(_, _ + 4);
|
|
2498
|
+
return (g * 65536 + E * 256 + T) / 10 - 1e4;
|
|
2479
2499
|
}, dispose: () => {
|
|
2480
2500
|
e.deleteFramebuffer(r);
|
|
2481
2501
|
} };
|
|
2482
2502
|
};
|
|
2483
|
-
var
|
|
2503
|
+
var ri = `#version 300 es
|
|
2484
2504
|
|
|
2485
2505
|
precision highp float;
|
|
2486
2506
|
|
|
@@ -2514,7 +2534,7 @@ const lt = ({
|
|
|
2514
2534
|
return r.delete(a), f;
|
|
2515
2535
|
r.set(a, !0);
|
|
2516
2536
|
} else {
|
|
2517
|
-
const [l, u, h] = a, d = t.replace("{x}", `${l}`).replace("{y}", `${u}`).replace("{z}", `${h}`), m =
|
|
2537
|
+
const [l, u, h] = a, d = t.replace("{x}", `${l}`).replace("{y}", `${u}`).replace("{z}", `${h}`), m = vt({
|
|
2518
2538
|
gl: e,
|
|
2519
2539
|
url: d,
|
|
2520
2540
|
onLoad: () => {
|
|
@@ -2527,7 +2547,7 @@ const lt = ({
|
|
|
2527
2547
|
return { get: s, dispose: () => {
|
|
2528
2548
|
clearInterval(o), i.clear();
|
|
2529
2549
|
} };
|
|
2530
|
-
},
|
|
2550
|
+
}, si = (e) => {
|
|
2531
2551
|
const t = We({
|
|
2532
2552
|
max: 1e4,
|
|
2533
2553
|
ttl: 1e3
|
|
@@ -2541,7 +2561,7 @@ const lt = ({
|
|
|
2541
2561
|
const s = t.get(r);
|
|
2542
2562
|
if (s)
|
|
2543
2563
|
return s;
|
|
2544
|
-
const [o = 0, c = 0, a = 0] = r, f = n.map(([l = 0, u = 0]) => [o + l, c + u, a]).map((l) =>
|
|
2564
|
+
const [o = 0, c = 0, a = 0] = r, f = n.map(([l = 0, u = 0]) => [o + l, c + u, a]).map((l) => vn(l, l)).map((l) => se(l, l)).map((l) => {
|
|
2545
2565
|
const [u = 0, h = 0] = l, d = Math.max(a - 5, 0);
|
|
2546
2566
|
return L(
|
|
2547
2567
|
we(l, u, h, e.get([u, h], d)),
|
|
@@ -2551,7 +2571,7 @@ const lt = ({
|
|
|
2551
2571
|
return t.set(r, f), f;
|
|
2552
2572
|
} };
|
|
2553
2573
|
};
|
|
2554
|
-
var
|
|
2574
|
+
var oi = `#version 300 es
|
|
2555
2575
|
|
|
2556
2576
|
precision highp float;
|
|
2557
2577
|
|
|
@@ -2588,29 +2608,29 @@ void main(void) {
|
|
|
2588
2608
|
uv = downsample(downsample_imagery);
|
|
2589
2609
|
color_out = color;
|
|
2590
2610
|
}`;
|
|
2591
|
-
const
|
|
2592
|
-
(e) => ie(0,
|
|
2593
|
-
e * (
|
|
2594
|
-
e * (
|
|
2595
|
-
(e + 1) * (
|
|
2596
|
-
e * (
|
|
2597
|
-
(e + 1) * (
|
|
2598
|
-
(e + 1) * (
|
|
2611
|
+
const B = 34, ai = 22, ci = ie(0, B).flatMap(
|
|
2612
|
+
(e) => ie(0, B).flatMap((t) => [
|
|
2613
|
+
e * (B + 1) + t,
|
|
2614
|
+
e * (B + 1) + t + 1,
|
|
2615
|
+
(e + 1) * (B + 1) + t + 1,
|
|
2616
|
+
e * (B + 1) + t,
|
|
2617
|
+
(e + 1) * (B + 1) + t + 1,
|
|
2618
|
+
(e + 1) * (B + 1) + t
|
|
2599
2619
|
])
|
|
2600
|
-
), Le = 0.1,
|
|
2601
|
-
(e) => ie(0,
|
|
2602
|
-
let n = (t - 1) / (
|
|
2603
|
-
return t === 0 && (n = 0, r = -Le), t ===
|
|
2620
|
+
), Le = 0.1, fi = ie(0, B + 1).flatMap(
|
|
2621
|
+
(e) => ie(0, B + 1).map((t) => {
|
|
2622
|
+
let n = (t - 1) / (B - 2), i = (e - 1) / (B - 2), r = 0;
|
|
2623
|
+
return t === 0 && (n = 0, r = -Le), t === B && (n = 1, r = -Le), e === 0 && (i = 0, r = -Le), e === B && (i = 1, r = -Le), [n, i, r];
|
|
2604
2624
|
})
|
|
2605
|
-
),
|
|
2625
|
+
), Ni = (e, t = {}) => {
|
|
2606
2626
|
const { gl: n } = e;
|
|
2607
2627
|
let i, r;
|
|
2608
|
-
const s =
|
|
2628
|
+
const s = me(
|
|
2609
2629
|
() => t.imageryUrl?.() ?? "",
|
|
2610
|
-
(
|
|
2630
|
+
(E) => {
|
|
2611
2631
|
i?.dispose(), i = lt({
|
|
2612
2632
|
gl: n,
|
|
2613
|
-
urlPattern:
|
|
2633
|
+
urlPattern: E,
|
|
2614
2634
|
onLoad: () => {
|
|
2615
2635
|
const T = n.getExtension("EXT_texture_filter_anisotropic");
|
|
2616
2636
|
if (T) {
|
|
@@ -2637,89 +2657,89 @@ const j = 34, oi = 22, ai = ie(0, j).flatMap(
|
|
|
2637
2657
|
onLoad: () => {
|
|
2638
2658
|
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);
|
|
2639
2659
|
}
|
|
2640
|
-
}), a = Fe(c, 3), f =
|
|
2641
|
-
u.set(
|
|
2642
|
-
const h =
|
|
2643
|
-
h.set(
|
|
2644
|
-
const { renderProgram: d, depthProgram: m } =
|
|
2660
|
+
}), a = Fe(c, 3), f = ii({ gl: n, terrainCache: c }), l = si(f), u = V({ gl: n, type: "f32", target: "array" });
|
|
2661
|
+
u.set(fi.flatMap(([E = 0, T = 0, R = 0]) => [E, T, R]));
|
|
2662
|
+
const h = V({ gl: n, type: "u16", target: "element" });
|
|
2663
|
+
h.set(ci);
|
|
2664
|
+
const { renderProgram: d, depthProgram: m } = li(e, {
|
|
2645
2665
|
uvwBuffer: u,
|
|
2646
2666
|
indexBuffer: h
|
|
2647
|
-
}),
|
|
2648
|
-
const { camera: T, worldToLocal: R, localToClip:
|
|
2649
|
-
const [
|
|
2650
|
-
let
|
|
2651
|
-
if (!
|
|
2652
|
-
const
|
|
2653
|
-
if (
|
|
2667
|
+
}), y = [0, 1, 2, 3], w = y.map(z), x = y.map(ee), A = y.map(de), p = (E) => {
|
|
2668
|
+
const { camera: T, worldToLocal: R, localToClip: M, clipToScreen: b } = E, P = (U) => {
|
|
2669
|
+
const [S = 0, N = 0, D = 0] = U, j = l.get(U);
|
|
2670
|
+
let X = hi(T, j);
|
|
2671
|
+
if (!X) {
|
|
2672
|
+
const C = j.map((Z, $) => R(Z, w[$])).map((Z, $) => M(Z, x[$]));
|
|
2673
|
+
if (ui(C))
|
|
2654
2674
|
return [];
|
|
2655
|
-
|
|
2675
|
+
X = di(C.map((Z, $) => b(Z, A[$]))) > 512 / devicePixelRatio;
|
|
2656
2676
|
}
|
|
2657
|
-
return
|
|
2658
|
-
[2 *
|
|
2659
|
-
[2 *
|
|
2660
|
-
[2 *
|
|
2661
|
-
[2 *
|
|
2662
|
-
].flatMap((
|
|
2677
|
+
return X && D < ai ? [
|
|
2678
|
+
[2 * S, 2 * N, D + 1],
|
|
2679
|
+
[2 * S + 1, 2 * N, D + 1],
|
|
2680
|
+
[2 * S, 2 * N + 1, D + 1],
|
|
2681
|
+
[2 * S + 1, 2 * N + 1, D + 1]
|
|
2682
|
+
].flatMap((G) => P(G)) : [U];
|
|
2663
2683
|
};
|
|
2664
2684
|
return P([0, 0, 0]);
|
|
2665
|
-
},
|
|
2666
|
-
viewport:
|
|
2685
|
+
}, v = ({
|
|
2686
|
+
viewport: E,
|
|
2667
2687
|
depth: T = !1,
|
|
2668
2688
|
index: R = 0
|
|
2669
2689
|
}) => {
|
|
2670
|
-
const
|
|
2690
|
+
const M = t.color?.() ?? [1, 1, 1, 1];
|
|
2671
2691
|
if (s(), ge(n, T, t))
|
|
2672
2692
|
return;
|
|
2673
|
-
const b = T ? m : d, { projection: P, modelView: U, camera:
|
|
2693
|
+
const b = T ? m : d, { projection: P, modelView: U, camera: S } = E, N = p(E);
|
|
2674
2694
|
for (const D of N) {
|
|
2675
|
-
const
|
|
2676
|
-
if (!T && !
|
|
2695
|
+
const j = T ? void 0 : r?.get(D), X = a.get(D);
|
|
2696
|
+
if (!T && !j || !X)
|
|
2677
2697
|
continue;
|
|
2678
|
-
const { texture:
|
|
2698
|
+
const { texture: C, downsample: G } = X, { texture: Z = C, downsample: $ = 0 } = j ?? {};
|
|
2679
2699
|
b.execute({
|
|
2680
2700
|
projection: P,
|
|
2681
2701
|
modelView: U,
|
|
2682
|
-
camera: Q(
|
|
2702
|
+
camera: Q(S),
|
|
2683
2703
|
xyz: D,
|
|
2684
|
-
imagery:
|
|
2685
|
-
terrain:
|
|
2686
|
-
downsampleImagery:
|
|
2687
|
-
downsampleTerrain:
|
|
2688
|
-
color:
|
|
2704
|
+
imagery: Z,
|
|
2705
|
+
terrain: C,
|
|
2706
|
+
downsampleImagery: $,
|
|
2707
|
+
downsampleTerrain: G,
|
|
2708
|
+
color: M,
|
|
2689
2709
|
index: R
|
|
2690
2710
|
});
|
|
2691
2711
|
}
|
|
2692
|
-
},
|
|
2712
|
+
}, _ = () => {
|
|
2693
2713
|
i?.dispose(), c.dispose(), f.dispose();
|
|
2694
|
-
},
|
|
2714
|
+
}, g = Ae(t);
|
|
2695
2715
|
return {
|
|
2696
|
-
render:
|
|
2697
|
-
dispose:
|
|
2698
|
-
...
|
|
2716
|
+
render: v,
|
|
2717
|
+
dispose: _,
|
|
2718
|
+
...g
|
|
2699
2719
|
};
|
|
2700
|
-
},
|
|
2720
|
+
}, li = ({ gl: e, programs: t }, { uvwBuffer: n, indexBuffer: i }) => {
|
|
2701
2721
|
const r = (c = !1) => {
|
|
2702
2722
|
const a = t.get({
|
|
2703
|
-
vertexSource:
|
|
2704
|
-
fragmentSource: c ? Re :
|
|
2705
|
-
}), f = a.attribute3f("uvw", n), l = a.uniformMatrix4f("projection"), u = a.uniformMatrix4f("model_view"), h = a.uniform1i("imagery"), d = a.uniform1i("terrain"), m = a.uniform1i("downsample_imagery"),
|
|
2723
|
+
vertexSource: oi,
|
|
2724
|
+
fragmentSource: c ? Re : ri
|
|
2725
|
+
}), f = a.attribute3f("uvw", n), l = a.uniformMatrix4f("projection"), u = a.uniformMatrix4f("model_view"), h = a.uniform1i("imagery"), d = a.uniform1i("terrain"), m = a.uniform1i("downsample_imagery"), y = a.uniform1i("downsample_terrain"), w = a.uniform4f("color"), x = a.uniform3i("xyz"), A = a.uniform3i("camera"), p = a.uniform1i("index");
|
|
2706
2726
|
return { execute: ({
|
|
2707
|
-
projection:
|
|
2708
|
-
modelView:
|
|
2709
|
-
camera:
|
|
2727
|
+
projection: _,
|
|
2728
|
+
modelView: g,
|
|
2729
|
+
camera: E,
|
|
2710
2730
|
xyz: T,
|
|
2711
2731
|
imagery: R,
|
|
2712
|
-
terrain:
|
|
2732
|
+
terrain: M,
|
|
2713
2733
|
downsampleImagery: b,
|
|
2714
2734
|
downsampleTerrain: P,
|
|
2715
2735
|
color: U,
|
|
2716
|
-
index:
|
|
2736
|
+
index: S
|
|
2717
2737
|
}) => {
|
|
2718
|
-
a.use(), f.use(), l.set(
|
|
2738
|
+
a.use(), f.use(), l.set(_), u.set(g), x.set(T), A.set(E), m.set(b), y.set(P), w.set(U), p.set(S), e.activeTexture(e.TEXTURE0), h.set(0), R.use(), e.activeTexture(e.TEXTURE1), d.set(1), M.use(), i.use(), e.drawElements(e.TRIANGLES, B * B * 2 * 3, e.UNSIGNED_SHORT, 0);
|
|
2719
2739
|
} };
|
|
2720
2740
|
}, s = r(), o = r(!0);
|
|
2721
2741
|
return { renderProgram: s, depthProgram: o };
|
|
2722
|
-
},
|
|
2742
|
+
}, hi = (e, t) => {
|
|
2723
2743
|
const [n, i, r, s] = t.reduce(
|
|
2724
2744
|
([f, l, u, h], [d = 0, m = 0]) => [
|
|
2725
2745
|
Math.min(d, f),
|
|
@@ -2730,18 +2750,18 @@ const j = 34, oi = 22, ai = ie(0, j).flatMap(
|
|
|
2730
2750
|
[1, 0, 1, 0]
|
|
2731
2751
|
), [o = 0, c = 0, a = 0] = e;
|
|
2732
2752
|
return o > n && o < i && c > r && c < s && a > 0 && a < i - n;
|
|
2733
|
-
},
|
|
2753
|
+
}, ui = (e) => e.every(([t = 0, , , n = 0]) => t > n) || e.every(([t = 0, , , n = 0]) => t < -n) || e.every(([, t = 0, , n = 0]) => t > n) || e.every(([, t = 0, , n = 0]) => t < -n) || e.every(([, , t = 0, n = 0]) => t > n) || e.every(([, , t = 0, n = 0]) => t < -n) || e.every(([, , , t = 0]) => t < 0), di = (e) => Math.sqrt(
|
|
2734
2754
|
e.map(
|
|
2735
2755
|
(t, n) => hn(
|
|
2736
2756
|
e[n] ?? [0, 0],
|
|
2737
2757
|
e[(n + 1) % e.length] ?? [0, 0]
|
|
2738
2758
|
)
|
|
2739
2759
|
).reduce((t, n) => t + n, 0) / e.length
|
|
2740
|
-
),
|
|
2760
|
+
), Ii = {
|
|
2741
2761
|
pickable: !0,
|
|
2742
2762
|
depth: !0,
|
|
2743
2763
|
polygonOffset: 0
|
|
2744
|
-
},
|
|
2764
|
+
}, mi = (e, t) => {
|
|
2745
2765
|
let n;
|
|
2746
2766
|
return () => {
|
|
2747
2767
|
const i = e.map((s) => s());
|
|
@@ -2753,7 +2773,7 @@ const j = 34, oi = 22, ai = ie(0, j).flatMap(
|
|
|
2753
2773
|
const r = t(i);
|
|
2754
2774
|
return n = [i, r], r;
|
|
2755
2775
|
};
|
|
2756
|
-
},
|
|
2776
|
+
}, me = (e, t) => mi([e], (n) => {
|
|
2757
2777
|
const [i] = n;
|
|
2758
2778
|
return t(i);
|
|
2759
2779
|
}), Ae = (e) => {
|
|
@@ -2775,7 +2795,7 @@ const j = 34, oi = 22, ai = ie(0, j).flatMap(
|
|
|
2775
2795
|
onDragStart: o,
|
|
2776
2796
|
onDragEnd: c
|
|
2777
2797
|
};
|
|
2778
|
-
}, Be = 10,
|
|
2798
|
+
}, Be = 10, Me = 1e-3, ae = (e) => (t) => {
|
|
2779
2799
|
let n, i;
|
|
2780
2800
|
return () => {
|
|
2781
2801
|
const r = performance.now(), s = (r - (i ?? r)) / 1e3;
|
|
@@ -2783,20 +2803,20 @@ const j = 34, oi = 22, ai = ie(0, j).flatMap(
|
|
|
2783
2803
|
const o = t();
|
|
2784
2804
|
return n = n ?? o, n = e({ time: s, current: n, target: o }), n;
|
|
2785
2805
|
};
|
|
2786
|
-
},
|
|
2787
|
-
({ time: e, current: t, target: n }) => (Math.abs(n - t) <
|
|
2788
|
-
), pi =
|
|
2789
|
-
({ time: e, current: t, target: n }) => (ln(t, n) <
|
|
2790
|
-
|
|
2806
|
+
}, vi = ae(
|
|
2807
|
+
({ time: e, current: t, target: n }) => (Math.abs(n - t) < Me ? t = n : t = t + (n - t) * (1 - Math.exp(-Be * e)), t)
|
|
2808
|
+
), pi = ae(
|
|
2809
|
+
({ time: e, current: t, target: n }) => (ln(t, n) < Me ? sn(t, n) : t = an(
|
|
2810
|
+
de(),
|
|
2791
2811
|
t,
|
|
2792
2812
|
fn(
|
|
2793
|
-
|
|
2794
|
-
un(
|
|
2813
|
+
de(),
|
|
2814
|
+
un(de(), n, t),
|
|
2795
2815
|
1 - Math.exp(-Be * e)
|
|
2796
2816
|
)
|
|
2797
2817
|
), t)
|
|
2798
|
-
),
|
|
2799
|
-
({ time: e, current: t, target: n }) => (Kt(t, n) <
|
|
2818
|
+
), Di = ae(
|
|
2819
|
+
({ time: e, current: t, target: n }) => (Kt(t, n) < Me ? kt(t, n) : t = Ht(
|
|
2800
2820
|
ee(),
|
|
2801
2821
|
t,
|
|
2802
2822
|
Ft(
|
|
@@ -2805,14 +2825,14 @@ const j = 34, oi = 22, ai = ie(0, j).flatMap(
|
|
|
2805
2825
|
1 - Math.exp(-Be * e)
|
|
2806
2826
|
)
|
|
2807
2827
|
), t)
|
|
2808
|
-
),
|
|
2828
|
+
), Oi = ae(
|
|
2809
2829
|
({ time: e, current: t, target: n }) => {
|
|
2810
2830
|
const i = Te(L(t), L(n));
|
|
2811
|
-
return i * H <
|
|
2831
|
+
return i * H < Me || i > 1e5 / H ? jt(t, n) : t = se(
|
|
2812
2832
|
ne(
|
|
2813
2833
|
z(),
|
|
2814
2834
|
L(t),
|
|
2815
|
-
|
|
2835
|
+
le(
|
|
2816
2836
|
z(),
|
|
2817
2837
|
re(z(), L(n), L(t)),
|
|
2818
2838
|
1 - Math.exp(-Be * e)
|
|
@@ -2820,12 +2840,12 @@ const j = 34, oi = 22, ai = ie(0, j).flatMap(
|
|
|
2820
2840
|
)
|
|
2821
2841
|
), t;
|
|
2822
2842
|
}
|
|
2823
|
-
),
|
|
2843
|
+
), Ci = (e) => {
|
|
2824
2844
|
let t = [0, 0, 0], n = [0, 0, 0], i, r;
|
|
2825
|
-
return
|
|
2845
|
+
return ae(({ time: o, current: c, target: a }) => {
|
|
2826
2846
|
if (a === c || o > 1 || Te(L(a), L(c)) > 1e3 / H)
|
|
2827
2847
|
return i = void 0, t = [0, 0, 0], n = [0, 0, 0], a;
|
|
2828
|
-
i ? a !== i && r !== void 0 && (n =
|
|
2848
|
+
i ? a !== i && r !== void 0 && (n = le(
|
|
2829
2849
|
z(),
|
|
2830
2850
|
re(z(), L(a), L(i)),
|
|
2831
2851
|
1e3 / (performance.now() - r)
|
|
@@ -2833,7 +2853,7 @@ const j = 34, oi = 22, ai = ie(0, j).flatMap(
|
|
|
2833
2853
|
const f = ne(
|
|
2834
2854
|
z(),
|
|
2835
2855
|
t,
|
|
2836
|
-
|
|
2856
|
+
le(
|
|
2837
2857
|
z(),
|
|
2838
2858
|
re(z(), n, t),
|
|
2839
2859
|
2 * o
|
|
@@ -2845,12 +2865,12 @@ const j = 34, oi = 22, ai = ie(0, j).flatMap(
|
|
|
2845
2865
|
L(c),
|
|
2846
2866
|
ne(
|
|
2847
2867
|
z(),
|
|
2848
|
-
|
|
2868
|
+
le(
|
|
2849
2869
|
z(),
|
|
2850
2870
|
ne(z(), t, f),
|
|
2851
2871
|
0.5 * o
|
|
2852
2872
|
),
|
|
2853
|
-
|
|
2873
|
+
le(
|
|
2854
2874
|
z(),
|
|
2855
2875
|
re(z(), L(a), L(c)),
|
|
2856
2876
|
o
|
|
@@ -2859,25 +2879,25 @@ const j = 34, oi = 22, ai = ie(0, j).flatMap(
|
|
|
2859
2879
|
)
|
|
2860
2880
|
), t = f, c;
|
|
2861
2881
|
})(e);
|
|
2862
|
-
},
|
|
2863
|
-
({ time: e, current: t, target: n }) => (t =
|
|
2882
|
+
}, xi = ae(
|
|
2883
|
+
({ time: e, current: t, target: n }) => (t = pn(
|
|
2864
2884
|
Ne(
|
|
2865
2885
|
He(),
|
|
2866
|
-
|
|
2867
|
-
|
|
2886
|
+
Se(t),
|
|
2887
|
+
Se(n),
|
|
2868
2888
|
Math.PI * e
|
|
2869
2889
|
)
|
|
2870
|
-
), tn(
|
|
2871
|
-
),
|
|
2872
|
-
const t =
|
|
2873
|
-
return
|
|
2874
|
-
const a = Te(L(o.target), L(c.target)) * H, f = Math.max(c.distance, a), l = 1 - Math.exp(-
|
|
2890
|
+
), tn(Se(t), Se(n)) < Me && (n = t), t)
|
|
2891
|
+
), Ei = 10, Xi = (e) => {
|
|
2892
|
+
const t = xi(() => e().orientation), n = pi(() => e().offset), i = vi(() => e().fieldOfView);
|
|
2893
|
+
return ae(({ time: s, current: o, target: c }) => {
|
|
2894
|
+
const a = Te(L(o.target), L(c.target)) * H, f = Math.max(c.distance, a), l = 1 - Math.exp(-Ei * s), u = Math.exp(
|
|
2875
2895
|
Math.log(o.distance) + (Math.log(f) - Math.log(o.distance)) * l
|
|
2876
2896
|
), h = o.distance > a ? 1 : o.distance / a, d = se(
|
|
2877
2897
|
ne(
|
|
2878
2898
|
z(),
|
|
2879
2899
|
L(o.target),
|
|
2880
|
-
|
|
2900
|
+
le(
|
|
2881
2901
|
z(),
|
|
2882
2902
|
re(
|
|
2883
2903
|
z(),
|
|
@@ -2897,7 +2917,7 @@ const j = 34, oi = 22, ai = ie(0, j).flatMap(
|
|
|
2897
2917
|
fieldOfView: i()
|
|
2898
2918
|
};
|
|
2899
2919
|
})(e);
|
|
2900
|
-
},
|
|
2920
|
+
}, _i = (e) => {
|
|
2901
2921
|
const t = e.createTexture();
|
|
2902
2922
|
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);
|
|
2903
2923
|
const n = e.createRenderbuffer();
|
|
@@ -2939,14 +2959,14 @@ const j = 34, oi = 22, ai = ie(0, j).flatMap(
|
|
|
2939
2959
|
resize: o,
|
|
2940
2960
|
read: ([l = 0, u = 0]) => {
|
|
2941
2961
|
r(), e.readPixels(l, s - u, 1, 1, e.RGBA, e.UNSIGNED_BYTE, c), e.bindFramebuffer(e.FRAMEBUFFER, null);
|
|
2942
|
-
const [h = 0, d = 0, m = 0,
|
|
2943
|
-
return [
|
|
2962
|
+
const [h = 0, d = 0, m = 0, y = 0] = c, x = 2 * ((h * 256 + d) / (256 * 256 - 1)) - 1, A = m * 256 + y;
|
|
2963
|
+
return [x, A];
|
|
2944
2964
|
},
|
|
2945
2965
|
dispose: () => {
|
|
2946
2966
|
e.deleteTexture(t), e.deleteFramebuffer(i), e.deleteRenderbuffer(n);
|
|
2947
2967
|
}
|
|
2948
2968
|
};
|
|
2949
|
-
},
|
|
2969
|
+
}, yi = (e, {
|
|
2950
2970
|
view: t,
|
|
2951
2971
|
screen: n,
|
|
2952
2972
|
pick: i
|
|
@@ -2955,128 +2975,128 @@ const j = 34, oi = 22, ai = ie(0, j).flatMap(
|
|
|
2955
2975
|
let s = !1, o, c;
|
|
2956
2976
|
const a = () => {
|
|
2957
2977
|
s = !0;
|
|
2958
|
-
}, f = ({ x: m, y
|
|
2978
|
+
}, f = ({ x: m, y, movementX: w, movementY: x }) => {
|
|
2959
2979
|
if (o) {
|
|
2960
2980
|
if (o.onDrag) {
|
|
2961
|
-
const { point:
|
|
2962
|
-
o.onDrag({ point:
|
|
2981
|
+
const { point: A, position: p, layer: v } = i([m, y], { terrain: !0 });
|
|
2982
|
+
o.onDrag({ point: A, position: p, layer: v });
|
|
2963
2983
|
}
|
|
2964
2984
|
if (o.onDragFlat) {
|
|
2965
|
-
const p = J(t(), n()).unproject([m,
|
|
2966
|
-
o.onDragFlat({ point: [m,
|
|
2985
|
+
const p = J(t(), n()).unproject([m, y], { targetZ: c });
|
|
2986
|
+
o.onDragFlat({ point: [m, y], position: p, layer: void 0 });
|
|
2967
2987
|
}
|
|
2968
2988
|
return;
|
|
2969
2989
|
}
|
|
2970
|
-
if (s && (Math.abs(
|
|
2990
|
+
if (s && (Math.abs(w) > 1 || Math.abs(x) > 1)) {
|
|
2971
2991
|
s = !1;
|
|
2972
|
-
const { point:
|
|
2973
|
-
(
|
|
2992
|
+
const { point: A, position: p, layer: v } = i([m, y]);
|
|
2993
|
+
(v?.onDrag || v?.onDragFlat) && (o = v, o.onDragStart?.({ point: A, position: p, layer: v }), [, , c] = p);
|
|
2974
2994
|
}
|
|
2975
2995
|
}, l = (m) => {
|
|
2976
2996
|
if (s && u(m), s = !1, o) {
|
|
2977
|
-
const { x:
|
|
2978
|
-
o.onDragEnd?.({ point:
|
|
2997
|
+
const { x: y, y: w } = m, { point: x, position: A, layer: p } = i([y, w]);
|
|
2998
|
+
o.onDragEnd?.({ point: x, position: A, layer: p });
|
|
2979
2999
|
}
|
|
2980
3000
|
o = void 0;
|
|
2981
|
-
}, u = ({ x: m, y
|
|
2982
|
-
const { point:
|
|
2983
|
-
(
|
|
2984
|
-
point:
|
|
2985
|
-
position:
|
|
3001
|
+
}, u = ({ x: m, y, button: w }) => {
|
|
3002
|
+
const { point: x, position: A, layer: p } = i([m, y]);
|
|
3003
|
+
(w === 2 ? p?.onRightClick : p?.onClick)?.({
|
|
3004
|
+
point: x,
|
|
3005
|
+
position: A,
|
|
2986
3006
|
layer: p
|
|
2987
3007
|
});
|
|
2988
|
-
}, h = ({ x: m, y
|
|
2989
|
-
const { point:
|
|
2990
|
-
|
|
3008
|
+
}, h = ({ x: m, y }) => {
|
|
3009
|
+
const { point: w, position: x, layer: A } = i([m, y]);
|
|
3010
|
+
A?.onDoubleClick?.({ point: w, position: x, layer: A });
|
|
2991
3011
|
};
|
|
2992
3012
|
return r?.addEventListener("mousedown", a), r?.addEventListener("mousemove", f), r?.addEventListener("dblclick", h), window.addEventListener("mouseup", l), { dispose: () => {
|
|
2993
3013
|
r?.removeEventListener("mousedown", a), r?.removeEventListener("mousemove", f), r?.removeEventListener("dblclick", h), window.removeEventListener("mouseup", l);
|
|
2994
3014
|
} };
|
|
2995
3015
|
};
|
|
2996
|
-
|
|
2997
|
-
const
|
|
3016
|
+
St(Array);
|
|
3017
|
+
const Wi = ({ gl: e }, t) => {
|
|
2998
3018
|
const { view: n, layers: i } = t;
|
|
2999
3019
|
let r = !0, s = [0, 0];
|
|
3000
3020
|
e.enable(e.CULL_FACE), e.cullFace(e.FRONT), e.depthFunc(e.LEQUAL);
|
|
3001
|
-
const o =
|
|
3002
|
-
p = p || 1,
|
|
3021
|
+
const o = _i(e), { canvas: c } = e, a = ([p = 0, v = 0]) => {
|
|
3022
|
+
p = p || 1, v = v || 1, s = [p, v], c.width = p * devicePixelRatio, c.height = v * devicePixelRatio, o.resize([c.width, c.height]);
|
|
3003
3023
|
};
|
|
3004
3024
|
a([c.width, c.height]);
|
|
3005
3025
|
const f = new ResizeObserver(([p]) => {
|
|
3006
3026
|
if (!p)
|
|
3007
3027
|
return;
|
|
3008
|
-
const { contentRect:
|
|
3009
|
-
a([
|
|
3028
|
+
const { contentRect: v } = p, { width: _, height: g } = v;
|
|
3029
|
+
a([_, g]);
|
|
3010
3030
|
});
|
|
3011
3031
|
c instanceof HTMLCanvasElement && f.observe(c);
|
|
3012
|
-
const l = ([p = 0,
|
|
3013
|
-
e.viewport(0, 0, p * devicePixelRatio,
|
|
3032
|
+
const l = ([p = 0, v = 0]) => {
|
|
3033
|
+
e.viewport(0, 0, p * devicePixelRatio, v * devicePixelRatio), e.clear(e.COLOR_BUFFER_BIT | e.DEPTH_BUFFER_BIT);
|
|
3014
3034
|
}, u = () => {
|
|
3015
3035
|
const p = J(n(), s);
|
|
3016
|
-
l(s), Oe(i()).forEach((
|
|
3036
|
+
l(s), Oe(i()).forEach((v) => v.render?.({ viewport: p }));
|
|
3017
3037
|
}, h = (p) => {
|
|
3018
|
-
const
|
|
3038
|
+
const v = J(n(), s);
|
|
3019
3039
|
l(s), (p ? [p] : Oe(i())).forEach(
|
|
3020
|
-
(
|
|
3040
|
+
(_, g) => _.render?.({ viewport: v, depth: !0, index: g + 1 })
|
|
3021
3041
|
);
|
|
3022
3042
|
}, d = () => {
|
|
3023
3043
|
r && (u(), requestAnimationFrame(d));
|
|
3024
3044
|
};
|
|
3025
3045
|
requestAnimationFrame(d);
|
|
3026
|
-
const m = (p) => J(n(), s).project(p),
|
|
3027
|
-
const { screenToClip:
|
|
3046
|
+
const m = (p) => J(n(), s).project(p), y = (p) => J(n(), s).unproject(p), w = (p, { terrain: v } = {}) => {
|
|
3047
|
+
const { screenToClip: _, clipToLocal: g, localToWorld: E } = J(
|
|
3028
3048
|
n(),
|
|
3029
3049
|
s
|
|
3030
3050
|
);
|
|
3031
3051
|
o.use();
|
|
3032
|
-
const [T] =
|
|
3052
|
+
const [T] = v ? i() : [];
|
|
3033
3053
|
h(T);
|
|
3034
|
-
const [R = 0,
|
|
3054
|
+
const [R = 0, M = 0] = p, [b, P] = o.read([
|
|
3035
3055
|
R * devicePixelRatio,
|
|
3036
|
-
|
|
3037
|
-
]), [U = 0,
|
|
3056
|
+
M * devicePixelRatio
|
|
3057
|
+
]), [U = 0, S = 0] = _(p), N = se(E(g([U, S, b, 1]))), D = P === 0 ? void 0 : T ?? Oe(i())[P - 1];
|
|
3038
3058
|
return { point: p, position: N, layer: D };
|
|
3039
|
-
},
|
|
3059
|
+
}, x = yi(e, {
|
|
3040
3060
|
view: n,
|
|
3041
3061
|
screen: () => s,
|
|
3042
|
-
pick:
|
|
3062
|
+
pick: w
|
|
3043
3063
|
});
|
|
3044
3064
|
return {
|
|
3045
3065
|
project: m,
|
|
3046
|
-
unproject:
|
|
3047
|
-
pick:
|
|
3066
|
+
unproject: y,
|
|
3067
|
+
pick: w,
|
|
3048
3068
|
dispose: () => {
|
|
3049
|
-
r = !1,
|
|
3069
|
+
r = !1, x.dispose(), o.dispose(), c instanceof HTMLCanvasElement && f.unobserve(c);
|
|
3050
3070
|
}
|
|
3051
3071
|
};
|
|
3052
3072
|
}, Oe = (e) => e.flatMap((t) => [...Oe(t.children ?? []), t]);
|
|
3053
3073
|
export {
|
|
3054
|
-
|
|
3055
|
-
|
|
3074
|
+
me as cache,
|
|
3075
|
+
mi as cacheAll,
|
|
3056
3076
|
H as circumference,
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3062
|
-
|
|
3063
|
-
|
|
3064
|
-
wi as createMouseControl,
|
|
3077
|
+
gi as createBillboardLayer,
|
|
3078
|
+
Ri as createContainer,
|
|
3079
|
+
wi as createContext,
|
|
3080
|
+
Ai as createDynamicContainer,
|
|
3081
|
+
bi as createEmptyLayer,
|
|
3082
|
+
Si as createLineLayer,
|
|
3083
|
+
Ti as createMouseControl,
|
|
3065
3084
|
Ae as createMouseEvents,
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
Oi as
|
|
3071
|
-
|
|
3072
|
-
|
|
3073
|
-
|
|
3085
|
+
vi as createNumberTransition,
|
|
3086
|
+
Ui as createObjectLayer,
|
|
3087
|
+
xi as createOrientationTransition,
|
|
3088
|
+
Pi as createPolygonLayer,
|
|
3089
|
+
Oi as createPositionTransition,
|
|
3090
|
+
Ci as createPositionVelocityTransition,
|
|
3091
|
+
Mi as createRenderLayer,
|
|
3092
|
+
Ni as createTerrainLayer,
|
|
3093
|
+
ae as createTransition,
|
|
3074
3094
|
pi as createVec2Transition,
|
|
3075
|
-
|
|
3076
|
-
|
|
3077
|
-
|
|
3095
|
+
Di as createVec4Transition,
|
|
3096
|
+
Xi as createViewTransition,
|
|
3097
|
+
Wi as createWorld,
|
|
3078
3098
|
Rt as debounce,
|
|
3079
|
-
|
|
3099
|
+
Ii as defaultLayerOptions,
|
|
3080
3100
|
ut as defaultView,
|
|
3081
3101
|
dn as degrees,
|
|
3082
3102
|
se as geodetic,
|
|
@@ -3084,8 +3104,8 @@ export {
|
|
|
3084
3104
|
mn as quadratic,
|
|
3085
3105
|
Ie as radians,
|
|
3086
3106
|
ie as range,
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
|
|
3107
|
+
vn as tileToMercator,
|
|
3108
|
+
pn as toOrientation,
|
|
3109
|
+
Se as toQuaternion
|
|
3090
3110
|
};
|
|
3091
3111
|
//# sourceMappingURL=index.js.map
|