world.ts 0.4.5 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
- const Pt = (e, t) => {
1
+ const Ut = (e, t) => {
2
2
  let n;
3
3
  return (...i) => {
4
4
  clearTimeout(n), n = setTimeout(() => e(...i), t);
5
5
  };
6
- }, xe = (e, t) => Array.from({ length: t - e }, (n, i) => i + e), zt = ({
6
+ }, xe = (e, t) => Array.from({ length: t - e }, (n, i) => i + e), Pt = ({
7
7
  gl: e,
8
8
  vertexSource: t,
9
9
  fragmentSource: n
@@ -11,68 +11,68 @@ const Pt = (e, t) => {
11
11
  const i = e.createProgram();
12
12
  if (!i)
13
13
  throw new Error("Program creation failed");
14
- const r = ot(
14
+ const r = rt(
15
15
  e,
16
16
  e.createShader(e.VERTEX_SHADER),
17
17
  t
18
- ), s = ot(
18
+ ), s = rt(
19
19
  e,
20
20
  e.createShader(e.FRAGMENT_SHADER),
21
21
  n
22
22
  );
23
23
  if (e.attachShader(i, r), e.attachShader(i, s), e.linkProgram(i), !e.getProgramParameter(i, e.LINK_STATUS))
24
24
  throw console.error("Link failure", e.getProgramInfoLog(i)), new Error("Link failure");
25
- const o = () => e.useProgram(i), c = {}, a = (T, R) => {
26
- if (c[T])
27
- return c[T];
28
- const g = e.getUniformLocation(i, T);
29
- let b;
25
+ const o = () => e.useProgram(i), c = {}, a = (y, g) => {
26
+ if (c[y])
27
+ return c[y];
28
+ const T = e.getUniformLocation(i, y);
29
+ let M;
30
30
  const S = (U) => {
31
- g && U !== b && (R(g, U), b = U);
31
+ T && U !== M && (g(T, U), M = U);
32
32
  };
33
- return c[T] = { set: S }, { set: S };
34
- }, f = (T) => a(T, (R, g) => e.uniform1f(R, g)), l = (T) => a(T, (R, g) => e.uniform1i(R, g)), h = (T) => a(
35
- T,
36
- (R, [g = 0, b = 0]) => e.uniform2f(R, g, b)
37
- ), u = (T) => a(
38
- T,
39
- (R, [g = 0, b = 0]) => e.uniform2i(R, g, b)
40
- ), d = (T) => a(
41
- T,
42
- (R, [g = 0, b = 0, S = 0]) => e.uniform3f(R, g, b, S)
43
- ), m = (T) => a(
44
- T,
45
- (R, [g = 0, b = 0, S = 0]) => e.uniform3i(R, g, b, S)
46
- ), _ = (T) => a(
47
- T,
48
- (R, [g = 0, b = 0, S = 0, U = 0]) => e.uniform4f(R, g, b, S, U)
49
- ), x = (T) => a(
50
- T,
51
- (R, [g = 0, b = 0, S = 0, U = 0]) => e.uniform4i(R, g, b, S, U)
52
- ), p = (T) => a(
53
- T,
54
- (R, g) => e.uniformMatrix4fv(R, !1, g)
33
+ return c[y] = { set: S }, { set: S };
34
+ }, f = (y) => a(y, (g, T) => e.uniform1f(g, T)), l = (y) => a(y, (g, T) => e.uniform1i(g, T)), h = (y) => a(
35
+ y,
36
+ (g, [T = 0, M = 0]) => e.uniform2f(g, T, M)
37
+ ), u = (y) => a(
38
+ y,
39
+ (g, [T = 0, M = 0]) => e.uniform2i(g, T, M)
40
+ ), d = (y) => a(
41
+ y,
42
+ (g, [T = 0, M = 0, S = 0]) => e.uniform3f(g, T, M, S)
43
+ ), v = (y) => a(
44
+ y,
45
+ (g, [T = 0, M = 0, S = 0]) => e.uniform3i(g, T, M, S)
46
+ ), _ = (y) => a(
47
+ y,
48
+ (g, [T = 0, M = 0, S = 0, U = 0]) => e.uniform4f(g, T, M, S, U)
49
+ ), E = (y) => a(
50
+ y,
51
+ (g, [T = 0, M = 0, S = 0, U = 0]) => e.uniform4i(g, T, M, S, U)
52
+ ), x = (y) => a(
53
+ y,
54
+ (g, T) => e.uniformMatrix4fv(g, !1, T)
55
55
  ), A = ({
56
- name: T,
57
- buffer: R,
58
- size: g,
59
- type: b,
56
+ name: y,
57
+ buffer: g,
58
+ size: T,
59
+ type: M,
60
60
  stride: S,
61
61
  offset: U
62
62
  }) => {
63
- const P = e.getAttribLocation(i, T);
63
+ const P = e.getAttribLocation(i, y);
64
64
  if (P === -1)
65
- throw new Error(`Missing attribute: ${T}`);
65
+ throw new Error(`Missing attribute: ${y}`);
66
66
  return { use: () => {
67
- R.use(), e.enableVertexAttribArray(P), ["u16", "i32"].includes(b) ? e.vertexAttribIPointer(
67
+ g.use(), e.enableVertexAttribArray(P), ["u16", "i32"].includes(M) ? e.vertexAttribIPointer(
68
68
  P,
69
- g,
70
- b === "u16" ? e.UNSIGNED_SHORT : e.INT,
69
+ T,
70
+ M === "u16" ? e.UNSIGNED_SHORT : e.INT,
71
71
  S || 0,
72
72
  U || 0
73
73
  ) : e.vertexAttribPointer(
74
74
  P,
75
- g,
75
+ T,
76
76
  e.FLOAT,
77
77
  !1,
78
78
  S || 0,
@@ -87,25 +87,25 @@ const Pt = (e, t) => {
87
87
  uniform2f: h,
88
88
  uniform2i: u,
89
89
  uniform3f: d,
90
- uniform3i: m,
90
+ uniform3i: v,
91
91
  uniform4f: _,
92
- uniform4i: x,
93
- uniformMatrix4f: p,
94
- attribute1f: (T, R, g = {}) => A({ name: T, buffer: R, size: 1, type: "f32", ...g }),
95
- attribute2f: (T, R, g = {}) => A({ name: T, buffer: R, size: 2, type: "f32", ...g }),
96
- attribute3f: (T, R, g = {}) => A({ name: T, buffer: R, size: 3, type: "f32", ...g }),
97
- attribute3i: (T, R, g = {}) => A({ name: T, buffer: R, size: 3, type: "i32", ...g }),
92
+ uniform4i: E,
93
+ uniformMatrix4f: x,
94
+ attribute1f: (y, g, T = {}) => A({ name: y, buffer: g, size: 1, type: "f32", ...T }),
95
+ attribute2f: (y, g, T = {}) => A({ name: y, buffer: g, size: 2, type: "f32", ...T }),
96
+ attribute3f: (y, g, T = {}) => A({ name: y, buffer: g, size: 3, type: "f32", ...T }),
97
+ attribute3i: (y, g, T = {}) => A({ name: y, buffer: g, size: 3, type: "i32", ...T }),
98
98
  dispose: () => {
99
99
  e.deleteProgram(i), e.deleteShader(r), e.deleteShader(s);
100
100
  }
101
101
  };
102
- }, ot = (e, t, n) => {
102
+ }, rt = (e, t, n) => {
103
103
  if (!t)
104
104
  throw new Error("Shader creation failed");
105
105
  if (e.shaderSource(t, n), e.compileShader(t), !e.getShaderParameter(t, e.COMPILE_STATUS))
106
106
  throw console.error("Compilation failed", e.getShaderInfoLog(t)), new Error("Compilation failure");
107
107
  return t;
108
- }, Lt = (e) => {
108
+ }, zt = (e) => {
109
109
  const t = /* @__PURE__ */ new Map();
110
110
  return {
111
111
  get: ({
@@ -115,20 +115,20 @@ const Pt = (e, t) => {
115
115
  const o = r + s, c = t.get(o);
116
116
  if (c)
117
117
  return c;
118
- const a = zt({ gl: e, vertexSource: r, fragmentSource: s });
118
+ const a = Pt({ gl: e, vertexSource: r, fragmentSource: s });
119
119
  return t.set(o, a), a;
120
120
  },
121
121
  dispose: () => [...t.values()].forEach((r) => r.dispose())
122
122
  };
123
- }, Pi = (e) => {
123
+ }, bi = (e) => {
124
124
  const t = e.getContext("webgl2");
125
125
  if (!t)
126
126
  throw new Error("No WebGL2");
127
- const n = Lt(t), { dispose: i } = n;
127
+ const n = zt(t), { dispose: i } = n;
128
128
  return { gl: t, programs: n, dispose: i };
129
129
  };
130
- var Nt = 1e-6, j = typeof Float32Array < "u" ? Float32Array : Array;
131
- function It(e) {
130
+ var Lt = 1e-6, j = typeof Float32Array < "u" ? Float32Array : Array;
131
+ function Nt(e) {
132
132
  j = e;
133
133
  }
134
134
  Math.hypot || (Math.hypot = function() {
@@ -136,7 +136,7 @@ Math.hypot || (Math.hypot = function() {
136
136
  e += arguments[t] * arguments[t];
137
137
  return Math.sqrt(e);
138
138
  });
139
- function Dt() {
139
+ function It() {
140
140
  var e = new j(9);
141
141
  return j != Float32Array && (e[1] = 0, e[2] = 0, e[3] = 0, e[5] = 0, e[6] = 0, e[7] = 0), e[0] = 1, e[4] = 1, e[8] = 1, e;
142
142
  }
@@ -144,93 +144,81 @@ function he() {
144
144
  var e = new j(16);
145
145
  return j != Float32Array && (e[1] = 0, e[2] = 0, e[3] = 0, e[4] = 0, e[6] = 0, e[7] = 0, e[8] = 0, e[9] = 0, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0), e[0] = 1, e[5] = 1, e[10] = 1, e[15] = 1, e;
146
146
  }
147
- function at(e) {
147
+ function Dt(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 Ot(e, t) {
151
- var n = t[0], i = t[1], r = t[2], s = t[3], o = t[4], c = t[5], a = t[6], f = t[7], l = t[8], h = t[9], u = t[10], d = t[11], m = t[12], _ = t[13], x = t[14], p = t[15], A = n * c - i * o, y = n * a - r * o, E = n * f - s * o, v = i * a - r * c, w = i * f - s * c, M = r * f - s * a, T = l * _ - h * m, R = l * x - u * m, g = l * p - d * m, b = h * x - u * _, S = h * p - d * _, U = u * p - d * x, P = A * U - y * S + E * b + v * g - w * R + M * T;
152
- return P ? (P = 1 / P, e[0] = (c * U - a * S + f * b) * P, e[1] = (r * S - i * U - s * b) * P, e[2] = (_ * M - x * w + p * v) * P, e[3] = (u * w - h * M - d * v) * P, e[4] = (a * g - o * U - f * R) * P, e[5] = (n * U - r * g + s * R) * P, e[6] = (x * E - m * M - p * y) * P, e[7] = (l * M - u * E + d * y) * P, e[8] = (o * S - c * g + f * T) * P, e[9] = (i * g - n * S - s * T) * P, e[10] = (m * w - _ * E + p * A) * P, e[11] = (h * E - l * w - d * A) * P, e[12] = (c * R - o * b - a * T) * P, e[13] = (n * b - i * R + r * T) * P, e[14] = (_ * y - m * v - x * A) * P, e[15] = (l * v - h * y + u * A) * P, e) : null;
151
+ var n = t[0], i = t[1], r = t[2], s = t[3], o = t[4], c = t[5], a = t[6], f = t[7], l = t[8], h = t[9], u = t[10], d = t[11], v = t[12], _ = t[13], E = t[14], x = t[15], A = n * c - i * o, R = n * a - r * o, p = n * f - s * o, m = i * a - r * c, w = i * f - s * c, b = r * f - s * a, y = l * _ - h * v, g = l * E - u * v, T = l * x - d * v, M = h * E - u * _, S = h * x - d * _, U = u * x - d * E, P = A * U - R * S + p * M + m * T - w * g + b * y;
152
+ return P ? (P = 1 / P, e[0] = (c * U - a * S + f * M) * P, e[1] = (r * S - i * U - s * M) * P, e[2] = (_ * b - E * w + x * m) * P, e[3] = (u * w - h * b - d * m) * P, e[4] = (a * T - o * U - f * g) * P, e[5] = (n * U - r * T + s * g) * P, e[6] = (E * p - v * b - x * R) * P, e[7] = (l * b - u * p + d * R) * P, e[8] = (o * S - c * T + f * y) * P, e[9] = (i * T - n * S - s * y) * P, e[10] = (v * w - _ * p + x * A) * P, e[11] = (h * p - l * w - d * A) * P, e[12] = (c * g - o * M - a * y) * P, e[13] = (n * M - i * g + r * y) * P, e[14] = (_ * R - v * m - E * A) * P, e[15] = (l * m - h * R + u * A) * P, e) : null;
153
153
  }
154
154
  function Ct(e, t, n) {
155
- var i = t[0], r = t[1], s = t[2], o = t[3], c = t[4], a = t[5], f = t[6], l = t[7], h = t[8], u = t[9], d = t[10], m = t[11], _ = t[12], x = t[13], p = t[14], A = t[15], y = n[0], E = n[1], v = n[2], w = n[3];
156
- return e[0] = y * i + E * c + v * h + w * _, e[1] = y * r + E * a + v * u + w * x, e[2] = y * s + E * f + v * d + w * p, e[3] = y * o + E * l + v * m + w * A, y = n[4], E = n[5], v = n[6], w = n[7], e[4] = y * i + E * c + v * h + w * _, e[5] = y * r + E * a + v * u + w * x, e[6] = y * s + E * f + v * d + w * p, e[7] = y * o + E * l + v * m + w * A, y = n[8], E = n[9], v = n[10], w = n[11], e[8] = y * i + E * c + v * h + w * _, e[9] = y * r + E * a + v * u + w * x, e[10] = y * s + E * f + v * d + w * p, e[11] = y * o + E * l + v * m + w * A, y = n[12], E = n[13], v = n[14], w = n[15], e[12] = y * i + E * c + v * h + w * _, e[13] = y * r + E * a + v * u + w * x, e[14] = y * s + E * f + v * d + w * p, e[15] = y * o + E * l + v * m + w * A, e;
155
+ var i = t[0], r = t[1], s = t[2], o = t[3], c = t[4], a = t[5], f = t[6], l = t[7], h = t[8], u = t[9], d = t[10], v = t[11], _ = t[12], E = t[13], x = t[14], A = t[15], R = n[0], p = n[1], m = n[2], w = n[3];
156
+ return e[0] = R * i + p * c + m * h + w * _, e[1] = R * r + p * a + m * u + w * E, e[2] = R * s + p * f + m * d + w * x, e[3] = R * o + p * l + m * v + w * A, R = n[4], p = n[5], m = n[6], w = n[7], e[4] = R * i + p * c + m * h + w * _, e[5] = R * r + p * a + m * u + w * E, e[6] = R * s + p * f + m * d + w * x, e[7] = R * o + p * l + m * v + w * A, R = n[8], p = n[9], m = n[10], w = n[11], e[8] = R * i + p * c + m * h + w * _, e[9] = R * r + p * a + m * u + w * E, e[10] = R * s + p * f + m * d + w * x, e[11] = R * o + p * l + m * v + w * A, R = n[12], p = n[13], m = n[14], w = n[15], e[12] = R * i + p * c + m * h + w * _, e[13] = R * r + p * a + m * u + w * E, e[14] = R * s + p * f + m * d + w * x, e[15] = R * o + p * l + m * v + w * A, e;
157
157
  }
158
158
  function Xt(e, t, n) {
159
159
  var i = n[0], r = n[1], s = n[2];
160
160
  return e[0] = t[0] * i, e[1] = t[1] * i, e[2] = t[2] * i, e[3] = t[3] * i, e[4] = t[4] * r, e[5] = t[5] * r, e[6] = t[6] * r, e[7] = t[7] * r, e[8] = t[8] * s, e[9] = t[9] * s, e[10] = t[10] * s, e[11] = t[11] * s, e[12] = t[12], e[13] = t[13], e[14] = t[14], e[15] = t[15], e;
161
161
  }
162
- function Wt(e, t, n) {
163
- var i = Math.sin(n), r = Math.cos(n), s = t[4], o = t[5], c = t[6], a = t[7], f = t[8], l = t[9], h = t[10], u = t[11];
164
- return t !== e && (e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], e[12] = t[12], e[13] = t[13], e[14] = t[14], e[15] = t[15]), e[4] = s * r + f * i, e[5] = o * r + l * i, e[6] = c * r + h * i, e[7] = a * r + u * i, e[8] = f * r - s * i, e[9] = l * r - o * i, e[10] = h * r - c * i, e[11] = u * r - a * i, e;
162
+ function Ke(e, t) {
163
+ var n = t[0], i = t[1], r = t[2], s = t[3], o = n + n, c = i + i, a = r + r, f = n * o, l = i * o, h = i * c, u = r * o, d = r * c, v = r * a, _ = s * o, E = s * c, x = s * a;
164
+ return e[0] = 1 - h - v, e[1] = l + x, e[2] = u - E, e[3] = 0, e[4] = l - x, e[5] = 1 - f - v, e[6] = d + _, e[7] = 0, e[8] = u + E, e[9] = d - _, e[10] = 1 - f - h, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, e;
165
165
  }
166
- function jt(e, t, n) {
167
- var i = Math.sin(n), r = Math.cos(n), s = t[0], o = t[1], c = t[2], a = t[3], f = t[8], l = t[9], h = t[10], u = t[11];
168
- return t !== e && (e[4] = t[4], e[5] = t[5], e[6] = t[6], e[7] = t[7], e[12] = t[12], e[13] = t[13], e[14] = t[14], e[15] = t[15]), e[0] = s * r - f * i, e[1] = o * r - l * i, e[2] = c * r - h * i, e[3] = a * r - u * i, e[8] = s * i + f * r, e[9] = o * i + l * r, e[10] = c * i + h * r, e[11] = a * i + u * r, e;
169
- }
170
- function Bt(e, t, n) {
171
- var i = Math.sin(n), r = Math.cos(n), s = t[0], o = t[1], c = t[2], a = t[3], f = t[4], l = t[5], h = t[6], u = t[7];
172
- return t !== e && (e[8] = t[8], e[9] = t[9], e[10] = t[10], e[11] = t[11], e[12] = t[12], e[13] = t[13], e[14] = t[14], e[15] = t[15]), e[0] = s * r + f * i, e[1] = o * r + l * i, e[2] = c * r + h * i, e[3] = a * r + u * i, e[4] = f * r - s * i, e[5] = l * r - o * i, e[6] = h * r - c * i, e[7] = u * r - a * i, e;
173
- }
174
- function vt(e, t) {
175
- var n = t[0], i = t[1], r = t[2], s = t[3], o = n + n, c = i + i, a = r + r, f = n * o, l = i * o, h = i * c, u = r * o, d = r * c, m = r * a, _ = s * o, x = s * c, p = s * a;
176
- return e[0] = 1 - h - m, e[1] = l + p, e[2] = u - x, e[3] = 0, e[4] = l - p, e[5] = 1 - f - m, e[6] = d + _, e[7] = 0, e[8] = u + x, e[9] = d - _, e[10] = 1 - f - h, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, e;
177
- }
178
- function Vt(e, t, n, i, r) {
166
+ function Wt(e, t, n, i, r) {
179
167
  var s = 1 / Math.tan(t / 2), o;
180
168
  return e[0] = s / n, e[1] = 0, e[2] = 0, e[3] = 0, e[4] = 0, e[5] = s, e[6] = 0, e[7] = 0, e[8] = 0, e[9] = 0, e[11] = -1, e[12] = 0, e[13] = 0, e[15] = 0, r != null && r !== 1 / 0 ? (o = 1 / (i - r), e[10] = (r + i) * o, e[14] = 2 * r * i * o) : (e[10] = -1, e[14] = -2 * i), e;
181
169
  }
182
- var Zt = Vt;
170
+ var jt = Wt;
183
171
  function L() {
184
172
  var e = new j(3);
185
173
  return j != Float32Array && (e[0] = 0, e[1] = 0, e[2] = 0), e;
186
174
  }
187
- function tt(e) {
175
+ function ht(e) {
188
176
  var t = new j(3);
189
177
  return t[0] = e[0], t[1] = e[1], t[2] = e[2], t;
190
178
  }
191
- function Yt(e) {
179
+ function Bt(e) {
192
180
  var t = e[0], n = e[1], i = e[2];
193
181
  return Math.hypot(t, n, i);
194
182
  }
195
- function ct(e, t, n) {
183
+ function st(e, t, n) {
196
184
  var i = new j(3);
197
185
  return i[0] = e, i[1] = t, i[2] = n, i;
198
186
  }
199
- function $t(e, t) {
187
+ function Vt(e, t) {
200
188
  return e[0] = t[0], e[1] = t[1], e[2] = t[2], e;
201
189
  }
202
- function Se(e, t, n, i) {
190
+ function be(e, t, n, i) {
203
191
  return e[0] = t, e[1] = n, e[2] = i, e;
204
192
  }
205
193
  function re(e, t, n) {
206
194
  return e[0] = t[0] + n[0], e[1] = t[1] + n[1], e[2] = t[2] + n[2], e;
207
195
  }
208
- function kt(e, t, n) {
196
+ function Zt(e, t, n) {
209
197
  return e[0] = t[0] - n[0], e[1] = t[1] - n[1], e[2] = t[2] - n[2], e;
210
198
  }
211
199
  function de(e, t, n) {
212
200
  return e[0] = t[0] * n, e[1] = t[1] * n, e[2] = t[2] * n, e;
213
201
  }
214
- function Ue(e, t) {
202
+ function Me(e, t) {
215
203
  var n = t[0] - e[0], i = t[1] - e[1], r = t[2] - e[2];
216
204
  return Math.hypot(n, i, r);
217
205
  }
218
- function Ht(e, t) {
206
+ function Yt(e, t) {
219
207
  var n = t[0], i = t[1], r = t[2], s = n * n + i * i + r * r;
220
208
  return s > 0 && (s = 1 / Math.sqrt(s)), e[0] = t[0] * s, e[1] = t[1] * s, e[2] = t[2] * s, e;
221
209
  }
222
- function Gt(e, t) {
210
+ function $t(e, t) {
223
211
  return e[0] * t[0] + e[1] * t[1] + e[2] * t[2];
224
212
  }
225
- function He(e, t, n) {
213
+ function Ze(e, t, n) {
226
214
  var i = t[0], r = t[1], s = t[2], o = n[0], c = n[1], a = n[2];
227
215
  return e[0] = r * a - s * c, e[1] = s * o - i * a, e[2] = i * c - r * o, e;
228
216
  }
229
- function Ft(e, t, n, i) {
217
+ function kt(e, t, n, i) {
230
218
  var r = t[0], s = t[1], o = t[2];
231
219
  return e[0] = r + i * (n[0] - r), e[1] = s + i * (n[1] - s), e[2] = o + i * (n[2] - o), e;
232
220
  }
233
- var se = kt, Qt = Yt;
221
+ var se = Zt, Ht = Bt;
234
222
  (function() {
235
223
  var e = L();
236
224
  return function(t, n, i, r, s, o) {
@@ -244,41 +232,41 @@ function ne() {
244
232
  var e = new j(4);
245
233
  return j != Float32Array && (e[0] = 0, e[1] = 0, e[2] = 0, e[3] = 0), e;
246
234
  }
247
- function Kt(e) {
235
+ function dt(e) {
248
236
  var t = new j(4);
249
237
  return t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t;
250
238
  }
251
- function qt(e, t) {
239
+ function Gt(e, t) {
252
240
  return e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], e;
253
241
  }
254
- function ft(e, t, n, i, r) {
242
+ function ot(e, t, n, i, r) {
255
243
  return e[0] = t, e[1] = n, e[2] = i, e[3] = r, e;
256
244
  }
257
- function Jt(e, t, n) {
245
+ function Ft(e, t, n) {
258
246
  return e[0] = t[0] + n[0], e[1] = t[1] + n[1], e[2] = t[2] + n[2], e[3] = t[3] + n[3], e;
259
247
  }
260
- function en(e, t, n) {
248
+ function Qt(e, t, n) {
261
249
  return e[0] = t[0] - n[0], e[1] = t[1] - n[1], e[2] = t[2] - n[2], e[3] = t[3] - n[3], e;
262
250
  }
263
- function tn(e, t, n) {
251
+ function Kt(e, t, n) {
264
252
  return e[0] = t[0] * n, e[1] = t[1] * n, e[2] = t[2] * n, e[3] = t[3] * n, e;
265
253
  }
266
- function nn(e, t) {
254
+ function qt(e, t) {
267
255
  var n = t[0] - e[0], i = t[1] - e[1], r = t[2] - e[2], s = t[3] - e[3];
268
256
  return Math.hypot(n, i, r, s);
269
257
  }
270
- function rn(e, t) {
258
+ function Jt(e, t) {
271
259
  var n = t[0], i = t[1], r = t[2], s = t[3], o = n * n + i * i + r * r + s * s;
272
260
  return o > 0 && (o = 1 / Math.sqrt(o)), e[0] = n * o, e[1] = i * o, e[2] = r * o, e[3] = s * o, e;
273
261
  }
274
- function sn(e, t) {
262
+ function en(e, t) {
275
263
  return e[0] * t[0] + e[1] * t[1] + e[2] * t[2] + e[3] * t[3];
276
264
  }
277
- function lt(e, t, n) {
265
+ function at(e, t, n) {
278
266
  var i = t[0], r = t[1], s = t[2], o = t[3];
279
267
  return e[0] = n[0] * i + n[4] * r + n[8] * s + n[12] * o, e[1] = n[1] * i + n[5] * r + n[9] * s + n[13] * o, e[2] = n[2] * i + n[6] * r + n[10] * s + n[14] * o, e[3] = n[3] * i + n[7] * r + n[11] * s + n[15] * o, e;
280
268
  }
281
- var on = en;
269
+ var tn = Qt;
282
270
  (function() {
283
271
  var e = ne();
284
272
  return function(t, n, i, r, s, o) {
@@ -288,24 +276,24 @@ var on = en;
288
276
  return t;
289
277
  };
290
278
  })();
291
- function Ke() {
279
+ function He() {
292
280
  var e = new j(4);
293
281
  return j != Float32Array && (e[0] = 0, e[1] = 0, e[2] = 0), e[3] = 1, e;
294
282
  }
295
- function an(e, t, n) {
283
+ function nn(e, t, n) {
296
284
  n = n * 0.5;
297
285
  var i = Math.sin(n);
298
286
  return e[0] = i * t[0], e[1] = i * t[1], e[2] = i * t[2], e[3] = Math.cos(n), e;
299
287
  }
300
- function cn(e, t) {
301
- var n = ln(e, t);
288
+ function rn(e, t) {
289
+ var n = an(e, t);
302
290
  return Math.acos(2 * n * n - 1);
303
291
  }
304
- function Ce(e, t, n, i) {
305
- var r = t[0], s = t[1], o = t[2], c = t[3], a = n[0], f = n[1], l = n[2], h = n[3], u, d, m, _, x;
306
- return d = r * a + s * f + o * l + c * h, d < 0 && (d = -d, a = -a, f = -f, l = -l, h = -h), 1 - d > Nt ? (u = Math.acos(d), m = Math.sin(u), _ = Math.sin((1 - i) * u) / m, x = Math.sin(i * u) / m) : (_ = 1 - i, x = i), e[0] = _ * r + x * a, e[1] = _ * s + x * f, e[2] = _ * o + x * l, e[3] = _ * c + x * h, e;
292
+ function Ie(e, t, n, i) {
293
+ var r = t[0], s = t[1], o = t[2], c = t[3], a = n[0], f = n[1], l = n[2], h = n[3], u, d, v, _, E;
294
+ return d = r * a + s * f + o * l + c * h, d < 0 && (d = -d, a = -a, f = -f, l = -l, h = -h), 1 - d > Lt ? (u = Math.acos(d), v = Math.sin(u), _ = Math.sin((1 - i) * u) / v, E = Math.sin(i * u) / v) : (_ = 1 - i, E = i), e[0] = _ * r + E * a, e[1] = _ * s + E * f, e[2] = _ * o + E * l, e[3] = _ * c + E * h, e;
307
295
  }
308
- function fn(e, t) {
296
+ function sn(e, t) {
309
297
  var n = t[0] + t[4] + t[8], i;
310
298
  if (n > 0)
311
299
  i = Math.sqrt(n + 1), e[3] = 0.5 * i, i = 0.5 / i, e[0] = (t[5] - t[7]) * i, e[1] = (t[6] - t[2]) * i, e[2] = (t[1] - t[3]) * i;
@@ -317,58 +305,58 @@ function fn(e, t) {
317
305
  }
318
306
  return e;
319
307
  }
320
- var ln = sn, pt = rn;
308
+ var on = dt, an = en, mt = Jt;
321
309
  (function() {
322
- var e = L(), t = ct(1, 0, 0), n = ct(0, 1, 0);
310
+ var e = L(), t = st(1, 0, 0), n = st(0, 1, 0);
323
311
  return function(i, r, s) {
324
- var o = Gt(r, s);
325
- return o < -0.999999 ? (He(e, t, r), Qt(e) < 1e-6 && He(e, n, r), Ht(e, e), an(i, e, Math.PI), i) : o > 0.999999 ? (i[0] = 0, i[1] = 0, i[2] = 0, i[3] = 1, i) : (He(e, r, s), i[0] = e[0], i[1] = e[1], i[2] = e[2], i[3] = 1 + o, pt(i, i));
312
+ var o = $t(r, s);
313
+ return o < -0.999999 ? (Ze(e, t, r), Ht(e) < 1e-6 && Ze(e, n, r), Yt(e, e), nn(i, e, Math.PI), i) : o > 0.999999 ? (i[0] = 0, i[1] = 0, i[2] = 0, i[3] = 1, i) : (Ze(e, r, s), i[0] = e[0], i[1] = e[1], i[2] = e[2], i[3] = 1 + o, mt(i, i));
326
314
  };
327
315
  })();
328
316
  (function() {
329
- var e = Ke(), t = Ke();
317
+ var e = He(), t = He();
330
318
  return function(n, i, r, s, o, c) {
331
- return Ce(e, i, o, c), Ce(t, r, s, c), Ce(n, e, t, 2 * c * (1 - c)), n;
319
+ return Ie(e, i, o, c), Ie(t, r, s, c), Ie(n, e, t, 2 * c * (1 - c)), n;
332
320
  };
333
321
  })();
334
322
  (function() {
335
- var e = Dt();
323
+ var e = It();
336
324
  return function(t, n, i, r) {
337
- return e[0] = i[0], e[3] = i[1], e[6] = i[2], e[1] = r[0], e[4] = r[1], e[7] = r[2], e[2] = -n[0], e[5] = -n[1], e[8] = -n[2], pt(t, fn(t, e));
325
+ return e[0] = i[0], e[3] = i[1], e[6] = i[2], e[1] = r[0], e[4] = r[1], e[7] = r[2], e[2] = -n[0], e[5] = -n[1], e[8] = -n[2], mt(t, sn(t, e));
338
326
  };
339
327
  })();
340
328
  function pe() {
341
329
  var e = new j(2);
342
330
  return j != Float32Array && (e[0] = 0, e[1] = 0), e;
343
331
  }
344
- function un(e) {
332
+ function cn(e) {
345
333
  var t = new j(2);
346
334
  return t[0] = e[0], t[1] = e[1], t;
347
335
  }
348
- function hn(e, t) {
336
+ function fn(e, t) {
349
337
  return e[0] = t[0], e[1] = t[1], e;
350
338
  }
351
- function dn(e, t, n) {
339
+ function ln(e, t, n) {
352
340
  return e[0] = t, e[1] = n, e;
353
341
  }
354
- function mn(e, t, n) {
342
+ function un(e, t, n) {
355
343
  return e[0] = t[0] + n[0], e[1] = t[1] + n[1], e;
356
344
  }
357
- function vn(e, t, n) {
345
+ function hn(e, t, n) {
358
346
  return e[0] = t[0] - n[0], e[1] = t[1] - n[1], e;
359
347
  }
360
- function pn(e, t, n) {
348
+ function dn(e, t, n) {
361
349
  return e[0] = t[0] * n, e[1] = t[1] * n, e;
362
350
  }
363
- function xn(e, t) {
351
+ function mn(e, t) {
364
352
  var n = t[0] - e[0], i = t[1] - e[1];
365
353
  return Math.hypot(n, i);
366
354
  }
367
- function En(e, t) {
355
+ function vn(e, t) {
368
356
  var n = t[0] - e[0], i = t[1] - e[1];
369
357
  return n * n + i * i;
370
358
  }
371
- var _n = vn;
359
+ var pn = hn;
372
360
  (function() {
373
361
  var e = pe();
374
362
  return function(t, n, i, r, s, o) {
@@ -378,86 +366,86 @@ var _n = vn;
378
366
  return t;
379
367
  };
380
368
  })();
381
- const F = 40075017, Xe = (e) => e / 180 * Math.PI, yn = (e) => e * 180 / Math.PI, wn = (e, t, n) => {
369
+ const Q = 40075017, De = (e) => e / 180 * Math.PI, xn = (e) => e * 180 / Math.PI, En = (e, t, n) => {
382
370
  const i = Math.sqrt(t * t - 4 * e * n);
383
371
  return [(-t - i) / (2 * e), (-t + i) / (2 * e)];
384
- }, Tn = (e, t, n) => Math.min(Math.max(e, t), n), ut = Math.atan(Math.sinh(Math.PI)), z = ([e = 0, t = 0, n = 0], i = L()) => Se(
372
+ }, _n = (e, t, n) => Math.min(Math.max(e, t), n), ct = Math.atan(Math.sinh(Math.PI)), z = ([e = 0, t = 0, n = 0], i = L()) => be(
385
373
  i,
386
374
  e / 360 + 0.5,
387
- -Math.asinh(Math.tan(Tn(Xe(t), -ut, ut))) / (2 * Math.PI) + 0.5,
388
- n / F
389
- ), oe = ([e = 0, t = 0, n = 0], i = L()) => Se(
375
+ -Math.asinh(Math.tan(_n(De(t), -ct, ct))) / (2 * Math.PI) + 0.5,
376
+ n / Q
377
+ ), oe = ([e = 0, t = 0, n = 0], i = L()) => be(
390
378
  i,
391
379
  (e - 0.5) * 360,
392
- yn(Math.atan(Math.sinh(-(t - 0.5) * (2 * Math.PI)))),
393
- n * F
394
- ), xt = ([e = 0, t = 0, n = 0], i = L()) => {
380
+ xn(Math.atan(Math.sinh(-(t - 0.5) * (2 * Math.PI)))),
381
+ n * Q
382
+ ), vt = ([e = 0, t = 0, n = 0], i = L()) => {
395
383
  const r = 2 ** -n;
396
- return Se(i, e * r, t * r, 0);
397
- }, Le = ([e = 0, t = 0, n = 0]) => {
398
- const i = Math.cos(t * 0.5), r = Math.sin(t * 0.5), s = Math.cos(e * 0.5), o = Math.sin(e * 0.5), c = Math.cos(n * 0.5), a = Math.sin(n * 0.5), f = c * s * i + a * o * r, l = a * s * i - c * o * r, h = c * o * i + a * s * r, u = c * s * r - a * o * i;
384
+ return be(i, e * r, t * r, 0);
385
+ }, pt = ([e = 0, t = 0, n = 0]) => {
386
+ const i = Math.cos(e * 0.5), r = Math.sin(e * 0.5), s = Math.cos(t * 0.5), o = Math.sin(t * 0.5), c = Math.cos(n * 0.5), a = Math.sin(n * 0.5), f = i * s * c - r * o * a, l = r * s * c + i * o * a, h = i * o * c - r * s * a, u = i * s * a + r * o * c;
399
387
  return [l, h, u, f];
400
- }, gn = ([e = 0, t = 0, n = 0, i = 0]) => {
401
- const r = Math.atan2(2 * (i * e + t * n), 1 - 2 * (e * e + t * t)), s = Math.asin(Math.min(1, 2 * (i * t - n * e))), o = Math.atan2(2 * (i * n + e * t), 1 - 2 * (t * t + n * n));
402
- return [s, o, r];
403
- }, Et = {
388
+ }, yn = ([e = 0, t = 0, n = 0, i = 0]) => {
389
+ const r = (a, f, l) => Math.max(f, Math.min(a, l)), s = Math.atan2(2 * (i * e - t * n), 1 - 2 * (e * e + t * t)), o = Math.asin(r(2 * (i * t + n * e), -1, 1)), c = Math.atan2(2 * (i * n - e * t), 1 - 2 * (t * t + n * n));
390
+ return [s, o, c];
391
+ }, xt = {
404
392
  target: [0, 0, 0],
405
393
  offset: [0, 0],
406
- distance: F,
394
+ distance: Q,
407
395
  orientation: [0, 0, 0],
408
396
  fieldOfView: 45
409
397
  }, te = (e, t) => {
410
398
  const { target: n, offset: i, distance: r, orientation: s, fieldOfView: o } = {
411
- ...Et,
399
+ ...xt,
412
400
  ...e
413
- }, [c = 0, a = 0] = t, [f = 0, l = 0] = i, [h = 0, u = 0, d = 0] = s, m = Math.tan(Xe(45) / 2) / Math.tan(Xe(o) / 2), _ = r / F, x = Math.max(1e3 / F, _), p = 1e3, A = 1e-3, y = x * p * m, E = x * A * m, v = ne(), w = he();
414
- at(w), Zt(w, Xe(o), c / a, E, y), Xt(w, w, [1, -1, 1]);
415
- const M = he();
416
- at(M), Wt(M, M, h), jt(M, M, u), Bt(M, M, d);
417
- const T = Ct(he(), w, M), R = Ot(he(), T);
418
- if (!R)
401
+ }, [c = 0, a = 0] = t, [f = 0, l = 0] = i, h = Math.tan(De(45) / 2) / Math.tan(De(o) / 2), u = r / Q, d = Math.max(1e3 / Q, u), v = 1e3, _ = 1e-3, E = d * v * h, x = d * _ * h, A = ne(), R = he();
402
+ Dt(R), jt(R, De(o), c / a, x, E), Xt(R, R, [1, -1, 1]);
403
+ const p = he();
404
+ Ke(p, pt(s));
405
+ const m = Ct(he(), R, p), w = Ot(he(), m);
406
+ if (!w)
419
407
  throw new Error("No inverse");
420
- const g = (C) => {
421
- const Y = [c * C, a * C], H = [f * C, l * C];
422
- return te({ ...e, offset: H }, Y);
423
- }, b = ([C = 0, Y = 0], H = ne()) => {
424
- const K = 2 * C / c - 1, ge = -(2 * Y / a - 1);
425
- return ft(H, K, ge, 0, 1);
426
- }, S = ([C = 0, Y = 0, , H = 0], K = pe()) => H < 0 ? K : dn(K, (1 + C / H) * c * 0.5, (1 - Y / H) * a * 0.5), U = (C, Y = L()) => {
427
- const [H = 0, K = 0, ge = 0, Re = 0] = lt(v, C, R);
428
- return Se(Y, H / Re, K / Re, ge / Re);
429
- }, P = ([C = 0, Y = 0, H = 0], K = ne()) => lt(K, ft(K, C, Y, H, 1), T), [D = 0, O = 0] = b([f + c / 2, l + a / 2]), [X = 0, I = 0, W = 0] = U([D, O, -1, 1]), [B = 0, $ = 0, J = 0] = U([D, O, 1.00001, 1]), [k = 0] = wn(
430
- (B - X) ** 2 + ($ - I) ** 2 + (J - W) ** 2,
431
- 2 * (X * (B - X) + I * ($ - I) + W * (J - W)),
432
- X ** 2 + I ** 2 + W ** 2 - (_ * m) ** 2
408
+ const b = (O) => {
409
+ const Y = [c * O, a * O], $ = [f * O, l * O];
410
+ return te({ ...e, offset: $ }, Y);
411
+ }, y = ([O = 0, Y = 0], $ = ne()) => {
412
+ const K = 2 * O / c - 1, Te = -(2 * Y / a - 1);
413
+ return ot($, K, Te, 0, 1);
414
+ }, g = ([O = 0, Y = 0, , $ = 0], K = pe()) => $ < 0 ? K : ln(K, (1 + O / $) * c * 0.5, (1 - Y / $) * a * 0.5), T = (O, Y = L()) => {
415
+ const [$ = 0, K = 0, Te = 0, we = 0] = at(A, O, w);
416
+ return be(Y, $ / we, K / we, Te / we);
417
+ }, M = ([O = 0, Y = 0, $ = 0], K = ne()) => at(K, ot(K, O, Y, $, 1), m), [S = 0, U = 0] = y([f + c / 2, l + a / 2]), [P = 0, N = 0, I = 0] = T([S, U, -1, 1]), [X = 0, C = 0, B = 0] = T([S, U, 1.00001, 1]), [W = 0] = En(
418
+ (X - P) ** 2 + (C - N) ** 2 + (B - I) ** 2,
419
+ 2 * (P * (X - P) + N * (C - N) + I * (B - I)),
420
+ P ** 2 + N ** 2 + I ** 2 - (u * h) ** 2
433
421
  );
434
- if (isNaN(k))
422
+ if (isNaN(W))
435
423
  throw new Error("Unexpected");
436
- const Q = [
437
- X + k * (B - X),
438
- I + k * ($ - I),
439
- W + k * (J - W)
440
- ], we = se(L(), z(n), Q), Te = (C, Y = L()) => re(Y, C, we), ze = (C, Y = L()) => se(Y, C, we);
424
+ const H = [
425
+ P + W * (X - P),
426
+ N + W * (C - N),
427
+ I + W * (B - I)
428
+ ], J = se(L(), z(n), H), k = (O, Y = L()) => re(Y, O, J), G = (O, Y = L()) => se(Y, O, J);
441
429
  return {
442
- camera: we,
430
+ camera: J,
443
431
  screen: t,
444
- projection: w,
445
- modelView: M,
446
- fieldScale: m,
447
- scale: g,
448
- screenToClip: b,
449
- clipToScreen: S,
450
- clipToLocal: U,
451
- localToClip: P,
452
- localToWorld: Te,
453
- worldToLocal: ze,
454
- project: (C) => S(P(ze(z(C)))),
455
- unproject: (C, { targetZ: Y = 0 } = {}) => {
456
- const H = b(C), [K = 0, ge = 0, , Re = 0] = H, St = [K, ge, -1, Re], it = oe(Te(U(H))), rt = oe(Te(U(St))), [, , ke = 0] = it, [, , st = 0] = rt, Ut = ke === st ? 0 : (Y - ke) / (st - ke);
457
- return Ft(L(), it, rt, Ut);
432
+ projection: R,
433
+ modelView: p,
434
+ fieldScale: h,
435
+ scale: b,
436
+ screenToClip: y,
437
+ clipToScreen: g,
438
+ clipToLocal: T,
439
+ localToClip: M,
440
+ localToWorld: k,
441
+ worldToLocal: G,
442
+ project: (O) => g(M(G(z(O)))),
443
+ unproject: (O, { targetZ: Y = 0 } = {}) => {
444
+ const $ = y(O), [K = 0, Te = 0, , we = 0] = $, Mt = [K, Te, -1, we], tt = oe(k(T($))), nt = oe(k(T(Mt))), [, , Ve = 0] = tt, [, , it = 0] = nt, St = Ve === it ? 0 : (Y - Ve) / (it - Ve);
445
+ return kt(L(), tt, nt, St);
458
446
  }
459
447
  };
460
- }, Rn = 100, zi = (e, t, n) => {
448
+ }, Tn = 100, Mi = (e, t, n) => {
461
449
  const {
462
450
  enabled: i = () => !0,
463
451
  draggable: r = () => !0,
@@ -465,72 +453,72 @@ const F = 40075017, Xe = (e) => e / 180 * Math.PI, yn = (e) => e * 180 / Math.PI
465
453
  onChangeView: o
466
454
  } = n;
467
455
  let c = !1, a = !1;
468
- const { view: f } = n, l = ([v = 0, w = 0]) => {
469
- const [M, T] = [
456
+ const { view: f } = n, l = ([m = 0, w = 0]) => {
457
+ const [b, y] = [
470
458
  e.width / devicePixelRatio,
471
459
  e.height / devicePixelRatio
472
- ], { camera: R, fieldScale: g } = te(f(), [M, T]), { position: b, layer: S } = t.pick([v, w]);
460
+ ], { camera: g, fieldScale: T } = te(f(), [b, y]), { position: M, layer: S } = t.pick([m, w]);
473
461
  if (!S)
474
462
  return;
475
- const U = Ue(z(b), R) * F / g, P = [v - M / 2, w - T / 2];
463
+ const U = Me(z(M), g) * Q / T, P = [m - b / 2, w - y / 2];
476
464
  o({
477
465
  offset: P,
478
- target: b,
466
+ target: M,
479
467
  distance: U
480
468
  });
481
- }, h = (v, w) => {
469
+ }, h = (m, w) => {
482
470
  if (!r())
483
471
  return;
484
- a || (l([v, w]), a = !0);
485
- const [M, T] = [
472
+ a || (l([m, w]), a = !0);
473
+ const [b, y] = [
486
474
  e.width / devicePixelRatio,
487
475
  e.height / devicePixelRatio
488
476
  ];
489
477
  o({
490
- offset: [v - M / 2, w - T / 2]
478
+ offset: [m - b / 2, w - y / 2]
491
479
  });
492
- }, u = (v, w, M, T) => {
480
+ }, u = (m, w, b, y) => {
493
481
  if (!s())
494
482
  return;
495
- r() && !a && (l([v, w]), a = !0);
496
- const [R, g] = [
483
+ r() && !a && (l([m, w]), a = !0);
484
+ const [g, T] = [
497
485
  e.width / devicePixelRatio,
498
486
  e.height / devicePixelRatio
499
- ], { orientation: [b = 0, S = 0, U = 0] = [] } = f(), P = [
487
+ ], [M = 0, S = 0, U = 0] = f().orientation ?? [], P = [
500
488
  Math.min(
501
489
  Math.PI / 2 - 0.1,
502
- Math.max(0.1, b - T / g * Math.PI)
490
+ Math.max(0.1, M - y / T * Math.PI)
503
491
  ),
504
492
  S,
505
- U - M / R * Math.PI
493
+ U - b / g * Math.PI
506
494
  ];
507
495
  o({
508
496
  orientation: P
509
497
  });
510
- }, d = (v) => {
511
- v.preventDefault(), a = !1;
512
- }, m = ({ buttons: v, movementX: w, movementY: M, x: T, y: R }) => {
513
- !i() || !v || (v === 1 && r() ? h(T, R) : v === 2 && s() && u(T, R, w, M));
514
- }, _ = (v) => {
515
- v.preventDefault();
516
- const w = v.touches.item(0);
498
+ }, d = (m) => {
499
+ m.preventDefault(), a = !1;
500
+ }, v = ({ buttons: m, movementX: w, movementY: b, x: y, y: g }) => {
501
+ !i() || !m || (m === 1 && r() ? h(y, g) : m === 2 && s() && u(y, g, w, b));
502
+ }, _ = (m) => {
503
+ m.preventDefault();
504
+ const w = m.touches.item(0);
517
505
  if (!w)
518
506
  return;
519
- const { clientX: M, clientY: T } = w;
520
- h(M, T);
521
- }, x = Pt(() => c = !1, 100), p = ({ x: v, y: w, deltaY: M }) => {
507
+ const { clientX: b, clientY: y } = w;
508
+ h(b, y);
509
+ }, E = Ut(() => c = !1, 100), x = ({ x: m, y: w, deltaY: b }) => {
522
510
  if (!i())
523
511
  return;
524
- c || (r() && l([v, w]), c = !0);
525
- let { distance: T } = { ...Et, ...f() };
526
- T = Math.min(
527
- Math.max(T * Math.exp(M * 1e-3), Rn),
528
- F
529
- ), o({ distance: T }), x();
530
- }, A = (v) => v.preventDefault(), y = (v) => v.preventDefault();
531
- return e.addEventListener("mousedown", d), e.addEventListener("mousemove", m), e.addEventListener("touchstart", d, { passive: !1 }), e.addEventListener("touchmove", _, { passive: !1 }), e.addEventListener("gesturestart", A), e.addEventListener("wheel", p, { passive: !0 }), e.addEventListener("contextmenu", y), {
512
+ c || (r() && l([m, w]), c = !0);
513
+ let { distance: y } = { ...xt, ...f() };
514
+ y = Math.min(
515
+ Math.max(y * Math.exp(b * 1e-3), Tn),
516
+ Q
517
+ ), o({ distance: y }), E();
518
+ }, A = (m) => m.preventDefault(), R = (m) => m.preventDefault();
519
+ return e.addEventListener("mousedown", d), e.addEventListener("mousemove", v), e.addEventListener("touchstart", d, { passive: !1 }), e.addEventListener("touchmove", _, { passive: !1 }), e.addEventListener("gesturestart", A), e.addEventListener("wheel", x, { passive: !0 }), e.addEventListener("contextmenu", R), {
532
520
  dispose: () => {
533
- e.removeEventListener("mousedown", d), e.removeEventListener("mousemove", m), e.removeEventListener("touchstart", d), e.removeEventListener("touchmove", _), e.removeEventListener("gesturestart", A), e.removeEventListener("wheel", p), e.removeEventListener("contextmenu", y);
521
+ e.removeEventListener("mousedown", d), e.removeEventListener("mousemove", v), e.removeEventListener("touchstart", d), e.removeEventListener("touchmove", _), e.removeEventListener("gesturestart", A), e.removeEventListener("wheel", x), e.removeEventListener("contextmenu", R);
534
522
  }
535
523
  };
536
524
  }, Z = ({
@@ -553,7 +541,7 @@ const F = 40075017, Xe = (e) => e / 180 * Math.PI, yn = (e) => e * 180 / Math.PI
553
541
  use: s,
554
542
  dispose: () => e.deleteBuffer(i)
555
543
  };
556
- }, Ge = 2 ** 30, q = ([e = 0, t = 0, n = 0]) => [Math.floor(e * Ge), Math.floor(t * Ge), Math.floor(n * Ge)], Ee = (e, t, n) => {
544
+ }, Ye = 2 ** 30, q = ([e = 0, t = 0, n = 0]) => [Math.floor(e * Ye), Math.floor(t * Ye), Math.floor(n * Ye)], Ee = (e, t, n) => {
557
545
  const { pickable: i, depth: r, polygonOffset: s } = {
558
546
  pickable: () => !0,
559
547
  depth: () => !0,
@@ -593,11 +581,11 @@ vec2 pack_index(in int index) {
593
581
  void main(void) {
594
582
  result = vec4(pack_depth(gl_FragCoord.z), pack_index(index));
595
583
  }`;
596
- const _t = "KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2FkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGFzeW5jIG49Pntjb25zdFtpLHRdPW4uZGF0YTtpZihpIT09ImxvYWQiKXJldHVybjtjb25zdCBvPW5ldyBBYm9ydENvbnRyb2xsZXIse3NpZ25hbDpjfT1vLHI9ZT0+e2NvbnN0W3MsYV09ZS5kYXRhO3M9PT0iY2FuY2VsIiYmYT09PXQmJm8uYWJvcnQoKX07YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIscik7dHJ5e2NvbnN0IGU9YXdhaXQgZmV0Y2godCx7bW9kZToiY29ycyIsc2lnbmFsOmN9KTtpZighZS5vayl7cG9zdE1lc3NhZ2Uoe3VybDp0LGltYWdlOnZvaWQgMH0pO3JldHVybn1jb25zdCBzPWF3YWl0IGUuYmxvYigpLGE9YXdhaXQgY3JlYXRlSW1hZ2VCaXRtYXAocyk7cG9zdE1lc3NhZ2Uoe3VybDp0LGltYWdlOmF9KX1jYXRjaChlKXtpZighKGUgaW5zdGFuY2VvZiBFcnJvcikpdGhyb3cgZTtpZihlLm1lc3NhZ2U9PT0iVGhlIHVzZXIgYWJvcnRlZCBhIHJlcXVlc3QuInx8ZS5tZXNzYWdlLnN0YXJ0c1dpdGgoInNpZ25hbCBpcyBhYm9ydGVkIHdpdGhvdXQgcmVhc29uIikpcmV0dXJuO2lmKGUubWVzc2FnZT09PSJGYWlsZWQgdG8gZmV0Y2giKXtwb3N0TWVzc2FnZSh7dXJsOnQsaW1hZ2U6dm9pZCAwfSk7cmV0dXJufXRocm93IGV9ZmluYWxseXtyZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyKX19KX0pKCk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWltYWdlLWxvYWQtd29ya2VyLWR6cmprQ3RLLmpzLm1hcAo=", ht = typeof window < "u" && window.Blob && new Blob([atob(_t)], { type: "text/javascript;charset=utf-8" });
597
- function An(e) {
584
+ const Et = "KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2FkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGFzeW5jIG49Pntjb25zdFtpLHRdPW4uZGF0YTtpZihpIT09ImxvYWQiKXJldHVybjtjb25zdCBvPW5ldyBBYm9ydENvbnRyb2xsZXIse3NpZ25hbDpjfT1vLHI9ZT0+e2NvbnN0W3MsYV09ZS5kYXRhO3M9PT0iY2FuY2VsIiYmYT09PXQmJm8uYWJvcnQoKX07YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIscik7dHJ5e2NvbnN0IGU9YXdhaXQgZmV0Y2godCx7bW9kZToiY29ycyIsc2lnbmFsOmN9KTtpZighZS5vayl7cG9zdE1lc3NhZ2Uoe3VybDp0LGltYWdlOnZvaWQgMH0pO3JldHVybn1jb25zdCBzPWF3YWl0IGUuYmxvYigpLGE9YXdhaXQgY3JlYXRlSW1hZ2VCaXRtYXAocyk7cG9zdE1lc3NhZ2Uoe3VybDp0LGltYWdlOmF9KX1jYXRjaChlKXtpZighKGUgaW5zdGFuY2VvZiBFcnJvcikpdGhyb3cgZTtpZihlLm1lc3NhZ2U9PT0iVGhlIHVzZXIgYWJvcnRlZCBhIHJlcXVlc3QuInx8ZS5tZXNzYWdlLnN0YXJ0c1dpdGgoInNpZ25hbCBpcyBhYm9ydGVkIHdpdGhvdXQgcmVhc29uIikpcmV0dXJuO2lmKGUubWVzc2FnZT09PSJGYWlsZWQgdG8gZmV0Y2giKXtwb3N0TWVzc2FnZSh7dXJsOnQsaW1hZ2U6dm9pZCAwfSk7cmV0dXJufXRocm93IGV9ZmluYWxseXtyZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixyKX19KX0pKCk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWltYWdlLWxvYWQtd29ya2VyLWR6cmprQ3RLLmpzLm1hcAo=", ft = typeof window < "u" && window.Blob && new Blob([atob(Et)], { type: "text/javascript;charset=utf-8" });
585
+ function wn(e) {
598
586
  let t;
599
587
  try {
600
- if (t = ht && (window.URL || window.webkitURL).createObjectURL(ht), !t)
588
+ if (t = ft && (window.URL || window.webkitURL).createObjectURL(ft), !t)
601
589
  throw "";
602
590
  const n = new Worker(t, {
603
591
  name: e?.name
@@ -607,7 +595,7 @@ function An(e) {
607
595
  }), n;
608
596
  } catch {
609
597
  return new Worker(
610
- "data:text/javascript;base64," + _t,
598
+ "data:text/javascript;base64," + Et,
611
599
  {
612
600
  name: e?.name
613
601
  }
@@ -616,26 +604,26 @@ function An(e) {
616
604
  t && (window.URL || window.webkitURL).revokeObjectURL(t);
617
605
  }
618
606
  }
619
- const Ne = An(), Mn = ({
607
+ const Pe = wn(), gn = ({
620
608
  url: e,
621
609
  onLoad: t
622
610
  }) => {
623
611
  let n = !1;
624
612
  const i = ({ data: o }) => {
625
- r || e !== o.url || (Ne.removeEventListener("message", i), o.image && (n = !0, t(o.image)));
613
+ r || e !== o.url || (Pe.removeEventListener("message", i), o.image && (n = !0, t(o.image)));
626
614
  };
627
- Ne.addEventListener("message", i);
615
+ Pe.addEventListener("message", i);
628
616
  let r = !1;
629
617
  const s = () => {
630
- n || (r = !0, Ne.postMessage(["cancel", e]));
618
+ n || (r = !0, Pe.postMessage(["cancel", e]));
631
619
  };
632
- return Ne.postMessage(["load", e]), {
620
+ return Pe.postMessage(["load", e]), {
633
621
  get loaded() {
634
622
  return n;
635
623
  },
636
624
  cancel: s
637
625
  };
638
- }, yt = (e) => {
626
+ }, _t = (e) => {
639
627
  const t = e.createTexture();
640
628
  if (!t)
641
629
  throw new Error("Texture creation failed");
@@ -649,12 +637,12 @@ const Ne = An(), Mn = ({
649
637
  0
650
638
  );
651
639
  }, dispose: () => e.deleteTexture(t) };
652
- }, wt = ({
640
+ }, yt = ({
653
641
  gl: e,
654
642
  url: t,
655
643
  onLoad: n
656
644
  }) => {
657
- const i = yt(e), r = Mn({
645
+ const i = _t(e), r = gn({
658
646
  url: t,
659
647
  onLoad: (a) => {
660
648
  a && (i.use(), e.texImage2D(
@@ -678,7 +666,7 @@ const Ne = An(), Mn = ({
678
666
  }
679
667
  };
680
668
  };
681
- var bn = `#version 300 es
669
+ var Rn = `#version 300 es
682
670
 
683
671
  precision highp float;
684
672
 
@@ -690,7 +678,7 @@ out vec4 result;
690
678
  void main() {
691
679
  result = texture(image, uv_out) * color_out;
692
680
  if (result.a == 0.f) discard;
693
- }`, Sn = `#version 300 es
681
+ }`, An = `#version 300 es
694
682
 
695
683
  precision highp float;
696
684
 
@@ -725,7 +713,7 @@ void main(void) {
725
713
  uv_out = uv;
726
714
  color_out = color;
727
715
  }`;
728
- const Li = (e, t = {}) => {
716
+ const Si = (e, t = {}) => {
729
717
  const { gl: n } = e;
730
718
  let i, r = [0, 0];
731
719
  const s = Z({ gl: n, type: "f32", target: "array" }), o = Z({ gl: n, type: "f32", target: "array" }), c = Z({ gl: n, type: "u16", target: "element" });
@@ -751,40 +739,40 @@ const Li = (e, t = {}) => {
751
739
  );
752
740
  const a = ce(
753
741
  () => t.url?.() ?? "",
754
- (m) => {
755
- const _ = wt({
742
+ (v) => {
743
+ const _ = yt({
756
744
  gl: n,
757
- url: m,
758
- onLoad: ({ width: x, height: p }) => {
759
- r = [x, p], n.texParameteri(n.TEXTURE_2D, n.TEXTURE_MIN_FILTER, n.LINEAR), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_MAG_FILTER, n.LINEAR), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_WRAP_S, n.CLAMP_TO_EDGE), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_WRAP_T, n.CLAMP_TO_EDGE), i?.dispose(), i = _;
745
+ url: v,
746
+ onLoad: ({ width: E, height: x }) => {
747
+ r = [E, 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 = _;
760
748
  }
761
749
  });
762
750
  }
763
- ), { renderProgram: f, depthProgram: l } = Un(e, {
751
+ ), { renderProgram: f, depthProgram: l } = bn(e, {
764
752
  cornerBuffer: s,
765
753
  uvBuffer: o,
766
754
  indexBuffer: c
767
755
  }), h = ({
768
- viewport: { projection: m, modelView: _, camera: x, screen: p },
756
+ viewport: { projection: v, modelView: _, camera: E, screen: x },
769
757
  depth: A = !1,
770
- index: y = 0
758
+ index: R = 0
771
759
  }) => {
772
- const E = t.position?.() ?? [0, 0, 0], v = t.color?.() ?? [1, 1, 1, 1], w = t.size?.() ?? 100, M = t.minSizePixels?.() ?? 0, T = t.maxSizePixels?.() ?? Number.MAX_VALUE;
760
+ const p = t.position?.() ?? [0, 0, 0], m = t.color?.() ?? [1, 1, 1, 1], w = t.size?.() ?? 100, b = t.minSizePixels?.() ?? 0, y = t.maxSizePixels?.() ?? Number.MAX_VALUE;
773
761
  if (a(), !i || Ee(n, A, t))
774
762
  return;
775
763
  (A ? l : f).execute({
776
- projection: m,
764
+ projection: v,
777
765
  modelView: _,
778
- camera: q(x),
779
- screen: p,
766
+ camera: q(E),
767
+ screen: x,
780
768
  image: i,
781
769
  imageSize: r,
782
- position: q(z(E)),
783
- color: v,
770
+ position: q(z(p)),
771
+ color: m,
784
772
  size: w,
785
- minSizePixels: M,
786
- maxSizePixels: T,
787
- index: y
773
+ minSizePixels: b,
774
+ maxSizePixels: y,
775
+ index: R
788
776
  });
789
777
  }, u = () => {
790
778
  s.dispose(), o.dispose(), c.dispose(), i?.dispose();
@@ -794,42 +782,42 @@ const Li = (e, t = {}) => {
794
782
  dispose: u,
795
783
  ...d
796
784
  };
797
- }, Un = ({ gl: e, programs: t }, {
785
+ }, bn = ({ gl: e, programs: t }, {
798
786
  cornerBuffer: n,
799
787
  uvBuffer: i,
800
788
  indexBuffer: r
801
789
  }) => {
802
790
  const s = (a = !1) => {
803
791
  const f = t.get({
804
- vertexSource: Sn,
805
- fragmentSource: a ? _e : bn
792
+ vertexSource: An,
793
+ fragmentSource: a ? _e : Rn
806
794
  }), l = f.attribute2f("corner", n, {
807
795
  stride: 2 * Float32Array.BYTES_PER_ELEMENT
808
796
  }), h = f.attribute2f("uv", i, {
809
797
  stride: 2 * Float32Array.BYTES_PER_ELEMENT
810
- }), u = f.uniformMatrix4f("projection"), d = f.uniformMatrix4f("model_view"), m = f.uniform3i("camera"), _ = f.uniform2f("screen"), x = f.uniform1i("image"), p = f.uniform2f("image_size"), A = f.uniform3i("position"), y = f.uniform4f("color"), E = f.uniform1i("index"), v = f.uniform1f("size"), w = f.uniform1f("min_size_pixels"), M = f.uniform1f("max_size_pixels");
798
+ }), u = f.uniformMatrix4f("projection"), d = f.uniformMatrix4f("model_view"), v = f.uniform3i("camera"), _ = f.uniform2f("screen"), E = f.uniform1i("image"), x = f.uniform2f("image_size"), A = f.uniform3i("position"), R = f.uniform4f("color"), p = f.uniform1i("index"), m = f.uniform1f("size"), w = f.uniform1f("min_size_pixels"), b = f.uniform1f("max_size_pixels");
811
799
  return { execute: ({
812
- projection: R,
813
- modelView: g,
814
- camera: b,
800
+ projection: g,
801
+ modelView: T,
802
+ camera: M,
815
803
  screen: S,
816
804
  image: U,
817
805
  imageSize: P,
818
- position: D,
819
- color: O,
806
+ position: N,
807
+ color: I,
820
808
  size: X,
821
- minSizePixels: I,
822
- maxSizePixels: W,
823
- index: B
809
+ minSizePixels: C,
810
+ maxSizePixels: B,
811
+ index: W
824
812
  }) => {
825
- f.use(), l.use(), h.use(), u.set(R), d.set(g), m.set(b), _.set(S), p.set(P), A.set(D), y.set(O), v.set(X), w.set(I), M.set(W), E.set(B), e.activeTexture(e.TEXTURE0), x.set(0), U.use(), r.use(), e.drawElements(e.TRIANGLES, 6, e.UNSIGNED_SHORT, 0);
813
+ f.use(), l.use(), h.use(), u.set(g), d.set(T), v.set(M), _.set(S), x.set(P), A.set(N), R.set(I), m.set(X), w.set(C), b.set(B), p.set(W), e.activeTexture(e.TEXTURE0), E.set(0), U.use(), r.use(), e.drawElements(e.TRIANGLES, 6, e.UNSIGNED_SHORT, 0);
826
814
  } };
827
815
  }, o = s(), c = s(!0);
828
816
  return { renderProgram: o, depthProgram: c };
829
- }, Ni = (e) => ({
817
+ }, Ui = (e) => ({
830
818
  children: e,
831
819
  dispose: () => e.forEach((n) => n.dispose())
832
- }), Ii = (e) => {
820
+ }), Pi = (e) => {
833
821
  const { keys: t, create: n } = e, i = /* @__PURE__ */ new Map();
834
822
  return {
835
823
  get children() {
@@ -845,13 +833,13 @@ const Li = (e, t = {}) => {
845
833
  },
846
834
  dispose: () => Object.values(i).forEach((o) => o.dispose())
847
835
  };
848
- }, Di = (e) => ({
836
+ }, zi = (e) => ({
849
837
  render: e,
850
838
  dispose: () => {
851
839
  }
852
- }), Oi = () => ({ dispose: () => {
840
+ }), Li = () => ({ dispose: () => {
853
841
  } });
854
- var Pn = `#version 300 es
842
+ var Mn = `#version 300 es
855
843
 
856
844
  precision highp float;
857
845
 
@@ -868,7 +856,7 @@ void main() {
868
856
  result = color_out * texture(
869
857
  dash,
870
858
  vec2(fract((distance_out / dash_size) - dash_offset), 0.0));;
871
- }`, zn = `#version 300 es
859
+ }`, Sn = `#version 300 es
872
860
 
873
861
  precision highp float;
874
862
 
@@ -935,81 +923,81 @@ void main(void) {
935
923
  color_out = color;
936
924
  distance_out = distance;
937
925
  }`;
938
- const Ci = (e, t = {}) => {
926
+ const Ni = (e, t = {}) => {
939
927
  const { gl: n } = e;
940
928
  let i = 0;
941
- const r = Z({ gl: n, type: "i32", target: "array" }), s = Z({ gl: n, type: "u16", target: "element" }), o = Z({ gl: n, type: "f32", target: "array" }), c = Z({ gl: n, type: "f32", target: "array" }), { renderProgram: a, depthProgram: f } = Ln(e, {
929
+ const r = Z({ gl: n, type: "i32", target: "array" }), s = Z({ gl: n, type: "u16", target: "element" }), o = Z({ gl: n, type: "f32", target: "array" }), c = Z({ gl: n, type: "f32", target: "array" }), { renderProgram: a, depthProgram: f } = Un(e, {
942
930
  positionBuffer: r,
943
931
  indexBuffer: s,
944
932
  cornerBuffer: o,
945
933
  distanceBuffer: c
946
- }), l = yt(n);
934
+ }), l = _t(n);
947
935
  l.use(), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_MIN_FILTER, n.LINEAR), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_MAG_FILTER, n.LINEAR), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_WRAP_S, n.CLAMP_TO_EDGE), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_WRAP_T, n.REPEAT);
948
936
  const h = ({
949
- viewport: { projection: x, modelView: p, camera: A, screen: y },
950
- depth: E = !1,
951
- index: v = 0
937
+ viewport: { projection: E, modelView: x, camera: A, screen: R },
938
+ depth: p = !1,
939
+ index: m = 0
952
940
  }) => {
953
941
  u(), d();
954
- const w = t.color?.() ?? [1, 1, 1, 1], M = t.width?.() ?? 1, T = t.minWidthPixels?.() ?? 0, R = t.maxWidthPixels?.() ?? Number.MAX_VALUE, g = t.depthWidthPixels?.(), b = t.dashSize?.() ?? 1e3, S = t.dashOffset?.() ?? 0;
955
- if (Ee(n, E, t))
942
+ const w = t.color?.() ?? [1, 1, 1, 1], b = t.width?.() ?? 1, y = t.minWidthPixels?.() ?? 0, g = t.maxWidthPixels?.() ?? Number.MAX_VALUE, T = t.depthWidthPixels?.(), M = t.dashSize?.() ?? 1e3, S = t.dashOffset?.() ?? 0;
943
+ if (Ee(n, p, t))
956
944
  return;
957
- (E ? f : a).execute({
958
- projection: x,
959
- modelView: p,
945
+ (p ? f : a).execute({
946
+ projection: E,
947
+ modelView: x,
960
948
  camera: q(A),
961
- screen: y,
949
+ screen: R,
962
950
  count: i,
963
951
  color: w,
964
- width: M,
965
- minWidthPixels: E && g !== void 0 ? Math.max(T, g) : T,
966
- maxWidthPixels: E && g !== void 0 ? Math.max(R, g) : R,
967
- index: v,
952
+ width: b,
953
+ minWidthPixels: p && T !== void 0 ? Math.max(y, T) : y,
954
+ maxWidthPixels: p && T !== void 0 ? Math.max(g, T) : g,
955
+ index: m,
968
956
  dash: l,
969
- dashSize: b,
957
+ dashSize: M,
970
958
  dashOffset: S
971
959
  });
972
960
  }, u = ce(
973
961
  () => t.points?.() ?? [],
974
- (x) => {
975
- const p = x.flatMap((v) => {
976
- const [w] = v, [M] = v.slice(-1);
977
- return !w || !M ? [] : ((R) => {
978
- const g = new Array(R.length * 3 * 4);
979
- for (let b = 0; b < R.length; b++) {
980
- const [S = 0, U = 0, P = 0] = R[b] ?? [];
981
- for (let D = 0; D < 4; D++) {
982
- const O = b * 3 * 4 + D * 3;
983
- g[O + 0] = S, g[O + 1] = U, g[O + 2] = P;
962
+ (E) => {
963
+ const x = E.flatMap((m) => {
964
+ const [w] = m, [b] = m.slice(-1);
965
+ return !w || !b ? [] : ((g) => {
966
+ const T = new Array(g.length * 3 * 4);
967
+ for (let M = 0; M < g.length; M++) {
968
+ const [S = 0, U = 0, P = 0] = g[M] ?? [];
969
+ for (let N = 0; N < 4; N++) {
970
+ const I = M * 3 * 4 + N * 3;
971
+ T[I + 0] = S, T[I + 1] = U, T[I + 2] = P;
984
972
  }
985
973
  }
986
- return g;
987
- })([w, ...v, M].map((R) => q(z(R))));
988
- }), { indexData: A } = x.reduce(
989
- ({ indexData: v, count: w }, M) => {
990
- if (M.length === 0)
991
- return { indexData: v, count: w };
992
- const T = xe(0, (M.length - 1) * 2).flatMap((R) => {
993
- const [g = 0, b = 0, S = 0, U = 0] = [0, 1, 2, 3].map(
994
- (P) => P + R * 2 + w
974
+ return T;
975
+ })([w, ...m, b].map((g) => q(z(g))));
976
+ }), { indexData: A } = E.reduce(
977
+ ({ indexData: m, count: w }, b) => {
978
+ if (b.length === 0)
979
+ return { indexData: m, count: w };
980
+ const y = xe(0, (b.length - 1) * 2).flatMap((g) => {
981
+ const [T = 0, M = 0, S = 0, U = 0] = [0, 1, 2, 3].map(
982
+ (P) => P + g * 2 + w
995
983
  );
996
984
  return [
997
- g,
998
- b,
985
+ T,
986
+ M,
999
987
  U,
1000
988
  /**/
1001
- g,
989
+ T,
1002
990
  U,
1003
991
  S
1004
992
  ];
1005
993
  });
1006
- return w += (M.length + 2) * 4, v = v.concat(T), { indexData: v, count: w };
994
+ return w += (b.length + 2) * 4, m = m.concat(y), { indexData: m, count: w };
1007
995
  },
1008
996
  { indexData: [], count: 0 }
1009
997
  );
1010
998
  i = A.length;
1011
- const y = x.flatMap(
1012
- (v) => v.length === 0 ? [] : xe(0, (v.length + 1) * 2).flatMap(() => [
999
+ const R = E.flatMap(
1000
+ (m) => m.length === 0 ? [] : xe(0, (m.length + 1) * 2).flatMap(() => [
1013
1001
  -1,
1014
1002
  -1,
1015
1003
  //
@@ -1022,46 +1010,46 @@ const Ci = (e, t = {}) => {
1022
1010
  1,
1023
1011
  1
1024
1012
  ])
1025
- ), E = x.flatMap((v) => {
1026
- const M = v.map(
1027
- (b, S) => Ue(z(b), z(v[S - 1] ?? b)) * F
1013
+ ), p = E.flatMap((m) => {
1014
+ const b = m.map(
1015
+ (M, S) => Me(z(M), z(m[S - 1] ?? M)) * Q
1028
1016
  ).reduce(
1029
- ({ current: b, result: S }, U) => (b += U, S.push(b), { current: b, result: S }),
1017
+ ({ current: M, result: S }, U) => (M += U, S.push(M), { current: M, result: S }),
1030
1018
  { current: 0, result: [] }
1031
- ).result, [T] = M, [R] = M.slice(-1);
1032
- return T === void 0 || R === void 0 ? [] : ((b) => {
1033
- const S = new Array(b.length * 4);
1034
- for (let U = 0; U < b.length; U++)
1035
- S[U * 4 + 0] = b[U], S[U * 4 + 1] = b[U], S[U * 4 + 2] = b[U], S[U * 4 + 3] = b[U];
1019
+ ).result, [y] = b, [g] = b.slice(-1);
1020
+ return y === void 0 || g === void 0 ? [] : ((M) => {
1021
+ const S = new Array(M.length * 4);
1022
+ for (let U = 0; U < M.length; U++)
1023
+ S[U * 4 + 0] = M[U], S[U * 4 + 1] = M[U], S[U * 4 + 2] = M[U], S[U * 4 + 3] = M[U];
1036
1024
  return S;
1037
- })([T, ...M, R]);
1025
+ })([y, ...b, g]);
1038
1026
  });
1039
- r.set(p), s.set(A), o.set(y), c.set(E);
1027
+ r.set(x), s.set(A), o.set(R), c.set(p);
1040
1028
  }
1041
1029
  ), d = ce(
1042
1030
  () => t.dashPattern?.(),
1043
- (x) => {
1044
- x = x ?? [[1, 1, 1, 1]], l.use(), n.texImage2D(
1031
+ (E) => {
1032
+ E = E ?? [[1, 1, 1, 1]], l.use(), n.texImage2D(
1045
1033
  n.TEXTURE_2D,
1046
1034
  0,
1047
1035
  n.RGBA,
1048
- x.length,
1036
+ E.length,
1049
1037
  1,
1050
1038
  0,
1051
1039
  n.RGBA,
1052
1040
  n.UNSIGNED_BYTE,
1053
- new Uint8Array(x.flatMap((p) => [...p.map((A) => A * 255)]))
1041
+ new Uint8Array(E.flatMap((x) => [...x.map((A) => A * 255)]))
1054
1042
  );
1055
1043
  }
1056
- ), m = () => {
1044
+ ), v = () => {
1057
1045
  l.dispose(), r.dispose(), s.dispose(), o.dispose(), c.dispose();
1058
1046
  }, _ = ye(t);
1059
1047
  return {
1060
1048
  render: h,
1061
- dispose: m,
1049
+ dispose: v,
1062
1050
  ..._
1063
1051
  };
1064
- }, Ln = ({ gl: e, programs: t }, {
1052
+ }, Un = ({ gl: e, programs: t }, {
1065
1053
  positionBuffer: n,
1066
1054
  indexBuffer: i,
1067
1055
  cornerBuffer: r,
@@ -1069,43 +1057,43 @@ const Ci = (e, t = {}) => {
1069
1057
  }) => {
1070
1058
  const o = (f = !1) => {
1071
1059
  const l = t.get({
1072
- vertexSource: zn,
1073
- fragmentSource: f ? _e : Pn
1060
+ vertexSource: Sn,
1061
+ fragmentSource: f ? _e : Mn
1074
1062
  }), h = Float32Array.BYTES_PER_ELEMENT, u = Int32Array.BYTES_PER_ELEMENT, d = l.attribute3i("previous", n, {
1075
1063
  stride: u * 3
1076
- }), m = l.attribute3i("current", n, {
1064
+ }), v = l.attribute3i("current", n, {
1077
1065
  stride: u * 3,
1078
1066
  offset: u * 3 * 4
1079
1067
  }), _ = l.attribute3i("next", n, {
1080
1068
  stride: u * 3,
1081
1069
  offset: u * 3 * 4 * 2
1082
- }), x = l.attribute2f("corner", r, {
1070
+ }), E = l.attribute2f("corner", r, {
1083
1071
  stride: h * 2
1084
- }), p = l.attribute1f("distance", s, {
1072
+ }), x = l.attribute1f("distance", s, {
1085
1073
  stride: h,
1086
1074
  offset: h * 1 * 4
1087
- }), A = l.uniformMatrix4f("projection"), y = l.uniformMatrix4f("model_view"), E = l.uniform3i("camera"), v = l.uniform2f("screen"), w = l.uniform4f("color"), M = l.uniform1f("width"), T = l.uniform1f("max_width_pixels"), R = l.uniform1f("min_width_pixels"), g = l.uniform1i("index"), b = l.uniform1i("dash"), S = l.uniform1f("dash_size"), U = l.uniform1f("dash_offset");
1075
+ }), A = l.uniformMatrix4f("projection"), R = l.uniformMatrix4f("model_view"), p = l.uniform3i("camera"), m = l.uniform2f("screen"), w = l.uniform4f("color"), b = l.uniform1f("width"), y = l.uniform1f("max_width_pixels"), g = l.uniform1f("min_width_pixels"), T = l.uniform1i("index"), M = l.uniform1i("dash"), S = l.uniform1f("dash_size"), U = l.uniform1f("dash_offset");
1088
1076
  return { execute: ({
1089
- projection: D,
1090
- modelView: O,
1077
+ projection: N,
1078
+ modelView: I,
1091
1079
  camera: X,
1092
- screen: I,
1093
- count: W,
1094
- color: B,
1095
- width: $,
1080
+ screen: C,
1081
+ count: B,
1082
+ color: W,
1083
+ width: H,
1096
1084
  minWidthPixels: J,
1097
1085
  maxWidthPixels: k,
1098
- index: Q,
1099
- dash: we,
1100
- dashSize: Te,
1101
- dashOffset: ze
1086
+ index: G,
1087
+ dash: Je,
1088
+ dashSize: et,
1089
+ dashOffset: O
1102
1090
  }) => {
1103
- W !== 0 && (l.use(), d.use(), m.use(), _.use(), x.use(), p.use(), A.set(D), y.set(O), E.set(X), v.set(I), w.set(B), M.set($), R.set(J), T.set(k), g.set(Q), S.set(Te), U.set(ze), e.activeTexture(e.TEXTURE0), b.set(0), we.use(), i.use(), e.drawElements(e.TRIANGLES, W, e.UNSIGNED_SHORT, 0));
1091
+ B !== 0 && (l.use(), d.use(), v.use(), _.use(), E.use(), x.use(), A.set(N), R.set(I), p.set(X), m.set(C), w.set(W), b.set(H), g.set(J), y.set(k), T.set(G), S.set(et), U.set(O), e.activeTexture(e.TEXTURE0), M.set(0), Je.use(), i.use(), e.drawElements(e.TRIANGLES, B, e.UNSIGNED_SHORT, 0));
1104
1092
  } };
1105
1093
  }, c = o(), a = o(!0);
1106
1094
  return { renderProgram: c, depthProgram: a };
1107
1095
  };
1108
- var Nn = `#version 300 es
1096
+ var Pn = `#version 300 es
1109
1097
 
1110
1098
  precision highp float;
1111
1099
 
@@ -1115,7 +1103,7 @@ out vec4 result;
1115
1103
  void main() {
1116
1104
  if (color_out.a == 0.f) discard;
1117
1105
  result = color_out;
1118
- }`, In = `#version 300 es
1106
+ }`, zn = `#version 300 es
1119
1107
 
1120
1108
  precision highp float;
1121
1109
 
@@ -1155,42 +1143,42 @@ void main(void) {
1155
1143
 
1156
1144
  color_out = color + diffuse * vec4(vec3(clamp(dot(qn.xyz / qn.w, vec3(0.f, 0.f, 1.f)), 0.f, 1.f)), 1.f);
1157
1145
  }`;
1158
- const Xi = (e, t = {}) => {
1146
+ const Ii = (e, t = {}) => {
1159
1147
  const { gl: n } = e;
1160
1148
  let i = 0;
1161
- const r = Z({ gl: n, type: "f32", target: "array" }), s = Z({ gl: n, type: "u16", target: "element" }), o = Z({ gl: n, type: "f32", target: "array" }), { renderProgram: c, depthProgram: a } = Dn(e, {
1149
+ const r = Z({ gl: n, type: "f32", target: "array" }), s = Z({ gl: n, type: "u16", target: "element" }), o = Z({ gl: n, type: "f32", target: "array" }), { renderProgram: c, depthProgram: a } = Ln(e, {
1162
1150
  vertexBuffer: r,
1163
1151
  indexBuffer: s,
1164
1152
  normalBuffer: o
1165
1153
  }), f = ({
1166
- viewport: { projection: d, modelView: m, camera: _, screen: x },
1167
- depth: p = !1,
1154
+ viewport: { projection: d, modelView: v, camera: _, screen: E },
1155
+ depth: x = !1,
1168
1156
  index: A = 0
1169
1157
  }) => {
1170
- const y = t.position?.() ?? [0, 0, 0], E = t.orientation?.() ?? [0, 0, 0, 1], v = t.color?.() ?? [1, 1, 1, 1], w = t.diffuse?.() ?? [0, 0, 0, 0], M = t.size?.() ?? 1, T = t.minSizePixels?.() ?? 0, R = t.maxSizePixels?.() ?? Number.MAX_VALUE;
1171
- if (l(), Ee(n, p, t))
1158
+ const R = t.position?.() ?? [0, 0, 0], p = t.orientation?.() ?? [0, 0, 0, 1], m = t.color?.() ?? [1, 1, 1, 1], w = t.diffuse?.() ?? [0, 0, 0, 0], b = t.size?.() ?? 1, y = t.minSizePixels?.() ?? 0, g = t.maxSizePixels?.() ?? Number.MAX_VALUE;
1159
+ if (l(), Ee(n, x, t))
1172
1160
  return;
1173
- (p ? a : c).execute({
1161
+ (x ? a : c).execute({
1174
1162
  projection: d,
1175
- modelView: m,
1163
+ modelView: v,
1176
1164
  camera: q(_),
1177
- screen: x,
1165
+ screen: E,
1178
1166
  count: i,
1179
- position: q(z(y)),
1180
- orientation: vt(he(), E),
1181
- color: v,
1167
+ position: q(z(R)),
1168
+ orientation: Ke(he(), p),
1169
+ color: m,
1182
1170
  diffuse: w,
1183
- size: M,
1184
- minSizePixels: T,
1185
- maxSizePixels: R,
1171
+ size: b,
1172
+ minSizePixels: y,
1173
+ maxSizePixels: g,
1186
1174
  index: A
1187
1175
  });
1188
1176
  }, l = ce(
1189
1177
  () => t.mesh?.(),
1190
1178
  (d) => {
1191
- const { vertices: m = [], indices: _ = [], normals: x = [] } = d ?? {};
1192
- r.set(m.flatMap((p) => [...p])), s.set(_.flatMap((p) => [...p])), o.set(
1193
- x.length === 0 ? m.flatMap(() => [0, 0, 0]) : x.flatMap((p) => [...p])
1179
+ const { vertices: v = [], indices: _ = [], normals: E = [] } = d ?? {};
1180
+ r.set(v.flatMap((x) => [...x])), s.set(_.flatMap((x) => [...x])), o.set(
1181
+ E.length === 0 ? v.flatMap(() => [0, 0, 0]) : E.flatMap((x) => [...x])
1194
1182
  ), i = _.length * 3;
1195
1183
  }
1196
1184
  ), h = () => {
@@ -1201,145 +1189,145 @@ const Xi = (e, t = {}) => {
1201
1189
  dispose: h,
1202
1190
  ...u
1203
1191
  };
1204
- }, Dn = ({ gl: e, programs: t }, {
1192
+ }, Ln = ({ gl: e, programs: t }, {
1205
1193
  vertexBuffer: n,
1206
1194
  indexBuffer: i,
1207
1195
  normalBuffer: r
1208
1196
  }) => {
1209
1197
  const s = (a = !1) => {
1210
1198
  const f = t.get({
1211
- vertexSource: In,
1212
- fragmentSource: a ? _e : Nn
1213
- }), l = f.attribute3f("vertex", n), h = f.attribute3f("normal", r), u = f.uniformMatrix4f("projection"), d = f.uniformMatrix4f("model_view"), m = f.uniform3i("camera"), _ = f.uniform3i("position"), x = f.uniformMatrix4f("orientation"), p = f.uniform2f("screen"), A = f.uniform4f("color"), y = f.uniform4f("diffuse"), E = f.uniform1f("size"), v = f.uniform1f("min_size_pixels"), w = f.uniform1f("max_size_pixels"), M = f.uniform1i("index");
1199
+ vertexSource: zn,
1200
+ fragmentSource: a ? _e : Pn
1201
+ }), l = f.attribute3f("vertex", n), h = f.attribute3f("normal", r), u = f.uniformMatrix4f("projection"), d = f.uniformMatrix4f("model_view"), v = f.uniform3i("camera"), _ = f.uniform3i("position"), E = f.uniformMatrix4f("orientation"), x = f.uniform2f("screen"), A = f.uniform4f("color"), R = f.uniform4f("diffuse"), p = f.uniform1f("size"), m = f.uniform1f("min_size_pixels"), w = f.uniform1f("max_size_pixels"), b = f.uniform1i("index");
1214
1202
  return { execute: ({
1215
- projection: R,
1216
- modelView: g,
1217
- camera: b,
1203
+ projection: g,
1204
+ modelView: T,
1205
+ camera: M,
1218
1206
  screen: S,
1219
1207
  count: U,
1220
1208
  position: P,
1221
- orientation: D,
1222
- color: O,
1209
+ orientation: N,
1210
+ color: I,
1223
1211
  diffuse: X,
1224
- size: I,
1225
- minSizePixels: W,
1226
- maxSizePixels: B,
1227
- index: $
1212
+ size: C,
1213
+ minSizePixels: B,
1214
+ maxSizePixels: W,
1215
+ index: H
1228
1216
  }) => {
1229
- f.use(), l.use(), h.use(), u.set(R), d.set(g), m.set(b), p.set(S), _.set(P), x.set(D), A.set(O), y.set(X), E.set(I), v.set(W), w.set(B), M.set($), i.use(), e.drawElements(e.TRIANGLES, U, e.UNSIGNED_SHORT, 0);
1217
+ f.use(), l.use(), h.use(), u.set(g), d.set(T), v.set(M), x.set(S), _.set(P), E.set(N), A.set(I), R.set(X), p.set(C), m.set(B), w.set(W), b.set(H), i.use(), e.drawElements(e.TRIANGLES, U, e.UNSIGNED_SHORT, 0);
1230
1218
  } };
1231
1219
  }, o = s(), c = s(!0);
1232
1220
  return { renderProgram: o, depthProgram: c };
1233
1221
  };
1234
1222
  var Tt = function(e, t, n, i, r) {
1235
1223
  let s, o = null;
1236
- if (r === Qn(e, t, n, i) > 0)
1224
+ if (r === Hn(e, t, n, i) > 0)
1237
1225
  for (s = t; s < n; s += i)
1238
- o = new Be(s, e[s], e[s + 1], o);
1226
+ o = new Xe(s, e[s], e[s + 1], o);
1239
1227
  else
1240
1228
  for (s = n - i; s >= t; s -= i)
1241
- o = new Be(s, e[s], e[s + 1], o);
1242
- return o !== null && Ye(o, o.next) && (be(o), o = o.next), o;
1229
+ o = new Xe(s, e[s], e[s + 1], o);
1230
+ return o !== null && Be(o, o.next) && (Ae(o), o = o.next), o;
1243
1231
  }, ae = function(e, t) {
1244
1232
  t === void 0 && (t = e);
1245
1233
  let n = e, i;
1246
1234
  do
1247
- if (i = !1, !n.steiner && (Ye(n, n.next) || N(n.prev, n, n.next) === 0)) {
1248
- if (be(n), n = t = n.prev, n === n.next)
1235
+ if (i = !1, !n.steiner && (Be(n, n.next) || D(n.prev, n, n.next) === 0)) {
1236
+ if (Ae(n), n = t = n.prev, n === n.next)
1249
1237
  break;
1250
1238
  i = !0;
1251
1239
  } else
1252
1240
  n = n.next;
1253
1241
  while (i || n !== t);
1254
1242
  return t;
1255
- }, Ae = function(e, t, n, i, r, s, o) {
1243
+ }, ge = function(e, t, n, i, r, s, o) {
1256
1244
  if (e === null)
1257
1245
  return;
1258
- o === 0 && s !== 0 && Yn(e, i, r, s);
1246
+ o === 0 && s !== 0 && Bn(e, i, r, s);
1259
1247
  let c = e, a, f;
1260
1248
  for (; e.prev !== e.next; ) {
1261
- if (a = e.prev, f = e.next, s !== 0 ? Cn(e, i, r, s) : On(e)) {
1262
- t.push(a.i / n), t.push(e.i / n), t.push(f.i / n), be(e), e = f.next, c = f.next;
1249
+ if (a = e.prev, f = e.next, s !== 0 ? In(e, i, r, s) : Nn(e)) {
1250
+ t.push(a.i / n), t.push(e.i / n), t.push(f.i / n), Ae(e), e = f.next, c = f.next;
1263
1251
  continue;
1264
1252
  }
1265
1253
  if (e = f, e === c) {
1266
- o === 0 ? Ae(ae(e), t, n, i, r, s, 1) : o === 1 ? (e = Xn(ae(e), t, n), Ae(e, t, n, i, r, s, 2)) : o === 2 && Wn(e, t, n, i, r, s);
1254
+ o === 0 ? ge(ae(e), t, n, i, r, s, 1) : o === 1 ? (e = Dn(ae(e), t, n), ge(e, t, n, i, r, s, 2)) : o === 2 && On(e, t, n, i, r, s);
1267
1255
  break;
1268
1256
  }
1269
1257
  }
1270
- }, On = function(e) {
1258
+ }, Nn = function(e) {
1271
1259
  const t = e.prev, n = e, i = e.next;
1272
- if (N(t, n, i) >= 0)
1260
+ if (D(t, n, i) >= 0)
1273
1261
  return !1;
1274
1262
  let r = e.next.next;
1275
1263
  for (; r !== e.prev; ) {
1276
- if (me(t.x, t.y, n.x, n.y, i.x, i.y, r.x, r.y) && N(r.prev, r, r.next) >= 0)
1264
+ if (me(t.x, t.y, n.x, n.y, i.x, i.y, r.x, r.y) && D(r.prev, r, r.next) >= 0)
1277
1265
  return !1;
1278
1266
  r = r.next;
1279
1267
  }
1280
1268
  return !0;
1281
- }, Cn = function(e, t, n, i) {
1269
+ }, In = function(e, t, n, i) {
1282
1270
  const r = e.prev, s = e, o = e.next;
1283
- if (N(r, s, o) >= 0)
1271
+ if (D(r, s, o) >= 0)
1284
1272
  return !1;
1285
- const c = r.x < s.x ? r.x < o.x ? r.x : o.x : s.x < o.x ? s.x : o.x, a = r.y < s.y ? r.y < o.y ? r.y : o.y : s.y < o.y ? s.y : o.y, f = r.x > s.x ? r.x > o.x ? r.x : o.x : s.x > o.x ? s.x : o.x, l = r.y > s.y ? r.y > o.y ? r.y : o.y : s.y > o.y ? s.y : o.y, h = qe(c, a, t, n, i), u = qe(f, l, t, n, i);
1286
- let { prevZ: d, nextZ: m } = e;
1287
- for (; d !== null && m !== null && d.z >= h && m.z <= u; ) {
1288
- if (d !== e.prev && d !== e.next && me(r.x, r.y, s.x, s.y, o.x, o.y, d.x, d.y) && N(d.prev, d, d.next) >= 0 || (d = d.prevZ, m !== e.prev && m !== e.next && me(r.x, r.y, s.x, s.y, o.x, o.y, m.x, m.y) && N(m.prev, m, m.next) >= 0))
1273
+ const c = r.x < s.x ? r.x < o.x ? r.x : o.x : s.x < o.x ? s.x : o.x, a = r.y < s.y ? r.y < o.y ? r.y : o.y : s.y < o.y ? s.y : o.y, f = r.x > s.x ? r.x > o.x ? r.x : o.x : s.x > o.x ? s.x : o.x, l = r.y > s.y ? r.y > o.y ? r.y : o.y : s.y > o.y ? s.y : o.y, h = Ge(c, a, t, n, i), u = Ge(f, l, t, n, i);
1274
+ let { prevZ: d, nextZ: v } = e;
1275
+ for (; d !== null && v !== null && d.z >= h && v.z <= u; ) {
1276
+ if (d !== e.prev && d !== e.next && me(r.x, r.y, s.x, s.y, o.x, o.y, d.x, d.y) && D(d.prev, d, d.next) >= 0 || (d = d.prevZ, v !== e.prev && v !== e.next && me(r.x, r.y, s.x, s.y, o.x, o.y, v.x, v.y) && D(v.prev, v, v.next) >= 0))
1289
1277
  return !1;
1290
- m = m.nextZ;
1278
+ v = v.nextZ;
1291
1279
  }
1292
1280
  for (; d !== null && d.z >= h; ) {
1293
- if (d !== e.prev && d !== e.next && me(r.x, r.y, s.x, s.y, o.x, o.y, d.x, d.y) && N(d.prev, d, d.next) >= 0)
1281
+ if (d !== e.prev && d !== e.next && me(r.x, r.y, s.x, s.y, o.x, o.y, d.x, d.y) && D(d.prev, d, d.next) >= 0)
1294
1282
  return !1;
1295
1283
  d = d.prevZ;
1296
1284
  }
1297
- for (; m !== null && m.z <= u; ) {
1298
- if (m !== e.prev && m !== e.next && me(r.x, r.y, s.x, s.y, o.x, o.y, m.x, m.y) && N(m.prev, m, m.next) >= 0)
1285
+ for (; v !== null && v.z <= u; ) {
1286
+ if (v !== e.prev && v !== e.next && me(r.x, r.y, s.x, s.y, o.x, o.y, v.x, v.y) && D(v.prev, v, v.next) >= 0)
1299
1287
  return !1;
1300
- m = m.nextZ;
1288
+ v = v.nextZ;
1301
1289
  }
1302
1290
  return !0;
1303
- }, Xn = function(e, t, n) {
1291
+ }, Dn = function(e, t, n) {
1304
1292
  let i = e;
1305
1293
  do {
1306
1294
  const r = i.prev, s = i.next.next;
1307
- !Ye(r, s) && gt(r, i, i.next, s) && Me(r, s) && Me(s, r) && (t.push(r.i / n), t.push(i.i / n), t.push(s.i / n), be(i), be(i.next), i = e = s), i = i.next;
1295
+ !Be(r, s) && wt(r, i, i.next, s) && Re(r, s) && Re(s, r) && (t.push(r.i / n), t.push(i.i / n), t.push(s.i / n), Ae(i), Ae(i.next), i = e = s), i = i.next;
1308
1296
  } while (i !== e);
1309
1297
  return i;
1310
- }, Wn = function(e, t, n, i, r, s) {
1298
+ }, On = function(e, t, n, i, r, s) {
1311
1299
  let o = e;
1312
1300
  do {
1313
1301
  let c = o.next.next;
1314
1302
  for (; c !== o.prev; ) {
1315
- if (o.i !== c.i && Hn(o, c)) {
1316
- let a = Rt(o, c);
1317
- o = ae(o, o.next), a = ae(a, a.next), Ae(o, t, n, i, r, s, 0), Ae(a, t, n, i, r, s, 0);
1303
+ if (o.i !== c.i && Yn(o, c)) {
1304
+ let a = gt(o, c);
1305
+ o = ae(o, o.next), a = ae(a, a.next), ge(o, t, n, i, r, s, 0), ge(a, t, n, i, r, s, 0);
1318
1306
  return;
1319
1307
  }
1320
1308
  c = c.next;
1321
1309
  }
1322
1310
  o = o.next;
1323
1311
  } while (o !== e);
1324
- }, jn = function(e, t, n, i) {
1312
+ }, Cn = function(e, t, n, i) {
1325
1313
  const r = [];
1326
1314
  let s, o, c, a, f;
1327
1315
  for (s = 0, o = t.length; s < o; s++)
1328
- c = t[s] * i, a = s < o - 1 ? t[s + 1] * i : e.length, f = Tt(e, c, a, i, !1), f === f.next && (f.steiner = !0), r.push(kn(f));
1329
- for (r.sort(Bn), s = 0; s < r.length; s++)
1330
- n = Vn(r[s], n), n = ae(n, n.next);
1316
+ c = t[s] * i, a = s < o - 1 ? t[s + 1] * i : e.length, f = Tt(e, c, a, i, !1), f === f.next && (f.steiner = !0), r.push(Zn(f));
1317
+ for (r.sort(Xn), s = 0; s < r.length; s++)
1318
+ n = Wn(r[s], n), n = ae(n, n.next);
1331
1319
  return n;
1332
- }, Bn = function(e, t) {
1320
+ }, Xn = function(e, t) {
1333
1321
  return e.x - t.x;
1334
- }, Vn = function(e, t) {
1335
- const n = Zn(e, t);
1322
+ }, Wn = function(e, t) {
1323
+ const n = jn(e, t);
1336
1324
  if (n === null)
1337
1325
  return t;
1338
1326
  {
1339
- const i = Rt(n, e), r = ae(n, n.next);
1327
+ const i = gt(n, e), r = ae(n, n.next);
1340
1328
  return ae(i, i.next), t === n ? r : t;
1341
1329
  }
1342
- }, Zn = function(e, t) {
1330
+ }, jn = function(e, t) {
1343
1331
  let n = t;
1344
1332
  const { x: i, y: r } = e;
1345
1333
  let s = -1 / 0, o;
@@ -1366,16 +1354,16 @@ var Tt = function(e, t, n, i, r) {
1366
1354
  let l = 1 / 0, h;
1367
1355
  n = o;
1368
1356
  do
1369
- i >= n.x && n.x >= a && i !== n.x && me(r < f ? i : s, r, a, f, r < f ? s : i, r, n.x, n.y) && (h = Math.abs(r - n.y) / (i - n.x), Me(n, e) && (h < l || h === l && (n.x > o.x || n.x === o.x && N(o.prev, o, n.prev) < 0 && N(n.next, o, o.next) < 0)) && (o = n, l = h)), n = n.next;
1357
+ i >= n.x && n.x >= a && i !== n.x && me(r < f ? i : s, r, a, f, r < f ? s : i, r, n.x, n.y) && (h = Math.abs(r - n.y) / (i - n.x), Re(n, e) && (h < l || h === l && (n.x > o.x || n.x === o.x && D(o.prev, o, n.prev) < 0 && D(n.next, o, o.next) < 0)) && (o = n, l = h)), n = n.next;
1370
1358
  while (n !== c);
1371
1359
  return o;
1372
- }, Yn = function(e, t, n, i) {
1360
+ }, Bn = function(e, t, n, i) {
1373
1361
  let r = e;
1374
1362
  do
1375
- r.z === void 0 && (r.z = qe(r.x, r.y, t, n, i)), r.prevZ = r.prev, r.nextZ = r.next, r = r.next;
1363
+ r.z === void 0 && (r.z = Ge(r.x, r.y, t, n, i)), r.prevZ = r.prev, r.nextZ = r.next, r = r.next;
1376
1364
  while (r !== e);
1377
- r.prevZ !== null && (r.prevZ.nextZ = null), r.prevZ = null, $n(r);
1378
- }, $n = function(e) {
1365
+ r.prevZ !== null && (r.prevZ.nextZ = null), r.prevZ = null, Vn(r);
1366
+ }, Vn = function(e) {
1379
1367
  let t, n, i, r, s, o, c, a, f = 1;
1380
1368
  do {
1381
1369
  for (n = e, e = null, s = null, o = 0; n !== null; ) {
@@ -1388,9 +1376,9 @@ var Tt = function(e, t, n, i, r) {
1388
1376
  s !== null && (s.nextZ = null), f *= 2;
1389
1377
  } while (o > 1);
1390
1378
  return e;
1391
- }, qe = function(e, t, n, i, r) {
1379
+ }, Ge = function(e, t, n, i, r) {
1392
1380
  return e = 32767 * (e - n) * r, t = 32767 * (t - i) * r, e = (e | e << 8) & 16711935, e = (e | e << 4) & 252645135, e = (e | e << 2) & 858993459, e = (e | e << 1) & 1431655765, t = (t | t << 8) & 16711935, t = (t | t << 4) & 252645135, t = (t | t << 2) & 858993459, t = (t | t << 1) & 1431655765, e | t << 1;
1393
- }, kn = function(e) {
1381
+ }, Zn = function(e) {
1394
1382
  let t = e, n = e;
1395
1383
  do
1396
1384
  (t.x < n.x || t.x === n.x && t.y < n.y) && (n = t), t = t.next;
@@ -1398,48 +1386,48 @@ var Tt = function(e, t, n, i, r) {
1398
1386
  return n;
1399
1387
  }, me = function(e, t, n, i, r, s, o, c) {
1400
1388
  return (r - o) * (t - c) - (e - o) * (s - c) >= 0 && (e - o) * (i - c) - (n - o) * (t - c) >= 0 && (n - o) * (s - c) - (r - o) * (i - c) >= 0;
1401
- }, Hn = function(e, t) {
1402
- return e.next.i !== t.i && e.prev.i !== t.i && !Gn(e, t) && (Me(e, t) && Me(t, e) && Fn(e, t) && (N(e.prev, e, t.prev) !== 0 || N(e, t.prev, t) !== 0) || Ye(e, t) && N(e.prev, e, e.next) > 0 && N(t.prev, t, t.next) > 0);
1403
- }, N = function(e, t, n) {
1389
+ }, Yn = function(e, t) {
1390
+ return e.next.i !== t.i && e.prev.i !== t.i && !$n(e, t) && (Re(e, t) && Re(t, e) && kn(e, t) && (D(e.prev, e, t.prev) !== 0 || D(e, t.prev, t) !== 0) || Be(e, t) && D(e.prev, e, e.next) > 0 && D(t.prev, t, t.next) > 0);
1391
+ }, D = function(e, t, n) {
1404
1392
  return (t.y - e.y) * (n.x - t.x) - (t.x - e.x) * (n.y - t.y);
1405
- }, Ye = function(e, t) {
1393
+ }, Be = function(e, t) {
1406
1394
  return e.x === t.x && e.y === t.y;
1407
- }, gt = function(e, t, n, i) {
1408
- const r = Ie(N(e, t, n)), s = Ie(N(e, t, i)), o = Ie(N(n, i, e)), c = Ie(N(n, i, t));
1409
- return !!(r !== s && o !== c || r === 0 && De(e, n, t) || s === 0 && De(e, i, t) || o === 0 && De(n, e, i) || c === 0 && De(n, t, i));
1410
- }, Ie = function(e) {
1395
+ }, wt = function(e, t, n, i) {
1396
+ const r = ze(D(e, t, n)), s = ze(D(e, t, i)), o = ze(D(n, i, e)), c = ze(D(n, i, t));
1397
+ return !!(r !== s && o !== c || r === 0 && Le(e, n, t) || s === 0 && Le(e, i, t) || o === 0 && Le(n, e, i) || c === 0 && Le(n, t, i));
1398
+ }, ze = function(e) {
1411
1399
  return e > 0 ? 1 : e < 0 ? -1 : 0;
1412
- }, De = function(e, t, n) {
1400
+ }, Le = function(e, t, n) {
1413
1401
  return t.x <= Math.max(e.x, n.x) && t.x >= Math.min(e.x, n.x) && t.y <= Math.max(e.y, n.y) && t.y >= Math.min(e.y, n.y);
1414
- }, Gn = function(e, t) {
1402
+ }, $n = function(e, t) {
1415
1403
  let n = e;
1416
1404
  do {
1417
- if (n.i !== e.i && n.next?.i !== e.i && n.i !== t.i && n.next?.i !== t.i && gt(n, n.next, e, t))
1405
+ if (n.i !== e.i && n.next?.i !== e.i && n.i !== t.i && n.next?.i !== t.i && wt(n, n.next, e, t))
1418
1406
  return !0;
1419
1407
  n = n.next;
1420
1408
  } while (n !== e);
1421
1409
  return !1;
1422
- }, Me = function(e, t) {
1423
- return N(e.prev, e, e.next) < 0 ? N(e, t, e.next) >= 0 && N(e, e.prev, t) >= 0 : N(e, t, e.prev) < 0 || N(e, e.next, t) < 0;
1424
- }, Fn = function(e, t) {
1410
+ }, Re = function(e, t) {
1411
+ return D(e.prev, e, e.next) < 0 ? D(e, t, e.next) >= 0 && D(e, e.prev, t) >= 0 : D(e, t, e.prev) < 0 || D(e, e.next, t) < 0;
1412
+ }, kn = function(e, t) {
1425
1413
  const n = (e.x + t.x) / 2, i = (e.y + t.y) / 2;
1426
1414
  let r = e, s = !1;
1427
1415
  do
1428
1416
  r.y > i != r.next.y > i && r.next.y !== r.y && n < (r.next.x - r.x) * (i - r.y) / (r.next.y - r.y) + r.x && (s = !s), r = r.next;
1429
1417
  while (r !== e);
1430
1418
  return s;
1431
- }, Rt = function(e, t) {
1432
- const n = new Be(e.i, e.x, e.y), i = new Be(t.i, t.x, t.y), r = e.next, s = t.prev;
1419
+ }, gt = function(e, t) {
1420
+ const n = new Xe(e.i, e.x, e.y), i = new Xe(t.i, t.x, t.y), r = e.next, s = t.prev;
1433
1421
  return e.next = t, t.prev = e, n.next = r, r.prev = n, i.next = n, n.prev = i, s.next = i, i.prev = s, i;
1434
- }, be = function(e) {
1422
+ }, Ae = function(e) {
1435
1423
  e.next.prev = e.prev, e.prev.next = e.next, e.prevZ !== null && (e.prevZ.nextZ = e.nextZ), e.nextZ !== null && (e.nextZ.prevZ = e.prevZ);
1436
- }, Qn = function(e, t, n, i) {
1424
+ }, Hn = function(e, t, n, i) {
1437
1425
  let r = 0;
1438
1426
  for (let s = t, o = n - i; s < n; s += i)
1439
1427
  r += (e[o] - e[s]) * (e[s + 1] + e[o + 1]), o = s;
1440
1428
  return r;
1441
1429
  };
1442
- class Be {
1430
+ class Xe {
1443
1431
  i;
1444
1432
  x;
1445
1433
  y;
@@ -1453,101 +1441,101 @@ class Be {
1453
1441
  this.i = t, this.x = n, this.y = i, r === null ? (this.prev = this, this.next = this) : (this.next = r.next, this.prev = r, r.next.prev = this, r.next = this);
1454
1442
  }
1455
1443
  }
1456
- function Kn(e, t = [], n = 2) {
1444
+ function Gn(e, t = [], n = 2) {
1457
1445
  const i = t.length > 0, r = i ? t[0] * n : e.length;
1458
1446
  let s = Tt(e, 0, r, n, !0);
1459
1447
  const o = [];
1460
1448
  if (s === null || s.next === s.prev)
1461
1449
  return o;
1462
1450
  let c = 1 / 0, a = 1 / 0, f = -1 / 0, l = -1 / 0, h = 0, u, d;
1463
- if (i && (s = jn(e, t, s, n)), e.length > 80 * n) {
1451
+ if (i && (s = Cn(e, t, s, n)), e.length > 80 * n) {
1464
1452
  c = f = e[0], a = l = e[1];
1465
- for (let m = n; m < r; m += n)
1466
- u = e[m], d = e[m + 1], u < c && (c = u), d < a && (a = d), u > f && (f = u), d > l && (l = d);
1453
+ for (let v = n; v < r; v += n)
1454
+ u = e[v], d = e[v + 1], u < c && (c = u), d < a && (a = d), u > f && (f = u), d > l && (l = d);
1467
1455
  h = Math.max(f - c, l - a), h = h !== 0 ? 1 / h : 0;
1468
1456
  }
1469
- return Ae(s, o, n, c, a, h, 0), o;
1457
+ return ge(s, o, n, c, a, h, 0), o;
1470
1458
  }
1471
- function qn(e, t = 1 / 0, n = 0) {
1472
- const { vertices: i, holeIndices: r, dim: s } = ti(e), o = Kn(i, r, s);
1473
- return t !== 1 / 0 && Jn(i, o, t, s), { vertices: i, indices: o.map((c) => c + n) };
1459
+ function Fn(e, t = 1 / 0, n = 0) {
1460
+ const { vertices: i, holeIndices: r, dim: s } = qn(e), o = Gn(i, r, s);
1461
+ return t !== 1 / 0 && Qn(i, o, t, s), { vertices: i, indices: o.map((c) => c + n) };
1474
1462
  }
1475
- function Jn(e, t, n, i) {
1463
+ function Qn(e, t, n, i) {
1476
1464
  let r, s, o;
1477
1465
  for (let c = 0; c < i; c++)
1478
1466
  for (let a = 0; a < t.length; a += 3) {
1479
1467
  r = t[a], s = t[a + 1], o = t[a + 2];
1480
- const f = ei(r, s, o, e, t, i, c, n);
1468
+ const f = Kn(r, s, o, e, t, i, c, n);
1481
1469
  f !== void 0 && (t[a] = f[0], t[a + 1] = f[1], t[a + 2] = f[2], a -= 3);
1482
1470
  }
1483
1471
  }
1484
- var ei = function(e, t, n, i, r, s, o, c) {
1472
+ var Kn = function(e, t, n, i, r, s, o, c) {
1485
1473
  const a = i[e * s + o], f = i[t * s + o], l = i[n * s + o];
1486
1474
  if (a < f && a < l) {
1487
1475
  const h = a + c - le(a, c);
1488
1476
  if (h > a && h <= f && h <= l && (f !== h || f !== h))
1489
- return Fe(h, e, t, n, a, f, l, i, r, s, o, c);
1477
+ return $e(h, e, t, n, a, f, l, i, r, s, o, c);
1490
1478
  } else if (a > f && a > l) {
1491
1479
  let h = le(a, c);
1492
1480
  h === 0 && (h = c);
1493
1481
  const u = a - h;
1494
1482
  if (u < a && u >= f && u >= l && (f !== u || f !== u))
1495
- return Qe(u, e, t, n, a, f, l, i, r, s, o, c);
1483
+ return ke(u, e, t, n, a, f, l, i, r, s, o, c);
1496
1484
  }
1497
1485
  if (f < a && f < l) {
1498
1486
  const h = f + c - le(f, c);
1499
1487
  if (h > f && h <= l && h <= a && (a !== h || l !== h))
1500
- return Fe(h, t, n, e, f, l, a, i, r, s, o, c);
1488
+ return $e(h, t, n, e, f, l, a, i, r, s, o, c);
1501
1489
  } else if (f > a && f > l) {
1502
1490
  let h = le(f, c);
1503
1491
  h === 0 && (h = c);
1504
1492
  const u = f - h;
1505
1493
  if (u < f && u >= l && u >= a && (a !== u || l !== u))
1506
- return Qe(u, t, n, e, f, l, a, i, r, s, o, c);
1494
+ return ke(u, t, n, e, f, l, a, i, r, s, o, c);
1507
1495
  }
1508
1496
  if (l < a && l < f) {
1509
1497
  const h = l + c - le(l, c);
1510
1498
  if (h > l && h <= a && h <= f && (a !== h || f !== h))
1511
- return Fe(h, n, e, t, l, a, f, i, r, s, o, c);
1499
+ return $e(h, n, e, t, l, a, f, i, r, s, o, c);
1512
1500
  } else if (l > a && l > f) {
1513
1501
  let h = le(l, c);
1514
1502
  h === 0 && (h = c);
1515
1503
  const u = l - h;
1516
1504
  if (u < l && u >= a && u >= f && (a !== u || f !== u))
1517
- return Qe(u, n, e, t, l, a, f, i, r, s, o, c);
1505
+ return ke(u, n, e, t, l, a, f, i, r, s, o, c);
1518
1506
  }
1519
- }, G = function(e, t, n, i, r, s, o, c) {
1507
+ }, F = function(e, t, n, i, r, s, o, c) {
1520
1508
  const a = s.length / o, f = (r - i) / (e - i);
1521
1509
  let l, h;
1522
1510
  for (let u = 0; u < o; u++)
1523
1511
  l = s[t * o + u], h = s[n * o + u], u !== c ? s.push(l + (h - l) / f) : s.push(e);
1524
1512
  return a;
1525
- }, Fe = function(e, t, n, i, r, s, o, c, a, f, l, h) {
1526
- let u = G(e, t, n, r, s, c, f, l), d = G(e, t, i, r, o, c, f, l);
1513
+ }, $e = function(e, t, n, i, r, s, o, c, a, f, l, h) {
1514
+ let u = F(e, t, n, r, s, c, f, l), d = F(e, t, i, r, o, c, f, l);
1527
1515
  if (a.push(t, u, d), e += h, s < o) {
1528
1516
  for (; e < s; )
1529
- a.push(d, u), d = G(e, t, i, r, o, c, f, l), a.push(d, d, u), u = G(e, t, n, r, s, c, f, l), a.push(u), e += h;
1517
+ a.push(d, u), d = F(e, t, i, r, o, c, f, l), a.push(d, d, u), u = F(e, t, n, r, s, c, f, l), a.push(u), e += h;
1530
1518
  return a.push(d, u, n), [d, n, i];
1531
1519
  } else {
1532
1520
  for (; e < o; )
1533
- a.push(d, u), d = G(e, t, i, r, o, c, f, l), a.push(d, d, u), u = G(e, t, n, r, s, c, f, l), a.push(u), e += h;
1521
+ a.push(d, u), d = F(e, t, i, r, o, c, f, l), a.push(d, d, u), u = F(e, t, n, r, s, c, f, l), a.push(u), e += h;
1534
1522
  return a.push(d, u, i), [i, u, n];
1535
1523
  }
1536
- }, Qe = function(e, t, n, i, r, s, o, c, a, f, l, h) {
1537
- let u = G(e, t, n, r, s, c, f, l), d = G(e, t, i, r, o, c, f, l);
1524
+ }, ke = function(e, t, n, i, r, s, o, c, a, f, l, h) {
1525
+ let u = F(e, t, n, r, s, c, f, l), d = F(e, t, i, r, o, c, f, l);
1538
1526
  if (a.push(t, u, d), e -= h, s > o) {
1539
1527
  for (; e > s; )
1540
- a.push(d, u), d = G(e, t, i, r, o, c, f, l), a.push(d, d, u), u = G(e, t, n, r, s, c, f, l), a.push(u), e -= h;
1528
+ a.push(d, u), d = F(e, t, i, r, o, c, f, l), a.push(d, d, u), u = F(e, t, n, r, s, c, f, l), a.push(u), e -= h;
1541
1529
  return a.push(d, u, n), [d, n, i];
1542
1530
  } else {
1543
1531
  for (; e > o; )
1544
- a.push(d, u), d = G(e, t, i, r, o, c, f, l), a.push(d, d, u), u = G(e, t, n, r, s, c, f, l), a.push(u), e -= h;
1532
+ a.push(d, u), d = F(e, t, i, r, o, c, f, l), a.push(d, d, u), u = F(e, t, n, r, s, c, f, l), a.push(u), e -= h;
1545
1533
  return a.push(d, u, i), [i, u, n];
1546
1534
  }
1547
1535
  }, le = function(e, t) {
1548
1536
  return (e % t + t) % t;
1549
1537
  };
1550
- function ti(e) {
1538
+ function qn(e) {
1551
1539
  let t = 0;
1552
1540
  const n = e[0][0].length, i = [], r = [];
1553
1541
  for (let s = 0, o = e.length; s < o; s++) {
@@ -1558,7 +1546,7 @@ function ti(e) {
1558
1546
  }
1559
1547
  return { vertices: i, holeIndices: r, dim: n };
1560
1548
  }
1561
- var ni = `#version 300 es
1549
+ var Jn = `#version 300 es
1562
1550
 
1563
1551
  precision highp float;
1564
1552
 
@@ -1567,7 +1555,7 @@ out vec4 result;
1567
1555
 
1568
1556
  void main() {
1569
1557
  result = color_out;
1570
- }`, ii = `#version 300 es
1558
+ }`, ei = `#version 300 es
1571
1559
 
1572
1560
  precision highp float;
1573
1561
 
@@ -1591,34 +1579,34 @@ void main(void) {
1591
1579
  gl_Position = transform(position);
1592
1580
  color_out = color;
1593
1581
  }`;
1594
- const Wi = (e, t = {}) => {
1582
+ const Di = (e, t = {}) => {
1595
1583
  const { gl: n } = e;
1596
1584
  let i = 0;
1597
- const r = Z({ gl: n, type: "i32", target: "array" }), s = Z({ gl: n, type: "u16", target: "element" }), { renderProgram: o, depthProgram: c } = ri(e, {
1585
+ const r = Z({ gl: n, type: "i32", target: "array" }), s = Z({ gl: n, type: "u16", target: "element" }), { renderProgram: o, depthProgram: c } = ti(e, {
1598
1586
  positionBuffer: r,
1599
1587
  indexBuffer: s
1600
1588
  }), a = ({
1601
- viewport: { projection: u, modelView: d, camera: m, screen: _ },
1602
- depth: x = !1,
1603
- index: p = 0
1589
+ viewport: { projection: u, modelView: d, camera: v, screen: _ },
1590
+ depth: E = !1,
1591
+ index: x = 0
1604
1592
  }) => {
1605
1593
  const A = t.color?.() ?? [1, 1, 1, 1];
1606
- if (f(), Ee(n, x, t))
1594
+ if (f(), Ee(n, E, t))
1607
1595
  return;
1608
- (x ? c : o).execute({
1596
+ (E ? c : o).execute({
1609
1597
  projection: u,
1610
1598
  modelView: d,
1611
- camera: q(m),
1599
+ camera: q(v),
1612
1600
  screen: _,
1613
1601
  count: i,
1614
1602
  color: A,
1615
- index: p
1603
+ index: x
1616
1604
  });
1617
1605
  }, f = ce(
1618
1606
  () => t.points?.() ?? [],
1619
1607
  (u) => {
1620
- const { vertices: d, indices: m } = u.length > 0 ? qn(u.map((_) => _.map((x) => [...q(z(x))]))) : { vertices: [], indices: [] };
1621
- r.set(d), s.set(m), i = m.length;
1608
+ const { vertices: d, indices: v } = u.length > 0 ? Fn(u.map((_) => _.map((E) => [...q(z(E))]))) : { vertices: [], indices: [] };
1609
+ r.set(d), s.set(v), i = v.length;
1622
1610
  }
1623
1611
  ), l = () => {
1624
1612
  r.dispose(), s.dispose();
@@ -1628,32 +1616,32 @@ const Wi = (e, t = {}) => {
1628
1616
  dispose: l,
1629
1617
  ...h
1630
1618
  };
1631
- }, ri = ({ gl: e, programs: t }, {
1619
+ }, ti = ({ gl: e, programs: t }, {
1632
1620
  positionBuffer: n,
1633
1621
  indexBuffer: i
1634
1622
  }) => {
1635
1623
  const r = (c = !1) => {
1636
1624
  const a = t.get({
1637
- vertexSource: ii,
1638
- fragmentSource: c ? _e : ni
1625
+ vertexSource: ei,
1626
+ fragmentSource: c ? _e : Jn
1639
1627
  }), f = a.attribute3i("position", n, {
1640
1628
  stride: 3 * Int32Array.BYTES_PER_ELEMENT
1641
- }), l = a.uniformMatrix4f("projection"), h = a.uniformMatrix4f("model_view"), u = a.uniform3i("camera"), d = a.uniform2f("screen"), m = a.uniform4f("color"), _ = a.uniform1i("index");
1629
+ }), l = a.uniformMatrix4f("projection"), h = a.uniformMatrix4f("model_view"), u = a.uniform3i("camera"), d = a.uniform2f("screen"), v = a.uniform4f("color"), _ = a.uniform1i("index");
1642
1630
  return { execute: ({
1643
- projection: p,
1631
+ projection: x,
1644
1632
  modelView: A,
1645
- camera: y,
1646
- screen: E,
1647
- count: v,
1633
+ camera: R,
1634
+ screen: p,
1635
+ count: m,
1648
1636
  color: w,
1649
- index: M
1637
+ index: b
1650
1638
  }) => {
1651
- v !== 0 && (a.use(), f.use(), l.set(p), h.set(A), u.set(y), d.set(E), m.set(w), _.set(M), i.use(), e.drawElements(e.TRIANGLES, v, e.UNSIGNED_SHORT, 0));
1639
+ m !== 0 && (a.use(), f.use(), l.set(x), h.set(A), u.set(R), d.set(p), v.set(w), _.set(b), i.use(), e.drawElements(e.TRIANGLES, m, e.UNSIGNED_SHORT, 0));
1652
1640
  } };
1653
1641
  }, s = r(), o = r(!0);
1654
1642
  return { renderProgram: s, depthProgram: o };
1655
1643
  };
1656
- var si = `#version 300 es
1644
+ var ni = `#version 300 es
1657
1645
 
1658
1646
  precision highp float;
1659
1647
 
@@ -1668,7 +1656,7 @@ void main() {
1668
1656
  vec4 value = texture(image, vec2(d, a));
1669
1657
  if (value.r == 0.f) discard;
1670
1658
  result = vec4(0, 1., 0, value.r);
1671
- }`, oi = `#version 300 es
1659
+ }`, ii = `#version 300 es
1672
1660
 
1673
1661
  precision highp float;
1674
1662
 
@@ -1695,8 +1683,8 @@ void main(void) {
1695
1683
  gl_Position = transform(q.xyz / q.w);
1696
1684
  uv_out = uv;
1697
1685
  }`;
1698
- const ji = (e, t = {}) => {
1699
- const { gl: n } = e, i = ci(n), r = Z({ gl: n, type: "f32", target: "array" }), s = Z({ gl: n, type: "u16", target: "element" });
1686
+ const Oi = (e, t = {}) => {
1687
+ const { gl: n } = e, i = si(n), r = Z({ gl: n, type: "f32", target: "array" }), s = Z({ gl: n, type: "u16", target: "element" });
1700
1688
  r.set(
1701
1689
  [
1702
1690
  [-1, -1],
@@ -1715,27 +1703,27 @@ const ji = (e, t = {}) => {
1715
1703
  (u) => {
1716
1704
  u && i.set(u);
1717
1705
  }
1718
- ), { renderProgram: c, depthProgram: a } = ai(e, {
1706
+ ), { renderProgram: c, depthProgram: a } = ri(e, {
1719
1707
  uvBuffer: r,
1720
1708
  indexBuffer: s
1721
1709
  }), f = ({
1722
- viewport: { projection: u, modelView: d, camera: m, screen: _ },
1723
- depth: x = !1,
1724
- index: p = 0
1710
+ viewport: { projection: u, modelView: d, camera: v, screen: _ },
1711
+ depth: E = !1,
1712
+ index: x = 0
1725
1713
  }) => {
1726
- const A = t.position?.() ?? [0, 0, 0], y = t.orientation?.() ?? [0, 0, 0, 1], E = t.range?.() ?? 1e3;
1727
- if (o(), Ee(n, x, t))
1714
+ const A = t.position?.() ?? [0, 0, 0], R = t.orientation?.() ?? [0, 0, 0, 1], p = t.range?.() ?? 1e3;
1715
+ if (o(), Ee(n, E, t))
1728
1716
  return;
1729
- (x ? a : c).execute({
1717
+ (E ? a : c).execute({
1730
1718
  projection: u,
1731
1719
  modelView: d,
1732
- camera: q(m),
1720
+ camera: q(v),
1733
1721
  screen: _,
1734
1722
  image: i,
1735
- range: E,
1723
+ range: p,
1736
1724
  position: q(z(A)),
1737
- orientation: vt(he(), y),
1738
- index: p
1725
+ orientation: Ke(he(), R),
1726
+ index: x
1739
1727
  });
1740
1728
  }, l = () => {
1741
1729
  r.dispose(), s.dispose(), i.dispose();
@@ -1745,33 +1733,33 @@ const ji = (e, t = {}) => {
1745
1733
  dispose: l,
1746
1734
  ...h
1747
1735
  };
1748
- }, ai = ({ gl: e, programs: t }, {
1736
+ }, ri = ({ gl: e, programs: t }, {
1749
1737
  uvBuffer: n,
1750
1738
  indexBuffer: i
1751
1739
  }) => {
1752
1740
  const r = (c = !1) => {
1753
1741
  const a = t.get({
1754
- vertexSource: oi,
1755
- fragmentSource: c ? _e : si
1742
+ vertexSource: ii,
1743
+ fragmentSource: c ? _e : ni
1756
1744
  }), f = a.attribute2f("uv", n, {
1757
1745
  stride: 2 * Float32Array.BYTES_PER_ELEMENT
1758
- }), l = a.uniformMatrix4f("projection"), h = a.uniformMatrix4f("model_view"), u = a.uniform3i("camera"), d = a.uniform2f("screen"), m = a.uniform1i("image"), _ = a.uniform1f("range"), x = a.uniform3i("position"), p = a.uniformMatrix4f("orientation"), A = a.uniform1i("index");
1746
+ }), l = a.uniformMatrix4f("projection"), h = a.uniformMatrix4f("model_view"), u = a.uniform3i("camera"), d = a.uniform2f("screen"), v = a.uniform1i("image"), _ = a.uniform1f("range"), E = a.uniform3i("position"), x = a.uniformMatrix4f("orientation"), A = a.uniform1i("index");
1759
1747
  return { execute: ({
1760
- projection: E,
1761
- modelView: v,
1748
+ projection: p,
1749
+ modelView: m,
1762
1750
  camera: w,
1763
- screen: M,
1764
- image: T,
1765
- range: R,
1766
- position: g,
1767
- orientation: b,
1751
+ screen: b,
1752
+ image: y,
1753
+ range: g,
1754
+ position: T,
1755
+ orientation: M,
1768
1756
  index: S
1769
1757
  }) => {
1770
- a.use(), f.use(), l.set(E), h.set(v), u.set(w), d.set(M), _.set(R), x.set(g), p.set(b), A.set(S), e.activeTexture(e.TEXTURE0), m.set(0), T.use(), i.use(), e.drawElements(e.TRIANGLES, 6, e.UNSIGNED_SHORT, 0);
1758
+ a.use(), f.use(), l.set(p), h.set(m), u.set(w), d.set(b), _.set(g), E.set(T), x.set(M), A.set(S), e.activeTexture(e.TEXTURE0), v.set(0), y.use(), i.use(), e.drawElements(e.TRIANGLES, 6, e.UNSIGNED_SHORT, 0);
1771
1759
  } };
1772
1760
  }, s = r(), o = r(!0);
1773
1761
  return { renderProgram: s, depthProgram: o };
1774
- }, ci = (e) => {
1762
+ }, si = (e) => {
1775
1763
  const t = e.createTexture();
1776
1764
  if (!t)
1777
1765
  throw new Error("Texture creation failed");
@@ -1783,7 +1771,7 @@ const ji = (e, t = {}) => {
1783
1771
  use: n,
1784
1772
  dispose: () => e.deleteTexture(t)
1785
1773
  };
1786
- }, Je = (e, t = 0) => ({
1774
+ }, Fe = (e, t = 0) => ({
1787
1775
  get: ([n = 0, i = 0, r = 0]) => {
1788
1776
  for (let s = Math.min(r, t); s <= r; s++) {
1789
1777
  const o = 2 ** s, c = [
@@ -1795,12 +1783,12 @@ const ji = (e, t = {}) => {
1795
1783
  return { texture: a, downsample: s };
1796
1784
  }
1797
1785
  }
1798
- }), ue = typeof performance == "object" && performance && typeof performance.now == "function" ? performance : Date, At = /* @__PURE__ */ new Set(), et = typeof process == "object" && process ? process : {}, Mt = (e, t, n, i) => {
1799
- typeof et.emitWarning == "function" ? et.emitWarning(e, t, n, i) : console.error(`[${n}] ${t}: ${e}`);
1786
+ }), ue = typeof performance == "object" && performance && typeof performance.now == "function" ? performance : Date, Rt = /* @__PURE__ */ new Set(), Qe = typeof process == "object" && process ? process : {}, At = (e, t, n, i) => {
1787
+ typeof Qe.emitWarning == "function" ? Qe.emitWarning(e, t, n, i) : console.error(`[${n}] ${t}: ${e}`);
1800
1788
  };
1801
- let Ve = globalThis.AbortController, dt = globalThis.AbortSignal;
1802
- if (typeof Ve > "u") {
1803
- dt = class {
1789
+ let We = globalThis.AbortController, lt = globalThis.AbortSignal;
1790
+ if (typeof We > "u") {
1791
+ lt = class {
1804
1792
  onabort;
1805
1793
  _onabort = [];
1806
1794
  reason;
@@ -1808,11 +1796,11 @@ if (typeof Ve > "u") {
1808
1796
  addEventListener(i, r) {
1809
1797
  this._onabort.push(r);
1810
1798
  }
1811
- }, Ve = class {
1799
+ }, We = class {
1812
1800
  constructor() {
1813
1801
  t();
1814
1802
  }
1815
- signal = new dt();
1803
+ signal = new lt();
1816
1804
  abort(i) {
1817
1805
  if (!this.signal.aborted) {
1818
1806
  this.signal.reason = i, this.signal.aborted = !0;
@@ -1822,13 +1810,13 @@ if (typeof Ve > "u") {
1822
1810
  }
1823
1811
  }
1824
1812
  };
1825
- let e = et.env?.LRU_CACHE_IGNORE_AC_WARNING !== "1";
1813
+ let e = Qe.env?.LRU_CACHE_IGNORE_AC_WARNING !== "1";
1826
1814
  const t = () => {
1827
- e && (e = !1, Mt("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.", "NO_ABORT_CONTROLLER", "ENOTSUP", t));
1815
+ e && (e = !1, At("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.", "NO_ABORT_CONTROLLER", "ENOTSUP", t));
1828
1816
  };
1829
1817
  }
1830
- const fi = (e) => !At.has(e), ee = (e) => e && e === Math.floor(e) && e > 0 && isFinite(e), bt = (e) => ee(e) ? e <= Math.pow(2, 8) ? Uint8Array : e <= Math.pow(2, 16) ? Uint16Array : e <= Math.pow(2, 32) ? Uint32Array : e <= Number.MAX_SAFE_INTEGER ? We : null : null;
1831
- class We extends Array {
1818
+ const oi = (e) => !Rt.has(e), ee = (e) => e && e === Math.floor(e) && e > 0 && isFinite(e), bt = (e) => ee(e) ? e <= Math.pow(2, 8) ? Uint8Array : e <= Math.pow(2, 16) ? Uint16Array : e <= Math.pow(2, 32) ? Uint32Array : e <= Number.MAX_SAFE_INTEGER ? Oe : null : null;
1819
+ class Oe extends Array {
1832
1820
  constructor(t) {
1833
1821
  super(t), this.fill(0);
1834
1822
  }
@@ -1858,7 +1846,7 @@ class ve {
1858
1846
  return this.heap[--this.length];
1859
1847
  }
1860
1848
  }
1861
- class nt {
1849
+ class qe {
1862
1850
  // properties coming in from the options of these, only max and maxSize
1863
1851
  // really *need* to be protected. The rest can be modified, as they just
1864
1852
  // set defaults for various methods.
@@ -1942,7 +1930,7 @@ class nt {
1942
1930
  #_;
1943
1931
  #y;
1944
1932
  #d;
1945
- #w;
1933
+ #T;
1946
1934
  #A;
1947
1935
  #l;
1948
1936
  /**
@@ -1976,7 +1964,7 @@ class nt {
1976
1964
  isBackgroundFetch: (n) => t.#t(n),
1977
1965
  backgroundFetch: (n, i, r, s) => t.#L(n, i, r, s),
1978
1966
  moveToTail: (n) => t.#S(n),
1979
- indexes: (n) => t.#T(n),
1967
+ indexes: (n) => t.#w(n),
1980
1968
  rindexes: (n) => t.#g(n),
1981
1969
  isStale: (n) => t.#m(n)
1982
1970
  };
@@ -2025,21 +2013,21 @@ class nt {
2025
2013
  return this.#p;
2026
2014
  }
2027
2015
  constructor(t) {
2028
- const { max: n = 0, ttl: i, ttlResolution: r = 1, ttlAutopurge: s, updateAgeOnGet: o, updateAgeOnHas: c, allowStale: a, dispose: f, disposeAfter: l, noDisposeOnSet: h, noUpdateTTL: u, maxSize: d = 0, maxEntrySize: m = 0, sizeCalculation: _, fetchMethod: x, noDeleteOnFetchRejection: p, noDeleteOnStaleGet: A, allowStaleOnFetchRejection: y, allowStaleOnFetchAbort: E, ignoreFetchAbort: v } = t;
2016
+ const { max: n = 0, ttl: i, ttlResolution: r = 1, ttlAutopurge: s, updateAgeOnGet: o, updateAgeOnHas: c, allowStale: a, dispose: f, disposeAfter: l, noDisposeOnSet: h, noUpdateTTL: u, maxSize: d = 0, maxEntrySize: v = 0, sizeCalculation: _, fetchMethod: E, noDeleteOnFetchRejection: x, noDeleteOnStaleGet: A, allowStaleOnFetchRejection: R, allowStaleOnFetchAbort: p, ignoreFetchAbort: m } = t;
2029
2017
  if (n !== 0 && !ee(n))
2030
2018
  throw new TypeError("max option must be a nonnegative integer");
2031
2019
  const w = n ? bt(n) : Array;
2032
2020
  if (!w)
2033
2021
  throw new Error("invalid max value: " + n);
2034
- if (this.#c = n, this.#u = d, this.maxEntrySize = m || this.#u, this.sizeCalculation = _, this.sizeCalculation) {
2022
+ if (this.#c = n, this.#u = d, this.maxEntrySize = v || this.#u, this.sizeCalculation = _, this.sizeCalculation) {
2035
2023
  if (!this.#u && !this.maxEntrySize)
2036
2024
  throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");
2037
2025
  if (typeof this.sizeCalculation != "function")
2038
2026
  throw new TypeError("sizeCalculation set to non-function");
2039
2027
  }
2040
- if (x !== void 0 && typeof x != "function")
2028
+ if (E !== void 0 && typeof E != "function")
2041
2029
  throw new TypeError("fetchMethod must be a function if specified");
2042
- if (this.#U = x, this.#A = !!x, this.#i = /* @__PURE__ */ new Map(), this.#n = new Array(n).fill(void 0), this.#e = new Array(n).fill(void 0), this.#f = new w(n), this.#h = new w(n), this.#a = 0, this.#s = 0, this.#E = ve.create(n), this.#r = 0, this.#x = 0, typeof f == "function" && (this.#v = f), typeof l == "function" ? (this.#p = l, this.#o = []) : (this.#p = void 0, this.#o = void 0), this.#w = !!this.#v, this.#l = !!this.#p, this.noDisposeOnSet = !!h, this.noUpdateTTL = !!u, this.noDeleteOnFetchRejection = !!p, this.allowStaleOnFetchRejection = !!y, this.allowStaleOnFetchAbort = !!E, this.ignoreFetchAbort = !!v, this.maxEntrySize !== 0) {
2030
+ if (this.#U = E, this.#A = !!E, this.#i = /* @__PURE__ */ new Map(), this.#n = new Array(n).fill(void 0), this.#e = new Array(n).fill(void 0), this.#f = new w(n), this.#h = new w(n), this.#a = 0, this.#s = 0, this.#E = ve.create(n), this.#r = 0, this.#x = 0, typeof f == "function" && (this.#v = f), typeof l == "function" ? (this.#p = l, this.#o = []) : (this.#p = void 0, this.#o = void 0), this.#T = !!this.#v, this.#l = !!this.#p, this.noDisposeOnSet = !!h, this.noUpdateTTL = !!u, this.noDeleteOnFetchRejection = !!x, this.allowStaleOnFetchRejection = !!R, this.allowStaleOnFetchAbort = !!p, this.ignoreFetchAbort = !!m, this.maxEntrySize !== 0) {
2043
2031
  if (this.#u !== 0 && !ee(this.#u))
2044
2032
  throw new TypeError("maxSize must be a positive integer if specified");
2045
2033
  if (!ee(this.maxEntrySize))
@@ -2054,8 +2042,8 @@ class nt {
2054
2042
  if (this.#c === 0 && this.ttl === 0 && this.#u === 0)
2055
2043
  throw new TypeError("At least one of max, maxSize, or ttl is required");
2056
2044
  if (!this.ttlAutopurge && !this.#c && !this.#u) {
2057
- const M = "LRU_CACHE_UNBOUNDED";
2058
- fi(M) && (At.add(M), Mt("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.", "UnboundedCacheWarning", M, nt));
2045
+ const b = "LRU_CACHE_UNBOUNDED";
2046
+ oi(b) && (Rt.add(b), At("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.", "UnboundedCacheWarning", b, qe));
2059
2047
  }
2060
2048
  }
2061
2049
  /**
@@ -2065,7 +2053,7 @@ class nt {
2065
2053
  return this.#i.has(t) ? 1 / 0 : 0;
2066
2054
  }
2067
2055
  #N() {
2068
- const t = new We(this.#c), n = new We(this.#c);
2056
+ const t = new Oe(this.#c), n = new Oe(this.#c);
2069
2057
  this.#d = t, this.#y = n, this.#I = (s, o, c = ue.now()) => {
2070
2058
  if (n[s] = o !== 0 ? c : 0, t[s] = o, o !== 0 && this.ttlAutopurge) {
2071
2059
  const a = setTimeout(() => {
@@ -2073,7 +2061,7 @@ class nt {
2073
2061
  }, o + 1);
2074
2062
  a.unref && a.unref();
2075
2063
  }
2076
- }, this.#M = (s) => {
2064
+ }, this.#b = (s) => {
2077
2065
  n[s] = t[s] !== 0 ? ue.now() : 0;
2078
2066
  }, this.#R = (s, o) => {
2079
2067
  if (t[o]) {
@@ -2110,7 +2098,7 @@ class nt {
2110
2098
  };
2111
2099
  }
2112
2100
  // conditionally set private methods related to TTL
2113
- #M = () => {
2101
+ #b = () => {
2114
2102
  };
2115
2103
  #R = () => {
2116
2104
  };
@@ -2119,8 +2107,8 @@ class nt {
2119
2107
  /* c8 ignore stop */
2120
2108
  #m = () => !1;
2121
2109
  #X() {
2122
- const t = new We(this.#c);
2123
- this.#x = 0, this.#_ = t, this.#b = (n) => {
2110
+ const t = new Oe(this.#c);
2111
+ this.#x = 0, this.#_ = t, this.#M = (n) => {
2124
2112
  this.#x -= t[n], t[n] = 0;
2125
2113
  }, this.#D = (n, i, r, s) => {
2126
2114
  if (this.#t(i))
@@ -2143,7 +2131,7 @@ class nt {
2143
2131
  this.#x += t[n], r && (r.entrySize = i, r.totalCalculatedSize = this.#x);
2144
2132
  };
2145
2133
  }
2146
- #b = (t) => {
2134
+ #M = (t) => {
2147
2135
  };
2148
2136
  #P = (t, n, i) => {
2149
2137
  };
@@ -2152,7 +2140,7 @@ class nt {
2152
2140
  throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");
2153
2141
  return 0;
2154
2142
  };
2155
- *#T({ allowStale: t = this.allowStale } = {}) {
2143
+ *#w({ allowStale: t = this.allowStale } = {}) {
2156
2144
  if (this.#r)
2157
2145
  for (let n = this.#s; !(!this.#O(n) || ((t || !this.#m(n)) && (yield n), n === this.#a)); )
2158
2146
  n = this.#h[n];
@@ -2170,7 +2158,7 @@ class nt {
2170
2158
  * in order from most recently used to least recently used.
2171
2159
  */
2172
2160
  *entries() {
2173
- for (const t of this.#T())
2161
+ for (const t of this.#w())
2174
2162
  this.#e[t] !== void 0 && this.#n[t] !== void 0 && !this.#t(this.#e[t]) && (yield [this.#n[t], this.#e[t]]);
2175
2163
  }
2176
2164
  /**
@@ -2188,7 +2176,7 @@ class nt {
2188
2176
  * in order from most recently used to least recently used.
2189
2177
  */
2190
2178
  *keys() {
2191
- for (const t of this.#T()) {
2179
+ for (const t of this.#w()) {
2192
2180
  const n = this.#n[t];
2193
2181
  n !== void 0 && !this.#t(this.#e[t]) && (yield n);
2194
2182
  }
@@ -2210,7 +2198,7 @@ class nt {
2210
2198
  * in order from most recently used to least recently used.
2211
2199
  */
2212
2200
  *values() {
2213
- for (const t of this.#T())
2201
+ for (const t of this.#w())
2214
2202
  this.#e[t] !== void 0 && !this.#t(this.#e[t]) && (yield this.#e[t]);
2215
2203
  }
2216
2204
  /**
@@ -2240,7 +2228,7 @@ class nt {
2240
2228
  * similar to Array.find(). fn is called as fn(value, key, cache).
2241
2229
  */
2242
2230
  find(t, n = {}) {
2243
- for (const i of this.#T()) {
2231
+ for (const i of this.#w()) {
2244
2232
  const r = this.#e[i], s = this.#t(r) ? r.__staleWhileFetching : r;
2245
2233
  if (s !== void 0 && t(s, this.#n[i], this))
2246
2234
  return this.get(this.#n[i], n);
@@ -2253,7 +2241,7 @@ class nt {
2253
2241
  * Does not iterate over stale values.
2254
2242
  */
2255
2243
  forEach(t, n = this) {
2256
- for (const i of this.#T()) {
2244
+ for (const i of this.#w()) {
2257
2245
  const r = this.#e[i], s = this.#t(r) ? r.__staleWhileFetching : r;
2258
2246
  s !== void 0 && t.call(n, s, this.#n[i], this);
2259
2247
  }
@@ -2307,7 +2295,7 @@ class nt {
2307
2295
  */
2308
2296
  dump() {
2309
2297
  const t = [];
2310
- for (const n of this.#T({ allowStale: !0 })) {
2298
+ for (const n of this.#w({ allowStale: !0 })) {
2311
2299
  const i = this.#n[n], r = this.#e[n], s = this.#t(r) ? r.__staleWhileFetching : r;
2312
2300
  if (s === void 0 || i === void 0)
2313
2301
  continue;
@@ -2360,10 +2348,10 @@ class nt {
2360
2348
  if (this.#A && this.#t(u)) {
2361
2349
  u.__abortController.abort(new Error("replaced"));
2362
2350
  const { __staleWhileFetching: d } = u;
2363
- d !== void 0 && !o && (this.#w && this.#v?.(d, t, "set"), this.#l && this.#o?.push([d, t, "set"]));
2351
+ d !== void 0 && !o && (this.#T && this.#v?.(d, t, "set"), this.#l && this.#o?.push([d, t, "set"]));
2364
2352
  } else
2365
- o || (this.#w && this.#v?.(u, t, "set"), this.#l && this.#o?.push([u, t, "set"]));
2366
- if (this.#b(h), this.#P(h, l, a), this.#e[h] = n, a) {
2353
+ o || (this.#T && this.#v?.(u, t, "set"), this.#l && this.#o?.push([u, t, "set"]));
2354
+ if (this.#M(h), this.#P(h, l, a), this.#e[h] = n, a) {
2367
2355
  a.set = "replace";
2368
2356
  const d = u && this.#t(u) ? u.__staleWhileFetching : u;
2369
2357
  d !== void 0 && (a.oldValue = d);
@@ -2404,7 +2392,7 @@ class nt {
2404
2392
  }
2405
2393
  #z(t) {
2406
2394
  const n = this.#a, i = this.#n[n], r = this.#e[n];
2407
- return this.#A && this.#t(r) ? r.__abortController.abort(new Error("evicted")) : (this.#w || this.#l) && (this.#w && this.#v?.(r, i, "evict"), this.#l && this.#o?.push([r, i, "evict"])), this.#b(n), t && (this.#n[n] = void 0, this.#e[n] = void 0, this.#E.push(n)), this.#r === 1 ? (this.#a = this.#s = 0, this.#E.length = 0) : this.#a = this.#f[n], this.#i.delete(i), this.#r--, n;
2395
+ return this.#A && this.#t(r) ? r.__abortController.abort(new Error("evicted")) : (this.#T || this.#l) && (this.#T && this.#v?.(r, i, "evict"), this.#l && this.#o?.push([r, i, "evict"])), this.#M(n), t && (this.#n[n] = void 0, this.#e[n] = void 0, this.#E.push(n)), this.#r === 1 ? (this.#a = this.#s = 0, this.#E.length = 0) : this.#a = this.#f[n], this.#i.delete(i), this.#r--, n;
2408
2396
  }
2409
2397
  /**
2410
2398
  * Check if a key is in the cache, without updating the recency of use.
@@ -2423,7 +2411,7 @@ class nt {
2423
2411
  if (this.#m(s))
2424
2412
  r && (r.has = "stale", this.#R(r, s));
2425
2413
  else
2426
- return i && this.#M(s), r && (r.has = "hit", this.#R(r, s)), !0;
2414
+ return i && this.#b(s), r && (r.has = "hit", this.#R(r, s)), !0;
2427
2415
  } else
2428
2416
  r && (r.has = "miss");
2429
2417
  return !1;
@@ -2446,7 +2434,7 @@ class nt {
2446
2434
  const s = n === void 0 ? void 0 : this.#e[n];
2447
2435
  if (this.#t(s))
2448
2436
  return s;
2449
- const o = new Ve(), { signal: c } = i;
2437
+ const o = new We(), { signal: c } = i;
2450
2438
  c?.addEventListener("abort", () => o.abort(c.reason), {
2451
2439
  signal: o.signal
2452
2440
  });
@@ -2454,37 +2442,37 @@ class nt {
2454
2442
  signal: o.signal,
2455
2443
  options: i,
2456
2444
  context: r
2457
- }, f = (_, x = !1) => {
2458
- const { aborted: p } = o.signal, A = i.ignoreFetchAbort && _ !== void 0;
2459
- if (i.status && (p && !x ? (i.status.fetchAborted = !0, i.status.fetchError = o.signal.reason, A && (i.status.fetchAbortIgnored = !0)) : i.status.fetchResolved = !0), p && !A && !x)
2445
+ }, f = (_, E = !1) => {
2446
+ const { aborted: x } = o.signal, A = i.ignoreFetchAbort && _ !== void 0;
2447
+ if (i.status && (x && !E ? (i.status.fetchAborted = !0, i.status.fetchError = o.signal.reason, A && (i.status.fetchAbortIgnored = !0)) : i.status.fetchResolved = !0), x && !A && !E)
2460
2448
  return h(o.signal.reason);
2461
- const y = d;
2462
- return this.#e[n] === d && (_ === void 0 ? y.__staleWhileFetching ? this.#e[n] = y.__staleWhileFetching : this.delete(t) : (i.status && (i.status.fetchUpdated = !0), this.set(t, _, a.options))), _;
2449
+ const R = d;
2450
+ return this.#e[n] === d && (_ === void 0 ? R.__staleWhileFetching ? this.#e[n] = R.__staleWhileFetching : this.delete(t) : (i.status && (i.status.fetchUpdated = !0), this.set(t, _, a.options))), _;
2463
2451
  }, l = (_) => (i.status && (i.status.fetchRejected = !0, i.status.fetchError = _), h(_)), h = (_) => {
2464
- const { aborted: x } = o.signal, p = x && i.allowStaleOnFetchAbort, A = p || i.allowStaleOnFetchRejection, y = A || i.noDeleteOnFetchRejection, E = d;
2465
- if (this.#e[n] === d && (!y || E.__staleWhileFetching === void 0 ? this.delete(t) : p || (this.#e[n] = E.__staleWhileFetching)), A)
2466
- return i.status && E.__staleWhileFetching !== void 0 && (i.status.returnedStale = !0), E.__staleWhileFetching;
2467
- if (E.__returned === E)
2452
+ const { aborted: E } = o.signal, x = E && i.allowStaleOnFetchAbort, A = x || i.allowStaleOnFetchRejection, R = A || i.noDeleteOnFetchRejection, p = d;
2453
+ if (this.#e[n] === d && (!R || p.__staleWhileFetching === void 0 ? this.delete(t) : x || (this.#e[n] = p.__staleWhileFetching)), A)
2454
+ return i.status && p.__staleWhileFetching !== void 0 && (i.status.returnedStale = !0), p.__staleWhileFetching;
2455
+ if (p.__returned === p)
2468
2456
  throw _;
2469
- }, u = (_, x) => {
2470
- const p = this.#U?.(t, s, a);
2471
- p && p instanceof Promise && p.then((A) => _(A === void 0 ? void 0 : A), x), o.signal.addEventListener("abort", () => {
2457
+ }, u = (_, E) => {
2458
+ const x = this.#U?.(t, s, a);
2459
+ x && x instanceof Promise && x.then((A) => _(A === void 0 ? void 0 : A), E), o.signal.addEventListener("abort", () => {
2472
2460
  (!i.ignoreFetchAbort || i.allowStaleOnFetchAbort) && (_(void 0), i.allowStaleOnFetchAbort && (_ = (A) => f(A, !0)));
2473
2461
  });
2474
2462
  };
2475
2463
  i.status && (i.status.fetchDispatched = !0);
2476
- const d = new Promise(u).then(f, l), m = Object.assign(d, {
2464
+ const d = new Promise(u).then(f, l), v = Object.assign(d, {
2477
2465
  __abortController: o,
2478
2466
  __staleWhileFetching: s,
2479
2467
  __returned: void 0
2480
2468
  });
2481
- return n === void 0 ? (this.set(t, m, { ...a.options, status: void 0 }), n = this.#i.get(t)) : this.#e[n] = m, m;
2469
+ return n === void 0 ? (this.set(t, v, { ...a.options, status: void 0 }), n = this.#i.get(t)) : this.#e[n] = v, v;
2482
2470
  }
2483
2471
  #t(t) {
2484
2472
  if (!this.#A)
2485
2473
  return !1;
2486
2474
  const n = t;
2487
- return !!n && n instanceof Promise && n.hasOwnProperty("__staleWhileFetching") && n.__abortController instanceof Ve;
2475
+ return !!n && n instanceof Promise && n.hasOwnProperty("__staleWhileFetching") && n.__abortController instanceof We;
2488
2476
  }
2489
2477
  async fetch(t, n = {}) {
2490
2478
  const {
@@ -2502,20 +2490,20 @@ class nt {
2502
2490
  noDeleteOnFetchRejection: h = this.noDeleteOnFetchRejection,
2503
2491
  allowStaleOnFetchRejection: u = this.allowStaleOnFetchRejection,
2504
2492
  ignoreFetchAbort: d = this.ignoreFetchAbort,
2505
- allowStaleOnFetchAbort: m = this.allowStaleOnFetchAbort,
2493
+ allowStaleOnFetchAbort: v = this.allowStaleOnFetchAbort,
2506
2494
  context: _,
2507
- forceRefresh: x = !1,
2508
- status: p,
2495
+ forceRefresh: E = !1,
2496
+ status: x,
2509
2497
  signal: A
2510
2498
  } = n;
2511
2499
  if (!this.#A)
2512
- return p && (p.fetch = "get"), this.get(t, {
2500
+ return x && (x.fetch = "get"), this.get(t, {
2513
2501
  allowStale: i,
2514
2502
  updateAgeOnGet: r,
2515
2503
  noDeleteOnStaleGet: s,
2516
- status: p
2504
+ status: x
2517
2505
  });
2518
- const y = {
2506
+ const R = {
2519
2507
  allowStale: i,
2520
2508
  updateAgeOnGet: r,
2521
2509
  noDeleteOnStaleGet: s,
@@ -2526,27 +2514,27 @@ class nt {
2526
2514
  noUpdateTTL: l,
2527
2515
  noDeleteOnFetchRejection: h,
2528
2516
  allowStaleOnFetchRejection: u,
2529
- allowStaleOnFetchAbort: m,
2517
+ allowStaleOnFetchAbort: v,
2530
2518
  ignoreFetchAbort: d,
2531
- status: p,
2519
+ status: x,
2532
2520
  signal: A
2533
2521
  };
2534
- let E = this.#i.get(t);
2535
- if (E === void 0) {
2536
- p && (p.fetch = "miss");
2537
- const v = this.#L(t, E, y, _);
2538
- return v.__returned = v;
2522
+ let p = this.#i.get(t);
2523
+ if (p === void 0) {
2524
+ x && (x.fetch = "miss");
2525
+ const m = this.#L(t, p, R, _);
2526
+ return m.__returned = m;
2539
2527
  } else {
2540
- const v = this.#e[E];
2541
- if (this.#t(v)) {
2542
- const g = i && v.__staleWhileFetching !== void 0;
2543
- return p && (p.fetch = "inflight", g && (p.returnedStale = !0)), g ? v.__staleWhileFetching : v.__returned = v;
2528
+ const m = this.#e[p];
2529
+ if (this.#t(m)) {
2530
+ const T = i && m.__staleWhileFetching !== void 0;
2531
+ return x && (x.fetch = "inflight", T && (x.returnedStale = !0)), T ? m.__staleWhileFetching : m.__returned = m;
2544
2532
  }
2545
- const w = this.#m(E);
2546
- if (!x && !w)
2547
- return p && (p.fetch = "hit"), this.#S(E), r && this.#M(E), p && this.#R(p, E), v;
2548
- const M = this.#L(t, E, y, _), R = M.__staleWhileFetching !== void 0 && i;
2549
- return p && (p.fetch = w ? "stale" : "refresh", R && w && (p.returnedStale = !0)), R ? M.__staleWhileFetching : M.__returned = M;
2533
+ const w = this.#m(p);
2534
+ if (!E && !w)
2535
+ return x && (x.fetch = "hit"), this.#S(p), r && this.#b(p), x && this.#R(x, p), m;
2536
+ const b = this.#L(t, p, R, _), g = b.__staleWhileFetching !== void 0 && i;
2537
+ return x && (x.fetch = w ? "stale" : "refresh", g && w && (x.returnedStale = !0)), g ? b.__staleWhileFetching : b.__returned = b;
2550
2538
  }
2551
2539
  }
2552
2540
  /**
@@ -2559,7 +2547,7 @@ class nt {
2559
2547
  const { allowStale: i = this.allowStale, updateAgeOnGet: r = this.updateAgeOnGet, noDeleteOnStaleGet: s = this.noDeleteOnStaleGet, status: o } = n, c = this.#i.get(t);
2560
2548
  if (c !== void 0) {
2561
2549
  const a = this.#e[c], f = this.#t(a);
2562
- return o && this.#R(o, c), this.#m(c) ? (o && (o.get = "stale"), f ? (o && i && a.__staleWhileFetching !== void 0 && (o.returnedStale = !0), i ? a.__staleWhileFetching : void 0) : (s || this.delete(t), o && i && (o.returnedStale = !0), i ? a : void 0)) : (o && (o.get = "hit"), f ? a.__staleWhileFetching : (this.#S(c), r && this.#M(c), a));
2550
+ return o && this.#R(o, c), this.#m(c) ? (o && (o.get = "stale"), f ? (o && i && a.__staleWhileFetching !== void 0 && (o.returnedStale = !0), i ? a.__staleWhileFetching : void 0) : (s || this.delete(t), o && i && (o.returnedStale = !0), i ? a : void 0)) : (o && (o.get = "hit"), f ? a.__staleWhileFetching : (this.#S(c), r && this.#b(c), a));
2563
2551
  } else
2564
2552
  o && (o.get = "miss");
2565
2553
  }
@@ -2581,9 +2569,9 @@ class nt {
2581
2569
  if (n = !0, this.#r === 1)
2582
2570
  this.clear();
2583
2571
  else {
2584
- this.#b(i);
2572
+ this.#M(i);
2585
2573
  const r = this.#e[i];
2586
- if (this.#t(r) ? r.__abortController.abort(new Error("deleted")) : (this.#w || this.#l) && (this.#w && this.#v?.(r, t, "delete"), this.#l && this.#o?.push([r, t, "delete"])), this.#i.delete(t), this.#n[i] = void 0, this.#e[i] = void 0, i === this.#s)
2574
+ if (this.#t(r) ? r.__abortController.abort(new Error("deleted")) : (this.#T || this.#l) && (this.#T && this.#v?.(r, t, "delete"), this.#l && this.#o?.push([r, t, "delete"])), this.#i.delete(t), this.#n[i] = void 0, this.#e[i] = void 0, i === this.#s)
2587
2575
  this.#s = this.#h[i];
2588
2576
  else if (i === this.#a)
2589
2577
  this.#a = this.#f[i];
@@ -2614,7 +2602,7 @@ class nt {
2614
2602
  n.__abortController.abort(new Error("deleted"));
2615
2603
  else {
2616
2604
  const i = this.#n[t];
2617
- this.#w && this.#v?.(n, i, "delete"), this.#l && this.#o?.push([n, i, "delete"]);
2605
+ this.#T && this.#v?.(n, i, "delete"), this.#l && this.#o?.push([n, i, "delete"]);
2618
2606
  }
2619
2607
  }
2620
2608
  if (this.#i.clear(), this.#e.fill(void 0), this.#n.fill(void 0), this.#d && this.#y && (this.#d.fill(0), this.#y.fill(0)), this.#_ && this.#_.fill(0), this.#a = 0, this.#s = 0, this.#E.length = 0, this.#x = 0, this.#r = 0, this.#l && this.#o) {
@@ -2625,8 +2613,8 @@ class nt {
2625
2613
  }
2626
2614
  }
2627
2615
  }
2628
- const Ze = (e) => {
2629
- const t = new nt({
2616
+ const je = (e) => {
2617
+ const t = new qe({
2630
2618
  ...e,
2631
2619
  ttlResolution: 0,
2632
2620
  dispose: (r, s) => e.dispose?.(r, i(s))
@@ -2643,40 +2631,40 @@ const Ze = (e) => {
2643
2631
  clear: () => t.clear(),
2644
2632
  purgeStale: () => t.purgeStale()
2645
2633
  };
2646
- }, li = 15, ie = 256, ui = ({
2634
+ }, ai = 15, ie = 256, ci = ({
2647
2635
  gl: e,
2648
2636
  terrainCache: t
2649
2637
  }) => {
2650
- const n = Ze({
2638
+ const n = je({
2651
2639
  max: 1e3
2652
- }), i = Je(t), r = e.createFramebuffer();
2640
+ }), i = Fe(t), r = e.createFramebuffer();
2653
2641
  if (!r)
2654
2642
  throw new Error("Framebuffer creation failed");
2655
2643
  const s = ([a = 0, f = 0, l = 0]) => {
2656
2644
  const h = i.get([a, f, l]);
2657
2645
  if (!h)
2658
2646
  return;
2659
- const { texture: u, downsample: d } = h, m = 2 ** d, _ = [Math.floor(a / m), Math.floor(f / m), l - d], x = n.get(_);
2660
- if (x)
2661
- return { buffer: x, downsample: d };
2662
- const p = new Uint8Array(4 * ie * ie);
2663
- return e.bindFramebuffer(e.FRAMEBUFFER, r), u.attach(), e.readPixels(0, 0, ie, ie, e.RGBA, e.UNSIGNED_BYTE, p), e.bindFramebuffer(e.FRAMEBUFFER, null), n.set(_, p), { buffer: p, downsample: d };
2647
+ const { texture: u, downsample: d } = h, v = 2 ** d, _ = [Math.floor(a / v), Math.floor(f / v), l - d], E = n.get(_);
2648
+ if (E)
2649
+ return { buffer: E, downsample: d };
2650
+ const x = new Uint8Array(4 * ie * ie);
2651
+ return e.bindFramebuffer(e.FRAMEBUFFER, r), u.attach(), e.readPixels(0, 0, ie, ie, e.RGBA, e.UNSIGNED_BYTE, x), e.bindFramebuffer(e.FRAMEBUFFER, null), n.set(_, x), { buffer: x, downsample: d };
2664
2652
  };
2665
- return { get: ([a = 0, f = 0], l = li) => {
2666
- const h = 2 ** l, u = z([a, f, 0]).map((g) => g * h), [d = 0, m = 0] = u.map((g) => Math.floor(g % h));
2667
- let [_ = 0, x = 0] = u.map((g) => g % 1);
2668
- const p = s([d, m, l]);
2669
- if (!p)
2653
+ return { get: ([a = 0, f = 0], l = ai) => {
2654
+ const h = 2 ** l, u = z([a, f, 0]).map((T) => T * h), [d = 0, v = 0] = u.map((T) => Math.floor(T % h));
2655
+ let [_ = 0, E = 0] = u.map((T) => T % 1);
2656
+ const x = s([d, v, l]);
2657
+ if (!x)
2670
2658
  return 0;
2671
- const { buffer: A, downsample: y } = p, E = 2 ** y;
2672
- [_, x] = [(d % E + _) / E, (m % E + x) / E];
2673
- const v = 4 * ie * Math.floor(x * ie) + 4 * Math.floor(_ * ie), [w = 0, M = 0, T = 0] = A.slice(v, v + 4);
2674
- return (w * 65536 + M * 256 + T) / 10 - 1e4;
2659
+ const { buffer: A, downsample: R } = x, p = 2 ** R;
2660
+ [_, E] = [(d % p + _) / p, (v % p + E) / p];
2661
+ const m = 4 * ie * Math.floor(E * ie) + 4 * Math.floor(_ * ie), [w = 0, b = 0, y = 0] = A.slice(m, m + 4);
2662
+ return (w * 65536 + b * 256 + y) / 10 - 1e4;
2675
2663
  }, dispose: () => {
2676
2664
  e.deleteFramebuffer(r);
2677
2665
  } };
2678
2666
  };
2679
- var hi = `#version 300 es
2667
+ var fi = `#version 300 es
2680
2668
 
2681
2669
  precision highp float;
2682
2670
 
@@ -2688,15 +2676,15 @@ out vec4 result;
2688
2676
  void main(void) {
2689
2677
  result = texture(imagery, uv) * color_out;
2690
2678
  }`;
2691
- const mt = ({
2679
+ const ut = ({
2692
2680
  gl: e,
2693
2681
  urlPattern: t,
2694
2682
  onLoad: n
2695
2683
  }) => {
2696
- const i = Ze({
2684
+ const i = je({
2697
2685
  max: 2e3,
2698
2686
  dispose: (a) => a.dispose()
2699
- }), r = Ze({
2687
+ }), r = je({
2700
2688
  max: 1e4,
2701
2689
  ttl: 200,
2702
2690
  dispose: (a, f) => {
@@ -2713,30 +2701,30 @@ const mt = ({
2713
2701
  const [l = 0, h = 0, u = 0] = a;
2714
2702
  let d = t.replace("{x}", `${l}`).replace("{y}", `${h}`).replace("{z}", `${u}`);
2715
2703
  if (d.includes("{bbox}")) {
2716
- const [_ = 0, x = 0, p = 0] = a, A = 2 ** p - x - 1, [[y, E] = [], [v, w] = []] = [
2704
+ const [_ = 0, E = 0, x = 0] = a, A = 2 ** x - E - 1, [[R, p] = [], [m, w] = []] = [
2717
2705
  [0, 0],
2718
2706
  [1, 1]
2719
- ].map(([M = 0, T = 0]) => [_ + M, A + T, p]).map((M) => xt(M, M)).map(([M = 0, T = 0]) => [
2720
- (M - 0.5) * 2 * Math.PI * 6378137,
2721
- (T - 0.5) * 2 * Math.PI * 6378137
2707
+ ].map(([b = 0, y = 0]) => [_ + b, A + y, x]).map((b) => vt(b, b)).map(([b = 0, y = 0]) => [
2708
+ (b - 0.5) * 2 * Math.PI * 6378137,
2709
+ (y - 0.5) * 2 * Math.PI * 6378137
2722
2710
  ]);
2723
- d = d.replace("{bbox}", [y, E, v, w].join(","));
2711
+ d = d.replace("{bbox}", [R, p, m, w].join(","));
2724
2712
  }
2725
- const m = wt({
2713
+ const v = yt({
2726
2714
  gl: e,
2727
2715
  url: d,
2728
2716
  onLoad: () => {
2729
2717
  r.delete(a), n?.();
2730
2718
  }
2731
2719
  });
2732
- i.set(a, m), r.set(a, !0);
2720
+ i.set(a, v), r.set(a, !0);
2733
2721
  }
2734
2722
  }, o = setInterval(() => r.purgeStale(), 200);
2735
2723
  return { get: s, dispose: () => {
2736
2724
  clearInterval(o), i.clear();
2737
2725
  } };
2738
- }, di = (e) => {
2739
- const t = Ze({
2726
+ }, li = (e) => {
2727
+ const t = je({
2740
2728
  max: 1e4,
2741
2729
  ttl: 1e3
2742
2730
  }), n = [
@@ -2749,17 +2737,17 @@ const mt = ({
2749
2737
  const s = t.get(r);
2750
2738
  if (s)
2751
2739
  return s;
2752
- const [o = 0, c = 0, a = 0] = r, f = n.map(([l = 0, h = 0]) => [o + l, c + h, a]).map((l) => xt(l, l)).map((l) => oe(l, l)).map((l) => {
2740
+ const [o = 0, c = 0, a = 0] = r, f = n.map(([l = 0, h = 0]) => [o + l, c + h, a]).map((l) => vt(l, l)).map((l) => oe(l, l)).map((l) => {
2753
2741
  const [h = 0, u = 0] = l, d = Math.max(a - 5, 0);
2754
2742
  return z(
2755
- Se(l, h, u, e.get([h, u], d)),
2743
+ be(l, h, u, e.get([h, u], d)),
2756
2744
  l
2757
2745
  );
2758
2746
  });
2759
2747
  return t.set(r, f), f;
2760
2748
  } };
2761
2749
  };
2762
- var mi = `#version 300 es
2750
+ var ui = `#version 300 es
2763
2751
 
2764
2752
  precision highp float;
2765
2753
 
@@ -2796,7 +2784,7 @@ void main(void) {
2796
2784
  uv = downsample(downsample_imagery);
2797
2785
  color_out = color;
2798
2786
  }`;
2799
- const V = 34, vi = 22, pi = xe(0, V).flatMap(
2787
+ const V = 34, hi = 22, di = xe(0, V).flatMap(
2800
2788
  (e) => xe(0, V).flatMap((t) => [
2801
2789
  e * (V + 1) + t,
2802
2790
  e * (V + 1) + t + 1,
@@ -2805,22 +2793,22 @@ const V = 34, vi = 22, pi = xe(0, V).flatMap(
2805
2793
  (e + 1) * (V + 1) + t + 1,
2806
2794
  (e + 1) * (V + 1) + t
2807
2795
  ])
2808
- ), Oe = 0.1, xi = xe(0, V + 1).flatMap(
2796
+ ), Ne = 0.1, mi = xe(0, V + 1).flatMap(
2809
2797
  (e) => xe(0, V + 1).map((t) => {
2810
2798
  let n = (t - 1) / (V - 2), i = (e - 1) / (V - 2), r = 0;
2811
- return t === 0 && (n = 0, r = -Oe), t === V && (n = 1, r = -Oe), e === 0 && (i = 0, r = -Oe), e === V && (i = 1, r = -Oe), [n, i, r];
2799
+ return t === 0 && (n = 0, r = -Ne), t === V && (n = 1, r = -Ne), e === 0 && (i = 0, r = -Ne), e === V && (i = 1, r = -Ne), [n, i, r];
2812
2800
  })
2813
- ), Zi = (e, t = {}) => {
2801
+ ), Wi = (e, t = {}) => {
2814
2802
  const { gl: n } = e;
2815
2803
  let i, r;
2816
2804
  const s = n.getExtension(
2817
2805
  "EXT_texture_filter_anisotropic"
2818
2806
  ), o = s ? n.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT) : void 0, c = ce(
2819
2807
  () => t.imageryUrl?.() ?? "",
2820
- (R) => {
2821
- i?.dispose(), i = mt({
2808
+ (g) => {
2809
+ i?.dispose(), i = ut({
2822
2810
  gl: n,
2823
- urlPattern: R,
2811
+ urlPattern: g,
2824
2812
  onLoad: () => {
2825
2813
  s && o && n.texParameterf(
2826
2814
  n.TEXTURE_2D,
@@ -2832,119 +2820,120 @@ const V = 34, vi = 22, pi = xe(0, V).flatMap(
2832
2820
  n.LINEAR_MIPMAP_LINEAR
2833
2821
  ), 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), n.generateMipmap(n.TEXTURE_2D);
2834
2822
  }
2835
- }), r = Je(i);
2823
+ }), r = Fe(i);
2836
2824
  }
2837
- ), a = t.terrainUrl?.() ?? "", f = mt({
2825
+ ), a = t.terrainUrl?.() ?? "", f = ut({
2838
2826
  gl: n,
2839
2827
  urlPattern: a,
2840
2828
  onLoad: () => {
2841
2829
  n.texParameteri(n.TEXTURE_2D, n.TEXTURE_MIN_FILTER, n.NEAREST), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_MAG_FILTER, n.NEAREST), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_WRAP_S, n.CLAMP_TO_EDGE), n.texParameteri(n.TEXTURE_2D, n.TEXTURE_WRAP_T, n.CLAMP_TO_EDGE);
2842
2830
  }
2843
- }), l = Je(f, 3), h = ui({ gl: n, terrainCache: f }), u = di(h), d = Z({ gl: n, type: "f32", target: "array" });
2844
- d.set(xi.flatMap(([R = 0, g = 0, b = 0]) => [R, g, b]));
2845
- const m = Z({ gl: n, type: "u16", target: "element" });
2846
- m.set(pi);
2847
- const { renderProgram: _, depthProgram: x } = Ei(e, {
2831
+ }), l = Fe(f, 3), h = ci({ gl: n, terrainCache: f }), u = li(h), d = Z({ gl: n, type: "f32", target: "array" });
2832
+ d.set(mi.flatMap(([g = 0, T = 0, M = 0]) => [g, T, M]));
2833
+ const v = Z({ gl: n, type: "u16", target: "element" });
2834
+ v.set(di);
2835
+ const { renderProgram: _, depthProgram: E } = vi(e, {
2848
2836
  uvwBuffer: d,
2849
- indexBuffer: m
2850
- }), p = [0, 1, 2, 3], A = p.map(L), y = p.map(ne), E = p.map(pe), v = (R) => {
2851
- const { camera: g, worldToLocal: b, localToClip: S, clipToScreen: U } = R, P = (D) => {
2852
- const [O = 0, X = 0, I = 0] = D, W = u.get(D);
2853
- let B = _i(g, W);
2854
- if (!B) {
2855
- const $ = W.map((k, Q) => b(k, A[Q])).map((k, Q) => S(k, y[Q]));
2856
- if (yi($))
2837
+ indexBuffer: v
2838
+ }), x = [0, 1, 2, 3], A = x.map(L), R = x.map(ne), p = x.map(pe), m = (g) => {
2839
+ const { camera: T, worldToLocal: M, localToClip: S, clipToScreen: U } = g, P = (N) => {
2840
+ const [I = 0, X = 0, C = 0] = N, B = u.get(N);
2841
+ let W = pi(T, B);
2842
+ if (!W) {
2843
+ const H = B.map((k, G) => M(k, A[G])).map((k, G) => S(k, R[G]));
2844
+ if (xi(H))
2857
2845
  return [];
2858
- B = wi($.map((k, Q) => U(k, E[Q]))) > 512 / devicePixelRatio;
2846
+ W = Ei(H.map((k, G) => U(k, p[G]))) > 512 / devicePixelRatio;
2859
2847
  }
2860
- return B && I < vi ? [
2861
- [2 * O, 2 * X, I + 1],
2862
- [2 * O + 1, 2 * X, I + 1],
2863
- [2 * O, 2 * X + 1, I + 1],
2864
- [2 * O + 1, 2 * X + 1, I + 1]
2865
- ].flatMap((J) => P(J)) : [D];
2848
+ return W && C < hi ? [
2849
+ [2 * I, 2 * X, C + 1],
2850
+ [2 * I + 1, 2 * X, C + 1],
2851
+ [2 * I, 2 * X + 1, C + 1],
2852
+ [2 * I + 1, 2 * X + 1, C + 1]
2853
+ ].flatMap((J) => P(J)) : [N];
2866
2854
  };
2867
2855
  return P([0, 0, 0]);
2868
2856
  }, w = ({
2869
- viewport: R,
2870
- depth: g = !1,
2871
- index: b = 0
2857
+ viewport: g,
2858
+ depth: T = !1,
2859
+ index: M = 0
2872
2860
  }) => {
2873
2861
  const S = t.color?.() ?? [1, 1, 1, 1];
2874
- if (c(), Ee(n, g, t))
2862
+ if (c(), Ee(n, T, t))
2875
2863
  return;
2876
- const U = g ? x : _, { projection: P, modelView: D, camera: O } = R, X = v(R);
2877
- for (const I of X) {
2878
- const W = g ? void 0 : r?.get(I), B = l.get(I);
2879
- if (!g && !W || !B)
2864
+ const U = T ? E : _, { projection: P, modelView: N, camera: I } = g, X = m(g);
2865
+ for (const C of X) {
2866
+ const B = T ? void 0 : r?.get(C), W = l.get(C);
2867
+ if (!T && !B || !W)
2880
2868
  continue;
2881
- const { texture: $, downsample: J } = B, { texture: k = $, downsample: Q = 0 } = W ?? {};
2869
+ const { texture: H, downsample: J } = W, { texture: k = H, downsample: G = 0 } = B ?? {};
2882
2870
  U.execute({
2883
2871
  projection: P,
2884
- modelView: D,
2885
- camera: q(O),
2886
- xyz: I,
2872
+ modelView: N,
2873
+ camera: q(I),
2874
+ xyz: C,
2887
2875
  imagery: k,
2888
- terrain: $,
2889
- downsampleImagery: Q,
2876
+ terrain: H,
2877
+ downsampleImagery: G,
2890
2878
  downsampleTerrain: J,
2891
2879
  color: S,
2892
- index: b
2880
+ index: M
2893
2881
  });
2894
2882
  }
2895
- }, M = () => {
2883
+ }, b = () => {
2896
2884
  i?.dispose(), f.dispose(), h.dispose();
2897
- }, T = ye(t);
2885
+ }, y = ye(t);
2898
2886
  return {
2899
2887
  render: w,
2900
- dispose: M,
2901
- ...T
2888
+ dispose: b,
2889
+ ...y,
2890
+ elevation: h.get
2902
2891
  };
2903
- }, Ei = ({ gl: e, programs: t }, { uvwBuffer: n, indexBuffer: i }) => {
2892
+ }, vi = ({ gl: e, programs: t }, { uvwBuffer: n, indexBuffer: i }) => {
2904
2893
  const r = (c = !1) => {
2905
2894
  const a = t.get({
2906
- vertexSource: mi,
2907
- fragmentSource: c ? _e : hi
2908
- }), f = a.attribute3f("uvw", n), l = a.uniformMatrix4f("projection"), h = a.uniformMatrix4f("model_view"), u = a.uniform1i("imagery"), d = a.uniform1i("terrain"), m = a.uniform1i("downsample_imagery"), _ = a.uniform1i("downsample_terrain"), x = a.uniform4f("color"), p = a.uniform3i("xyz"), A = a.uniform3i("camera"), y = a.uniform1i("index");
2895
+ vertexSource: ui,
2896
+ fragmentSource: c ? _e : fi
2897
+ }), f = a.attribute3f("uvw", n), l = a.uniformMatrix4f("projection"), h = a.uniformMatrix4f("model_view"), u = a.uniform1i("imagery"), d = a.uniform1i("terrain"), v = a.uniform1i("downsample_imagery"), _ = a.uniform1i("downsample_terrain"), E = a.uniform4f("color"), x = a.uniform3i("xyz"), A = a.uniform3i("camera"), R = a.uniform1i("index");
2909
2898
  return { execute: ({
2910
- projection: v,
2899
+ projection: m,
2911
2900
  modelView: w,
2912
- camera: M,
2913
- xyz: T,
2914
- imagery: R,
2915
- terrain: g,
2916
- downsampleImagery: b,
2901
+ camera: b,
2902
+ xyz: y,
2903
+ imagery: g,
2904
+ terrain: T,
2905
+ downsampleImagery: M,
2917
2906
  downsampleTerrain: S,
2918
2907
  color: U,
2919
2908
  index: P
2920
2909
  }) => {
2921
- a.use(), f.use(), l.set(v), h.set(w), p.set(T), A.set(M), m.set(b), _.set(S), x.set(U), y.set(P), e.activeTexture(e.TEXTURE0), u.set(0), R.use(), e.activeTexture(e.TEXTURE1), d.set(1), g.use(), i.use(), e.drawElements(e.TRIANGLES, V * V * 2 * 3, e.UNSIGNED_SHORT, 0);
2910
+ a.use(), f.use(), l.set(m), h.set(w), x.set(y), A.set(b), v.set(M), _.set(S), E.set(U), R.set(P), e.activeTexture(e.TEXTURE0), u.set(0), g.use(), e.activeTexture(e.TEXTURE1), d.set(1), T.use(), i.use(), e.drawElements(e.TRIANGLES, V * V * 2 * 3, e.UNSIGNED_SHORT, 0);
2922
2911
  } };
2923
2912
  }, s = r(), o = r(!0);
2924
2913
  return { renderProgram: s, depthProgram: o };
2925
- }, _i = (e, t) => {
2914
+ }, pi = (e, t) => {
2926
2915
  const [n, i, r, s] = t.reduce(
2927
- ([f, l, h, u], [d = 0, m = 0]) => [
2916
+ ([f, l, h, u], [d = 0, v = 0]) => [
2928
2917
  Math.min(d, f),
2929
2918
  Math.max(d, l),
2930
- Math.min(m, h),
2931
- Math.max(m, u)
2919
+ Math.min(v, h),
2920
+ Math.max(v, u)
2932
2921
  ],
2933
2922
  [1, 0, 1, 0]
2934
2923
  ), [o = 0, c = 0, a = 0] = e;
2935
2924
  return o > n && o < i && c > r && c < s && a > 0 && a < i - n;
2936
- }, yi = (e) => e.every(([t = 0, , , n = 0]) => t > n) || e.every(([t = 0, , , n = 0]) => t < -n) || e.every(([, t = 0, , n = 0]) => t > n) || e.every(([, t = 0, , n = 0]) => t < -n) || e.every(([, , t = 0, n = 0]) => t > n) || e.every(([, , t = 0, n = 0]) => t < -n) || e.every(([, , , t = 0]) => t < 0), wi = (e) => Math.sqrt(
2925
+ }, xi = (e) => e.every(([t = 0, , , n = 0]) => t > n) || e.every(([t = 0, , , n = 0]) => t < -n) || e.every(([, t = 0, , n = 0]) => t > n) || e.every(([, t = 0, , n = 0]) => t < -n) || e.every(([, , t = 0, n = 0]) => t > n) || e.every(([, , t = 0, n = 0]) => t < -n) || e.every(([, , , t = 0]) => t < 0), Ei = (e) => Math.sqrt(
2937
2926
  e.map(
2938
- (t, n) => En(
2927
+ (t, n) => vn(
2939
2928
  e[n] ?? [0, 0],
2940
2929
  e[(n + 1) % e.length] ?? [0, 0]
2941
2930
  )
2942
2931
  ).reduce((t, n) => t + n, 0) / e.length
2943
- ), Yi = {
2932
+ ), ji = {
2944
2933
  pickable: !0,
2945
2934
  depth: !0,
2946
2935
  polygonOffset: 0
2947
- }, $i = (e, t) => {
2936
+ }, Bi = (e, t) => {
2948
2937
  let n;
2949
2938
  return () => {
2950
2939
  const i = e.map((s) => s());
@@ -2987,7 +2976,7 @@ const V = 34, vi = 22, pi = xe(0, V).flatMap(
2987
2976
  onDragStart: o,
2988
2977
  onDragEnd: c
2989
2978
  };
2990
- }, $e = 10, Pe = 1e-3, fe = (e) => (t) => {
2979
+ }, Se = 8, Ue = 1e-3, fe = (e) => (t) => {
2991
2980
  let n, i;
2992
2981
  return () => {
2993
2982
  const r = performance.now(), s = (r - (i ?? r)) / 1e3;
@@ -2995,41 +2984,41 @@ const V = 34, vi = 22, pi = xe(0, V).flatMap(
2995
2984
  const o = t();
2996
2985
  return n = n ?? o, n = e({ time: s, current: n, target: o }), n;
2997
2986
  };
2998
- }, Ti = fe(
2999
- ({ time: e, current: t, target: n }) => (Math.abs(n - t) < Pe ? t = n : t = t + (n - t) * (1 - Math.exp(-$e * e)), t)
3000
- ), gi = (e) => fe(({ time: t, current: n, target: i }) => (xn(n, i) < Pe ? hn(n, i) : n = mn(
2987
+ }, _i = fe(
2988
+ ({ time: e, current: t, target: n }) => (Math.abs(n - t) < Ue ? t = n : t = t + (n - t) * (1 - Math.exp(-Se * e)), t)
2989
+ ), yi = (e) => fe(({ time: t, current: n, target: i }) => (mn(n, i) < Ue ? fn(n, i) : n = un(
3001
2990
  pe(),
3002
2991
  n,
3003
- pn(
2992
+ dn(
3004
2993
  pe(),
3005
- _n(pe(), i, n),
3006
- 1 - Math.exp(-$e * t)
2994
+ pn(pe(), i, n),
2995
+ 1 - Math.exp(-Se * t)
3007
2996
  )
3008
- ), n))(() => un(e())), ki = (e) => fe(({ time: t, current: n, target: i }) => (nn(n, i) < Pe ? qt(n, i) : n = Jt(
2997
+ ), n))(() => cn(e())), Vi = (e) => fe(({ time: t, current: n, target: i }) => (qt(n, i) < Ue ? Gt(n, i) : n = Ft(
3009
2998
  ne(),
3010
2999
  n,
3011
- tn(
3000
+ Kt(
3012
3001
  ne(),
3013
- on(ne(), i, n),
3014
- 1 - Math.exp(-$e * t)
3002
+ tn(ne(), i, n),
3003
+ 1 - Math.exp(-Se * t)
3015
3004
  )
3016
- ), n))(() => Kt(e())), Hi = (e) => fe(({ time: t, current: n, target: i }) => {
3017
- const r = Ue(z(n), z(i));
3018
- return r * F < Pe || r > 1e5 / F ? $t(n, i) : n = oe(
3005
+ ), n))(() => dt(e())), Zi = (e) => fe(({ time: t, current: n, target: i }) => {
3006
+ const r = Me(z(n), z(i));
3007
+ return r * Q < Ue || r > 1e5 / Q ? Vt(n, i) : n = oe(
3019
3008
  re(
3020
3009
  L(),
3021
3010
  z(n),
3022
3011
  de(
3023
3012
  L(),
3024
3013
  se(L(), z(i), z(n)),
3025
- 1 - Math.exp(-$e * t)
3014
+ 1 - Math.exp(-Se * t)
3026
3015
  )
3027
3016
  )
3028
3017
  ), n;
3029
- })(() => tt(e())), Gi = (e) => {
3018
+ })(() => ht(e())), Yi = (e) => {
3030
3019
  let t = [0, 0, 0], n = [0, 0, 0], i, r;
3031
3020
  return fe(({ time: o, current: c, target: a }) => {
3032
- if (a === c || o > 1 || Ue(z(a), z(c)) > 1e3 / F)
3021
+ if (a === c || o > 1 || Me(z(a), z(c)) > 1e3 / Q)
3033
3022
  return i = void 0, t = [0, 0, 0], n = [0, 0, 0], a;
3034
3023
  const f = performance.now();
3035
3024
  i ? a !== i && r !== void 0 && f - r > 1 && (n = de(
@@ -3065,18 +3054,24 @@ const V = 34, vi = 22, pi = xe(0, V).flatMap(
3065
3054
  )
3066
3055
  )
3067
3056
  ), t = l, c;
3068
- })(() => tt(e()));
3069
- }, Ri = (e) => fe(({ time: t, current: n, target: i }) => (n = gn(
3070
- Ce(
3071
- Ke(),
3072
- Le(n),
3073
- Le(i),
3074
- 2 * t
3075
- )
3076
- ), cn(Le(n), Le(i)) < Pe && (i = n), n))(() => tt(e())), Ai = 10, Fi = (e) => {
3077
- const t = Ri(() => e().orientation), n = gi(() => e().offset), i = Ti(() => e().fieldOfView);
3057
+ })(() => ht(e()));
3058
+ }, Ti = (e) => {
3059
+ const t = wi(() => pt(e()));
3060
+ return () => yn(t());
3061
+ }, wi = (e) => fe(({ time: t, current: n, target: i }) => {
3062
+ let r = rn(n, i);
3063
+ return isNaN(r) && (r = 0), n = Ie(
3064
+ He(),
3065
+ n,
3066
+ i,
3067
+ Se * Math.max(0.5, r) * t
3068
+ ), r < Ue && (n = i), n;
3069
+ })(() => on(e())), gi = 8, $i = (e) => {
3070
+ const t = Ti(() => e().orientation), n = yi(() => e().offset), i = _i(() => e().fieldOfView);
3078
3071
  return fe(({ time: s, current: o, target: c }) => {
3079
- const a = Ue(z(o.target), z(c.target)) * F, f = Math.max(c.distance, a), l = 1 - Math.exp(-Ai * s), h = Math.exp(
3072
+ let a = Me(z(o.target), z(c.target)) * Q;
3073
+ a < 1e3 && (a = 0);
3074
+ const f = Math.max(c.distance, a), l = 1 - Math.exp(-gi * s), h = Math.exp(
3080
3075
  Math.log(o.distance) + (Math.log(f) - Math.log(o.distance)) * l
3081
3076
  ), u = o.distance > a ? 1 : o.distance / a, d = oe(
3082
3077
  re(
@@ -3102,7 +3097,7 @@ const V = 34, vi = 22, pi = xe(0, V).flatMap(
3102
3097
  fieldOfView: i()
3103
3098
  };
3104
3099
  })(e);
3105
- }, Mi = (e) => {
3100
+ }, Ri = (e) => {
3106
3101
  const t = e.createTexture();
3107
3102
  e.bindTexture(e.TEXTURE_2D, t), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MIN_FILTER, e.NEAREST), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MAG_FILTER, e.NEAREST), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_S, e.CLAMP_TO_EDGE), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_T, e.CLAMP_TO_EDGE);
3108
3103
  const n = e.createRenderbuffer();
@@ -3144,14 +3139,14 @@ const V = 34, vi = 22, pi = xe(0, V).flatMap(
3144
3139
  resize: o,
3145
3140
  read: ([l = 0, h = 0]) => {
3146
3141
  r(), e.readPixels(l, s - h, 1, 1, e.RGBA, e.UNSIGNED_BYTE, c), e.bindFramebuffer(e.FRAMEBUFFER, null);
3147
- const [u = 0, d = 0, m = 0, _ = 0] = c, p = 2 * ((u * 256 + d) / (256 * 256 - 1)) - 1, A = m * 256 + _;
3148
- return [p, A];
3142
+ const [u = 0, d = 0, v = 0, _ = 0] = c, x = 2 * ((u * 256 + d) / (256 * 256 - 1)) - 1, A = v * 256 + _;
3143
+ return [x, A];
3149
3144
  },
3150
3145
  dispose: () => {
3151
3146
  e.deleteTexture(t), e.deleteFramebuffer(i), e.deleteRenderbuffer(n);
3152
3147
  }
3153
3148
  };
3154
- }, bi = (e, {
3149
+ }, Ai = (e, {
3155
3150
  view: t,
3156
3151
  screen: n,
3157
3152
  pick: i
@@ -3160,139 +3155,144 @@ const V = 34, vi = 22, pi = xe(0, V).flatMap(
3160
3155
  let s = !1, o, c;
3161
3156
  const a = () => {
3162
3157
  s = !0;
3163
- }, f = (m) => {
3164
- const { x: _, y: x, movementX: p, movementY: A } = m;
3158
+ }, f = (v) => {
3159
+ const { x: _, y: E, movementX: x, movementY: A } = v;
3165
3160
  if (o) {
3166
3161
  if (o.onDrag) {
3167
- const { point: y, position: E, layer: v } = i([_, x], { terrain: !0 });
3168
- o.onDrag({ point: y, position: E, layer: v });
3162
+ const { point: R, position: p, layer: m } = i([_, E], { terrain: !0 });
3163
+ o.onDrag({ point: R, position: p, layer: m });
3169
3164
  }
3170
3165
  if (o.onDragFlat) {
3171
- const E = te(t(), n()).unproject([_, x], { targetZ: c });
3172
- o.onDragFlat({ point: [_, x], position: E, layer: void 0 });
3166
+ const p = te(t(), n()).unproject([_, E], { targetZ: c });
3167
+ o.onDragFlat({ point: [_, E], position: p, layer: void 0 });
3173
3168
  }
3174
3169
  return;
3175
3170
  }
3176
- if (s && (Math.abs(p) > 1 || Math.abs(A) > 1)) {
3171
+ if (s && (Math.abs(x) > 1 || Math.abs(A) > 1)) {
3177
3172
  s = !1;
3178
- const { point: y, position: E, layer: v } = i([_, x]);
3179
- (v?.onDrag || v?.onDragFlat) && (o = v, o.onDragStart?.({ point: y, position: E, layer: v }), [, , c] = E);
3173
+ const { point: R, position: p, layer: m } = i([_, E]);
3174
+ (m?.onDrag || m?.onDragFlat) && (o = m, o.onDragStart?.({ point: R, position: p, layer: m }), [, , c] = p);
3180
3175
  }
3181
- }, l = (m) => {
3182
- if (s && h(m), s = !1, o) {
3183
- const { x: _, y: x } = m, { point: p, position: A, layer: y } = i([_, x]);
3184
- o.onDragEnd?.({ point: p, position: A, layer: y });
3176
+ }, l = (v) => {
3177
+ if (s && h(v), s = !1, o) {
3178
+ const { x: _, y: E } = v, { point: x, position: A, layer: R } = i([_, E]);
3179
+ o.onDragEnd?.({ point: x, position: A, layer: R });
3185
3180
  }
3186
3181
  o = void 0;
3187
- }, h = (m) => {
3188
- const { x: _, y: x, button: p } = m, { point: A, position: y, layer: E } = i([_, x]);
3189
- (p === 2 ? E?.onRightClick : E?.onClick)?.(
3190
- { point: A, position: y, layer: E },
3191
- m
3182
+ }, h = (v) => {
3183
+ const { x: _, y: E, button: x } = v, { point: A, position: R, layer: p } = i([_, E]);
3184
+ (x === 2 ? p?.onRightClick : p?.onClick)?.(
3185
+ { point: A, position: R, layer: p },
3186
+ v
3192
3187
  );
3193
- }, u = ({ x: m, y: _ }) => {
3194
- const { point: x, position: p, layer: A } = i([m, _]);
3195
- A?.onDoubleClick?.({ point: x, position: p, layer: A });
3188
+ }, u = ({ x: v, y: _ }) => {
3189
+ const { point: E, position: x, layer: A } = i([v, _]);
3190
+ A?.onDoubleClick?.({ point: E, position: x, layer: A });
3196
3191
  };
3197
3192
  return r?.addEventListener("mousedown", a), r?.addEventListener("mousemove", f), r?.addEventListener("dblclick", u), window.addEventListener("mouseup", l), { dispose: () => {
3198
3193
  r?.removeEventListener("mousedown", a), r?.removeEventListener("mousemove", f), r?.removeEventListener("dblclick", u), window.removeEventListener("mouseup", l);
3199
3194
  } };
3200
3195
  };
3201
- It(Array);
3202
- const Qi = ({ gl: e }, t) => {
3196
+ Nt(Array);
3197
+ const ki = ({ gl: e }, t) => {
3203
3198
  const { view: n, layers: i } = t;
3204
3199
  let r = !0, s = [0, 0];
3205
3200
  e.enable(e.CULL_FACE), e.cullFace(e.FRONT), e.depthFunc(e.LEQUAL);
3206
- const o = Mi(e), { canvas: c } = e, a = ([y = 0, E = 0]) => {
3207
- y = y || 1, E = E || 1, s = [y, E], c.width = y * devicePixelRatio, c.height = E * devicePixelRatio, o.resize([c.width, c.height]);
3201
+ const o = Ri(e), { canvas: c } = e, a = ([p = 0, m = 0]) => {
3202
+ p = p || 1, m = m || 1, s = [p, m], c.width = p * devicePixelRatio, c.height = m * devicePixelRatio, o.resize([c.width, c.height]);
3208
3203
  };
3209
3204
  a([c.width, c.height]);
3210
- const f = new ResizeObserver(([y]) => {
3211
- if (!y)
3205
+ const f = new ResizeObserver(([p]) => {
3206
+ if (!p)
3212
3207
  return;
3213
- const { contentRect: E } = y, { width: v, height: w } = E;
3214
- a([v, w]);
3208
+ const { contentRect: m } = p, { width: w, height: b } = m;
3209
+ a([w, b]);
3215
3210
  });
3216
3211
  c instanceof HTMLCanvasElement && f.observe(c);
3217
- const l = ([y = 0, E = 0]) => {
3218
- e.viewport(0, 0, y * devicePixelRatio, E * devicePixelRatio), e.clear(e.COLOR_BUFFER_BIT | e.DEPTH_BUFFER_BIT);
3212
+ const l = ([p = 0, m = 0]) => {
3213
+ e.viewport(0, 0, p * devicePixelRatio, m * devicePixelRatio), e.clear(e.COLOR_BUFFER_BIT | e.DEPTH_BUFFER_BIT);
3219
3214
  }, h = () => {
3220
- const y = te(n(), s);
3221
- l(s), je(i()).forEach((E) => E.render?.({ viewport: y }));
3222
- }, u = (y) => {
3223
- const E = te(n(), s);
3224
- l(s), (y ? [y] : je(i())).forEach(
3225
- (v, w) => v.render?.({ viewport: E, depth: !0, index: w + 1 })
3215
+ const p = te(n(), s);
3216
+ l(s), Ce(i()).forEach((m) => m.render?.({ viewport: p }));
3217
+ }, u = (p) => {
3218
+ const m = te(n(), s);
3219
+ l(s), (p ? [p] : Ce(i())).forEach(
3220
+ (w, b) => w.render?.({ viewport: m, depth: !0, index: b + 1 })
3226
3221
  );
3227
3222
  }, d = () => {
3228
3223
  r && (h(), requestAnimationFrame(d));
3229
3224
  };
3230
3225
  requestAnimationFrame(d);
3231
- const m = (y) => te(n(), s).project(y), _ = (y) => te(n(), s).unproject(y), x = (y, { terrain: E } = {}) => {
3232
- const { screenToClip: v, clipToLocal: w, localToWorld: M } = te(
3226
+ const v = (p) => te(n(), s).project(p), _ = (p) => te(n(), s).unproject(p), E = (p, { terrain: m } = {}) => {
3227
+ const { screenToClip: w, clipToLocal: b, localToWorld: y } = te(
3233
3228
  n(),
3234
3229
  s
3235
3230
  );
3236
3231
  o.use();
3237
- const [T] = E ? i() : [];
3238
- u(T);
3239
- const [R = 0, g = 0] = y, [b, S] = o.read([
3240
- R * devicePixelRatio,
3241
- g * devicePixelRatio
3242
- ]), [U = 0, P = 0] = v(y), D = oe(M(w([U, P, b, 1]))), O = S === 0 ? void 0 : T ?? je(i())[S - 1];
3243
- return { point: y, position: D, layer: O };
3244
- }, p = bi(e, {
3232
+ const [g] = m ? i() : [];
3233
+ u(g);
3234
+ const [T = 0, M = 0] = p, [S, U] = o.read([
3235
+ T * devicePixelRatio,
3236
+ M * devicePixelRatio
3237
+ ]), [P = 0, N = 0] = w(p), I = oe(y(b([P, N, S, 1]))), X = U === 0 ? void 0 : g ?? Ce(i())[U - 1];
3238
+ return { point: p, position: I, layer: X };
3239
+ }, x = Ai(e, {
3245
3240
  view: n,
3246
3241
  screen: () => s,
3247
- pick: x
3242
+ pick: E
3248
3243
  });
3249
3244
  return {
3250
- project: m,
3245
+ project: v,
3251
3246
  unproject: _,
3252
- pick: x,
3247
+ pick: E,
3248
+ elevation: (p) => {
3249
+ const [m] = i();
3250
+ return m.elevation(p);
3251
+ },
3253
3252
  dispose: () => {
3254
- r = !1, p.dispose(), o.dispose(), c instanceof HTMLCanvasElement && f.unobserve(c);
3253
+ r = !1, x.dispose(), o.dispose(), c instanceof HTMLCanvasElement && f.unobserve(c);
3255
3254
  }
3256
3255
  };
3257
- }, je = (e) => e.flatMap((t) => [...je(t.children ?? []), t]);
3256
+ }, Ce = (e) => e.flatMap((t) => [...Ce(t.children ?? []), t]);
3258
3257
  export {
3259
3258
  ce as cache,
3260
- $i as cacheAll,
3261
- F as circumference,
3262
- Li as createBillboardLayer,
3263
- Ni as createContainer,
3264
- Pi as createContext,
3265
- Ii as createDynamicContainer,
3266
- Oi as createEmptyLayer,
3267
- Ci as createLineLayer,
3268
- ci as createMemoryTexture,
3269
- zi as createMouseControl,
3259
+ Bi as cacheAll,
3260
+ Q as circumference,
3261
+ Si as createBillboardLayer,
3262
+ Ui as createContainer,
3263
+ bi as createContext,
3264
+ Pi as createDynamicContainer,
3265
+ Li as createEmptyLayer,
3266
+ Ni as createLineLayer,
3267
+ si as createMemoryTexture,
3268
+ Mi as createMouseControl,
3270
3269
  ye as createMouseEvents,
3271
- Ti as createNumberTransition,
3272
- Xi as createObjectLayer,
3273
- Ri as createOrientationTransition,
3274
- Wi as createPolygonLayer,
3275
- Hi as createPositionTransition,
3276
- Gi as createPositionVelocityTransition,
3277
- ji as createRadarLayer,
3278
- Di as createRenderLayer,
3279
- Zi as createTerrainLayer,
3270
+ _i as createNumberTransition,
3271
+ Ii as createObjectLayer,
3272
+ Ti as createOrientationTransition,
3273
+ Di as createPolygonLayer,
3274
+ Zi as createPositionTransition,
3275
+ Yi as createPositionVelocityTransition,
3276
+ wi as createQuaternionTransition,
3277
+ Oi as createRadarLayer,
3278
+ zi as createRenderLayer,
3279
+ Wi as createTerrainLayer,
3280
3280
  fe as createTransition,
3281
- gi as createVec2Transition,
3282
- ki as createVec4Transition,
3283
- Fi as createViewTransition,
3284
- Qi as createWorld,
3285
- Pt as debounce,
3286
- Yi as defaultLayerOptions,
3287
- Et as defaultView,
3288
- yn as degrees,
3281
+ yi as createVec2Transition,
3282
+ Vi as createVec4Transition,
3283
+ $i as createViewTransition,
3284
+ ki as createWorld,
3285
+ Ut as debounce,
3286
+ ji as defaultLayerOptions,
3287
+ xt as defaultView,
3288
+ xn as degrees,
3289
3289
  oe as geodetic,
3290
3290
  z as mercator,
3291
- wn as quadratic,
3292
- Xe as radians,
3291
+ En as quadratic,
3292
+ De as radians,
3293
3293
  xe as range,
3294
- xt as tileToMercator,
3295
- gn as toOrientation,
3296
- Le as toQuaternion
3294
+ vt as tileToMercator,
3295
+ yn as toOrientation,
3296
+ pt as toQuaternion
3297
3297
  };
3298
3298
  //# sourceMappingURL=index.js.map