world.ts 0.4.0 → 0.4.2

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