world.ts 0.2.7 → 0.3.0

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