world.ts 0.4.6 → 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,72 +11,72 @@ 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 = (w, T) => {
26
- if (c[w])
27
- return c[w];
28
- const g = e.getUniformLocation(i, w);
29
- let b;
30
- const U = (S) => {
31
- g && S !== b && (T(g, S), b = S);
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
+ const S = (U) => {
31
+ T && U !== M && (g(T, U), M = U);
32
32
  };
33
- return c[w] = { set: U }, { set: U };
34
- }, f = (w) => a(w, (T, g) => e.uniform1f(T, g)), l = (w) => a(w, (T, g) => e.uniform1i(T, g)), h = (w) => a(
35
- w,
36
- (T, [g = 0, b = 0]) => e.uniform2f(T, g, b)
37
- ), u = (w) => a(
38
- w,
39
- (T, [g = 0, b = 0]) => e.uniform2i(T, g, b)
40
- ), d = (w) => a(
41
- w,
42
- (T, [g = 0, b = 0, U = 0]) => e.uniform3f(T, g, b, U)
43
- ), v = (w) => a(
44
- w,
45
- (T, [g = 0, b = 0, U = 0]) => e.uniform3i(T, g, b, U)
46
- ), _ = (w) => a(
47
- w,
48
- (T, [g = 0, b = 0, U = 0, S = 0]) => e.uniform4f(T, g, b, U, S)
49
- ), E = (w) => a(
50
- w,
51
- (T, [g = 0, b = 0, U = 0, S = 0]) => e.uniform4i(T, g, b, U, S)
52
- ), x = (w) => a(
53
- w,
54
- (T, g) => e.uniformMatrix4fv(T, !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: w,
57
- buffer: T,
58
- size: g,
59
- type: b,
60
- stride: U,
61
- offset: S
56
+ name: y,
57
+ buffer: g,
58
+ size: T,
59
+ type: M,
60
+ stride: S,
61
+ offset: U
62
62
  }) => {
63
- const P = e.getAttribLocation(i, w);
63
+ const P = e.getAttribLocation(i, y);
64
64
  if (P === -1)
65
- throw new Error(`Missing attribute: ${w}`);
65
+ throw new Error(`Missing attribute: ${y}`);
66
66
  return { use: () => {
67
- T.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,
71
- U || 0,
72
- S || 0
69
+ T,
70
+ M === "u16" ? e.UNSIGNED_SHORT : e.INT,
71
+ S || 0,
72
+ U || 0
73
73
  ) : e.vertexAttribPointer(
74
74
  P,
75
- g,
75
+ T,
76
76
  e.FLOAT,
77
77
  !1,
78
- U || 0,
79
- S || 0
78
+ S || 0,
79
+ U || 0
80
80
  );
81
81
  } };
82
82
  };
@@ -91,21 +91,21 @@ const Pt = (e, t) => {
91
91
  uniform4f: _,
92
92
  uniform4i: E,
93
93
  uniformMatrix4f: x,
94
- attribute1f: (w, T, g = {}) => A({ name: w, buffer: T, size: 1, type: "f32", ...g }),
95
- attribute2f: (w, T, g = {}) => A({ name: w, buffer: T, size: 2, type: "f32", ...g }),
96
- attribute3f: (w, T, g = {}) => A({ name: w, buffer: T, size: 3, type: "f32", ...g }),
97
- attribute3i: (w, T, g = {}) => A({ name: w, buffer: T, size: 3, type: "i32", ...g }),
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], v = t[12], _ = t[13], E = t[14], x = t[15], A = n * c - i * o, M = n * a - r * o, p = n * f - s * o, m = i * a - r * c, y = i * f - s * c, R = r * f - s * a, w = l * _ - h * v, T = l * E - u * v, g = l * x - d * v, b = h * E - u * _, U = h * x - d * _, S = u * x - d * E, P = A * S - M * U + p * b + m * g - y * T + R * w;
152
- return P ? (P = 1 / P, e[0] = (c * S - a * U + f * b) * P, e[1] = (r * U - i * S - s * b) * P, e[2] = (_ * R - E * y + x * m) * P, e[3] = (u * y - h * R - d * m) * P, e[4] = (a * g - o * S - f * T) * P, e[5] = (n * S - r * g + s * T) * P, e[6] = (E * p - v * R - x * M) * P, e[7] = (l * R - u * p + d * M) * P, e[8] = (o * U - c * g + f * w) * P, e[9] = (i * g - n * U - s * w) * P, e[10] = (v * y - _ * p + x * A) * P, e[11] = (h * p - l * y - d * A) * P, e[12] = (c * T - o * b - a * w) * P, e[13] = (n * b - i * T + r * w) * P, e[14] = (_ * M - v * m - E * A) * P, e[15] = (l * m - h * M + 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], v = t[11], _ = t[12], E = t[13], x = t[14], A = t[15], M = n[0], p = n[1], m = n[2], y = n[3];
156
- return e[0] = M * i + p * c + m * h + y * _, e[1] = M * r + p * a + m * u + y * E, e[2] = M * s + p * f + m * d + y * x, e[3] = M * o + p * l + m * v + y * A, M = n[4], p = n[5], m = n[6], y = n[7], e[4] = M * i + p * c + m * h + y * _, e[5] = M * r + p * a + m * u + y * E, e[6] = M * s + p * f + m * d + y * x, e[7] = M * o + p * l + m * v + y * A, M = n[8], p = n[9], m = n[10], y = n[11], e[8] = M * i + p * c + m * h + y * _, e[9] = M * r + p * a + m * u + y * E, e[10] = M * s + p * f + m * d + y * x, e[11] = M * o + p * l + m * v + y * A, M = n[12], p = n[13], m = n[14], y = n[15], e[12] = M * i + p * c + m * h + y * _, e[13] = M * r + p * a + m * u + y * E, e[14] = M * s + p * f + m * d + y * x, e[15] = M * o + p * l + m * v + y * 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;
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) {
162
+ function Ke(e, t) {
175
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;
176
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;
177
165
  }
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) {
292
+ function Ie(e, t, n, i) {
305
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;
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), 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;
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, v = Math.tan(Xe(45) / 2) / Math.tan(Xe(o) / 2), _ = r / F, E = Math.max(1e3 / F, _), x = 1e3, A = 1e-3, M = E * x * v, p = E * A * v, m = ne(), y = he();
414
- at(y), Zt(y, Xe(o), c / a, p, M), Xt(y, y, [1, -1, 1]);
415
- const R = he();
416
- at(R), Wt(R, R, h), jt(R, R, u), Bt(R, R, d);
417
- const w = Ct(he(), y, R), T = Ot(he(), w);
418
- if (!T)
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 = (X) => {
421
- const Y = [c * X, a * X], H = [f * X, l * X];
422
- return te({ ...e, offset: H }, Y);
423
- }, b = ([X = 0, Y = 0], H = ne()) => {
424
- const K = 2 * X / c - 1, ge = -(2 * Y / a - 1);
425
- return ft(H, K, ge, 0, 1);
426
- }, U = ([X = 0, Y = 0, , H = 0], K = pe()) => H < 0 ? K : dn(K, (1 + X / H) * c * 0.5, (1 - Y / H) * a * 0.5), S = (X, Y = L()) => {
427
- const [H = 0, K = 0, ge = 0, Re = 0] = lt(m, X, T);
428
- return Se(Y, H / Re, K / Re, ge / Re);
429
- }, P = ([X = 0, Y = 0, H = 0], K = ne()) => lt(K, ft(K, X, Y, H, 1), w), [D = 0, O = 0] = b([f + c / 2, l + a / 2]), [C = 0, I = 0, W = 0] = S([D, O, -1, 1]), [B = 0, $ = 0, J = 0] = S([D, O, 1.00001, 1]), [k = 0] = wn(
430
- (B - C) ** 2 + ($ - I) ** 2 + (J - W) ** 2,
431
- 2 * (C * (B - C) + I * ($ - I) + W * (J - W)),
432
- C ** 2 + I ** 2 + W ** 2 - (_ * v) ** 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
- C + k * (B - C),
438
- I + k * ($ - I),
439
- W + k * (J - W)
440
- ], we = se(L(), z(n), Q), Te = (X, Y = L()) => re(Y, X, we), ze = (X, Y = L()) => se(Y, X, 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: y,
445
- modelView: R,
446
- fieldScale: v,
447
- scale: g,
448
- screenToClip: b,
449
- clipToScreen: U,
450
- clipToLocal: S,
451
- localToClip: P,
452
- localToWorld: Te,
453
- worldToLocal: ze,
454
- project: (X) => U(P(ze(z(X)))),
455
- unproject: (X, { targetZ: Y = 0 } = {}) => {
456
- const H = b(X), [K = 0, ge = 0, , Re = 0] = H, St = [K, ge, -1, Re], it = oe(Te(S(H))), rt = oe(Te(S(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 = ([m = 0, y = 0]) => {
469
- const [R, w] = [
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: T, fieldScale: g } = te(f(), [R, w]), { position: b, layer: U } = t.pick([m, y]);
473
- if (!U)
460
+ ], { camera: g, fieldScale: T } = te(f(), [b, y]), { position: M, layer: S } = t.pick([m, w]);
461
+ if (!S)
474
462
  return;
475
- const S = Ue(z(b), T) * F / g, P = [m - R / 2, y - w / 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,
479
- distance: S
466
+ target: M,
467
+ distance: U
480
468
  });
481
- }, h = (m, y) => {
469
+ }, h = (m, w) => {
482
470
  if (!r())
483
471
  return;
484
- a || (l([m, y]), a = !0);
485
- const [R, w] = [
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: [m - R / 2, y - w / 2]
478
+ offset: [m - b / 2, w - y / 2]
491
479
  });
492
- }, u = (m, y, R, w) => {
480
+ }, u = (m, w, b, y) => {
493
481
  if (!s())
494
482
  return;
495
- r() && !a && (l([m, y]), a = !0);
496
- const [T, 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, U = 0, S = 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 - w / g * Math.PI)
490
+ Math.max(0.1, M - y / T * Math.PI)
503
491
  ),
504
- U,
505
- S - R / T * Math.PI
492
+ S,
493
+ U - b / g * Math.PI
506
494
  ];
507
495
  o({
508
496
  orientation: P
509
497
  });
510
498
  }, d = (m) => {
511
499
  m.preventDefault(), a = !1;
512
- }, v = ({ buttons: m, movementX: y, movementY: R, x: w, y: T }) => {
513
- !i() || !m || (m === 1 && r() ? h(w, T) : m === 2 && s() && u(w, T, y, R));
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));
514
502
  }, _ = (m) => {
515
503
  m.preventDefault();
516
- const y = m.touches.item(0);
517
- if (!y)
504
+ const w = m.touches.item(0);
505
+ if (!w)
518
506
  return;
519
- const { clientX: R, clientY: w } = y;
520
- h(R, w);
521
- }, E = Pt(() => c = !1, 100), x = ({ x: m, y, deltaY: R }) => {
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([m, y]), c = !0);
525
- let { distance: w } = { ...Et, ...f() };
526
- w = Math.min(
527
- Math.max(w * Math.exp(R * 1e-3), Rn),
528
- F
529
- ), o({ distance: w }), E();
530
- }, A = (m) => m.preventDefault(), M = (m) => m.preventDefault();
531
- 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", M), {
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", v), e.removeEventListener("touchstart", d), e.removeEventListener("touchmove", _), e.removeEventListener("gesturestart", A), e.removeEventListener("wheel", x), e.removeEventListener("contextmenu", M);
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" });
@@ -752,7 +740,7 @@ const Li = (e, t = {}) => {
752
740
  const a = ce(
753
741
  () => t.url?.() ?? "",
754
742
  (v) => {
755
- const _ = wt({
743
+ const _ = yt({
756
744
  gl: n,
757
745
  url: v,
758
746
  onLoad: ({ width: E, height: x }) => {
@@ -760,16 +748,16 @@ const Li = (e, t = {}) => {
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
756
  viewport: { projection: v, modelView: _, camera: E, screen: x },
769
757
  depth: A = !1,
770
- index: M = 0
758
+ index: R = 0
771
759
  }) => {
772
- const p = t.position?.() ?? [0, 0, 0], m = t.color?.() ?? [1, 1, 1, 1], y = t.size?.() ?? 100, R = t.minSizePixels?.() ?? 0, w = 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({
@@ -781,10 +769,10 @@ const Li = (e, t = {}) => {
781
769
  imageSize: r,
782
770
  position: q(z(p)),
783
771
  color: m,
784
- size: y,
785
- minSizePixels: R,
786
- maxSizePixels: w,
787
- index: M
772
+ size: w,
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"), v = f.uniform3i("camera"), _ = f.uniform2f("screen"), E = f.uniform1i("image"), x = f.uniform2f("image_size"), A = f.uniform3i("position"), M = f.uniform4f("color"), p = f.uniform1i("index"), m = f.uniform1f("size"), y = f.uniform1f("min_size_pixels"), R = 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: T,
813
- modelView: g,
814
- camera: b,
815
- screen: U,
816
- image: S,
800
+ projection: g,
801
+ modelView: T,
802
+ camera: M,
803
+ screen: S,
804
+ image: U,
817
805
  imageSize: P,
818
- position: D,
819
- color: O,
820
- size: C,
821
- minSizePixels: I,
822
- maxSizePixels: W,
823
- index: B
806
+ position: N,
807
+ color: I,
808
+ size: X,
809
+ minSizePixels: C,
810
+ maxSizePixels: B,
811
+ index: W
824
812
  }) => {
825
- f.use(), l.use(), h.use(), u.set(T), d.set(g), v.set(b), _.set(U), x.set(P), A.set(D), M.set(O), m.set(C), y.set(I), R.set(W), p.set(B), e.activeTexture(e.TEXTURE0), E.set(0), S.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,80 +923,80 @@ 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: E, modelView: x, camera: A, screen: M },
937
+ viewport: { projection: E, modelView: x, camera: A, screen: R },
950
938
  depth: p = !1,
951
939
  index: m = 0
952
940
  }) => {
953
941
  u(), d();
954
- const y = t.color?.() ?? [1, 1, 1, 1], R = t.width?.() ?? 1, w = t.minWidthPixels?.() ?? 0, T = t.maxWidthPixels?.() ?? Number.MAX_VALUE, g = t.depthWidthPixels?.(), b = t.dashSize?.() ?? 1e3, U = t.dashOffset?.() ?? 0;
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;
955
943
  if (Ee(n, p, t))
956
944
  return;
957
945
  (p ? f : a).execute({
958
946
  projection: E,
959
947
  modelView: x,
960
948
  camera: q(A),
961
- screen: M,
949
+ screen: R,
962
950
  count: i,
963
- color: y,
964
- width: R,
965
- minWidthPixels: p && g !== void 0 ? Math.max(w, g) : w,
966
- maxWidthPixels: p && g !== void 0 ? Math.max(T, g) : T,
951
+ color: w,
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,
967
955
  index: m,
968
956
  dash: l,
969
- dashSize: b,
970
- dashOffset: U
957
+ dashSize: M,
958
+ dashOffset: S
971
959
  });
972
960
  }, u = ce(
973
961
  () => t.points?.() ?? [],
974
962
  (E) => {
975
963
  const x = E.flatMap((m) => {
976
- const [y] = m, [R] = m.slice(-1);
977
- return !y || !R ? [] : ((T) => {
978
- const g = new Array(T.length * 3 * 4);
979
- for (let b = 0; b < T.length; b++) {
980
- const [U = 0, S = 0, P = 0] = T[b] ?? [];
981
- for (let D = 0; D < 4; D++) {
982
- const O = b * 3 * 4 + D * 3;
983
- g[O + 0] = U, g[O + 1] = S, g[O + 2] = P;
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
- })([y, ...m, R].map((T) => q(z(T))));
974
+ return T;
975
+ })([w, ...m, b].map((g) => q(z(g))));
988
976
  }), { indexData: A } = E.reduce(
989
- ({ indexData: m, count: y }, R) => {
990
- if (R.length === 0)
991
- return { indexData: m, count: y };
992
- const w = xe(0, (R.length - 1) * 2).flatMap((T) => {
993
- const [g = 0, b = 0, U = 0, S = 0] = [0, 1, 2, 3].map(
994
- (P) => P + T * 2 + y
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,
999
- S,
985
+ T,
986
+ M,
987
+ U,
1000
988
  /**/
1001
- g,
1002
- S,
1003
- U
989
+ T,
990
+ U,
991
+ S
1004
992
  ];
1005
993
  });
1006
- return y += (R.length + 2) * 4, m = m.concat(w), { indexData: m, count: y };
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 M = E.flatMap(
999
+ const R = E.flatMap(
1012
1000
  (m) => m.length === 0 ? [] : xe(0, (m.length + 1) * 2).flatMap(() => [
1013
1001
  -1,
1014
1002
  -1,
@@ -1023,20 +1011,20 @@ const Ci = (e, t = {}) => {
1023
1011
  1
1024
1012
  ])
1025
1013
  ), p = E.flatMap((m) => {
1026
- const R = m.map(
1027
- (b, U) => Ue(z(b), z(m[U - 1] ?? b)) * F
1014
+ const b = m.map(
1015
+ (M, S) => Me(z(M), z(m[S - 1] ?? M)) * Q
1028
1016
  ).reduce(
1029
- ({ current: b, result: U }, S) => (b += S, U.push(b), { current: b, result: U }),
1017
+ ({ current: M, result: S }, U) => (M += U, S.push(M), { current: M, result: S }),
1030
1018
  { current: 0, result: [] }
1031
- ).result, [w] = R, [T] = R.slice(-1);
1032
- return w === void 0 || T === void 0 ? [] : ((b) => {
1033
- const U = new Array(b.length * 4);
1034
- for (let S = 0; S < b.length; S++)
1035
- U[S * 4 + 0] = b[S], U[S * 4 + 1] = b[S], U[S * 4 + 2] = b[S], U[S * 4 + 3] = b[S];
1036
- return U;
1037
- })([w, ...R, T]);
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];
1024
+ return S;
1025
+ })([y, ...b, g]);
1038
1026
  });
1039
- r.set(x), s.set(A), o.set(M), c.set(p);
1027
+ r.set(x), s.set(A), o.set(R), c.set(p);
1040
1028
  }
1041
1029
  ), d = ce(
1042
1030
  () => t.dashPattern?.(),
@@ -1061,7 +1049,7 @@ const Ci = (e, t = {}) => {
1061
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,8 +1057,8 @@ 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
1064
  }), v = l.attribute3i("current", n, {
@@ -1084,28 +1072,28 @@ const Ci = (e, t = {}) => {
1084
1072
  }), x = l.attribute1f("distance", s, {
1085
1073
  stride: h,
1086
1074
  offset: h * 1 * 4
1087
- }), A = l.uniformMatrix4f("projection"), M = l.uniformMatrix4f("model_view"), p = l.uniform3i("camera"), m = l.uniform2f("screen"), y = l.uniform4f("color"), R = l.uniform1f("width"), w = l.uniform1f("max_width_pixels"), T = l.uniform1f("min_width_pixels"), g = l.uniform1i("index"), b = l.uniform1i("dash"), U = l.uniform1f("dash_size"), S = 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,
1091
- camera: C,
1092
- screen: I,
1093
- count: W,
1094
- color: B,
1095
- width: $,
1077
+ projection: N,
1078
+ modelView: I,
1079
+ camera: X,
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(), v.use(), _.use(), E.use(), x.use(), A.set(D), M.set(O), p.set(C), m.set(I), y.set(B), R.set($), T.set(J), w.set(k), g.set(Q), U.set(Te), S.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,10 +1143,10 @@ 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
@@ -1167,7 +1155,7 @@ const Xi = (e, t = {}) => {
1167
1155
  depth: x = !1,
1168
1156
  index: A = 0
1169
1157
  }) => {
1170
- const M = t.position?.() ?? [0, 0, 0], p = t.orientation?.() ?? [0, 0, 0, 1], m = t.color?.() ?? [1, 1, 1, 1], y = t.diffuse?.() ?? [0, 0, 0, 0], R = t.size?.() ?? 1, w = t.minSizePixels?.() ?? 0, T = t.maxSizePixels?.() ?? Number.MAX_VALUE;
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;
1171
1159
  if (l(), Ee(n, x, t))
1172
1160
  return;
1173
1161
  (x ? a : c).execute({
@@ -1176,13 +1164,13 @@ const Xi = (e, t = {}) => {
1176
1164
  camera: q(_),
1177
1165
  screen: E,
1178
1166
  count: i,
1179
- position: q(z(M)),
1180
- orientation: vt(he(), p),
1167
+ position: q(z(R)),
1168
+ orientation: Ke(he(), p),
1181
1169
  color: m,
1182
- diffuse: y,
1183
- size: R,
1184
- minSizePixels: w,
1185
- maxSizePixels: T,
1170
+ diffuse: w,
1171
+ size: b,
1172
+ minSizePixels: y,
1173
+ maxSizePixels: g,
1186
1174
  index: A
1187
1175
  });
1188
1176
  }, l = ce(
@@ -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"), v = f.uniform3i("camera"), _ = f.uniform3i("position"), E = f.uniformMatrix4f("orientation"), x = f.uniform2f("screen"), A = f.uniform4f("color"), M = f.uniform4f("diffuse"), p = f.uniform1f("size"), m = f.uniform1f("min_size_pixels"), y = f.uniform1f("max_size_pixels"), R = 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: T,
1216
- modelView: g,
1217
- camera: b,
1218
- screen: U,
1219
- count: S,
1203
+ projection: g,
1204
+ modelView: T,
1205
+ camera: M,
1206
+ screen: S,
1207
+ count: U,
1220
1208
  position: P,
1221
- orientation: D,
1222
- color: O,
1223
- diffuse: C,
1224
- size: I,
1225
- minSizePixels: W,
1226
- maxSizePixels: B,
1227
- index: $
1209
+ orientation: N,
1210
+ color: I,
1211
+ diffuse: X,
1212
+ size: C,
1213
+ minSizePixels: B,
1214
+ maxSizePixels: W,
1215
+ index: H
1228
1216
  }) => {
1229
- f.use(), l.use(), h.use(), u.set(T), d.set(g), v.set(b), x.set(U), _.set(P), E.set(D), A.set(O), M.set(C), p.set(I), m.set(W), y.set(B), R.set($), i.use(), e.drawElements(e.TRIANGLES, S, 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);
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);
1286
1274
  let { prevZ: d, nextZ: v } = e;
1287
1275
  for (; d !== null && v !== null && d.z >= h && v.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, v !== e.prev && v !== e.next && me(r.x, r.y, s.x, s.y, o.x, o.y, v.x, v.y) && N(v.prev, v, v.next) >= 0))
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
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
1285
  for (; v !== null && v.z <= u; ) {
1298
- if (v !== e.prev && v !== e.next && me(r.x, r.y, s.x, s.y, o.x, o.y, v.x, v.y) && N(v.prev, v, v.next) >= 0)
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
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
1453
  for (let v = n; v < r; v += n)
1466
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,10 +1579,10 @@ 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 = ({
@@ -1617,7 +1605,7 @@ const Wi = (e, t = {}) => {
1617
1605
  }, f = ce(
1618
1606
  () => t.points?.() ?? [],
1619
1607
  (u) => {
1620
- const { vertices: d, indices: v } = u.length > 0 ? qn(u.map((_) => _.map((E) => [...q(z(E))]))) : { vertices: [], indices: [] };
1608
+ const { vertices: d, indices: v } = u.length > 0 ? Fn(u.map((_) => _.map((E) => [...q(z(E))]))) : { vertices: [], indices: [] };
1621
1609
  r.set(d), s.set(v), i = v.length;
1622
1610
  }
1623
1611
  ), l = () => {
@@ -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
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
1631
  projection: x,
1644
1632
  modelView: A,
1645
- camera: M,
1633
+ camera: R,
1646
1634
  screen: p,
1647
1635
  count: m,
1648
- color: y,
1649
- index: R
1636
+ color: w,
1637
+ index: b
1650
1638
  }) => {
1651
- m !== 0 && (a.use(), f.use(), l.set(x), h.set(A), u.set(M), d.set(p), v.set(y), _.set(R), i.use(), e.drawElements(e.TRIANGLES, m, 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,7 +1703,7 @@ 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 = ({
@@ -1723,7 +1711,7 @@ const ji = (e, t = {}) => {
1723
1711
  depth: E = !1,
1724
1712
  index: x = 0
1725
1713
  }) => {
1726
- const A = t.position?.() ?? [0, 0, 0], M = t.orientation?.() ?? [0, 0, 0, 1], p = t.range?.() ?? 1e3;
1714
+ const A = t.position?.() ?? [0, 0, 0], R = t.orientation?.() ?? [0, 0, 0, 1], p = t.range?.() ?? 1e3;
1727
1715
  if (o(), Ee(n, E, t))
1728
1716
  return;
1729
1717
  (E ? a : c).execute({
@@ -1734,7 +1722,7 @@ const ji = (e, t = {}) => {
1734
1722
  image: i,
1735
1723
  range: p,
1736
1724
  position: q(z(A)),
1737
- orientation: vt(he(), M),
1725
+ orientation: Ke(he(), R),
1738
1726
  index: x
1739
1727
  });
1740
1728
  }, l = () => {
@@ -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
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
1748
  projection: p,
1761
1749
  modelView: m,
1762
- camera: y,
1763
- screen: R,
1764
- image: w,
1765
- range: T,
1766
- position: g,
1767
- orientation: b,
1768
- index: U
1750
+ camera: w,
1751
+ screen: b,
1752
+ image: y,
1753
+ range: g,
1754
+ position: T,
1755
+ orientation: M,
1756
+ index: S
1769
1757
  }) => {
1770
- a.use(), f.use(), l.set(p), h.set(m), u.set(y), d.set(R), _.set(T), E.set(g), x.set(b), A.set(U), e.activeTexture(e.TEXTURE0), v.set(0), w.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,11 +2013,11 @@ 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: v = 0, sizeCalculation: _, fetchMethod: E, noDeleteOnFetchRejection: x, noDeleteOnStaleGet: A, allowStaleOnFetchRejection: M, allowStaleOnFetchAbort: p, ignoreFetchAbort: m } = 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
- const y = n ? bt(n) : Array;
2032
- if (!y)
2019
+ const w = n ? bt(n) : Array;
2020
+ if (!w)
2033
2021
  throw new Error("invalid max value: " + n);
2034
2022
  if (this.#c = n, this.#u = d, this.maxEntrySize = v || this.#u, this.sizeCalculation = _, this.sizeCalculation) {
2035
2023
  if (!this.#u && !this.maxEntrySize)
@@ -2039,7 +2027,7 @@ class nt {
2039
2027
  }
2040
2028
  if (E !== void 0 && typeof E != "function")
2041
2029
  throw new TypeError("fetchMethod must be a function if specified");
2042
- 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 y(n), this.#h = new y(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 = !!x, this.allowStaleOnFetchRejection = !!M, this.allowStaleOnFetchAbort = !!p, this.ignoreFetchAbort = !!m, 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 R = "LRU_CACHE_UNBOUNDED";
2058
- fi(R) && (At.add(R), Mt("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.", "UnboundedCacheWarning", R, 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
  });
@@ -2458,11 +2446,11 @@ class nt {
2458
2446
  const { aborted: x } = o.signal, A = i.ignoreFetchAbort && _ !== void 0;
2459
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 M = d;
2462
- return this.#e[n] === d && (_ === void 0 ? M.__staleWhileFetching ? this.#e[n] = M.__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: E } = o.signal, x = E && i.allowStaleOnFetchAbort, A = x || i.allowStaleOnFetchRejection, M = A || i.noDeleteOnFetchRejection, p = d;
2465
- if (this.#e[n] === d && (!M || p.__staleWhileFetching === void 0 ? this.delete(t) : x || (this.#e[n] = p.__staleWhileFetching)), A)
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)
2466
2454
  return i.status && p.__staleWhileFetching !== void 0 && (i.status.returnedStale = !0), p.__staleWhileFetching;
2467
2455
  if (p.__returned === p)
2468
2456
  throw _;
@@ -2484,7 +2472,7 @@ class nt {
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 {
@@ -2515,7 +2503,7 @@ class nt {
2515
2503
  noDeleteOnStaleGet: s,
2516
2504
  status: x
2517
2505
  });
2518
- const M = {
2506
+ const R = {
2519
2507
  allowStale: i,
2520
2508
  updateAgeOnGet: r,
2521
2509
  noDeleteOnStaleGet: s,
@@ -2534,19 +2522,19 @@ class nt {
2534
2522
  let p = this.#i.get(t);
2535
2523
  if (p === void 0) {
2536
2524
  x && (x.fetch = "miss");
2537
- const m = this.#L(t, p, M, _);
2525
+ const m = this.#L(t, p, R, _);
2538
2526
  return m.__returned = m;
2539
2527
  } else {
2540
2528
  const m = this.#e[p];
2541
2529
  if (this.#t(m)) {
2542
- const g = i && m.__staleWhileFetching !== void 0;
2543
- return x && (x.fetch = "inflight", g && (x.returnedStale = !0)), g ? m.__staleWhileFetching : m.__returned = 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 y = this.#m(p);
2546
- if (!E && !y)
2547
- return x && (x.fetch = "hit"), this.#S(p), r && this.#M(p), x && this.#R(x, p), m;
2548
- const R = this.#L(t, p, M, _), T = R.__staleWhileFetching !== void 0 && i;
2549
- return x && (x.fetch = y ? "stale" : "refresh", T && y && (x.returnedStale = !0)), T ? R.__staleWhileFetching : R.__returned = R;
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,13 +2631,13 @@ 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]) => {
@@ -2662,21 +2650,21 @@ const Ze = (e) => {
2662
2650
  const x = new Uint8Array(4 * ie * ie);
2663
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, v = 0] = u.map((g) => Math.floor(g % h));
2667
- let [_ = 0, E = 0] = u.map((g) => g % 1);
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);
2668
2656
  const x = s([d, v, l]);
2669
2657
  if (!x)
2670
2658
  return 0;
2671
- const { buffer: A, downsample: M } = x, p = 2 ** M;
2659
+ const { buffer: A, downsample: R } = x, p = 2 ** R;
2672
2660
  [_, E] = [(d % p + _) / p, (v % p + E) / p];
2673
- const m = 4 * ie * Math.floor(E * ie) + 4 * Math.floor(_ * ie), [y = 0, R = 0, w = 0] = A.slice(m, m + 4);
2674
- return (y * 65536 + R * 256 + w) / 10 - 1e4;
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,16 +2701,16 @@ 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, E = 0, x = 0] = a, A = 2 ** x - E - 1, [[M, p] = [], [m, y] = []] = [
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(([R = 0, w = 0]) => [_ + R, A + w, x]).map((R) => xt(R, R)).map(([R = 0, w = 0]) => [
2720
- (R - 0.5) * 2 * Math.PI * 6378137,
2721
- (w - 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}", [M, p, m, y].join(","));
2711
+ d = d.replace("{bbox}", [R, p, m, w].join(","));
2724
2712
  }
2725
- const v = wt({
2713
+ const v = yt({
2726
2714
  gl: e,
2727
2715
  url: d,
2728
2716
  onLoad: () => {
@@ -2735,8 +2723,8 @@ const mt = ({
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
- (T) => {
2821
- i?.dispose(), i = mt({
2808
+ (g) => {
2809
+ i?.dispose(), i = ut({
2822
2810
  gl: n,
2823
- urlPattern: T,
2811
+ urlPattern: g,
2824
2812
  onLoad: () => {
2825
2813
  s && o && n.texParameterf(
2826
2814
  n.TEXTURE_2D,
@@ -2832,98 +2820,98 @@ 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(([T = 0, g = 0, b = 0]) => [T, g, b]));
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]));
2845
2833
  const v = Z({ gl: n, type: "u16", target: "element" });
2846
- v.set(pi);
2847
- const { renderProgram: _, depthProgram: E } = Ei(e, {
2834
+ v.set(di);
2835
+ const { renderProgram: _, depthProgram: E } = vi(e, {
2848
2836
  uvwBuffer: d,
2849
2837
  indexBuffer: v
2850
- }), x = [0, 1, 2, 3], A = x.map(L), M = x.map(ne), p = x.map(pe), m = (T) => {
2851
- const { camera: g, worldToLocal: b, localToClip: U, clipToScreen: S } = T, P = (D) => {
2852
- const [O = 0, C = 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) => U(k, M[Q]));
2856
- if (yi($))
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) => S(k, p[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 * C, I + 1],
2862
- [2 * O + 1, 2 * C, I + 1],
2863
- [2 * O, 2 * C + 1, I + 1],
2864
- [2 * O + 1, 2 * C + 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
- }, y = ({
2869
- viewport: T,
2870
- depth: g = !1,
2871
- index: b = 0
2856
+ }, w = ({
2857
+ viewport: g,
2858
+ depth: T = !1,
2859
+ index: M = 0
2872
2860
  }) => {
2873
- const U = t.color?.() ?? [1, 1, 1, 1];
2874
- if (c(), Ee(n, g, t))
2861
+ const S = t.color?.() ?? [1, 1, 1, 1];
2862
+ if (c(), Ee(n, T, t))
2875
2863
  return;
2876
- const S = g ? E : _, { projection: P, modelView: D, camera: O } = T, C = m(T);
2877
- for (const I of C) {
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 ?? {};
2882
- S.execute({
2869
+ const { texture: H, downsample: J } = W, { texture: k = H, downsample: G = 0 } = B ?? {};
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
- color: U,
2892
- index: b
2879
+ color: S,
2880
+ index: M
2893
2881
  });
2894
2882
  }
2895
- }, R = () => {
2883
+ }, b = () => {
2896
2884
  i?.dispose(), f.dispose(), h.dispose();
2897
- }, w = ye(t);
2885
+ }, y = ye(t);
2898
2886
  return {
2899
- render: y,
2900
- dispose: R,
2901
- ...w,
2887
+ render: w,
2888
+ dispose: b,
2889
+ ...y,
2902
2890
  elevation: h.get
2903
2891
  };
2904
- }, Ei = ({ gl: e, programs: t }, { uvwBuffer: n, indexBuffer: i }) => {
2892
+ }, vi = ({ gl: e, programs: t }, { uvwBuffer: n, indexBuffer: i }) => {
2905
2893
  const r = (c = !1) => {
2906
2894
  const a = t.get({
2907
- vertexSource: mi,
2908
- fragmentSource: c ? _e : hi
2909
- }), 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"), M = 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");
2910
2898
  return { execute: ({
2911
2899
  projection: m,
2912
- modelView: y,
2913
- camera: R,
2914
- xyz: w,
2915
- imagery: T,
2916
- terrain: g,
2917
- downsampleImagery: b,
2918
- downsampleTerrain: U,
2919
- color: S,
2900
+ modelView: w,
2901
+ camera: b,
2902
+ xyz: y,
2903
+ imagery: g,
2904
+ terrain: T,
2905
+ downsampleImagery: M,
2906
+ downsampleTerrain: S,
2907
+ color: U,
2920
2908
  index: P
2921
2909
  }) => {
2922
- a.use(), f.use(), l.set(m), h.set(y), x.set(w), A.set(R), v.set(b), _.set(U), E.set(S), M.set(P), e.activeTexture(e.TEXTURE0), u.set(0), T.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);
2923
2911
  } };
2924
2912
  }, s = r(), o = r(!0);
2925
2913
  return { renderProgram: s, depthProgram: o };
2926
- }, _i = (e, t) => {
2914
+ }, pi = (e, t) => {
2927
2915
  const [n, i, r, s] = t.reduce(
2928
2916
  ([f, l, h, u], [d = 0, v = 0]) => [
2929
2917
  Math.min(d, f),
@@ -2934,18 +2922,18 @@ const V = 34, vi = 22, pi = xe(0, V).flatMap(
2934
2922
  [1, 0, 1, 0]
2935
2923
  ), [o = 0, c = 0, a = 0] = e;
2936
2924
  return o > n && o < i && c > r && c < s && a > 0 && a < i - n;
2937
- }, 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(
2938
2926
  e.map(
2939
- (t, n) => En(
2927
+ (t, n) => vn(
2940
2928
  e[n] ?? [0, 0],
2941
2929
  e[(n + 1) % e.length] ?? [0, 0]
2942
2930
  )
2943
2931
  ).reduce((t, n) => t + n, 0) / e.length
2944
- ), Yi = {
2932
+ ), ji = {
2945
2933
  pickable: !0,
2946
2934
  depth: !0,
2947
2935
  polygonOffset: 0
2948
- }, $i = (e, t) => {
2936
+ }, Bi = (e, t) => {
2949
2937
  let n;
2950
2938
  return () => {
2951
2939
  const i = e.map((s) => s());
@@ -2988,7 +2976,7 @@ const V = 34, vi = 22, pi = xe(0, V).flatMap(
2988
2976
  onDragStart: o,
2989
2977
  onDragEnd: c
2990
2978
  };
2991
- }, $e = 10, Pe = 1e-3, fe = (e) => (t) => {
2979
+ }, Se = 8, Ue = 1e-3, fe = (e) => (t) => {
2992
2980
  let n, i;
2993
2981
  return () => {
2994
2982
  const r = performance.now(), s = (r - (i ?? r)) / 1e3;
@@ -2996,41 +2984,41 @@ const V = 34, vi = 22, pi = xe(0, V).flatMap(
2996
2984
  const o = t();
2997
2985
  return n = n ?? o, n = e({ time: s, current: n, target: o }), n;
2998
2986
  };
2999
- }, Ti = fe(
3000
- ({ time: e, current: t, target: n }) => (Math.abs(n - t) < Pe ? t = n : t = t + (n - t) * (1 - Math.exp(-$e * e)), t)
3001
- ), 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(
3002
2990
  pe(),
3003
2991
  n,
3004
- pn(
2992
+ dn(
3005
2993
  pe(),
3006
- _n(pe(), i, n),
3007
- 1 - Math.exp(-$e * t)
2994
+ pn(pe(), i, n),
2995
+ 1 - Math.exp(-Se * t)
3008
2996
  )
3009
- ), 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(
3010
2998
  ne(),
3011
2999
  n,
3012
- tn(
3000
+ Kt(
3013
3001
  ne(),
3014
- on(ne(), i, n),
3015
- 1 - Math.exp(-$e * t)
3002
+ tn(ne(), i, n),
3003
+ 1 - Math.exp(-Se * t)
3016
3004
  )
3017
- ), n))(() => Kt(e())), Hi = (e) => fe(({ time: t, current: n, target: i }) => {
3018
- const r = Ue(z(n), z(i));
3019
- 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(
3020
3008
  re(
3021
3009
  L(),
3022
3010
  z(n),
3023
3011
  de(
3024
3012
  L(),
3025
3013
  se(L(), z(i), z(n)),
3026
- 1 - Math.exp(-$e * t)
3014
+ 1 - Math.exp(-Se * t)
3027
3015
  )
3028
3016
  )
3029
3017
  ), n;
3030
- })(() => tt(e())), Gi = (e) => {
3018
+ })(() => ht(e())), Yi = (e) => {
3031
3019
  let t = [0, 0, 0], n = [0, 0, 0], i, r;
3032
3020
  return fe(({ time: o, current: c, target: a }) => {
3033
- 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)
3034
3022
  return i = void 0, t = [0, 0, 0], n = [0, 0, 0], a;
3035
3023
  const f = performance.now();
3036
3024
  i ? a !== i && r !== void 0 && f - r > 1 && (n = de(
@@ -3066,18 +3054,24 @@ const V = 34, vi = 22, pi = xe(0, V).flatMap(
3066
3054
  )
3067
3055
  )
3068
3056
  ), t = l, c;
3069
- })(() => tt(e()));
3070
- }, Ri = (e) => fe(({ time: t, current: n, target: i }) => (n = gn(
3071
- Ce(
3072
- Ke(),
3073
- Le(n),
3074
- Le(i),
3075
- 2 * t
3076
- )
3077
- ), cn(Le(n), Le(i)) < Pe && (i = n), n))(() => tt(e())), Ai = 10, Fi = (e) => {
3078
- 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);
3079
3071
  return fe(({ time: s, current: o, target: c }) => {
3080
- 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(
3081
3075
  Math.log(o.distance) + (Math.log(f) - Math.log(o.distance)) * l
3082
3076
  ), u = o.distance > a ? 1 : o.distance / a, d = oe(
3083
3077
  re(
@@ -3103,7 +3097,7 @@ const V = 34, vi = 22, pi = xe(0, V).flatMap(
3103
3097
  fieldOfView: i()
3104
3098
  };
3105
3099
  })(e);
3106
- }, Mi = (e) => {
3100
+ }, Ri = (e) => {
3107
3101
  const t = e.createTexture();
3108
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);
3109
3103
  const n = e.createRenderbuffer();
@@ -3152,7 +3146,7 @@ const V = 34, vi = 22, pi = xe(0, V).flatMap(
3152
3146
  e.deleteTexture(t), e.deleteFramebuffer(i), e.deleteRenderbuffer(n);
3153
3147
  }
3154
3148
  };
3155
- }, bi = (e, {
3149
+ }, Ai = (e, {
3156
3150
  view: t,
3157
3151
  screen: n,
3158
3152
  pick: i
@@ -3165,8 +3159,8 @@ const V = 34, vi = 22, pi = xe(0, V).flatMap(
3165
3159
  const { x: _, y: E, movementX: x, movementY: A } = v;
3166
3160
  if (o) {
3167
3161
  if (o.onDrag) {
3168
- const { point: M, position: p, layer: m } = i([_, E], { terrain: !0 });
3169
- o.onDrag({ point: M, position: p, layer: m });
3162
+ const { point: R, position: p, layer: m } = i([_, E], { terrain: !0 });
3163
+ o.onDrag({ point: R, position: p, layer: m });
3170
3164
  }
3171
3165
  if (o.onDragFlat) {
3172
3166
  const p = te(t(), n()).unproject([_, E], { targetZ: c });
@@ -3176,19 +3170,19 @@ const V = 34, vi = 22, pi = xe(0, V).flatMap(
3176
3170
  }
3177
3171
  if (s && (Math.abs(x) > 1 || Math.abs(A) > 1)) {
3178
3172
  s = !1;
3179
- const { point: M, position: p, layer: m } = i([_, E]);
3180
- (m?.onDrag || m?.onDragFlat) && (o = m, o.onDragStart?.({ point: M, position: p, layer: m }), [, , c] = p);
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);
3181
3175
  }
3182
3176
  }, l = (v) => {
3183
3177
  if (s && h(v), s = !1, o) {
3184
- const { x: _, y: E } = v, { point: x, position: A, layer: M } = i([_, E]);
3185
- o.onDragEnd?.({ point: x, position: A, layer: M });
3178
+ const { x: _, y: E } = v, { point: x, position: A, layer: R } = i([_, E]);
3179
+ o.onDragEnd?.({ point: x, position: A, layer: R });
3186
3180
  }
3187
3181
  o = void 0;
3188
3182
  }, h = (v) => {
3189
- const { x: _, y: E, button: x } = v, { point: A, position: M, layer: p } = i([_, E]);
3183
+ const { x: _, y: E, button: x } = v, { point: A, position: R, layer: p } = i([_, E]);
3190
3184
  (x === 2 ? p?.onRightClick : p?.onClick)?.(
3191
- { point: A, position: M, layer: p },
3185
+ { point: A, position: R, layer: p },
3192
3186
  v
3193
3187
  );
3194
3188
  }, u = ({ x: v, y: _ }) => {
@@ -3199,50 +3193,50 @@ const V = 34, vi = 22, pi = xe(0, V).flatMap(
3199
3193
  r?.removeEventListener("mousedown", a), r?.removeEventListener("mousemove", f), r?.removeEventListener("dblclick", u), window.removeEventListener("mouseup", l);
3200
3194
  } };
3201
3195
  };
3202
- It(Array);
3203
- const Qi = ({ gl: e }, t) => {
3196
+ Nt(Array);
3197
+ const ki = ({ gl: e }, t) => {
3204
3198
  const { view: n, layers: i } = t;
3205
3199
  let r = !0, s = [0, 0];
3206
3200
  e.enable(e.CULL_FACE), e.cullFace(e.FRONT), e.depthFunc(e.LEQUAL);
3207
- const o = Mi(e), { canvas: c } = e, a = ([p = 0, m = 0]) => {
3201
+ const o = Ri(e), { canvas: c } = e, a = ([p = 0, m = 0]) => {
3208
3202
  p = p || 1, m = m || 1, s = [p, m], c.width = p * devicePixelRatio, c.height = m * devicePixelRatio, o.resize([c.width, c.height]);
3209
3203
  };
3210
3204
  a([c.width, c.height]);
3211
3205
  const f = new ResizeObserver(([p]) => {
3212
3206
  if (!p)
3213
3207
  return;
3214
- const { contentRect: m } = p, { width: y, height: R } = m;
3215
- a([y, R]);
3208
+ const { contentRect: m } = p, { width: w, height: b } = m;
3209
+ a([w, b]);
3216
3210
  });
3217
3211
  c instanceof HTMLCanvasElement && f.observe(c);
3218
3212
  const l = ([p = 0, m = 0]) => {
3219
3213
  e.viewport(0, 0, p * devicePixelRatio, m * devicePixelRatio), e.clear(e.COLOR_BUFFER_BIT | e.DEPTH_BUFFER_BIT);
3220
3214
  }, h = () => {
3221
3215
  const p = te(n(), s);
3222
- l(s), je(i()).forEach((m) => m.render?.({ viewport: p }));
3216
+ l(s), Ce(i()).forEach((m) => m.render?.({ viewport: p }));
3223
3217
  }, u = (p) => {
3224
3218
  const m = te(n(), s);
3225
- l(s), (p ? [p] : je(i())).forEach(
3226
- (y, R) => y.render?.({ viewport: m, depth: !0, index: R + 1 })
3219
+ l(s), (p ? [p] : Ce(i())).forEach(
3220
+ (w, b) => w.render?.({ viewport: m, depth: !0, index: b + 1 })
3227
3221
  );
3228
3222
  }, d = () => {
3229
3223
  r && (h(), requestAnimationFrame(d));
3230
3224
  };
3231
3225
  requestAnimationFrame(d);
3232
3226
  const v = (p) => te(n(), s).project(p), _ = (p) => te(n(), s).unproject(p), E = (p, { terrain: m } = {}) => {
3233
- const { screenToClip: y, clipToLocal: R, localToWorld: w } = te(
3227
+ const { screenToClip: w, clipToLocal: b, localToWorld: y } = te(
3234
3228
  n(),
3235
3229
  s
3236
3230
  );
3237
3231
  o.use();
3238
- const [T] = m ? i() : [];
3239
- u(T);
3240
- const [g = 0, b = 0] = p, [U, S] = o.read([
3241
- g * devicePixelRatio,
3242
- b * devicePixelRatio
3243
- ]), [P = 0, D = 0] = y(p), O = oe(w(R([P, D, U, 1]))), C = S === 0 ? void 0 : T ?? je(i())[S - 1];
3244
- return { point: p, position: O, layer: C };
3245
- }, x = 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, {
3246
3240
  view: n,
3247
3241
  screen: () => s,
3248
3242
  pick: E
@@ -3259,45 +3253,46 @@ const Qi = ({ gl: e }, t) => {
3259
3253
  r = !1, x.dispose(), o.dispose(), c instanceof HTMLCanvasElement && f.unobserve(c);
3260
3254
  }
3261
3255
  };
3262
- }, je = (e) => e.flatMap((t) => [...je(t.children ?? []), t]);
3256
+ }, Ce = (e) => e.flatMap((t) => [...Ce(t.children ?? []), t]);
3263
3257
  export {
3264
3258
  ce as cache,
3265
- $i as cacheAll,
3266
- F as circumference,
3267
- Li as createBillboardLayer,
3268
- Ni as createContainer,
3269
- Pi as createContext,
3270
- Ii as createDynamicContainer,
3271
- Oi as createEmptyLayer,
3272
- Ci as createLineLayer,
3273
- ci as createMemoryTexture,
3274
- 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,
3275
3269
  ye as createMouseEvents,
3276
- Ti as createNumberTransition,
3277
- Xi as createObjectLayer,
3278
- Ri as createOrientationTransition,
3279
- Wi as createPolygonLayer,
3280
- Hi as createPositionTransition,
3281
- Gi as createPositionVelocityTransition,
3282
- ji as createRadarLayer,
3283
- Di as createRenderLayer,
3284
- 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,
3285
3280
  fe as createTransition,
3286
- gi as createVec2Transition,
3287
- ki as createVec4Transition,
3288
- Fi as createViewTransition,
3289
- Qi as createWorld,
3290
- Pt as debounce,
3291
- Yi as defaultLayerOptions,
3292
- Et as defaultView,
3293
- 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,
3294
3289
  oe as geodetic,
3295
3290
  z as mercator,
3296
- wn as quadratic,
3297
- Xe as radians,
3291
+ En as quadratic,
3292
+ De as radians,
3298
3293
  xe as range,
3299
- xt as tileToMercator,
3300
- gn as toOrientation,
3301
- Le as toQuaternion
3294
+ vt as tileToMercator,
3295
+ yn as toOrientation,
3296
+ pt as toQuaternion
3302
3297
  };
3303
3298
  //# sourceMappingURL=index.js.map