world.ts 0.6.0 → 0.6.1
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 +257 -255
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -34,10 +34,10 @@ const St = (e, t) => {
|
|
|
34
34
|
}, f = (w) => c(w, (g, y) => e.uniform1f(g, y)), u = (w) => c(w, (g, y) => e.uniform1i(g, y)), h = (w) => c(
|
|
35
35
|
w,
|
|
36
36
|
(g, [y = 0, b = 0]) => e.uniform2f(g, y, b)
|
|
37
|
-
),
|
|
37
|
+
), m = (w) => c(
|
|
38
38
|
w,
|
|
39
39
|
(g, [y = 0, b = 0]) => e.uniform2i(g, y, b)
|
|
40
|
-
),
|
|
40
|
+
), v = (w) => c(
|
|
41
41
|
w,
|
|
42
42
|
(g, [y = 0, b = 0, S = 0]) => e.uniform3f(g, y, b, S)
|
|
43
43
|
), p = (w) => c(
|
|
@@ -46,7 +46,7 @@ const St = (e, t) => {
|
|
|
46
46
|
), E = (w) => c(
|
|
47
47
|
w,
|
|
48
48
|
(g, [y = 0, b = 0, S = 0, U = 0]) => e.uniform4f(g, y, b, S, U)
|
|
49
|
-
),
|
|
49
|
+
), d = (w) => c(
|
|
50
50
|
w,
|
|
51
51
|
(g, [y = 0, b = 0, S = 0, U = 0]) => e.uniform4i(g, y, b, S, U)
|
|
52
52
|
), x = (w) => c(
|
|
@@ -85,11 +85,11 @@ const St = (e, t) => {
|
|
|
85
85
|
uniform1f: f,
|
|
86
86
|
uniform1i: u,
|
|
87
87
|
uniform2f: h,
|
|
88
|
-
uniform2i:
|
|
89
|
-
uniform3f:
|
|
88
|
+
uniform2i: m,
|
|
89
|
+
uniform3f: v,
|
|
90
90
|
uniform3i: p,
|
|
91
91
|
uniform4f: E,
|
|
92
|
-
uniform4i:
|
|
92
|
+
uniform4i: d,
|
|
93
93
|
uniformMatrix4f: x,
|
|
94
94
|
attribute1f: (w, g, y = {}) => M({ name: w, buffer: g, size: 1, type: "f32", ...y }),
|
|
95
95
|
attribute2f: (w, g, y = {}) => M({ name: w, buffer: g, size: 2, type: "f32", ...y }),
|
|
@@ -148,20 +148,20 @@ function Nt(e) {
|
|
|
148
148
|
return e[0] = 1, e[1] = 0, e[2] = 0, e[3] = 0, e[4] = 0, e[5] = 1, e[6] = 0, e[7] = 0, e[8] = 0, e[9] = 0, e[10] = 1, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, e;
|
|
149
149
|
}
|
|
150
150
|
function It(e, t) {
|
|
151
|
-
var n = t[0], i = t[1], r = t[2], o = t[3], s = t[4], a = t[5], c = t[6], f = t[7], u = t[8], h = t[9],
|
|
152
|
-
return F ? (F = 1 / F, e[0] = (a * U - c * S + f * b) * F, e[1] = (r * S - i * U - o * b) * F, e[2] = (E * R -
|
|
151
|
+
var n = t[0], i = t[1], r = t[2], o = t[3], s = t[4], a = t[5], c = t[6], f = t[7], u = t[8], h = t[9], m = t[10], v = t[11], p = t[12], E = t[13], d = t[14], x = t[15], M = n * a - i * s, _ = n * c - r * s, l = n * f - o * s, T = i * c - r * a, A = i * f - o * a, R = r * f - o * c, w = u * E - h * p, g = u * d - m * p, y = u * x - v * p, b = h * d - m * E, S = h * x - v * E, U = m * x - v * d, F = M * U - _ * S + l * b + T * y - A * g + R * w;
|
|
152
|
+
return F ? (F = 1 / F, e[0] = (a * U - c * S + f * b) * F, e[1] = (r * S - i * U - o * b) * F, e[2] = (E * R - d * A + x * T) * F, e[3] = (m * A - h * R - v * T) * F, e[4] = (c * y - s * U - f * g) * F, e[5] = (n * U - r * y + o * g) * F, e[6] = (d * l - p * R - x * _) * F, e[7] = (u * R - m * l + v * _) * F, e[8] = (s * S - a * y + f * w) * F, e[9] = (i * y - n * S - o * w) * F, e[10] = (p * A - E * l + x * M) * F, e[11] = (h * l - u * A - v * M) * F, e[12] = (a * g - s * b - c * w) * F, e[13] = (n * b - i * g + r * w) * F, e[14] = (E * _ - p * T - d * M) * F, e[15] = (u * T - h * _ + m * M) * F, e) : null;
|
|
153
153
|
}
|
|
154
154
|
function Ot(e, t, n) {
|
|
155
|
-
var i = t[0], r = t[1], o = t[2], s = t[3], a = t[4], c = t[5], f = t[6], u = t[7], h = t[8],
|
|
156
|
-
return e[0] = _ * i + l * a + T * h + A * E, e[1] = _ * r + l * c + T *
|
|
155
|
+
var i = t[0], r = t[1], o = t[2], s = t[3], a = t[4], c = t[5], f = t[6], u = t[7], h = t[8], m = t[9], v = t[10], p = t[11], E = t[12], d = t[13], x = t[14], M = t[15], _ = n[0], l = n[1], T = n[2], A = n[3];
|
|
156
|
+
return e[0] = _ * i + l * a + T * h + A * E, e[1] = _ * r + l * c + T * m + A * d, e[2] = _ * o + l * f + T * v + A * x, e[3] = _ * s + l * u + T * p + A * M, _ = n[4], l = n[5], T = n[6], A = n[7], e[4] = _ * i + l * a + T * h + A * E, e[5] = _ * r + l * c + T * m + A * d, e[6] = _ * o + l * f + T * v + A * x, e[7] = _ * s + l * u + T * p + A * M, _ = n[8], l = n[9], T = n[10], A = n[11], e[8] = _ * i + l * a + T * h + A * E, e[9] = _ * r + l * c + T * m + A * d, e[10] = _ * o + l * f + T * v + A * x, e[11] = _ * s + l * u + T * p + A * M, _ = n[12], l = n[13], T = n[14], A = n[15], e[12] = _ * i + l * a + T * h + A * E, e[13] = _ * r + l * c + T * m + A * d, e[14] = _ * o + l * f + T * v + A * x, e[15] = _ * s + l * u + T * p + A * M, e;
|
|
157
157
|
}
|
|
158
158
|
function Dt(e, t, n) {
|
|
159
159
|
var i = n[0], r = n[1], o = n[2];
|
|
160
160
|
return e[0] = t[0] * i, e[1] = t[1] * i, e[2] = t[2] * i, e[3] = t[3] * i, e[4] = t[4] * r, e[5] = t[5] * r, e[6] = t[6] * r, e[7] = t[7] * r, e[8] = t[8] * o, e[9] = t[9] * o, e[10] = t[10] * o, e[11] = t[11] * o, e[12] = t[12], e[13] = t[13], e[14] = t[14], e[15] = t[15], e;
|
|
161
161
|
}
|
|
162
162
|
function $e(e, t) {
|
|
163
|
-
var n = t[0], i = t[1], r = t[2], o = t[3], s = n + n, a = i + i, c = r + r, f = n * s, u = i * s, h = i * a,
|
|
164
|
-
return e[0] = 1 - h - p, e[1] = u + x, e[2] =
|
|
163
|
+
var n = t[0], i = t[1], r = t[2], o = t[3], s = n + n, a = i + i, c = r + r, f = n * s, u = i * s, h = i * a, m = r * s, v = r * a, p = r * c, E = o * s, d = o * a, x = o * c;
|
|
164
|
+
return e[0] = 1 - h - p, e[1] = u + x, e[2] = m - d, e[3] = 0, e[4] = u - x, e[5] = 1 - f - p, e[6] = v + E, e[7] = 0, e[8] = m + d, e[9] = v - E, e[10] = 1 - f - h, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, e;
|
|
165
165
|
}
|
|
166
166
|
function Ct(e, t, n, i, r) {
|
|
167
167
|
var o = 1 / Math.tan(t / 2), s;
|
|
@@ -290,8 +290,8 @@ function nn(e, t) {
|
|
|
290
290
|
return Math.acos(2 * n * n - 1);
|
|
291
291
|
}
|
|
292
292
|
function Le(e, t, n, i) {
|
|
293
|
-
var r = t[0], o = t[1], s = t[2], a = t[3], c = n[0], f = n[1], u = n[2], h = n[3],
|
|
294
|
-
return
|
|
293
|
+
var r = t[0], o = t[1], s = t[2], a = t[3], c = n[0], f = n[1], u = n[2], h = n[3], m, v, p, E, d;
|
|
294
|
+
return v = r * c + o * f + s * u + a * h, v < 0 && (v = -v, c = -c, f = -f, u = -u, h = -h), 1 - v > Pt ? (m = Math.acos(v), p = Math.sin(m), E = Math.sin((1 - i) * m) / p, d = Math.sin(i * m) / p) : (E = 1 - i, d = i), e[0] = E * r + d * c, e[1] = E * o + d * f, e[2] = E * s + d * u, e[3] = E * a + d * h, e;
|
|
295
295
|
}
|
|
296
296
|
function rn(e, t) {
|
|
297
297
|
var n = t[0] + t[4] + t[8], i;
|
|
@@ -383,8 +383,8 @@ const k = 40075017, Ne = (e) => e / 180 * Math.PI, pn = (e) => e * 180 / Math.PI
|
|
|
383
383
|
const r = 2 ** -n;
|
|
384
384
|
return Xe(i, e * r, t * r, 0);
|
|
385
385
|
}, mt = ([e = 0, t = 0, n = 0]) => {
|
|
386
|
-
const i = Math.cos(e * 0.5), r = Math.sin(e * 0.5), o = Math.cos(t * 0.5), s = Math.sin(t * 0.5), a = Math.cos(n * 0.5), c = Math.sin(n * 0.5), f = r * o * a + i * s * c, u = i * s * a - r * o * c, h = i * o * c + r * s * a,
|
|
387
|
-
return [f, u, h,
|
|
386
|
+
const i = Math.cos(e * 0.5), r = Math.sin(e * 0.5), o = Math.cos(t * 0.5), s = Math.sin(t * 0.5), a = Math.cos(n * 0.5), c = Math.sin(n * 0.5), f = r * o * a + i * s * c, u = i * s * a - r * o * c, h = i * o * c + r * s * a, m = i * o * a - r * s * c;
|
|
387
|
+
return [f, u, h, m];
|
|
388
388
|
}, _n = ([e = 0, t = 0, n = 0, i = 0]) => {
|
|
389
389
|
const r = (c, f, u) => Math.max(f, Math.min(c, u)), o = Math.atan2(2 * (i * e - t * n), 1 - 2 * (e * e + t * t)), s = Math.asin(r(2 * (i * t + n * e), -1, 1)), a = Math.atan2(2 * (i * n - e * t), 1 - 2 * (t * t + n * n));
|
|
390
390
|
return [o, s, a];
|
|
@@ -398,8 +398,8 @@ const k = 40075017, Ne = (e) => e / 180 * Math.PI, pn = (e) => e * 180 / Math.PI
|
|
|
398
398
|
const { target: n, offset: i, distance: r, orientation: o, fieldOfView: s } = {
|
|
399
399
|
...vt,
|
|
400
400
|
...e
|
|
401
|
-
}, [a = 0, c = 0] = t, [f = 0, u = 0] = i, h = Math.tan(Ne(45) / 2) / Math.tan(Ne(s) / 2),
|
|
402
|
-
Nt(_), Xt(_, Ne(s), a / c, x,
|
|
401
|
+
}, [a = 0, c = 0] = t, [f = 0, u = 0] = i, h = Math.tan(Ne(45) / 2) / Math.tan(Ne(s) / 2), m = r / k * h, v = Math.max(1e3 / k, m), p = 1e3, E = 1e-3, d = v * p, x = v * E, M = ne(), _ = ue();
|
|
402
|
+
Nt(_), Xt(_, Ne(s), a / c, x, d), Dt(_, _, [1, -1, 1]);
|
|
403
403
|
const l = ue();
|
|
404
404
|
$e(l, mt(o));
|
|
405
405
|
const T = Ot(ue(), _, l), A = It(ue(), T);
|
|
@@ -417,7 +417,7 @@ const k = 40075017, Ne = (e) => e / 180 * Math.PI, pn = (e) => e * 180 / Math.PI
|
|
|
417
417
|
}, b = ([D = 0, j = 0, Z = 0], H = ne()) => it(H, nt(H, D, j, Z, 1), T), [S = 0, U = 0] = w([f + a / 2, u + c / 2]), [F = 0, z = 0, P = 0] = y([S, U, -1, 1]), [X = 0, C = 0, O = 0] = y([S, U, 1.00001, 1]), [G = 0] = xn(
|
|
418
418
|
(X - F) ** 2 + (C - z) ** 2 + (O - P) ** 2,
|
|
419
419
|
2 * (F * (X - F) + z * (C - z) + P * (O - P)),
|
|
420
|
-
F ** 2 + z ** 2 + P ** 2 -
|
|
420
|
+
F ** 2 + z ** 2 + P ** 2 - m ** 2
|
|
421
421
|
);
|
|
422
422
|
if (isNaN(G))
|
|
423
423
|
throw new Error("Unexpected");
|
|
@@ -477,7 +477,7 @@ const k = 40075017, Ne = (e) => e / 180 * Math.PI, pn = (e) => e * 180 / Math.PI
|
|
|
477
477
|
s({
|
|
478
478
|
offset: [R - g / 2, w - y / 2]
|
|
479
479
|
});
|
|
480
|
-
},
|
|
480
|
+
}, m = (R, w, g, y) => {
|
|
481
481
|
if (!o())
|
|
482
482
|
return;
|
|
483
483
|
r() && !c && u([R, w]);
|
|
@@ -496,13 +496,13 @@ const k = 40075017, Ne = (e) => e / 180 * Math.PI, pn = (e) => e * 180 / Math.PI
|
|
|
496
496
|
orientation: P
|
|
497
497
|
});
|
|
498
498
|
};
|
|
499
|
-
let
|
|
499
|
+
let v = !1;
|
|
500
500
|
const p = (R) => {
|
|
501
|
-
R.preventDefault(), c = !1,
|
|
501
|
+
R.preventDefault(), c = !1, v = !0;
|
|
502
502
|
}, E = () => {
|
|
503
|
-
|
|
504
|
-
},
|
|
505
|
-
!i() || !
|
|
503
|
+
v = !1;
|
|
504
|
+
}, d = ({ buttons: R, movementX: w, movementY: g, x: y, y: b }) => {
|
|
505
|
+
!i() || !v || (R === 1 && r() ? h(y, b) : R === 2 && o() && m(y, b, w, g));
|
|
506
506
|
}, x = (R) => {
|
|
507
507
|
R.preventDefault();
|
|
508
508
|
const w = R.touches.item(0);
|
|
@@ -520,9 +520,9 @@ const k = 40075017, Ne = (e) => e / 180 * Math.PI, pn = (e) => e * 180 / Math.PI
|
|
|
520
520
|
k
|
|
521
521
|
), s({ distance: y }), M();
|
|
522
522
|
}, l = (R) => R.preventDefault(), T = (R) => R.preventDefault();
|
|
523
|
-
return e.addEventListener("mousedown", p), e.addEventListener("mousemove",
|
|
523
|
+
return e.addEventListener("mousedown", p), e.addEventListener("mousemove", d), e.addEventListener("touchstart", p, { passive: !1 }), e.addEventListener("touchmove", x, { passive: !1 }), e.addEventListener("gesturestart", l), e.addEventListener("wheel", _, { passive: !0 }), e.addEventListener("contextmenu", T), window.addEventListener("mouseup", E), {
|
|
524
524
|
dispose: () => {
|
|
525
|
-
e.removeEventListener("mousedown", p), e.removeEventListener("mousemove",
|
|
525
|
+
e.removeEventListener("mousedown", p), e.removeEventListener("mousemove", d), e.removeEventListener("touchstart", p), e.removeEventListener("touchmove", x), e.removeEventListener("gesturestart", l), e.removeEventListener("wheel", _), e.removeEventListener("contextmenu", T), window.removeEventListener("mouseup", E);
|
|
526
526
|
}
|
|
527
527
|
};
|
|
528
528
|
}, V = ({
|
|
@@ -747,8 +747,8 @@ const Ai = (e, t = {}) => {
|
|
|
747
747
|
const E = Et({
|
|
748
748
|
gl: n,
|
|
749
749
|
url: p,
|
|
750
|
-
onLoad: ({ width:
|
|
751
|
-
r = [
|
|
750
|
+
onLoad: ({ width: d, height: x }) => {
|
|
751
|
+
r = [d, 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 = E;
|
|
752
752
|
}
|
|
753
753
|
});
|
|
754
754
|
}
|
|
@@ -757,7 +757,7 @@ const Ai = (e, t = {}) => {
|
|
|
757
757
|
uvBuffer: s,
|
|
758
758
|
indexBuffer: a
|
|
759
759
|
}), h = ({
|
|
760
|
-
viewport: { projection: p, modelView: E, camera:
|
|
760
|
+
viewport: { projection: p, modelView: E, camera: d, screen: x },
|
|
761
761
|
depth: M = !1,
|
|
762
762
|
index: _ = 0
|
|
763
763
|
}) => {
|
|
@@ -767,7 +767,7 @@ const Ai = (e, t = {}) => {
|
|
|
767
767
|
(M ? u : f).execute({
|
|
768
768
|
projection: p,
|
|
769
769
|
modelView: E,
|
|
770
|
-
camera: J(
|
|
770
|
+
camera: J(d),
|
|
771
771
|
screen: x,
|
|
772
772
|
image: i,
|
|
773
773
|
imageSize: r,
|
|
@@ -778,13 +778,13 @@ const Ai = (e, t = {}) => {
|
|
|
778
778
|
maxSizePixels: w,
|
|
779
779
|
index: _
|
|
780
780
|
});
|
|
781
|
-
},
|
|
781
|
+
}, m = () => {
|
|
782
782
|
o.dispose(), s.dispose(), a.dispose(), i?.dispose();
|
|
783
|
-
},
|
|
783
|
+
}, v = _e(t);
|
|
784
784
|
return {
|
|
785
785
|
render: h,
|
|
786
|
-
dispose:
|
|
787
|
-
...
|
|
786
|
+
dispose: m,
|
|
787
|
+
...v
|
|
788
788
|
};
|
|
789
789
|
}, Mn = ({ gl: e, programs: t }, {
|
|
790
790
|
cornerBuffer: n,
|
|
@@ -799,7 +799,7 @@ const Ai = (e, t = {}) => {
|
|
|
799
799
|
stride: 2 * Float32Array.BYTES_PER_ELEMENT
|
|
800
800
|
}), h = f.attribute2f("uv", i, {
|
|
801
801
|
stride: 2 * Float32Array.BYTES_PER_ELEMENT
|
|
802
|
-
}),
|
|
802
|
+
}), m = f.uniformMatrix4f("projection"), v = f.uniformMatrix4f("model_view"), p = f.uniform3i("camera"), E = f.uniform2f("screen"), d = f.uniform1i("image"), x = f.uniform2f("image_size"), M = f.uniform3i("position"), _ = f.uniform4f("color"), l = f.uniform1i("index"), T = f.uniform1f("size"), A = f.uniform1f("min_size_pixels"), R = f.uniform1f("max_size_pixels");
|
|
803
803
|
return { execute: ({
|
|
804
804
|
projection: g,
|
|
805
805
|
modelView: y,
|
|
@@ -814,7 +814,7 @@ const Ai = (e, t = {}) => {
|
|
|
814
814
|
maxSizePixels: O,
|
|
815
815
|
index: G
|
|
816
816
|
}) => {
|
|
817
|
-
f.use(), u.use(), h.use(),
|
|
817
|
+
f.use(), u.use(), h.use(), m.set(g), v.set(y), p.set(b), E.set(S), x.set(F), M.set(z), _.set(P), T.set(X), A.set(C), R.set(O), l.set(G), e.activeTexture(e.TEXTURE0), d.set(0), U.use(), r.use(), e.drawElements(e.TRIANGLES, 6, e.UNSIGNED_SHORT, 0);
|
|
818
818
|
} };
|
|
819
819
|
}, s = o(), a = o(!0);
|
|
820
820
|
return { renderProgram: s, depthProgram: a };
|
|
@@ -938,16 +938,16 @@ const Pi = (e, t = {}) => {
|
|
|
938
938
|
}), u = xt(n);
|
|
939
939
|
u.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);
|
|
940
940
|
const h = ({
|
|
941
|
-
viewport: { projection:
|
|
941
|
+
viewport: { projection: d, modelView: x, camera: M, screen: _ },
|
|
942
942
|
depth: l = !1,
|
|
943
943
|
index: T = 0
|
|
944
944
|
}) => {
|
|
945
|
-
|
|
945
|
+
m(), v();
|
|
946
946
|
const A = t.color?.() ?? [1, 1, 1, 1], R = t.width?.() ?? 1, w = t.minWidthPixels?.() ?? 0, g = t.maxWidthPixels?.() ?? Number.MAX_VALUE, y = t.depthWidthPixels?.(), b = t.dashSize?.() ?? 1e3, S = t.dashOffset?.() ?? 0;
|
|
947
947
|
if (xe(n, l, t))
|
|
948
948
|
return;
|
|
949
949
|
(l ? f : c).execute({
|
|
950
|
-
projection:
|
|
950
|
+
projection: d,
|
|
951
951
|
modelView: x,
|
|
952
952
|
camera: J(M),
|
|
953
953
|
screen: _,
|
|
@@ -961,10 +961,10 @@ const Pi = (e, t = {}) => {
|
|
|
961
961
|
dashSize: b,
|
|
962
962
|
dashOffset: S
|
|
963
963
|
});
|
|
964
|
-
},
|
|
964
|
+
}, m = ae(
|
|
965
965
|
() => t.points?.() ?? [],
|
|
966
|
-
(
|
|
967
|
-
const x =
|
|
966
|
+
(d) => {
|
|
967
|
+
const x = d.flatMap((T) => {
|
|
968
968
|
const [A] = T, [R] = T.slice(-1);
|
|
969
969
|
return !A || !R ? [] : ((g) => {
|
|
970
970
|
const y = new Array(g.length * 3 * 4);
|
|
@@ -977,7 +977,7 @@ const Pi = (e, t = {}) => {
|
|
|
977
977
|
}
|
|
978
978
|
return y;
|
|
979
979
|
})([A, ...T, R].map((g) => J(N(g))));
|
|
980
|
-
}), { indexData: M } =
|
|
980
|
+
}), { indexData: M } = d.reduce(
|
|
981
981
|
({ indexData: T, count: A }, R) => {
|
|
982
982
|
if (R.length === 0)
|
|
983
983
|
return { indexData: T, count: A };
|
|
@@ -1000,7 +1000,7 @@ const Pi = (e, t = {}) => {
|
|
|
1000
1000
|
{ indexData: [], count: 0 }
|
|
1001
1001
|
);
|
|
1002
1002
|
i = M.length;
|
|
1003
|
-
const _ =
|
|
1003
|
+
const _ = d.flatMap(
|
|
1004
1004
|
(T) => T.length === 0 ? [] : ve(0, (T.length + 1) * 2).flatMap(() => [
|
|
1005
1005
|
-1,
|
|
1006
1006
|
-1,
|
|
@@ -1014,7 +1014,7 @@ const Pi = (e, t = {}) => {
|
|
|
1014
1014
|
1,
|
|
1015
1015
|
1
|
|
1016
1016
|
])
|
|
1017
|
-
), l =
|
|
1017
|
+
), l = d.flatMap((T) => {
|
|
1018
1018
|
const R = T.map(
|
|
1019
1019
|
(b, S) => Ae(N(b), N(T[S - 1] ?? b)) * k
|
|
1020
1020
|
).reduce(
|
|
@@ -1030,19 +1030,19 @@ const Pi = (e, t = {}) => {
|
|
|
1030
1030
|
});
|
|
1031
1031
|
r.set(x), o.set(M), s.set(_), a.set(l);
|
|
1032
1032
|
}
|
|
1033
|
-
),
|
|
1033
|
+
), v = ae(
|
|
1034
1034
|
() => t.dashPattern?.(),
|
|
1035
|
-
(
|
|
1036
|
-
|
|
1035
|
+
(d) => {
|
|
1036
|
+
d = d ?? [[1, 1, 1, 1]], u.use(), n.texImage2D(
|
|
1037
1037
|
n.TEXTURE_2D,
|
|
1038
1038
|
0,
|
|
1039
1039
|
n.RGBA,
|
|
1040
|
-
|
|
1040
|
+
d.length,
|
|
1041
1041
|
1,
|
|
1042
1042
|
0,
|
|
1043
1043
|
n.RGBA,
|
|
1044
1044
|
n.UNSIGNED_BYTE,
|
|
1045
|
-
new Uint8Array(
|
|
1045
|
+
new Uint8Array(d.flatMap((x) => [...x.map((M) => M * 255)]))
|
|
1046
1046
|
);
|
|
1047
1047
|
}
|
|
1048
1048
|
), p = () => {
|
|
@@ -1063,15 +1063,15 @@ const Pi = (e, t = {}) => {
|
|
|
1063
1063
|
const u = t.get({
|
|
1064
1064
|
vertexSource: bn,
|
|
1065
1065
|
fragmentSource: f ? Ee : An
|
|
1066
|
-
}), h = Float32Array.BYTES_PER_ELEMENT,
|
|
1067
|
-
stride:
|
|
1066
|
+
}), h = Float32Array.BYTES_PER_ELEMENT, m = Int32Array.BYTES_PER_ELEMENT, v = u.attribute3i("previous", n, {
|
|
1067
|
+
stride: m * 3
|
|
1068
1068
|
}), p = u.attribute3i("current", n, {
|
|
1069
|
-
stride:
|
|
1070
|
-
offset:
|
|
1069
|
+
stride: m * 3,
|
|
1070
|
+
offset: m * 3 * 4
|
|
1071
1071
|
}), E = u.attribute3i("next", n, {
|
|
1072
|
-
stride:
|
|
1073
|
-
offset:
|
|
1074
|
-
}),
|
|
1072
|
+
stride: m * 3,
|
|
1073
|
+
offset: m * 3 * 4 * 2
|
|
1074
|
+
}), d = u.attribute2f("corner", r, {
|
|
1075
1075
|
stride: h * 2
|
|
1076
1076
|
}), x = u.attribute1f("distance", o, {
|
|
1077
1077
|
stride: h,
|
|
@@ -1092,7 +1092,7 @@ const Pi = (e, t = {}) => {
|
|
|
1092
1092
|
dashSize: Je,
|
|
1093
1093
|
dashOffset: D
|
|
1094
1094
|
}) => {
|
|
1095
|
-
O !== 0 && (u.use(),
|
|
1095
|
+
O !== 0 && (u.use(), v.use(), p.use(), E.use(), d.use(), x.use(), M.set(z), _.set(P), l.set(X), T.set(C), A.set(G), R.set($), g.set(K), w.set(Q), y.set(Y), S.set(Je), U.set(D), e.activeTexture(e.TEXTURE0), b.set(0), q.use(), i.use(), e.drawElements(e.TRIANGLES, O, e.UNSIGNED_SHORT, 0));
|
|
1096
1096
|
} };
|
|
1097
1097
|
}, a = s(), c = s(!0);
|
|
1098
1098
|
return { renderProgram: a, depthProgram: c };
|
|
@@ -1155,7 +1155,7 @@ const zi = (e, t = {}) => {
|
|
|
1155
1155
|
indexBuffer: o,
|
|
1156
1156
|
normalBuffer: s
|
|
1157
1157
|
}), f = ({
|
|
1158
|
-
viewport: { projection:
|
|
1158
|
+
viewport: { projection: v, modelView: p, camera: E, screen: d },
|
|
1159
1159
|
depth: x = !1,
|
|
1160
1160
|
index: M = 0
|
|
1161
1161
|
}) => {
|
|
@@ -1164,10 +1164,10 @@ const zi = (e, t = {}) => {
|
|
|
1164
1164
|
return;
|
|
1165
1165
|
const y = ([S = 0, U = 0, F = 0, z = 0]) => [-S, U, F, z];
|
|
1166
1166
|
(x ? c : a).execute({
|
|
1167
|
-
projection:
|
|
1167
|
+
projection: v,
|
|
1168
1168
|
modelView: p,
|
|
1169
1169
|
camera: J(E),
|
|
1170
|
-
screen:
|
|
1170
|
+
screen: d,
|
|
1171
1171
|
count: i,
|
|
1172
1172
|
position: J(N(_)),
|
|
1173
1173
|
orientation: $e(ue(), y(l)),
|
|
@@ -1180,19 +1180,19 @@ const zi = (e, t = {}) => {
|
|
|
1180
1180
|
});
|
|
1181
1181
|
}, u = ae(
|
|
1182
1182
|
() => t.mesh?.(),
|
|
1183
|
-
(
|
|
1184
|
-
const { vertices: p = [], indices: E = [], normals:
|
|
1183
|
+
(v) => {
|
|
1184
|
+
const { vertices: p = [], indices: E = [], normals: d = [] } = v ?? {};
|
|
1185
1185
|
r.set(p.flatMap((x) => [...x])), o.set(E.flatMap((x) => [...x])), s.set(
|
|
1186
|
-
|
|
1186
|
+
d.length === 0 ? p.flatMap(() => [0, 0, 0]) : d.flatMap((x) => [...x])
|
|
1187
1187
|
), i = E.length * 3;
|
|
1188
1188
|
}
|
|
1189
1189
|
), h = () => {
|
|
1190
1190
|
r.dispose(), o.dispose(), s.dispose();
|
|
1191
|
-
},
|
|
1191
|
+
}, m = _e(t);
|
|
1192
1192
|
return {
|
|
1193
1193
|
render: f,
|
|
1194
1194
|
dispose: h,
|
|
1195
|
-
...
|
|
1195
|
+
...m
|
|
1196
1196
|
};
|
|
1197
1197
|
}, Pn = ({ gl: e, programs: t }, {
|
|
1198
1198
|
vertexBuffer: n,
|
|
@@ -1203,7 +1203,7 @@ const zi = (e, t = {}) => {
|
|
|
1203
1203
|
const f = t.get({
|
|
1204
1204
|
vertexSource: Fn,
|
|
1205
1205
|
fragmentSource: c ? Ee : Un
|
|
1206
|
-
}), u = f.attribute3f("vertex", n), h = f.attribute3f("normal", r),
|
|
1206
|
+
}), u = f.attribute3f("vertex", n), h = f.attribute3f("normal", r), m = f.uniformMatrix4f("projection"), v = f.uniformMatrix4f("model_view"), p = f.uniform3i("camera"), E = f.uniform3i("position"), d = f.uniformMatrix4f("orientation"), x = f.uniform2f("screen"), M = f.uniform4f("color"), _ = f.uniform4f("diffuse"), l = f.uniform1f("size"), T = f.uniform1f("min_size_pixels"), A = f.uniform1f("max_size_pixels"), R = f.uniform1i("index");
|
|
1207
1207
|
return { execute: ({
|
|
1208
1208
|
projection: g,
|
|
1209
1209
|
modelView: y,
|
|
@@ -1219,57 +1219,24 @@ const zi = (e, t = {}) => {
|
|
|
1219
1219
|
maxSizePixels: G,
|
|
1220
1220
|
index: $
|
|
1221
1221
|
}) => {
|
|
1222
|
-
f.use(), u.use(), h.use(),
|
|
1222
|
+
f.use(), u.use(), h.use(), m.set(g), v.set(y), p.set(b), x.set(S), E.set(F), d.set(z), M.set(P), _.set(X), l.set(C), T.set(O), A.set(G), R.set($), i.use(), e.drawElements(e.TRIANGLES, U, e.UNSIGNED_SHORT, 0);
|
|
1223
1223
|
} };
|
|
1224
1224
|
}, s = o(), a = o(!0);
|
|
1225
1225
|
return { renderProgram: s, depthProgram: a };
|
|
1226
1226
|
};
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
precision highp float;
|
|
1230
|
-
|
|
1231
|
-
in vec4 color_out;
|
|
1232
|
-
out vec4 result;
|
|
1233
|
-
|
|
1234
|
-
void main() {
|
|
1235
|
-
result = color_out;
|
|
1236
|
-
}`, Ln = `#version 300 es
|
|
1237
|
-
|
|
1238
|
-
precision highp float;
|
|
1239
|
-
|
|
1240
|
-
uniform mat4 projection;
|
|
1241
|
-
uniform mat4 model_view;
|
|
1242
|
-
uniform ivec3 camera;
|
|
1243
|
-
uniform vec2 screen;
|
|
1244
|
-
uniform vec4 color;
|
|
1245
|
-
|
|
1246
|
-
in ivec3 position;
|
|
1247
|
-
out vec4 color_out;
|
|
1248
|
-
|
|
1249
|
-
const int ONE = 1073741824;
|
|
1250
|
-
const float INV_ONE = 1.f / float(ONE);
|
|
1251
|
-
|
|
1252
|
-
vec4 transform(ivec3 v) {
|
|
1253
|
-
return projection * model_view * vec4(vec3(v - camera) * INV_ONE, 1.f);
|
|
1254
|
-
}
|
|
1255
|
-
|
|
1256
|
-
void main(void) {
|
|
1257
|
-
gl_Position = transform(position);
|
|
1258
|
-
color_out = color;
|
|
1259
|
-
}`;
|
|
1260
|
-
function Nn(e, t, n = 2) {
|
|
1227
|
+
function zn(e, t, n = 2) {
|
|
1261
1228
|
const i = t && t.length, r = i ? t[0] * n : e.length;
|
|
1262
1229
|
let o = _t(e, 0, r, n, !0);
|
|
1263
1230
|
const s = [];
|
|
1264
1231
|
if (!o || o.next === o.prev)
|
|
1265
1232
|
return s;
|
|
1266
1233
|
let a, c, f;
|
|
1267
|
-
if (i && (o =
|
|
1234
|
+
if (i && (o = Dn(e, t, o, n)), e.length > 80 * n) {
|
|
1268
1235
|
a = 1 / 0, c = 1 / 0;
|
|
1269
1236
|
let u = -1 / 0, h = -1 / 0;
|
|
1270
|
-
for (let
|
|
1271
|
-
const
|
|
1272
|
-
|
|
1237
|
+
for (let m = n; m < r; m += n) {
|
|
1238
|
+
const v = e[m], p = e[m + 1];
|
|
1239
|
+
v < a && (a = v), p < c && (c = p), v > u && (u = v), p > h && (h = p);
|
|
1273
1240
|
}
|
|
1274
1241
|
f = Math.max(u - a, h - c), f = f !== 0 ? 32767 / f : 0;
|
|
1275
1242
|
}
|
|
@@ -1277,7 +1244,7 @@ function Nn(e, t, n = 2) {
|
|
|
1277
1244
|
}
|
|
1278
1245
|
function _t(e, t, n, i, r) {
|
|
1279
1246
|
let o;
|
|
1280
|
-
if (r ===
|
|
1247
|
+
if (r === $n(e, t, n, i) > 0)
|
|
1281
1248
|
for (let s = t; s < n; s += i)
|
|
1282
1249
|
o = st(s / i | 0, e[s], e[s + 1], o);
|
|
1283
1250
|
else
|
|
@@ -1303,57 +1270,57 @@ function ce(e, t) {
|
|
|
1303
1270
|
function ge(e, t, n, i, r, o, s) {
|
|
1304
1271
|
if (!e)
|
|
1305
1272
|
return;
|
|
1306
|
-
!s && o &&
|
|
1273
|
+
!s && o && Bn(e, i, r, o);
|
|
1307
1274
|
let a = e;
|
|
1308
1275
|
for (; e.prev !== e.next; ) {
|
|
1309
1276
|
const c = e.prev, f = e.next;
|
|
1310
|
-
if (o ?
|
|
1277
|
+
if (o ? Nn(e, i, r, o) : Ln(e)) {
|
|
1311
1278
|
t.push(c.i, e.i, f.i), Me(e), e = f.next, a = f.next;
|
|
1312
1279
|
continue;
|
|
1313
1280
|
}
|
|
1314
1281
|
if (e = f, e === a) {
|
|
1315
|
-
s ? s === 1 ? (e =
|
|
1282
|
+
s ? s === 1 ? (e = In(ce(e), t), ge(e, t, n, i, r, o, 2)) : s === 2 && On(e, t, n, i, r, o) : ge(ce(e), t, n, i, r, o, 1);
|
|
1316
1283
|
break;
|
|
1317
1284
|
}
|
|
1318
1285
|
}
|
|
1319
1286
|
}
|
|
1320
|
-
function
|
|
1287
|
+
function Ln(e) {
|
|
1321
1288
|
const t = e.prev, n = e, i = e.next;
|
|
1322
1289
|
if (I(t, n, i) >= 0)
|
|
1323
1290
|
return !1;
|
|
1324
|
-
const r = t.x, o = n.x, s = i.x, a = t.y, c = n.y, f = i.y, u = Math.min(r, o, s), h = Math.min(a, c, f),
|
|
1291
|
+
const r = t.x, o = n.x, s = i.x, a = t.y, c = n.y, f = i.y, u = Math.min(r, o, s), h = Math.min(a, c, f), m = Math.max(r, o, s), v = Math.max(a, c, f);
|
|
1325
1292
|
let p = i.next;
|
|
1326
1293
|
for (; p !== t; ) {
|
|
1327
|
-
if (p.x >= u && p.x <=
|
|
1294
|
+
if (p.x >= u && p.x <= m && p.y >= h && p.y <= v && we(r, a, o, c, s, f, p.x, p.y) && I(p.prev, p, p.next) >= 0)
|
|
1328
1295
|
return !1;
|
|
1329
1296
|
p = p.next;
|
|
1330
1297
|
}
|
|
1331
1298
|
return !0;
|
|
1332
1299
|
}
|
|
1333
|
-
function
|
|
1300
|
+
function Nn(e, t, n, i) {
|
|
1334
1301
|
const r = e.prev, o = e, s = e.next;
|
|
1335
1302
|
if (I(r, o, s) >= 0)
|
|
1336
1303
|
return !1;
|
|
1337
|
-
const a = r.x, c = o.x, f = s.x, u = r.y, h = o.y,
|
|
1304
|
+
const a = r.x, c = o.x, f = s.x, u = r.y, h = o.y, m = s.y, v = Math.min(a, c, f), p = Math.min(u, h, m), E = Math.max(a, c, f), d = Math.max(u, h, m), x = je(v, p, t, n, i), M = je(E, d, t, n, i);
|
|
1338
1305
|
let _ = e.prevZ, l = e.nextZ;
|
|
1339
1306
|
for (; _ && _.z >= x && l && l.z <= M; ) {
|
|
1340
|
-
if (_.x >=
|
|
1307
|
+
if (_.x >= v && _.x <= E && _.y >= p && _.y <= d && _ !== r && _ !== s && we(a, u, c, h, f, m, _.x, _.y) && I(_.prev, _, _.next) >= 0 || (_ = _.prevZ, l.x >= v && l.x <= E && l.y >= p && l.y <= d && l !== r && l !== s && we(a, u, c, h, f, m, l.x, l.y) && I(l.prev, l, l.next) >= 0))
|
|
1341
1308
|
return !1;
|
|
1342
1309
|
l = l.nextZ;
|
|
1343
1310
|
}
|
|
1344
1311
|
for (; _ && _.z >= x; ) {
|
|
1345
|
-
if (_.x >=
|
|
1312
|
+
if (_.x >= v && _.x <= E && _.y >= p && _.y <= d && _ !== r && _ !== s && we(a, u, c, h, f, m, _.x, _.y) && I(_.prev, _, _.next) >= 0)
|
|
1346
1313
|
return !1;
|
|
1347
1314
|
_ = _.prevZ;
|
|
1348
1315
|
}
|
|
1349
1316
|
for (; l && l.z <= M; ) {
|
|
1350
|
-
if (l.x >=
|
|
1317
|
+
if (l.x >= v && l.x <= E && l.y >= p && l.y <= d && l !== r && l !== s && we(a, u, c, h, f, m, l.x, l.y) && I(l.prev, l, l.next) >= 0)
|
|
1351
1318
|
return !1;
|
|
1352
1319
|
l = l.nextZ;
|
|
1353
1320
|
}
|
|
1354
1321
|
return !0;
|
|
1355
1322
|
}
|
|
1356
|
-
function
|
|
1323
|
+
function In(e, t) {
|
|
1357
1324
|
let n = e;
|
|
1358
1325
|
do {
|
|
1359
1326
|
const i = n.prev, r = n.next.next;
|
|
@@ -1361,12 +1328,12 @@ function Dn(e, t) {
|
|
|
1361
1328
|
} while (n !== e);
|
|
1362
1329
|
return ce(n);
|
|
1363
1330
|
}
|
|
1364
|
-
function
|
|
1331
|
+
function On(e, t, n, i, r, o) {
|
|
1365
1332
|
let s = e;
|
|
1366
1333
|
do {
|
|
1367
1334
|
let a = s.next.next;
|
|
1368
1335
|
for (; a !== s.prev; ) {
|
|
1369
|
-
if (s.i !== a.i &&
|
|
1336
|
+
if (s.i !== a.i && Zn(s, a)) {
|
|
1370
1337
|
let c = wt(s, a);
|
|
1371
1338
|
s = ce(s, s.next), c = ce(c, c.next), ge(s, t, n, i, r, o, 0), ge(c, t, n, i, r, o, 0);
|
|
1372
1339
|
return;
|
|
@@ -1376,18 +1343,18 @@ function Cn(e, t, n, i, r, o) {
|
|
|
1376
1343
|
s = s.next;
|
|
1377
1344
|
} while (s !== e);
|
|
1378
1345
|
}
|
|
1379
|
-
function
|
|
1346
|
+
function Dn(e, t, n, i) {
|
|
1380
1347
|
const r = [];
|
|
1381
1348
|
for (let o = 0, s = t.length; o < s; o++) {
|
|
1382
1349
|
const a = t[o] * i, c = o < s - 1 ? t[o + 1] * i : e.length, f = _t(e, a, c, i, !1);
|
|
1383
|
-
f === f.next && (f.steiner = !0), r.push(
|
|
1350
|
+
f === f.next && (f.steiner = !0), r.push(jn(f));
|
|
1384
1351
|
}
|
|
1385
|
-
r.sort(
|
|
1352
|
+
r.sort(Cn);
|
|
1386
1353
|
for (let o = 0; o < r.length; o++)
|
|
1387
|
-
n =
|
|
1354
|
+
n = Xn(r[o], n);
|
|
1388
1355
|
return n;
|
|
1389
1356
|
}
|
|
1390
|
-
function
|
|
1357
|
+
function Cn(e, t) {
|
|
1391
1358
|
let n = e.x - t.x;
|
|
1392
1359
|
if (n === 0 && (n = e.y - t.y, n === 0)) {
|
|
1393
1360
|
const i = (e.next.y - e.y) / (e.next.x - e.x), r = (t.next.y - t.y) / (t.next.x - t.x);
|
|
@@ -1395,14 +1362,14 @@ function Wn(e, t) {
|
|
|
1395
1362
|
}
|
|
1396
1363
|
return n;
|
|
1397
1364
|
}
|
|
1398
|
-
function
|
|
1399
|
-
const n =
|
|
1365
|
+
function Xn(e, t) {
|
|
1366
|
+
const n = Wn(e, t);
|
|
1400
1367
|
if (!n)
|
|
1401
1368
|
return t;
|
|
1402
1369
|
const i = wt(n, e);
|
|
1403
1370
|
return ce(i, i.next), ce(n, n.next);
|
|
1404
1371
|
}
|
|
1405
|
-
function
|
|
1372
|
+
function Wn(e, t) {
|
|
1406
1373
|
let n = t;
|
|
1407
1374
|
const i = e.x, r = e.y;
|
|
1408
1375
|
let o = -1 / 0, s;
|
|
@@ -1426,23 +1393,23 @@ function Bn(e, t) {
|
|
|
1426
1393
|
do {
|
|
1427
1394
|
if (i >= n.x && n.x >= c && i !== n.x && Tt(r < f ? i : o, r, c, f, r < f ? o : i, r, n.x, n.y)) {
|
|
1428
1395
|
const h = Math.abs(r - n.y) / (i - n.x);
|
|
1429
|
-
Re(n, e) && (h < u || h === u && (n.x > s.x || n.x === s.x &&
|
|
1396
|
+
Re(n, e) && (h < u || h === u && (n.x > s.x || n.x === s.x && Gn(s, n))) && (s = n, u = h);
|
|
1430
1397
|
}
|
|
1431
1398
|
n = n.next;
|
|
1432
1399
|
} while (n !== a);
|
|
1433
1400
|
return s;
|
|
1434
1401
|
}
|
|
1435
|
-
function
|
|
1402
|
+
function Gn(e, t) {
|
|
1436
1403
|
return I(e.prev, e, t.prev) < 0 && I(t.next, e, e.next) < 0;
|
|
1437
1404
|
}
|
|
1438
|
-
function
|
|
1405
|
+
function Bn(e, t, n, i) {
|
|
1439
1406
|
let r = e;
|
|
1440
1407
|
do
|
|
1441
1408
|
r.z === 0 && (r.z = je(r.x, r.y, t, n, i)), r.prevZ = r.prev, r.nextZ = r.next, r = r.next;
|
|
1442
1409
|
while (r !== e);
|
|
1443
|
-
r.prevZ.nextZ = null, r.prevZ = null,
|
|
1410
|
+
r.prevZ.nextZ = null, r.prevZ = null, Vn(r);
|
|
1444
1411
|
}
|
|
1445
|
-
function
|
|
1412
|
+
function Vn(e) {
|
|
1446
1413
|
let t, n = 1;
|
|
1447
1414
|
do {
|
|
1448
1415
|
let i = e, r;
|
|
@@ -1465,7 +1432,7 @@ function Zn(e) {
|
|
|
1465
1432
|
function je(e, t, n, i, r) {
|
|
1466
1433
|
return e = (e - n) * r | 0, t = (t - i) * r | 0, 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;
|
|
1467
1434
|
}
|
|
1468
|
-
function
|
|
1435
|
+
function jn(e) {
|
|
1469
1436
|
let t = e, n = e;
|
|
1470
1437
|
do
|
|
1471
1438
|
(t.x < n.x || t.x === n.x && t.y < n.y) && (n = t), t = t.next;
|
|
@@ -1478,9 +1445,9 @@ function Tt(e, t, n, i, r, o, s, a) {
|
|
|
1478
1445
|
function we(e, t, n, i, r, o, s, a) {
|
|
1479
1446
|
return !(e === s && t === a) && Tt(e, t, n, i, r, o, s, a);
|
|
1480
1447
|
}
|
|
1481
|
-
function
|
|
1482
|
-
return e.next.i !== t.i && e.prev.i !== t.i &&
|
|
1483
|
-
(Re(e, t) && Re(t, e) &&
|
|
1448
|
+
function Zn(e, t) {
|
|
1449
|
+
return e.next.i !== t.i && e.prev.i !== t.i && !Yn(e, t) && // dones't intersect other edges
|
|
1450
|
+
(Re(e, t) && Re(t, e) && kn(e, t) && // locally visible
|
|
1484
1451
|
(I(e.prev, e, t.prev) || I(e, t.prev, t)) || // does not create opposite-facing sectors
|
|
1485
1452
|
pe(e, t) && I(e.prev, e, e.next) > 0 && I(t.prev, t, t.next) > 0);
|
|
1486
1453
|
}
|
|
@@ -1500,7 +1467,7 @@ function Fe(e, t, n) {
|
|
|
1500
1467
|
function Pe(e) {
|
|
1501
1468
|
return e > 0 ? 1 : e < 0 ? -1 : 0;
|
|
1502
1469
|
}
|
|
1503
|
-
function
|
|
1470
|
+
function Yn(e, t) {
|
|
1504
1471
|
let n = e;
|
|
1505
1472
|
do {
|
|
1506
1473
|
if (n.i !== e.i && n.next.i !== e.i && n.i !== t.i && n.next.i !== t.i && yt(n, n.next, e, t))
|
|
@@ -1512,7 +1479,7 @@ function $n(e, t) {
|
|
|
1512
1479
|
function Re(e, t) {
|
|
1513
1480
|
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;
|
|
1514
1481
|
}
|
|
1515
|
-
function
|
|
1482
|
+
function kn(e, t) {
|
|
1516
1483
|
let n = e, i = !1;
|
|
1517
1484
|
const r = (e.x + t.x) / 2, o = (e.y + t.y) / 2;
|
|
1518
1485
|
do
|
|
@@ -1550,13 +1517,13 @@ function Ze(e, t, n) {
|
|
|
1550
1517
|
// indicates whether this is a steiner point
|
|
1551
1518
|
};
|
|
1552
1519
|
}
|
|
1553
|
-
function
|
|
1520
|
+
function $n(e, t, n, i) {
|
|
1554
1521
|
let r = 0;
|
|
1555
1522
|
for (let o = t, s = n - i; o < n; o += i)
|
|
1556
1523
|
r += (e[s] - e[o]) * (e[o + 1] + e[s + 1]), s = o;
|
|
1557
1524
|
return r;
|
|
1558
1525
|
}
|
|
1559
|
-
function
|
|
1526
|
+
function Hn(e) {
|
|
1560
1527
|
const t = [], n = [], i = e[0][0].length;
|
|
1561
1528
|
let r = 0, o = 0;
|
|
1562
1529
|
for (const s of e) {
|
|
@@ -1567,6 +1534,39 @@ function Kn(e) {
|
|
|
1567
1534
|
}
|
|
1568
1535
|
return { vertices: t, holes: n, dimensions: i };
|
|
1569
1536
|
}
|
|
1537
|
+
var Jn = `#version 300 es
|
|
1538
|
+
|
|
1539
|
+
precision highp float;
|
|
1540
|
+
|
|
1541
|
+
in vec4 color_out;
|
|
1542
|
+
out vec4 result;
|
|
1543
|
+
|
|
1544
|
+
void main() {
|
|
1545
|
+
result = color_out;
|
|
1546
|
+
}`, Kn = `#version 300 es
|
|
1547
|
+
|
|
1548
|
+
precision highp float;
|
|
1549
|
+
|
|
1550
|
+
uniform mat4 projection;
|
|
1551
|
+
uniform mat4 model_view;
|
|
1552
|
+
uniform ivec3 camera;
|
|
1553
|
+
uniform vec2 screen;
|
|
1554
|
+
uniform vec4 color;
|
|
1555
|
+
|
|
1556
|
+
in ivec3 position;
|
|
1557
|
+
out vec4 color_out;
|
|
1558
|
+
|
|
1559
|
+
const int ONE = 1073741824;
|
|
1560
|
+
const float INV_ONE = 1.f / float(ONE);
|
|
1561
|
+
|
|
1562
|
+
vec4 transform(ivec3 v) {
|
|
1563
|
+
return projection * model_view * vec4(vec3(v - camera) * INV_ONE, 1.f);
|
|
1564
|
+
}
|
|
1565
|
+
|
|
1566
|
+
void main(void) {
|
|
1567
|
+
gl_Position = transform(position);
|
|
1568
|
+
color_out = color;
|
|
1569
|
+
}`;
|
|
1570
1570
|
const Li = (e, t = {}) => {
|
|
1571
1571
|
const { gl: n } = e;
|
|
1572
1572
|
let i = 0;
|
|
@@ -1574,16 +1574,16 @@ const Li = (e, t = {}) => {
|
|
|
1574
1574
|
positionBuffer: r,
|
|
1575
1575
|
indexBuffer: o
|
|
1576
1576
|
}), c = ({
|
|
1577
|
-
viewport: { projection:
|
|
1578
|
-
depth:
|
|
1577
|
+
viewport: { projection: m, modelView: v, camera: p, screen: E },
|
|
1578
|
+
depth: d = !1,
|
|
1579
1579
|
index: x = 0
|
|
1580
1580
|
}) => {
|
|
1581
1581
|
const M = t.color?.() ?? [1, 1, 1, 1];
|
|
1582
|
-
if (f(), xe(n,
|
|
1582
|
+
if (f(), xe(n, d, t))
|
|
1583
1583
|
return;
|
|
1584
|
-
(
|
|
1585
|
-
projection:
|
|
1586
|
-
modelView:
|
|
1584
|
+
(d ? a : s).execute({
|
|
1585
|
+
projection: m,
|
|
1586
|
+
modelView: v,
|
|
1587
1587
|
camera: J(p),
|
|
1588
1588
|
screen: E,
|
|
1589
1589
|
count: i,
|
|
@@ -1592,11 +1592,13 @@ const Li = (e, t = {}) => {
|
|
|
1592
1592
|
});
|
|
1593
1593
|
}, f = ae(
|
|
1594
1594
|
() => t.points?.() ?? [],
|
|
1595
|
-
(
|
|
1596
|
-
const { vertices:
|
|
1597
|
-
|
|
1595
|
+
(m) => {
|
|
1596
|
+
const { vertices: v, indices: p } = qn(
|
|
1597
|
+
m.map(
|
|
1598
|
+
(E) => E.map((d) => d.map((x) => J(N(x)))).filter((d) => d.length > 0)
|
|
1599
|
+
).filter((E) => E.length > 0)
|
|
1598
1600
|
);
|
|
1599
|
-
r.set(
|
|
1601
|
+
r.set(v), o.set(p), i = p.length;
|
|
1600
1602
|
}
|
|
1601
1603
|
), u = () => {
|
|
1602
1604
|
r.dispose(), o.dispose();
|
|
@@ -1612,11 +1614,11 @@ const Li = (e, t = {}) => {
|
|
|
1612
1614
|
}) => {
|
|
1613
1615
|
const r = (a = !1) => {
|
|
1614
1616
|
const c = t.get({
|
|
1615
|
-
vertexSource:
|
|
1616
|
-
fragmentSource: a ? Ee :
|
|
1617
|
+
vertexSource: Kn,
|
|
1618
|
+
fragmentSource: a ? Ee : Jn
|
|
1617
1619
|
}), f = c.attribute3i("position", n, {
|
|
1618
1620
|
stride: 3 * Int32Array.BYTES_PER_ELEMENT
|
|
1619
|
-
}), u = c.uniformMatrix4f("projection"), h = c.uniformMatrix4f("model_view"),
|
|
1621
|
+
}), u = c.uniformMatrix4f("projection"), h = c.uniformMatrix4f("model_view"), m = c.uniform3i("camera"), v = c.uniform2f("screen"), p = c.uniform4f("color"), E = c.uniform1i("index");
|
|
1620
1622
|
return { execute: ({
|
|
1621
1623
|
projection: x,
|
|
1622
1624
|
modelView: M,
|
|
@@ -1626,16 +1628,16 @@ const Li = (e, t = {}) => {
|
|
|
1626
1628
|
color: A,
|
|
1627
1629
|
index: R
|
|
1628
1630
|
}) => {
|
|
1629
|
-
T !== 0 && (c.use(), f.use(), u.set(x), h.set(M),
|
|
1631
|
+
T !== 0 && (c.use(), f.use(), u.set(x), h.set(M), m.set(_), v.set(l), p.set(A), E.set(R), i.use(), e.drawElements(e.TRIANGLES, T, e.UNSIGNED_SHORT, 0));
|
|
1630
1632
|
} };
|
|
1631
1633
|
}, o = r(), s = r(!0);
|
|
1632
1634
|
return { renderProgram: o, depthProgram: s };
|
|
1633
1635
|
}, qn = (e) => {
|
|
1634
1636
|
const [t, n] = e.reduce(
|
|
1635
1637
|
([i, r, o], s) => {
|
|
1636
|
-
const a =
|
|
1638
|
+
const a = Hn(s);
|
|
1637
1639
|
return i.push(...a.vertices), r.push(
|
|
1638
|
-
...
|
|
1640
|
+
...zn(a.vertices, a.holes, a.dimensions).map((c) => c + o)
|
|
1639
1641
|
), o += a.vertices.length / a.dimensions, [i, r, o];
|
|
1640
1642
|
},
|
|
1641
1643
|
[[], [], 0]
|
|
@@ -1701,23 +1703,23 @@ const Ni = (e, t = {}) => {
|
|
|
1701
1703
|
);
|
|
1702
1704
|
const s = ae(
|
|
1703
1705
|
() => t.image?.(),
|
|
1704
|
-
(
|
|
1705
|
-
|
|
1706
|
+
(m) => {
|
|
1707
|
+
m && i.set(m);
|
|
1706
1708
|
}
|
|
1707
1709
|
), { renderProgram: a, depthProgram: c } = ni(e, {
|
|
1708
1710
|
uvBuffer: r,
|
|
1709
1711
|
indexBuffer: o
|
|
1710
1712
|
}), f = ({
|
|
1711
|
-
viewport: { projection:
|
|
1712
|
-
depth:
|
|
1713
|
+
viewport: { projection: m, modelView: v, camera: p, screen: E },
|
|
1714
|
+
depth: d = !1,
|
|
1713
1715
|
index: x = 0
|
|
1714
1716
|
}) => {
|
|
1715
1717
|
const M = t.position?.() ?? [0, 0, 0], _ = t.orientation?.() ?? [0, 0, 0, 1], l = t.range?.() ?? 1e3;
|
|
1716
|
-
if (s(), xe(n,
|
|
1718
|
+
if (s(), xe(n, d, t))
|
|
1717
1719
|
return;
|
|
1718
|
-
(
|
|
1719
|
-
projection:
|
|
1720
|
-
modelView:
|
|
1720
|
+
(d ? c : a).execute({
|
|
1721
|
+
projection: m,
|
|
1722
|
+
modelView: v,
|
|
1721
1723
|
camera: J(p),
|
|
1722
1724
|
screen: E,
|
|
1723
1725
|
image: i,
|
|
@@ -1744,7 +1746,7 @@ const Ni = (e, t = {}) => {
|
|
|
1744
1746
|
fragmentSource: a ? Ee : ei
|
|
1745
1747
|
}), f = c.attribute2f("uv", n, {
|
|
1746
1748
|
stride: 2 * Float32Array.BYTES_PER_ELEMENT
|
|
1747
|
-
}), u = c.uniformMatrix4f("projection"), h = c.uniformMatrix4f("model_view"),
|
|
1749
|
+
}), u = c.uniformMatrix4f("projection"), h = c.uniformMatrix4f("model_view"), m = c.uniform3i("camera"), v = c.uniform2f("screen"), p = c.uniform1i("image"), E = c.uniform1f("range"), d = c.uniform3i("position"), x = c.uniformMatrix4f("orientation"), M = c.uniform1i("index");
|
|
1748
1750
|
return { execute: ({
|
|
1749
1751
|
projection: l,
|
|
1750
1752
|
modelView: T,
|
|
@@ -1756,7 +1758,7 @@ const Ni = (e, t = {}) => {
|
|
|
1756
1758
|
orientation: b,
|
|
1757
1759
|
index: S
|
|
1758
1760
|
}) => {
|
|
1759
|
-
c.use(), f.use(), u.set(l), h.set(T),
|
|
1761
|
+
c.use(), f.use(), u.set(l), h.set(T), m.set(A), v.set(R), E.set(g), d.set(y), x.set(b), M.set(S), e.activeTexture(e.TEXTURE0), p.set(0), w.use(), i.use(), e.drawElements(e.TRIANGLES, 6, e.UNSIGNED_SHORT, 0);
|
|
1760
1762
|
} };
|
|
1761
1763
|
}, o = r(), s = r(!0);
|
|
1762
1764
|
return { renderProgram: o, depthProgram: s };
|
|
@@ -2014,21 +2016,21 @@ class He {
|
|
|
2014
2016
|
return this.#p;
|
|
2015
2017
|
}
|
|
2016
2018
|
constructor(t) {
|
|
2017
|
-
const { max: n = 0, ttl: i, ttlResolution: r = 1, ttlAutopurge: o, updateAgeOnGet: s, updateAgeOnHas: a, allowStale: c, dispose: f, disposeAfter: u, noDisposeOnSet: h, noUpdateTTL:
|
|
2019
|
+
const { max: n = 0, ttl: i, ttlResolution: r = 1, ttlAutopurge: o, updateAgeOnGet: s, updateAgeOnHas: a, allowStale: c, dispose: f, disposeAfter: u, noDisposeOnSet: h, noUpdateTTL: m, maxSize: v = 0, maxEntrySize: p = 0, sizeCalculation: E, fetchMethod: d, noDeleteOnFetchRejection: x, noDeleteOnStaleGet: M, allowStaleOnFetchRejection: _, allowStaleOnFetchAbort: l, ignoreFetchAbort: T } = t;
|
|
2018
2020
|
if (n !== 0 && !ee(n))
|
|
2019
2021
|
throw new TypeError("max option must be a nonnegative integer");
|
|
2020
2022
|
const A = n ? Mt(n) : Array;
|
|
2021
2023
|
if (!A)
|
|
2022
2024
|
throw new Error("invalid max value: " + n);
|
|
2023
|
-
if (this.#a = n, this.#u =
|
|
2025
|
+
if (this.#a = n, this.#u = v, this.maxEntrySize = p || this.#u, this.sizeCalculation = E, this.sizeCalculation) {
|
|
2024
2026
|
if (!this.#u && !this.maxEntrySize)
|
|
2025
2027
|
throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");
|
|
2026
2028
|
if (typeof this.sizeCalculation != "function")
|
|
2027
2029
|
throw new TypeError("sizeCalculation set to non-function");
|
|
2028
2030
|
}
|
|
2029
|
-
if (
|
|
2031
|
+
if (d !== void 0 && typeof d != "function")
|
|
2030
2032
|
throw new TypeError("fetchMethod must be a function if specified");
|
|
2031
|
-
if (this.#U =
|
|
2033
|
+
if (this.#U = d, this.#M = !!d, this.#i = /* @__PURE__ */ new Map(), this.#n = new Array(n).fill(void 0), this.#e = new Array(n).fill(void 0), this.#f = new A(n), this.#h = new A(n), this.#c = 0, this.#o = 0, this.#E = de.create(n), this.#r = 0, this.#x = 0, typeof f == "function" && (this.#v = f), typeof u == "function" ? (this.#p = u, this.#s = []) : (this.#p = void 0, this.#s = void 0), this.#y = !!this.#v, this.#l = !!this.#p, this.noDisposeOnSet = !!h, this.noUpdateTTL = !!m, this.noDeleteOnFetchRejection = !!x, this.allowStaleOnFetchRejection = !!_, this.allowStaleOnFetchAbort = !!l, this.ignoreFetchAbort = !!T, this.maxEntrySize !== 0) {
|
|
2032
2034
|
if (this.#u !== 0 && !ee(this.#u))
|
|
2033
2035
|
throw new TypeError("maxSize must be a positive integer if specified");
|
|
2034
2036
|
if (!ee(this.maxEntrySize))
|
|
@@ -2344,27 +2346,27 @@ class He {
|
|
|
2344
2346
|
h = this.#r === 0 ? this.#o : this.#E.length !== 0 ? this.#E.pop() : this.#r === this.#a ? this.#P(!1) : this.#r, this.#n[h] = t, this.#e[h] = n, this.#i.set(t, h), this.#f[this.#o] = h, this.#h[h] = this.#o, this.#o = h, this.#r++, this.#F(h, u, c), c && (c.set = "add"), f = !1;
|
|
2345
2347
|
else {
|
|
2346
2348
|
this.#S(h);
|
|
2347
|
-
const
|
|
2348
|
-
if (n !==
|
|
2349
|
-
if (this.#M && this.#t(
|
|
2350
|
-
|
|
2351
|
-
const { __staleWhileFetching:
|
|
2352
|
-
|
|
2349
|
+
const m = this.#e[h];
|
|
2350
|
+
if (n !== m) {
|
|
2351
|
+
if (this.#M && this.#t(m)) {
|
|
2352
|
+
m.__abortController.abort(new Error("replaced"));
|
|
2353
|
+
const { __staleWhileFetching: v } = m;
|
|
2354
|
+
v !== void 0 && !s && (this.#y && this.#v?.(v, t, "set"), this.#l && this.#s?.push([v, t, "set"]));
|
|
2353
2355
|
} else
|
|
2354
|
-
s || (this.#y && this.#v?.(
|
|
2356
|
+
s || (this.#y && this.#v?.(m, t, "set"), this.#l && this.#s?.push([m, t, "set"]));
|
|
2355
2357
|
if (this.#b(h), this.#F(h, u, c), this.#e[h] = n, c) {
|
|
2356
2358
|
c.set = "replace";
|
|
2357
|
-
const
|
|
2358
|
-
|
|
2359
|
+
const v = m && this.#t(m) ? m.__staleWhileFetching : m;
|
|
2360
|
+
v !== void 0 && (c.oldValue = v);
|
|
2359
2361
|
}
|
|
2360
2362
|
} else
|
|
2361
2363
|
c && (c.set = "update");
|
|
2362
2364
|
}
|
|
2363
2365
|
if (r !== 0 && !this.#d && this.#L(), this.#d && (f || this.#N(h, r, o), c && this.#R(c, h)), !s && this.#l && this.#s) {
|
|
2364
|
-
const
|
|
2365
|
-
let
|
|
2366
|
-
for (;
|
|
2367
|
-
this.#p?.(...
|
|
2366
|
+
const m = this.#s;
|
|
2367
|
+
let v;
|
|
2368
|
+
for (; v = m?.shift(); )
|
|
2369
|
+
this.#p?.(...v);
|
|
2368
2370
|
}
|
|
2369
2371
|
return this;
|
|
2370
2372
|
}
|
|
@@ -2443,26 +2445,26 @@ class He {
|
|
|
2443
2445
|
signal: s.signal,
|
|
2444
2446
|
options: i,
|
|
2445
2447
|
context: r
|
|
2446
|
-
}, f = (E,
|
|
2448
|
+
}, f = (E, d = !1) => {
|
|
2447
2449
|
const { aborted: x } = s.signal, M = i.ignoreFetchAbort && E !== void 0;
|
|
2448
|
-
if (i.status && (x && !
|
|
2450
|
+
if (i.status && (x && !d ? (i.status.fetchAborted = !0, i.status.fetchError = s.signal.reason, M && (i.status.fetchAbortIgnored = !0)) : i.status.fetchResolved = !0), x && !M && !d)
|
|
2449
2451
|
return h(s.signal.reason);
|
|
2450
|
-
const _ =
|
|
2451
|
-
return this.#e[n] ===
|
|
2452
|
+
const _ = v;
|
|
2453
|
+
return this.#e[n] === v && (E === void 0 ? _.__staleWhileFetching ? this.#e[n] = _.__staleWhileFetching : this.delete(t) : (i.status && (i.status.fetchUpdated = !0), this.set(t, E, c.options))), E;
|
|
2452
2454
|
}, u = (E) => (i.status && (i.status.fetchRejected = !0, i.status.fetchError = E), h(E)), h = (E) => {
|
|
2453
|
-
const { aborted:
|
|
2454
|
-
if (this.#e[n] ===
|
|
2455
|
+
const { aborted: d } = s.signal, x = d && i.allowStaleOnFetchAbort, M = x || i.allowStaleOnFetchRejection, _ = M || i.noDeleteOnFetchRejection, l = v;
|
|
2456
|
+
if (this.#e[n] === v && (!_ || l.__staleWhileFetching === void 0 ? this.delete(t) : x || (this.#e[n] = l.__staleWhileFetching)), M)
|
|
2455
2457
|
return i.status && l.__staleWhileFetching !== void 0 && (i.status.returnedStale = !0), l.__staleWhileFetching;
|
|
2456
2458
|
if (l.__returned === l)
|
|
2457
2459
|
throw E;
|
|
2458
|
-
},
|
|
2460
|
+
}, m = (E, d) => {
|
|
2459
2461
|
const x = this.#U?.(t, o, c);
|
|
2460
|
-
x && x instanceof Promise && x.then((M) => E(M === void 0 ? void 0 : M),
|
|
2462
|
+
x && x instanceof Promise && x.then((M) => E(M === void 0 ? void 0 : M), d), s.signal.addEventListener("abort", () => {
|
|
2461
2463
|
(!i.ignoreFetchAbort || i.allowStaleOnFetchAbort) && (E(void 0), i.allowStaleOnFetchAbort && (E = (M) => f(M, !0)));
|
|
2462
2464
|
});
|
|
2463
2465
|
};
|
|
2464
2466
|
i.status && (i.status.fetchDispatched = !0);
|
|
2465
|
-
const
|
|
2467
|
+
const v = new Promise(m).then(f, u), p = Object.assign(v, {
|
|
2466
2468
|
__abortController: s,
|
|
2467
2469
|
__staleWhileFetching: o,
|
|
2468
2470
|
__returned: void 0
|
|
@@ -2489,11 +2491,11 @@ class He {
|
|
|
2489
2491
|
noUpdateTTL: u = this.noUpdateTTL,
|
|
2490
2492
|
// fetch exclusive options
|
|
2491
2493
|
noDeleteOnFetchRejection: h = this.noDeleteOnFetchRejection,
|
|
2492
|
-
allowStaleOnFetchRejection:
|
|
2493
|
-
ignoreFetchAbort:
|
|
2494
|
+
allowStaleOnFetchRejection: m = this.allowStaleOnFetchRejection,
|
|
2495
|
+
ignoreFetchAbort: v = this.ignoreFetchAbort,
|
|
2494
2496
|
allowStaleOnFetchAbort: p = this.allowStaleOnFetchAbort,
|
|
2495
2497
|
context: E,
|
|
2496
|
-
forceRefresh:
|
|
2498
|
+
forceRefresh: d = !1,
|
|
2497
2499
|
status: x,
|
|
2498
2500
|
signal: M
|
|
2499
2501
|
} = n;
|
|
@@ -2514,9 +2516,9 @@ class He {
|
|
|
2514
2516
|
sizeCalculation: f,
|
|
2515
2517
|
noUpdateTTL: u,
|
|
2516
2518
|
noDeleteOnFetchRejection: h,
|
|
2517
|
-
allowStaleOnFetchRejection:
|
|
2519
|
+
allowStaleOnFetchRejection: m,
|
|
2518
2520
|
allowStaleOnFetchAbort: p,
|
|
2519
|
-
ignoreFetchAbort:
|
|
2521
|
+
ignoreFetchAbort: v,
|
|
2520
2522
|
status: x,
|
|
2521
2523
|
signal: M
|
|
2522
2524
|
};
|
|
@@ -2532,7 +2534,7 @@ class He {
|
|
|
2532
2534
|
return x && (x.fetch = "inflight", y && (x.returnedStale = !0)), y ? T.__staleWhileFetching : T.__returned = T;
|
|
2533
2535
|
}
|
|
2534
2536
|
const A = this.#m(l);
|
|
2535
|
-
if (!
|
|
2537
|
+
if (!d && !A)
|
|
2536
2538
|
return x && (x.fetch = "hit"), this.#S(l), r && this.#A(l), x && this.#R(x, l), T;
|
|
2537
2539
|
const R = this.#z(t, l, _, E), g = R.__staleWhileFetching !== void 0 && i;
|
|
2538
2540
|
return x && (x.fetch = A ? "stale" : "refresh", g && A && (x.returnedStale = !0)), g ? R.__staleWhileFetching : R.__returned = R;
|
|
@@ -2645,21 +2647,21 @@ const Ce = (e) => {
|
|
|
2645
2647
|
const h = i.get([c, f, u]);
|
|
2646
2648
|
if (!h)
|
|
2647
2649
|
return;
|
|
2648
|
-
const { texture:
|
|
2649
|
-
if (
|
|
2650
|
-
return { buffer:
|
|
2650
|
+
const { texture: m, downsample: v } = h, p = 2 ** v, E = [Math.floor(c / p), Math.floor(f / p), u - v], d = n.get(E);
|
|
2651
|
+
if (d)
|
|
2652
|
+
return { buffer: d, downsample: v };
|
|
2651
2653
|
const x = new Uint8Array(4 * ie * ie);
|
|
2652
|
-
return e.bindFramebuffer(e.FRAMEBUFFER, r),
|
|
2654
|
+
return e.bindFramebuffer(e.FRAMEBUFFER, r), m.attach(), e.readPixels(0, 0, ie, ie, e.RGBA, e.UNSIGNED_BYTE, x), e.bindFramebuffer(e.FRAMEBUFFER, null), n.set(E, x), { buffer: x, downsample: v };
|
|
2653
2655
|
};
|
|
2654
2656
|
return { get: ([c = 0, f = 0], u = oi) => {
|
|
2655
|
-
const h = 2 ** u,
|
|
2656
|
-
let [E = 0,
|
|
2657
|
-
const x = o([
|
|
2657
|
+
const h = 2 ** u, m = N([c, f, 0]).map((y) => y * h), [v = 0, p = 0] = m.map((y) => Math.floor(y % h));
|
|
2658
|
+
let [E = 0, d = 0] = m.map((y) => y % 1);
|
|
2659
|
+
const x = o([v, p, u]);
|
|
2658
2660
|
if (!x)
|
|
2659
2661
|
return 0;
|
|
2660
2662
|
const { buffer: M, downsample: _ } = x, l = 2 ** _;
|
|
2661
|
-
[E,
|
|
2662
|
-
const T = 4 * ie * Math.floor(
|
|
2663
|
+
[E, d] = [(v % l + E) / l, (p % l + d) / l];
|
|
2664
|
+
const T = 4 * ie * Math.floor(d * ie) + 4 * Math.floor(E * ie), [A = 0, R = 0, w = 0] = M.slice(T, T + 4);
|
|
2663
2665
|
return (A * 65536 + R * 256 + w) / 10 - 1e4;
|
|
2664
2666
|
}, dispose: () => {
|
|
2665
2667
|
e.deleteFramebuffer(r);
|
|
@@ -2699,21 +2701,21 @@ const at = ({
|
|
|
2699
2701
|
return r.delete(c), f;
|
|
2700
2702
|
r.set(c, !0);
|
|
2701
2703
|
} else {
|
|
2702
|
-
const [u = 0, h = 0,
|
|
2703
|
-
let
|
|
2704
|
-
if (
|
|
2705
|
-
const [E = 0,
|
|
2704
|
+
const [u = 0, h = 0, m = 0] = c;
|
|
2705
|
+
let v = t.replace("{x}", `${u}`).replace("{y}", `${h}`).replace("{z}", `${m}`);
|
|
2706
|
+
if (v.includes("{bbox}")) {
|
|
2707
|
+
const [E = 0, d = 0, x = 0] = c, M = 2 ** x - d - 1, [[_, l] = [], [T, A] = []] = [
|
|
2706
2708
|
[0, 0],
|
|
2707
2709
|
[1, 1]
|
|
2708
2710
|
].map(([R = 0, w = 0]) => [E + R, M + w, x]).map((R) => dt(R, R)).map(([R = 0, w = 0]) => [
|
|
2709
2711
|
(R - 0.5) * 2 * Math.PI * 6378137,
|
|
2710
2712
|
(w - 0.5) * 2 * Math.PI * 6378137
|
|
2711
2713
|
]);
|
|
2712
|
-
|
|
2714
|
+
v = v.replace("{bbox}", [_, l, T, A].join(","));
|
|
2713
2715
|
}
|
|
2714
2716
|
const p = Et({
|
|
2715
2717
|
gl: e,
|
|
2716
|
-
url:
|
|
2718
|
+
url: v,
|
|
2717
2719
|
onLoad: () => {
|
|
2718
2720
|
r.delete(c), n?.();
|
|
2719
2721
|
}
|
|
@@ -2739,12 +2741,12 @@ const at = ({
|
|
|
2739
2741
|
if (o)
|
|
2740
2742
|
return o;
|
|
2741
2743
|
const [s = 0, a = 0, c = 0] = r, f = Math.max(c - 5, 0), u = new Array(4), h = L();
|
|
2742
|
-
for (let
|
|
2743
|
-
const [
|
|
2744
|
-
dt([s +
|
|
2744
|
+
for (let m = 0; m < n.length; m++) {
|
|
2745
|
+
const [v = 0, p = 0] = n[m] ?? [], [E = 0, d = 0] = se(
|
|
2746
|
+
dt([s + v, a + p, c], h),
|
|
2745
2747
|
h
|
|
2746
2748
|
);
|
|
2747
|
-
u[
|
|
2749
|
+
u[m] = N([E, d, e.get([E, d], f)]);
|
|
2748
2750
|
}
|
|
2749
2751
|
return t.set(r, u), u;
|
|
2750
2752
|
} };
|
|
@@ -2830,12 +2832,12 @@ const B = 34, li = 22, ui = ve(0, B).flatMap(
|
|
|
2830
2832
|
onLoad: () => {
|
|
2831
2833
|
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);
|
|
2832
2834
|
}
|
|
2833
|
-
}), u = Ye(f, 3), h = si({ gl: n, terrainCache: f }),
|
|
2834
|
-
|
|
2835
|
+
}), u = Ye(f, 3), h = si({ gl: n, terrainCache: f }), m = ai(h), v = V({ gl: n, type: "f32", target: "array" });
|
|
2836
|
+
v.set(hi.flatMap(([g = 0, y = 0, b = 0]) => [g, y, b]));
|
|
2835
2837
|
const p = V({ gl: n, type: "u16", target: "element" });
|
|
2836
2838
|
p.set(ui);
|
|
2837
|
-
const { renderProgram: E, depthProgram:
|
|
2838
|
-
uvwBuffer:
|
|
2839
|
+
const { renderProgram: E, depthProgram: d } = di(e, {
|
|
2840
|
+
uvwBuffer: v,
|
|
2839
2841
|
indexBuffer: p
|
|
2840
2842
|
}), x = [0, 1, 2, 3], M = x.map(L), _ = x.map(ne), l = x.map(me), T = (g) => {
|
|
2841
2843
|
const y = new Array([0, 0, 0]), b = new Array(), { worldToLocal: S, localToClip: U, clipToScreen: F } = g, z = 512 * Math.pow(2, t.downsample?.() ?? 0);
|
|
@@ -2843,7 +2845,7 @@ const B = 34, li = 22, ui = ve(0, B).flatMap(
|
|
|
2843
2845
|
const P = y.pop();
|
|
2844
2846
|
if (!P)
|
|
2845
2847
|
break;
|
|
2846
|
-
const [X = 0, C = 0, O = 0] = P, $ =
|
|
2848
|
+
const [X = 0, C = 0, O = 0] = P, $ = m.get(P).map((Y, q) => S(Y, M[q])).map((Y, q) => U(Y, _[q]));
|
|
2847
2849
|
if (mi($))
|
|
2848
2850
|
continue;
|
|
2849
2851
|
vi(
|
|
@@ -2864,7 +2866,7 @@ const B = 34, li = 22, ui = ve(0, B).flatMap(
|
|
|
2864
2866
|
const S = t.color?.() ?? [1, 1, 1, 1];
|
|
2865
2867
|
if (a(), xe(n, y, t))
|
|
2866
2868
|
return;
|
|
2867
|
-
const U = y ?
|
|
2869
|
+
const U = y ? d : E, { projection: F, modelView: z, camera: P } = g, X = T(g);
|
|
2868
2870
|
for (const C of X) {
|
|
2869
2871
|
const O = y ? void 0 : r?.get(C), G = u.get(C);
|
|
2870
2872
|
if (!y && !O || !G)
|
|
@@ -2897,7 +2899,7 @@ const B = 34, li = 22, ui = ve(0, B).flatMap(
|
|
|
2897
2899
|
const c = t.get({
|
|
2898
2900
|
vertexSource: fi,
|
|
2899
2901
|
fragmentSource: a ? Ee : ci
|
|
2900
|
-
}), f = c.attribute3f("uvw", n), u = c.uniformMatrix4f("projection"), h = c.uniformMatrix4f("model_view"),
|
|
2902
|
+
}), f = c.attribute3f("uvw", n), u = c.uniformMatrix4f("projection"), h = c.uniformMatrix4f("model_view"), m = c.uniform1i("imagery"), v = c.uniform1i("terrain"), p = c.uniform1i("downsample_imagery"), E = c.uniform1i("downsample_terrain"), d = c.uniform4f("color"), x = c.uniform3i("xyz"), M = c.uniform3i("camera"), _ = c.uniform1i("index");
|
|
2901
2903
|
return { execute: ({
|
|
2902
2904
|
projection: T,
|
|
2903
2905
|
modelView: A,
|
|
@@ -2910,7 +2912,7 @@ const B = 34, li = 22, ui = ve(0, B).flatMap(
|
|
|
2910
2912
|
color: U,
|
|
2911
2913
|
index: F
|
|
2912
2914
|
}) => {
|
|
2913
|
-
c.use(), f.use(), u.set(T), h.set(A), x.set(w), M.set(R), p.set(b), E.set(S),
|
|
2915
|
+
c.use(), f.use(), u.set(T), h.set(A), x.set(w), M.set(R), p.set(b), E.set(S), d.set(U), _.set(F), e.activeTexture(e.TEXTURE0), m.set(0), g.use(), e.activeTexture(e.TEXTURE1), v.set(1), y.use(), i.use(), e.drawElements(e.TRIANGLES, B * B * 2 * 3, e.UNSIGNED_SHORT, 0);
|
|
2914
2916
|
} };
|
|
2915
2917
|
}, o = r(), s = r(!0);
|
|
2916
2918
|
return { renderProgram: o, depthProgram: s };
|
|
@@ -2922,8 +2924,8 @@ const B = 34, li = 22, ui = ve(0, B).flatMap(
|
|
|
2922
2924
|
)
|
|
2923
2925
|
).reduce((t, n) => t + n, 0) / e.length
|
|
2924
2926
|
), ft = (e, t) => {
|
|
2925
|
-
const [n = 0, i = 0, r = 0, o = 0] = t, s = ([u = 0, h = 0,
|
|
2926
|
-
const M = n * u + i * h + r *
|
|
2927
|
+
const [n = 0, i = 0, r = 0, o = 0] = t, s = ([u = 0, h = 0, m = 0, v = 0]) => n * u + i * h + r * m + o * v >= 0, a = ([u = 0, h = 0, m = 0, v = 0], [p = 0, E = 0, d = 0, x = 0]) => {
|
|
2928
|
+
const M = n * u + i * h + r * m + o * v, _ = n * p + i * E + r * d + o * x, l = M / (M - _), T = u + l * (p - u), A = h + l * (E - h), R = m + l * (d - m), w = v + l * (x - v);
|
|
2927
2929
|
return [T, A, R, w];
|
|
2928
2930
|
}, c = [];
|
|
2929
2931
|
let f = e[e.length - 1] ?? [0, 0, 0, 0];
|
|
@@ -3076,7 +3078,7 @@ const B = 34, li = 22, ui = ve(0, B).flatMap(
|
|
|
3076
3078
|
c < 1e3 && (c = 0);
|
|
3077
3079
|
const f = Math.max(a.distance, c), u = 1 - Math.exp(-yi * o), h = Math.exp(
|
|
3078
3080
|
Math.log(s.distance) + (Math.log(f) - Math.log(s.distance)) * u
|
|
3079
|
-
),
|
|
3081
|
+
), m = s.distance > c ? 1 : s.distance / c, v = se(
|
|
3080
3082
|
re(
|
|
3081
3083
|
L(),
|
|
3082
3084
|
N(s.target),
|
|
@@ -3087,13 +3089,13 @@ const B = 34, li = 22, ui = ve(0, B).flatMap(
|
|
|
3087
3089
|
N(a.target),
|
|
3088
3090
|
N(s.target)
|
|
3089
3091
|
),
|
|
3090
|
-
u *
|
|
3092
|
+
u * m
|
|
3091
3093
|
)
|
|
3092
3094
|
)
|
|
3093
3095
|
);
|
|
3094
3096
|
return {
|
|
3095
3097
|
...s,
|
|
3096
|
-
target:
|
|
3098
|
+
target: v,
|
|
3097
3099
|
distance: h,
|
|
3098
3100
|
orientation: t(),
|
|
3099
3101
|
offset: n(),
|
|
@@ -3142,7 +3144,7 @@ const B = 34, li = 22, ui = ve(0, B).flatMap(
|
|
|
3142
3144
|
resize: s,
|
|
3143
3145
|
read: ([u = 0, h = 0]) => {
|
|
3144
3146
|
r(), e.readPixels(u, o - h, 1, 1, e.RGBA, e.UNSIGNED_BYTE, a), e.bindFramebuffer(e.FRAMEBUFFER, null);
|
|
3145
|
-
const [
|
|
3147
|
+
const [m = 0, v = 0, p = 0, E = 0] = a, x = 2 * ((m * 256 + v) / (256 * 256 - 1)) - 1, M = p * 256 + E;
|
|
3146
3148
|
return [x, M];
|
|
3147
3149
|
},
|
|
3148
3150
|
dispose: () => {
|
|
@@ -3159,46 +3161,46 @@ const B = 34, li = 22, ui = ve(0, B).flatMap(
|
|
|
3159
3161
|
const c = () => {
|
|
3160
3162
|
o = !0;
|
|
3161
3163
|
}, f = (p) => {
|
|
3162
|
-
const { x: E, y:
|
|
3164
|
+
const { x: E, y: d, movementX: x, movementY: M } = p;
|
|
3163
3165
|
if (s) {
|
|
3164
3166
|
if (s.onDrag) {
|
|
3165
|
-
const { point: A, position: R, layer: w } = i([E,
|
|
3167
|
+
const { point: A, position: R, layer: w } = i([E, d], { terrain: !0 });
|
|
3166
3168
|
s.onDrag({ point: A, position: R, layer: w });
|
|
3167
3169
|
}
|
|
3168
3170
|
if (s.onDragFlat) {
|
|
3169
|
-
const R = te(t(), n()).unproject([E,
|
|
3170
|
-
s.onDragFlat({ point: [E,
|
|
3171
|
+
const R = te(t(), n()).unproject([E, d], { targetZ: a });
|
|
3172
|
+
s.onDragFlat({ point: [E, d], position: R, layer: void 0 });
|
|
3171
3173
|
}
|
|
3172
3174
|
return;
|
|
3173
3175
|
}
|
|
3174
3176
|
if (o && (Math.abs(x) > 0 || Math.abs(M) > 0) && (o = !1, p.buttons === 1)) {
|
|
3175
|
-
const { point: A, position: R, layer: w } = i([E,
|
|
3177
|
+
const { point: A, position: R, layer: w } = i([E, d]);
|
|
3176
3178
|
(w?.onDrag || w?.onDragFlat) && (s = w, s.onDragStart?.({ point: A, position: R, layer: w }), [, , a] = R);
|
|
3177
3179
|
}
|
|
3178
|
-
const { point: _, position: l, layer: T } = i([E,
|
|
3180
|
+
const { point: _, position: l, layer: T } = i([E, d]);
|
|
3179
3181
|
T?.onMouseMove?.({ point: _, position: l, layer: T });
|
|
3180
3182
|
}, u = (p) => {
|
|
3181
3183
|
if (o && h(p), o = !1, s) {
|
|
3182
|
-
const { x: E, y:
|
|
3184
|
+
const { x: E, y: d } = p, { point: x, position: M, layer: _ } = i([E, d]);
|
|
3183
3185
|
s.onDragEnd?.({ point: x, position: M, layer: _ });
|
|
3184
3186
|
}
|
|
3185
3187
|
s = void 0;
|
|
3186
3188
|
}, h = (p) => {
|
|
3187
|
-
const { x: E, y:
|
|
3189
|
+
const { x: E, y: d, button: x } = p, { point: M, position: _, layer: l } = i([E, d]);
|
|
3188
3190
|
(x === 2 ? l?.onRightClick : l?.onClick)?.(
|
|
3189
3191
|
{ point: M, position: _, layer: l },
|
|
3190
3192
|
p
|
|
3191
3193
|
);
|
|
3192
|
-
},
|
|
3193
|
-
const { point:
|
|
3194
|
-
M?.onDoubleClick?.({ point:
|
|
3194
|
+
}, m = ({ x: p, y: E }) => {
|
|
3195
|
+
const { point: d, position: x, layer: M } = i([p, E]);
|
|
3196
|
+
M?.onDoubleClick?.({ point: d, position: x, layer: M });
|
|
3195
3197
|
};
|
|
3196
|
-
return r?.addEventListener("mousedown", c), r?.addEventListener("mousemove", f), r?.addEventListener("dblclick",
|
|
3198
|
+
return r?.addEventListener("mousedown", c), r?.addEventListener("mousemove", f), r?.addEventListener("dblclick", m), window.addEventListener("mouseup", u), {
|
|
3197
3199
|
get dragging() {
|
|
3198
3200
|
return !!s;
|
|
3199
3201
|
},
|
|
3200
3202
|
dispose: () => {
|
|
3201
|
-
r?.removeEventListener("mousedown", c), r?.removeEventListener("mousemove", f), r?.removeEventListener("dblclick",
|
|
3203
|
+
r?.removeEventListener("mousedown", c), r?.removeEventListener("mousemove", f), r?.removeEventListener("dblclick", m), window.removeEventListener("mouseup", u);
|
|
3202
3204
|
}
|
|
3203
3205
|
};
|
|
3204
3206
|
};
|
|
@@ -3223,23 +3225,23 @@ const ji = ({ gl: e }, t) => {
|
|
|
3223
3225
|
}, h = () => {
|
|
3224
3226
|
const l = te(n(), o);
|
|
3225
3227
|
u(o), Oe(i()).forEach((T) => T.render?.({ viewport: l }));
|
|
3226
|
-
},
|
|
3228
|
+
}, m = (l) => {
|
|
3227
3229
|
const T = te(n(), o);
|
|
3228
3230
|
u(o), (l ? [l] : Oe(i())).forEach(
|
|
3229
3231
|
(A, R) => A.render?.({ viewport: T, depth: !0, index: R + 1 })
|
|
3230
3232
|
);
|
|
3231
|
-
},
|
|
3232
|
-
r && (h(), requestAnimationFrame(
|
|
3233
|
+
}, v = () => {
|
|
3234
|
+
r && (h(), requestAnimationFrame(v));
|
|
3233
3235
|
};
|
|
3234
|
-
requestAnimationFrame(
|
|
3235
|
-
const p = (l) => te(n(), o).project(l), E = (l) => te(n(), o).unproject(l),
|
|
3236
|
+
requestAnimationFrame(v);
|
|
3237
|
+
const p = (l) => te(n(), o).project(l), E = (l) => te(n(), o).unproject(l), d = (l, { terrain: T } = {}) => {
|
|
3236
3238
|
const { screenToClip: A, clipToLocal: R, localToWorld: w } = te(
|
|
3237
3239
|
n(),
|
|
3238
3240
|
o
|
|
3239
3241
|
);
|
|
3240
3242
|
s.use();
|
|
3241
3243
|
const [g] = T ? i() : [];
|
|
3242
|
-
|
|
3244
|
+
m(g);
|
|
3243
3245
|
const [y = 0, b = 0] = l, [S, U] = s.read([
|
|
3244
3246
|
y * devicePixelRatio,
|
|
3245
3247
|
b * devicePixelRatio
|
|
@@ -3254,12 +3256,12 @@ const ji = ({ gl: e }, t) => {
|
|
|
3254
3256
|
}, x = gi(e, {
|
|
3255
3257
|
view: n,
|
|
3256
3258
|
screen: () => o,
|
|
3257
|
-
pick:
|
|
3259
|
+
pick: d
|
|
3258
3260
|
});
|
|
3259
3261
|
return {
|
|
3260
3262
|
project: p,
|
|
3261
3263
|
unproject: E,
|
|
3262
|
-
pick:
|
|
3264
|
+
pick: d,
|
|
3263
3265
|
elevation: (l) => {
|
|
3264
3266
|
const [T] = i();
|
|
3265
3267
|
return T.elevation(l);
|