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 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
- ), d = (w) => c(
37
+ ), m = (w) => c(
38
38
  w,
39
39
  (g, [y = 0, b = 0]) => e.uniform2i(g, y, b)
40
- ), m = (w) => c(
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
- ), v = (w) => c(
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: d,
89
- uniform3f: m,
88
+ uniform2i: m,
89
+ uniform3f: v,
90
90
  uniform3i: p,
91
91
  uniform4f: E,
92
- uniform4i: v,
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], d = t[10], m = t[11], p = t[12], E = t[13], v = 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 * v - d * p, y = u * x - m * p, b = h * v - d * E, S = h * x - m * E, U = d * x - m * v, 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 - v * A + x * T) * F, e[3] = (d * A - h * R - m * T) * F, e[4] = (c * y - s * U - f * g) * F, e[5] = (n * U - r * y + o * g) * F, e[6] = (v * l - p * R - x * _) * F, e[7] = (u * R - d * l + m * _) * 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 - m * 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 - v * M) * F, e[15] = (u * T - h * _ + d * M) * F, e) : null;
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], d = t[9], m = t[10], p = t[11], E = t[12], v = 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 * d + A * v, e[2] = _ * o + l * f + T * m + 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 * d + A * v, e[6] = _ * o + l * f + T * m + 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 * d + A * v, e[10] = _ * o + l * f + T * m + 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 * d + A * v, e[14] = _ * o + l * f + T * m + A * x, e[15] = _ * s + l * u + T * p + A * M, e;
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, d = r * s, m = r * a, p = r * c, E = o * s, v = o * a, x = o * c;
164
- return e[0] = 1 - h - p, e[1] = u + x, e[2] = d - v, e[3] = 0, e[4] = u - x, e[5] = 1 - f - p, e[6] = m + E, e[7] = 0, e[8] = d + v, e[9] = m - E, e[10] = 1 - f - h, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, e;
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], d, m, p, E, v;
294
- return m = r * c + o * f + s * u + a * h, m < 0 && (m = -m, c = -c, f = -f, u = -u, h = -h), 1 - m > Pt ? (d = Math.acos(m), p = Math.sin(d), E = Math.sin((1 - i) * d) / p, v = Math.sin(i * d) / p) : (E = 1 - i, v = i), e[0] = E * r + v * c, e[1] = E * o + v * f, e[2] = E * s + v * u, e[3] = E * a + v * h, e;
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, d = i * o * a - r * s * c;
387
- return [f, u, h, d];
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), d = r / k * h, m = Math.max(1e3 / k, d), p = 1e3, E = 1e-3, v = m * p, x = m * E, M = ne(), _ = ue();
402
- Nt(_), Xt(_, Ne(s), a / c, x, v), Dt(_, _, [1, -1, 1]);
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 - d ** 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
- }, d = (R, w, g, y) => {
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 m = !1;
499
+ let v = !1;
500
500
  const p = (R) => {
501
- R.preventDefault(), c = !1, m = !0;
501
+ R.preventDefault(), c = !1, v = !0;
502
502
  }, E = () => {
503
- m = !1;
504
- }, v = ({ buttons: R, movementX: w, movementY: g, x: y, y: b }) => {
505
- !i() || !m || (R === 1 && r() ? h(y, b) : R === 2 && o() && d(y, b, w, g));
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", v), 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), {
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", v), e.removeEventListener("touchstart", p), e.removeEventListener("touchmove", x), e.removeEventListener("gesturestart", l), e.removeEventListener("wheel", _), e.removeEventListener("contextmenu", T), window.removeEventListener("mouseup", E);
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: v, height: x }) => {
751
- r = [v, 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;
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: v, screen: x },
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(v),
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
- }, d = () => {
781
+ }, m = () => {
782
782
  o.dispose(), s.dispose(), a.dispose(), i?.dispose();
783
- }, m = _e(t);
783
+ }, v = _e(t);
784
784
  return {
785
785
  render: h,
786
- dispose: d,
787
- ...m
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
- }), d = f.uniformMatrix4f("projection"), m = f.uniformMatrix4f("model_view"), p = f.uniform3i("camera"), E = f.uniform2f("screen"), v = 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");
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(), d.set(g), m.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), v.set(0), U.use(), r.use(), e.drawElements(e.TRIANGLES, 6, e.UNSIGNED_SHORT, 0);
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: v, modelView: x, camera: M, screen: _ },
941
+ viewport: { projection: d, modelView: x, camera: M, screen: _ },
942
942
  depth: l = !1,
943
943
  index: T = 0
944
944
  }) => {
945
- d(), m();
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: v,
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
- }, d = ae(
964
+ }, m = ae(
965
965
  () => t.points?.() ?? [],
966
- (v) => {
967
- const x = v.flatMap((T) => {
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 } = v.reduce(
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 _ = v.flatMap(
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 = v.flatMap((T) => {
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
- ), m = ae(
1033
+ ), v = ae(
1034
1034
  () => t.dashPattern?.(),
1035
- (v) => {
1036
- v = v ?? [[1, 1, 1, 1]], u.use(), n.texImage2D(
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
- v.length,
1040
+ d.length,
1041
1041
  1,
1042
1042
  0,
1043
1043
  n.RGBA,
1044
1044
  n.UNSIGNED_BYTE,
1045
- new Uint8Array(v.flatMap((x) => [...x.map((M) => M * 255)]))
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, d = Int32Array.BYTES_PER_ELEMENT, m = u.attribute3i("previous", n, {
1067
- stride: d * 3
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: d * 3,
1070
- offset: d * 3 * 4
1069
+ stride: m * 3,
1070
+ offset: m * 3 * 4
1071
1071
  }), E = u.attribute3i("next", n, {
1072
- stride: d * 3,
1073
- offset: d * 3 * 4 * 2
1074
- }), v = u.attribute2f("corner", r, {
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(), m.use(), p.use(), E.use(), v.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));
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: m, modelView: p, camera: E, screen: v },
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: m,
1167
+ projection: v,
1168
1168
  modelView: p,
1169
1169
  camera: J(E),
1170
- screen: v,
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
- (m) => {
1184
- const { vertices: p = [], indices: E = [], normals: v = [] } = m ?? {};
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
- v.length === 0 ? p.flatMap(() => [0, 0, 0]) : v.flatMap((x) => [...x])
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
- }, d = _e(t);
1191
+ }, m = _e(t);
1192
1192
  return {
1193
1193
  render: f,
1194
1194
  dispose: h,
1195
- ...d
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), d = f.uniformMatrix4f("projection"), m = f.uniformMatrix4f("model_view"), p = f.uniform3i("camera"), E = f.uniform3i("position"), v = 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");
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(), d.set(g), m.set(y), p.set(b), x.set(S), E.set(F), v.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);
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
- var zn = `#version 300 es
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 = Xn(e, t, o, n)), e.length > 80 * n) {
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 d = n; d < r; d += n) {
1271
- const m = e[d], p = e[d + 1];
1272
- m < a && (a = m), p < c && (c = p), m > u && (u = m), p > h && (h = p);
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 === Jn(e, t, n, i) > 0)
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 && jn(e, i, r, 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 ? On(e, i, r, o) : In(e)) {
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 = Dn(ce(e), t), ge(e, t, n, i, r, o, 2)) : s === 2 && Cn(e, t, n, i, r, o) : ge(ce(e), t, n, i, r, o, 1);
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 In(e) {
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), d = Math.max(r, o, s), m = Math.max(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 <= d && p.y >= h && p.y <= m && we(r, a, o, c, s, f, p.x, p.y) && I(p.prev, p, p.next) >= 0)
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 On(e, t, n, i) {
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, d = s.y, m = Math.min(a, c, f), p = Math.min(u, h, d), E = Math.max(a, c, f), v = Math.max(u, h, d), x = je(m, p, t, n, i), M = je(E, v, t, n, i);
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 >= m && _.x <= E && _.y >= p && _.y <= v && _ !== r && _ !== s && we(a, u, c, h, f, d, _.x, _.y) && I(_.prev, _, _.next) >= 0 || (_ = _.prevZ, l.x >= m && l.x <= E && l.y >= p && l.y <= v && l !== r && l !== s && we(a, u, c, h, f, d, l.x, l.y) && I(l.prev, l, l.next) >= 0))
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 >= m && _.x <= E && _.y >= p && _.y <= v && _ !== r && _ !== s && we(a, u, c, h, f, d, _.x, _.y) && I(_.prev, _, _.next) >= 0)
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 >= m && l.x <= E && l.y >= p && l.y <= v && l !== r && l !== s && we(a, u, c, h, f, d, l.x, l.y) && I(l.prev, l, l.next) >= 0)
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 Dn(e, t) {
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 Cn(e, t, n, i, r, o) {
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 && kn(s, a)) {
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 Xn(e, t, n, i) {
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(Yn(f));
1350
+ f === f.next && (f.steiner = !0), r.push(jn(f));
1384
1351
  }
1385
- r.sort(Wn);
1352
+ r.sort(Cn);
1386
1353
  for (let o = 0; o < r.length; o++)
1387
- n = Gn(r[o], n);
1354
+ n = Xn(r[o], n);
1388
1355
  return n;
1389
1356
  }
1390
- function Wn(e, t) {
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 Gn(e, t) {
1399
- const n = Bn(e, t);
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 Bn(e, t) {
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 && Vn(s, n))) && (s = n, u = h);
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 Vn(e, t) {
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 jn(e, t, n, i) {
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, Zn(r);
1410
+ r.prevZ.nextZ = null, r.prevZ = null, Vn(r);
1444
1411
  }
1445
- function Zn(e) {
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 Yn(e) {
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 kn(e, t) {
1482
- return e.next.i !== t.i && e.prev.i !== t.i && !$n(e, t) && // dones't intersect other edges
1483
- (Re(e, t) && Re(t, e) && Hn(e, t) && // locally visible
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 $n(e, t) {
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 Hn(e, t) {
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 Jn(e, t, n, i) {
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 Kn(e) {
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: d, modelView: m, camera: p, screen: E },
1578
- depth: v = !1,
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, v, t))
1582
+ if (f(), xe(n, d, t))
1583
1583
  return;
1584
- (v ? a : s).execute({
1585
- projection: d,
1586
- modelView: m,
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
- (d) => {
1596
- const { vertices: m, indices: p } = qn(
1597
- d.map((E) => E.map((v) => v.map((x) => J(N(x)))))
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(m), o.set(p), i = p.length;
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: Ln,
1616
- fragmentSource: a ? Ee : zn
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"), d = c.uniform3i("camera"), m = c.uniform2f("screen"), p = c.uniform4f("color"), E = c.uniform1i("index");
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), d.set(_), m.set(l), p.set(A), E.set(R), i.use(), e.drawElements(e.TRIANGLES, T, e.UNSIGNED_SHORT, 0));
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 = Kn(s);
1638
+ const a = Hn(s);
1637
1639
  return i.push(...a.vertices), r.push(
1638
- ...Nn(a.vertices, a.holes, a.dimensions).map((c) => c + o)
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
- (d) => {
1705
- d && i.set(d);
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: d, modelView: m, camera: p, screen: E },
1712
- depth: v = !1,
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, v, t))
1718
+ if (s(), xe(n, d, t))
1717
1719
  return;
1718
- (v ? c : a).execute({
1719
- projection: d,
1720
- modelView: m,
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"), d = c.uniform3i("camera"), m = c.uniform2f("screen"), p = c.uniform1i("image"), E = c.uniform1f("range"), v = c.uniform3i("position"), x = c.uniformMatrix4f("orientation"), M = c.uniform1i("index");
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), d.set(A), m.set(R), E.set(g), v.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);
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: d, maxSize: m = 0, maxEntrySize: p = 0, sizeCalculation: E, fetchMethod: v, noDeleteOnFetchRejection: x, noDeleteOnStaleGet: M, allowStaleOnFetchRejection: _, allowStaleOnFetchAbort: l, ignoreFetchAbort: T } = t;
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 = m, this.maxEntrySize = p || this.#u, this.sizeCalculation = E, this.sizeCalculation) {
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 (v !== void 0 && typeof v != "function")
2031
+ if (d !== void 0 && typeof d != "function")
2030
2032
  throw new TypeError("fetchMethod must be a function if specified");
2031
- if (this.#U = v, this.#M = !!v, 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 = !!d, this.noDeleteOnFetchRejection = !!x, this.allowStaleOnFetchRejection = !!_, this.allowStaleOnFetchAbort = !!l, this.ignoreFetchAbort = !!T, this.maxEntrySize !== 0) {
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 d = this.#e[h];
2348
- if (n !== d) {
2349
- if (this.#M && this.#t(d)) {
2350
- d.__abortController.abort(new Error("replaced"));
2351
- const { __staleWhileFetching: m } = d;
2352
- m !== void 0 && !s && (this.#y && this.#v?.(m, t, "set"), this.#l && this.#s?.push([m, t, "set"]));
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?.(d, t, "set"), this.#l && this.#s?.push([d, t, "set"]));
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 m = d && this.#t(d) ? d.__staleWhileFetching : d;
2358
- m !== void 0 && (c.oldValue = m);
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 d = this.#s;
2365
- let m;
2366
- for (; m = d?.shift(); )
2367
- this.#p?.(...m);
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, v = !1) => {
2448
+ }, f = (E, d = !1) => {
2447
2449
  const { aborted: x } = s.signal, M = i.ignoreFetchAbort && E !== void 0;
2448
- if (i.status && (x && !v ? (i.status.fetchAborted = !0, i.status.fetchError = s.signal.reason, M && (i.status.fetchAbortIgnored = !0)) : i.status.fetchResolved = !0), x && !M && !v)
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 _ = m;
2451
- return this.#e[n] === m && (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
+ 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: v } = s.signal, x = v && i.allowStaleOnFetchAbort, M = x || i.allowStaleOnFetchRejection, _ = M || i.noDeleteOnFetchRejection, l = m;
2454
- if (this.#e[n] === m && (!_ || l.__staleWhileFetching === void 0 ? this.delete(t) : x || (this.#e[n] = l.__staleWhileFetching)), M)
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
- }, d = (E, v) => {
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), v), s.signal.addEventListener("abort", () => {
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 m = new Promise(d).then(f, u), p = Object.assign(m, {
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: d = this.allowStaleOnFetchRejection,
2493
- ignoreFetchAbort: m = this.ignoreFetchAbort,
2494
+ allowStaleOnFetchRejection: m = this.allowStaleOnFetchRejection,
2495
+ ignoreFetchAbort: v = this.ignoreFetchAbort,
2494
2496
  allowStaleOnFetchAbort: p = this.allowStaleOnFetchAbort,
2495
2497
  context: E,
2496
- forceRefresh: v = !1,
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: d,
2519
+ allowStaleOnFetchRejection: m,
2518
2520
  allowStaleOnFetchAbort: p,
2519
- ignoreFetchAbort: m,
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 (!v && !A)
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: d, downsample: m } = h, p = 2 ** m, E = [Math.floor(c / p), Math.floor(f / p), u - m], v = n.get(E);
2649
- if (v)
2650
- return { buffer: v, downsample: m };
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), d.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: m };
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, d = N([c, f, 0]).map((y) => y * h), [m = 0, p = 0] = d.map((y) => Math.floor(y % h));
2656
- let [E = 0, v = 0] = d.map((y) => y % 1);
2657
- const x = o([m, p, u]);
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, v] = [(m % l + E) / l, (p % l + v) / l];
2662
- const T = 4 * ie * Math.floor(v * ie) + 4 * Math.floor(E * ie), [A = 0, R = 0, w = 0] = M.slice(T, T + 4);
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, d = 0] = c;
2703
- let m = t.replace("{x}", `${u}`).replace("{y}", `${h}`).replace("{z}", `${d}`);
2704
- if (m.includes("{bbox}")) {
2705
- const [E = 0, v = 0, x = 0] = c, M = 2 ** x - v - 1, [[_, l] = [], [T, A] = []] = [
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
- m = m.replace("{bbox}", [_, l, T, A].join(","));
2714
+ v = v.replace("{bbox}", [_, l, T, A].join(","));
2713
2715
  }
2714
2716
  const p = Et({
2715
2717
  gl: e,
2716
- url: m,
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 d = 0; d < n.length; d++) {
2743
- const [m = 0, p = 0] = n[d] ?? [], [E = 0, v = 0] = se(
2744
- dt([s + m, a + p, c], h),
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[d] = N([E, v, e.get([E, v], f)]);
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 }), d = ai(h), m = V({ gl: n, type: "f32", target: "array" });
2834
- m.set(hi.flatMap(([g = 0, y = 0, b = 0]) => [g, y, b]));
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: v } = di(e, {
2838
- uvwBuffer: m,
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, $ = d.get(P).map((Y, q) => S(Y, M[q])).map((Y, q) => U(Y, _[q]));
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 ? v : E, { projection: F, modelView: z, camera: P } = g, X = T(g);
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"), d = c.uniform1i("imagery"), m = c.uniform1i("terrain"), p = c.uniform1i("downsample_imagery"), E = c.uniform1i("downsample_terrain"), v = c.uniform4f("color"), x = c.uniform3i("xyz"), M = c.uniform3i("camera"), _ = c.uniform1i("index");
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), v.set(U), _.set(F), e.activeTexture(e.TEXTURE0), d.set(0), g.use(), e.activeTexture(e.TEXTURE1), m.set(1), y.use(), i.use(), e.drawElements(e.TRIANGLES, B * B * 2 * 3, e.UNSIGNED_SHORT, 0);
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, d = 0, m = 0]) => n * u + i * h + r * d + o * m >= 0, a = ([u = 0, h = 0, d = 0, m = 0], [p = 0, E = 0, v = 0, x = 0]) => {
2926
- const M = n * u + i * h + r * d + o * m, _ = n * p + i * E + r * v + o * x, l = M / (M - _), T = u + l * (p - u), A = h + l * (E - h), R = d + l * (v - d), w = m + l * (x - m);
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
- ), d = s.distance > c ? 1 : s.distance / c, m = se(
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 * d
3092
+ u * m
3091
3093
  )
3092
3094
  )
3093
3095
  );
3094
3096
  return {
3095
3097
  ...s,
3096
- target: m,
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 [d = 0, m = 0, p = 0, E = 0] = a, x = 2 * ((d * 256 + m) / (256 * 256 - 1)) - 1, M = p * 256 + E;
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: v, movementX: x, movementY: M } = p;
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, v], { terrain: !0 });
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, v], { targetZ: a });
3170
- s.onDragFlat({ point: [E, v], position: R, layer: void 0 });
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, v]);
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, v]);
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: v } = p, { point: x, position: M, layer: _ } = i([E, v]);
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: v, button: x } = p, { point: M, position: _, layer: l } = i([E, v]);
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
- }, d = ({ x: p, y: E }) => {
3193
- const { point: v, position: x, layer: M } = i([p, E]);
3194
- M?.onDoubleClick?.({ point: v, position: x, layer: M });
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", d), window.addEventListener("mouseup", u), {
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", d), window.removeEventListener("mouseup", u);
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
- }, d = (l) => {
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
- }, m = () => {
3232
- r && (h(), requestAnimationFrame(m));
3233
+ }, v = () => {
3234
+ r && (h(), requestAnimationFrame(v));
3233
3235
  };
3234
- requestAnimationFrame(m);
3235
- const p = (l) => te(n(), o).project(l), E = (l) => te(n(), o).unproject(l), v = (l, { terrain: T } = {}) => {
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
- d(g);
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: v
3259
+ pick: d
3258
3260
  });
3259
3261
  return {
3260
3262
  project: p,
3261
3263
  unproject: E,
3262
- pick: v,
3264
+ pick: d,
3263
3265
  elevation: (l) => {
3264
3266
  const [T] = i();
3265
3267
  return T.elevation(l);