world.ts 0.6.13 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +186 -176
- package/dist/index.js.map +1 -1
- package/dist/layers/container.d.ts +1 -2
- package/dist/layers/index.d.ts +1 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -124,12 +124,18 @@ const wt = (e, n) => {
|
|
|
124
124
|
const n = e.getContext("webgl2");
|
|
125
125
|
if (!n)
|
|
126
126
|
throw new Error("No WebGL2");
|
|
127
|
-
|
|
128
|
-
|
|
127
|
+
if (n.isContextLost())
|
|
128
|
+
throw new Error("Context lost");
|
|
129
|
+
const t = n.getExtension("WEBGL_lose_context");
|
|
130
|
+
window.addEventListener("keydown", async (s) => {
|
|
131
|
+
s.key === "l" && (t?.loseContext(), await new Promise((i) => setTimeout(i, 1e3)), t?.restoreContext());
|
|
132
|
+
});
|
|
133
|
+
const r = Mt(n), { dispose: o } = r;
|
|
134
|
+
return { gl: n, programs: r, dispose: o };
|
|
129
135
|
};
|
|
130
|
-
var gt = 1e-6,
|
|
136
|
+
var gt = 1e-6, Z = typeof Float32Array < "u" ? Float32Array : Array;
|
|
131
137
|
function Ut(e) {
|
|
132
|
-
|
|
138
|
+
Z = e;
|
|
133
139
|
}
|
|
134
140
|
Math.hypot || (Math.hypot = function() {
|
|
135
141
|
for (var e = 0, n = arguments.length; n--; )
|
|
@@ -137,12 +143,12 @@ Math.hypot || (Math.hypot = function() {
|
|
|
137
143
|
return Math.sqrt(e);
|
|
138
144
|
});
|
|
139
145
|
function At() {
|
|
140
|
-
var e = new
|
|
141
|
-
return
|
|
146
|
+
var e = new Z(9);
|
|
147
|
+
return Z != Float32Array && (e[1] = 0, e[2] = 0, e[3] = 0, e[5] = 0, e[6] = 0, e[7] = 0), e[0] = 1, e[4] = 1, e[8] = 1, e;
|
|
142
148
|
}
|
|
143
149
|
function ve() {
|
|
144
|
-
var e = new
|
|
145
|
-
return
|
|
150
|
+
var e = new Z(16);
|
|
151
|
+
return Z != Float32Array && (e[1] = 0, e[2] = 0, e[3] = 0, e[4] = 0, e[6] = 0, e[7] = 0, e[8] = 0, e[9] = 0, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0), e[0] = 1, e[5] = 1, e[10] = 1, e[15] = 1, e;
|
|
146
152
|
}
|
|
147
153
|
function Pt(e) {
|
|
148
154
|
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;
|
|
@@ -169,11 +175,11 @@ function It(e, n, t, r, o) {
|
|
|
169
175
|
}
|
|
170
176
|
var zt = It;
|
|
171
177
|
function z() {
|
|
172
|
-
var e = new
|
|
173
|
-
return
|
|
178
|
+
var e = new Z(3);
|
|
179
|
+
return Z != Float32Array && (e[0] = 0, e[1] = 0, e[2] = 0), e;
|
|
174
180
|
}
|
|
175
181
|
function Ke(e) {
|
|
176
|
-
var n = new
|
|
182
|
+
var n = new Z(3);
|
|
177
183
|
return n[0] = e[0], n[1] = e[1], n[2] = e[2], n;
|
|
178
184
|
}
|
|
179
185
|
function Ft(e) {
|
|
@@ -181,7 +187,7 @@ function Ft(e) {
|
|
|
181
187
|
return Math.hypot(n, t, r);
|
|
182
188
|
}
|
|
183
189
|
function qe(e, n, t) {
|
|
184
|
-
var r = new
|
|
190
|
+
var r = new Z(3);
|
|
185
191
|
return r[0] = e, r[1] = n, r[2] = t, r;
|
|
186
192
|
}
|
|
187
193
|
function Ne(e, n) {
|
|
@@ -232,11 +238,11 @@ var Fe = Ce, Ot = Ft;
|
|
|
232
238
|
};
|
|
233
239
|
})();
|
|
234
240
|
function re() {
|
|
235
|
-
var e = new
|
|
236
|
-
return
|
|
241
|
+
var e = new Z(4);
|
|
242
|
+
return Z != Float32Array && (e[0] = 0, e[1] = 0, e[2] = 0, e[3] = 0), e;
|
|
237
243
|
}
|
|
238
244
|
function at(e) {
|
|
239
|
-
var n = new
|
|
245
|
+
var n = new Z(4);
|
|
240
246
|
return n[0] = e[0], n[1] = e[1], n[2] = e[2], n[3] = e[3], n;
|
|
241
247
|
}
|
|
242
248
|
function Ct(e, n) {
|
|
@@ -245,10 +251,10 @@ function Ct(e, n) {
|
|
|
245
251
|
function et(e, n, t, r, o) {
|
|
246
252
|
return e[0] = n, e[1] = t, e[2] = r, e[3] = o, e;
|
|
247
253
|
}
|
|
248
|
-
function
|
|
254
|
+
function Bt(e, n, t) {
|
|
249
255
|
return e[0] = n[0] + t[0], e[1] = n[1] + t[1], e[2] = n[2] + t[2], e[3] = n[3] + t[3], e;
|
|
250
256
|
}
|
|
251
|
-
function
|
|
257
|
+
function Zt(e, n, t) {
|
|
252
258
|
return e[0] = n[0] - t[0], e[1] = n[1] - t[1], e[2] = n[2] - t[2], e[3] = n[3] - t[3], e;
|
|
253
259
|
}
|
|
254
260
|
function Vt(e, n, t) {
|
|
@@ -269,7 +275,7 @@ function tt(e, n, t) {
|
|
|
269
275
|
var r = n[0], o = n[1], s = n[2], i = n[3];
|
|
270
276
|
return e[0] = t[0] * r + t[4] * o + t[8] * s + t[12] * i, e[1] = t[1] * r + t[5] * o + t[9] * s + t[13] * i, e[2] = t[2] * r + t[6] * o + t[10] * s + t[14] * i, e[3] = t[3] * r + t[7] * o + t[11] * s + t[15] * i, e;
|
|
271
277
|
}
|
|
272
|
-
var Yt =
|
|
278
|
+
var Yt = Zt;
|
|
273
279
|
(function() {
|
|
274
280
|
var e = re();
|
|
275
281
|
return function(n, t, r, o, s, i) {
|
|
@@ -279,9 +285,9 @@ var Yt = Bt;
|
|
|
279
285
|
return n;
|
|
280
286
|
};
|
|
281
287
|
})();
|
|
282
|
-
function
|
|
283
|
-
var e = new
|
|
284
|
-
return
|
|
288
|
+
function Be() {
|
|
289
|
+
var e = new Z(4);
|
|
290
|
+
return Z != Float32Array && (e[0] = 0, e[1] = 0, e[2] = 0), e[3] = 1, e;
|
|
285
291
|
}
|
|
286
292
|
function kt(e, n, t) {
|
|
287
293
|
t = t * 0.5;
|
|
@@ -317,7 +323,7 @@ var Qt = at, Jt = jt, ft = Wt;
|
|
|
317
323
|
};
|
|
318
324
|
})();
|
|
319
325
|
(function() {
|
|
320
|
-
var e =
|
|
326
|
+
var e = Be(), n = Be();
|
|
321
327
|
return function(t, r, o, s, i, c) {
|
|
322
328
|
return be(e, r, i, c), be(n, o, s, c), be(t, e, n, 2 * c * (1 - c)), t;
|
|
323
329
|
};
|
|
@@ -329,11 +335,11 @@ var Qt = at, Jt = jt, ft = Wt;
|
|
|
329
335
|
};
|
|
330
336
|
})();
|
|
331
337
|
function ce() {
|
|
332
|
-
var e = new
|
|
333
|
-
return
|
|
338
|
+
var e = new Z(2);
|
|
339
|
+
return Z != Float32Array && (e[0] = 0, e[1] = 0), e;
|
|
334
340
|
}
|
|
335
341
|
function Kt(e) {
|
|
336
|
-
var n = new
|
|
342
|
+
var n = new Z(2);
|
|
337
343
|
return n[0] = e[0], n[1] = e[1], n;
|
|
338
344
|
}
|
|
339
345
|
function qt(e, n) {
|
|
@@ -369,19 +375,19 @@ var cn = nn;
|
|
|
369
375
|
return n;
|
|
370
376
|
};
|
|
371
377
|
})();
|
|
372
|
-
const
|
|
378
|
+
const J = 40075017, Ie = (e) => e / 180 * Math.PI, an = (e) => e * 180 / Math.PI, fn = (e, n, t) => {
|
|
373
379
|
const r = Math.sqrt(n * n - 4 * e * t);
|
|
374
380
|
return [(-n - r) / (2 * e), (-n + r) / (2 * e)];
|
|
375
|
-
}, un = (e, n, t) => Math.min(Math.max(e, n), t), nt = Math.atan(Math.sinh(Math.PI)),
|
|
381
|
+
}, un = (e, n, t) => Math.min(Math.max(e, n), t), nt = Math.atan(Math.sinh(Math.PI)), S = ([e = 0, n = 0, t = 0], r = z()) => fe(
|
|
376
382
|
r,
|
|
377
383
|
e / 360 + 0.5,
|
|
378
384
|
-Math.asinh(Math.tan(un(Ie(n), -nt, nt))) / (2 * Math.PI) + 0.5,
|
|
379
|
-
t /
|
|
385
|
+
t / J
|
|
380
386
|
), ee = ([e = 0, n = 0, t = 0], r = z()) => fe(
|
|
381
387
|
r,
|
|
382
388
|
(e - 0.5) * 360,
|
|
383
389
|
an(Math.atan(Math.sinh(-(n - 0.5) * (2 * Math.PI)))),
|
|
384
|
-
t *
|
|
390
|
+
t * J
|
|
385
391
|
), ut = ([e = 0, n = 0, t = 0], r = z()) => {
|
|
386
392
|
const o = 2 ** -t;
|
|
387
393
|
return fe(r, e * o, n * o, 0);
|
|
@@ -394,14 +400,14 @@ const Q = 40075017, Ie = (e) => e / 180 * Math.PI, an = (e) => e * 180 / Math.PI
|
|
|
394
400
|
}, mt = {
|
|
395
401
|
target: [0, 0, 0],
|
|
396
402
|
offset: [0, 0],
|
|
397
|
-
distance:
|
|
403
|
+
distance: J,
|
|
398
404
|
orientation: [0, 0, 0],
|
|
399
405
|
fieldOfView: 45
|
|
400
406
|
}, ne = (e, n) => {
|
|
401
407
|
const { target: t, offset: r, distance: o, orientation: s, fieldOfView: i } = {
|
|
402
408
|
...mt,
|
|
403
409
|
...e
|
|
404
|
-
}, [c = 0, a = 0] = n, [u = 0, f = 0] = r, v = Math.tan(Ie(45) / 2) / Math.tan(Ie(i) / 2), h = o /
|
|
410
|
+
}, [c = 0, a = 0] = n, [u = 0, f = 0] = r, v = Math.tan(Ie(45) / 2) / Math.tan(Ie(i) / 2), h = o / J * v, T = Math.max(1e3 / J, h), l = 1e3, y = 1e-3, p = T * l, M = T * y, U = re(), x = ve();
|
|
405
411
|
Pt(x), zt(x, Ie(i), c / a, M, p), bt(x, x, [1, -1, 1]);
|
|
406
412
|
const m = ve();
|
|
407
413
|
ct(m, lt(s));
|
|
@@ -417,18 +423,18 @@ const Q = 40075017, Ie = (e) => e / 180 * Math.PI, an = (e) => e * 180 / Math.PI
|
|
|
417
423
|
}, R = ([O = 0, G = 0, , k = 0], K = ce()) => k < 0 ? K : en(K, (1 + O / k) * c * 0.5, (1 - G / k) * a * 0.5), E = (O, G = z()) => {
|
|
418
424
|
const [k = 0, K = 0, me = 0, de = 0] = tt(U, O, d);
|
|
419
425
|
return fe(G, k / de, K / de, me / de);
|
|
420
|
-
}, A = ([O = 0, G = 0, k = 0], K = re()) => tt(K, et(K, O, G, k, 1), g), [P = 0, N = 0] = _([u + c / 2, f + a / 2]), [L = 0, I = 0, b = 0] = E([P, N, -1, 1]), [C = 0,
|
|
421
|
-
(C - L) ** 2 + (
|
|
422
|
-
2 * (L * (C - L) + I * (
|
|
426
|
+
}, A = ([O = 0, G = 0, k = 0], K = re()) => tt(K, et(K, O, G, k, 1), g), [P = 0, N = 0] = _([u + c / 2, f + a / 2]), [L = 0, I = 0, b = 0] = E([P, N, -1, 1]), [C = 0, X = 0, F = 0] = E([P, N, 1.00001, 1]), [B = 0] = fn(
|
|
427
|
+
(C - L) ** 2 + (X - I) ** 2 + (F - b) ** 2,
|
|
428
|
+
2 * (L * (C - L) + I * (X - I) + b * (F - b)),
|
|
423
429
|
L ** 2 + I ** 2 + b ** 2 - h ** 2
|
|
424
430
|
);
|
|
425
|
-
if (isNaN(
|
|
431
|
+
if (isNaN(B))
|
|
426
432
|
throw new Error("Unexpected");
|
|
427
433
|
const j = [
|
|
428
|
-
L +
|
|
429
|
-
I +
|
|
430
|
-
b +
|
|
431
|
-
], $ = Fe(z(),
|
|
434
|
+
L + B * (C - L),
|
|
435
|
+
I + B * (X - I),
|
|
436
|
+
b + B * (F - b)
|
|
437
|
+
], $ = Fe(z(), S(t), j), q = (O, G = z()) => We(G, O, $), Y = (O, G = z()) => Fe(G, O, $);
|
|
432
438
|
return {
|
|
433
439
|
camera: $,
|
|
434
440
|
screen: n,
|
|
@@ -442,7 +448,7 @@ const Q = 40075017, Ie = (e) => e / 180 * Math.PI, an = (e) => e * 180 / Math.PI
|
|
|
442
448
|
localToClip: A,
|
|
443
449
|
localToWorld: q,
|
|
444
450
|
worldToLocal: Y,
|
|
445
|
-
project: (O) => R(A(Y(
|
|
451
|
+
project: (O) => R(A(Y(S(O)))),
|
|
446
452
|
unproject: (O, { targetZ: G = 0 } = {}) => {
|
|
447
453
|
const k = _(O), [K = 0, me = 0, , de = 0] = k, Tt = [K, me, -1, de], $e = ee(q(E(k))), He = ee(q(E(Tt))), [, , De = 0] = $e, [, , Qe = 0] = He, yt = De === Qe ? 0 : (G - De) / (Qe - De);
|
|
448
454
|
return Xt(z(), $e, He, yt);
|
|
@@ -463,7 +469,7 @@ const Q = 40075017, Ie = (e) => e / 180 * Math.PI, an = (e) => e * 180 / Math.PI
|
|
|
463
469
|
], { camera: A, fieldScale: P } = ne(u(), [R, E]), { position: N, layer: L } = n.pick([w, _]);
|
|
464
470
|
if (!L)
|
|
465
471
|
return;
|
|
466
|
-
const I = _e(
|
|
472
|
+
const I = _e(S(N), A) * J / P, b = [w - R / 2, _ - E / 2];
|
|
467
473
|
i({
|
|
468
474
|
offset: b,
|
|
469
475
|
target: N,
|
|
@@ -520,7 +526,7 @@ const Q = 40075017, Ie = (e) => e / 180 * Math.PI, an = (e) => e * 180 / Math.PI
|
|
|
520
526
|
let { distance: E } = { ...mt, ...u() };
|
|
521
527
|
E = Math.min(
|
|
522
528
|
Math.max(E * Math.exp(R * 1e-3), mn),
|
|
523
|
-
|
|
529
|
+
J
|
|
524
530
|
), i({ distance: E }), U();
|
|
525
531
|
}, m = (w) => w.preventDefault(), g = (w) => w.preventDefault();
|
|
526
532
|
return e.addEventListener("mousedown", l), e.addEventListener("mousemove", p), e.addEventListener("touchstart", l, { passive: !1 }), e.addEventListener("touchmove", M, { passive: !1 }), e.addEventListener("gesturestart", m), e.addEventListener("wheel", x, { passive: !0 }), e.addEventListener("contextmenu", g), window.addEventListener("mouseup", y), {
|
|
@@ -743,7 +749,7 @@ const vr = (e, n = {}) => {
|
|
|
743
749
|
[0, 3, 2]
|
|
744
750
|
].flat()
|
|
745
751
|
);
|
|
746
|
-
const a =
|
|
752
|
+
const a = oe(
|
|
747
753
|
() => n.url?.() ?? "",
|
|
748
754
|
(l) => {
|
|
749
755
|
const y = Ye({
|
|
@@ -773,7 +779,7 @@ const vr = (e, n = {}) => {
|
|
|
773
779
|
screen: M,
|
|
774
780
|
image: r,
|
|
775
781
|
imageSize: o,
|
|
776
|
-
position: te(
|
|
782
|
+
position: te(S(m)),
|
|
777
783
|
color: g,
|
|
778
784
|
size: d,
|
|
779
785
|
minSizePixels: w,
|
|
@@ -808,11 +814,11 @@ const vr = (e, n = {}) => {
|
|
|
808
814
|
position: I,
|
|
809
815
|
color: b,
|
|
810
816
|
size: C,
|
|
811
|
-
minSizePixels:
|
|
812
|
-
maxSizePixels:
|
|
813
|
-
index:
|
|
817
|
+
minSizePixels: X,
|
|
818
|
+
maxSizePixels: F,
|
|
819
|
+
index: B
|
|
814
820
|
}) => {
|
|
815
|
-
u.use(), f.use(), v.use(), h.set(R), T.set(E), l.set(A), y.set(P), M.set(L), U.set(I), x.set(b), g.set(C), d.set(
|
|
821
|
+
u.use(), f.use(), v.use(), h.set(R), T.set(E), l.set(A), y.set(P), M.set(L), U.set(I), x.set(b), g.set(C), d.set(X), w.set(F), m.set(B), e.activeTexture(e.TEXTURE0), p.set(0), N.use(), o.use(), e.drawElements(e.TRIANGLES, 6, e.UNSIGNED_SHORT, 0);
|
|
816
822
|
} };
|
|
817
823
|
}, i = s(), c = s(!0);
|
|
818
824
|
return { renderProgram: i, depthProgram: c };
|
|
@@ -820,20 +826,19 @@ const vr = (e, n = {}) => {
|
|
|
820
826
|
children: e,
|
|
821
827
|
dispose: () => e.forEach((t) => t.dispose())
|
|
822
828
|
}), hr = (e) => {
|
|
823
|
-
const { keys: n, create: t } = e, r = /* @__PURE__ */ new Map()
|
|
829
|
+
const { keys: n, create: t } = e, r = /* @__PURE__ */ new Map(), o = () => [...r.values()].forEach((i) => i.dispose()), s = oe(n, (i) => {
|
|
830
|
+
[...r.keys()].filter((c) => !i.includes(c)).forEach((c) => {
|
|
831
|
+
r.get(c)?.dispose(), r.delete(c);
|
|
832
|
+
}), i.forEach((c) => {
|
|
833
|
+
const a = r.get(c) ?? t(c);
|
|
834
|
+
r.set(c, a);
|
|
835
|
+
});
|
|
836
|
+
});
|
|
824
837
|
return {
|
|
825
838
|
get children() {
|
|
826
|
-
return [...r.values()];
|
|
827
|
-
},
|
|
828
|
-
render: () => {
|
|
829
|
-
[...r.keys()].filter((i) => !n().includes(i)).forEach((i) => {
|
|
830
|
-
r.get(i)?.dispose(), r.delete(i);
|
|
831
|
-
}), n().forEach((i) => {
|
|
832
|
-
const c = r.get(i) ?? t(i);
|
|
833
|
-
r.set(i, c);
|
|
834
|
-
});
|
|
839
|
+
return s(), [...r.values()];
|
|
835
840
|
},
|
|
836
|
-
dispose:
|
|
841
|
+
dispose: o
|
|
837
842
|
};
|
|
838
843
|
}, pr = (e) => ({
|
|
839
844
|
render: e,
|
|
@@ -959,7 +964,7 @@ const _r = (e, n = {}) => {
|
|
|
959
964
|
dashSize: A,
|
|
960
965
|
dashOffset: P
|
|
961
966
|
});
|
|
962
|
-
}, h =
|
|
967
|
+
}, h = oe(
|
|
963
968
|
() => n.points?.() ?? [],
|
|
964
969
|
(p) => {
|
|
965
970
|
const M = p.flatMap((g) => {
|
|
@@ -974,7 +979,7 @@ const _r = (e, n = {}) => {
|
|
|
974
979
|
}
|
|
975
980
|
}
|
|
976
981
|
return E;
|
|
977
|
-
})([d, ...g, w].map((R) => te(
|
|
982
|
+
})([d, ...g, w].map((R) => te(S(R))));
|
|
978
983
|
}), { indexData: U } = p.reduce(
|
|
979
984
|
({ indexData: g, count: d }, w) => {
|
|
980
985
|
if (w.length === 0)
|
|
@@ -1014,7 +1019,7 @@ const _r = (e, n = {}) => {
|
|
|
1014
1019
|
])
|
|
1015
1020
|
), m = p.flatMap((g) => {
|
|
1016
1021
|
const w = g.map(
|
|
1017
|
-
(A, P) => _e(
|
|
1022
|
+
(A, P) => _e(S(A), S(g[P - 1] ?? A)) * J
|
|
1018
1023
|
).reduce(
|
|
1019
1024
|
({ current: A, result: P }, N) => (A += N, P.push(A), { current: A, result: P }),
|
|
1020
1025
|
{ current: 0, result: [] }
|
|
@@ -1030,7 +1035,7 @@ const _r = (e, n = {}) => {
|
|
|
1030
1035
|
});
|
|
1031
1036
|
o.set(M), s.set(U), i.set(x), c.set(m);
|
|
1032
1037
|
}
|
|
1033
|
-
), T =
|
|
1038
|
+
), T = oe(
|
|
1034
1039
|
() => n.dashPattern?.(),
|
|
1035
1040
|
(p) => {
|
|
1036
1041
|
p = p ?? [[1, 1, 1, 1]], f.use(), t.texImage2D(
|
|
@@ -1081,18 +1086,18 @@ const _r = (e, n = {}) => {
|
|
|
1081
1086
|
projection: I,
|
|
1082
1087
|
modelView: b,
|
|
1083
1088
|
camera: C,
|
|
1084
|
-
screen:
|
|
1085
|
-
count:
|
|
1086
|
-
color:
|
|
1089
|
+
screen: X,
|
|
1090
|
+
count: F,
|
|
1091
|
+
color: B,
|
|
1087
1092
|
width: j,
|
|
1088
1093
|
minWidthPixels: $,
|
|
1089
1094
|
maxWidthPixels: q,
|
|
1090
1095
|
index: Y,
|
|
1091
|
-
dash:
|
|
1096
|
+
dash: H,
|
|
1092
1097
|
dashSize: ke,
|
|
1093
1098
|
dashOffset: O
|
|
1094
1099
|
}) => {
|
|
1095
|
-
|
|
1100
|
+
F !== 0 && (f.use(), T.use(), l.use(), y.use(), p.use(), M.use(), U.set(I), x.set(b), m.set(C), g.set(X), d.set(B), w.set(j), R.set($), _.set(q), E.set(Y), P.set(ke), N.set(O), e.activeTexture(e.TEXTURE0), A.set(0), H.use(), r.use(), e.drawElements(e.TRIANGLES, F, e.UNSIGNED_SHORT, 0));
|
|
1096
1101
|
} };
|
|
1097
1102
|
}, c = i(), a = i(!0);
|
|
1098
1103
|
return { renderProgram: c, depthProgram: a };
|
|
@@ -1171,14 +1176,14 @@ const Tr = (e, n = {}) => {
|
|
|
1171
1176
|
const w = n.position?.() ?? [0, 0, 0], _ = n.orientation?.() ?? [0, 0, 0, 1], R = n.color?.() ?? [1, 1, 1, 1], E = n.diffuse?.() ?? [0, 0, 0, 0], A = n.size?.() ?? 1, P = n.minSizePixels?.() ?? 0, N = n.maxSizePixels?.() ?? Number.MAX_VALUE;
|
|
1172
1177
|
if (h(), l(), Te(t, g, n))
|
|
1173
1178
|
return;
|
|
1174
|
-
const L = ([b = 0, C = 0,
|
|
1179
|
+
const L = ([b = 0, C = 0, X = 0, F = 0]) => [-b, C, X, F];
|
|
1175
1180
|
(g ? f : u).execute({
|
|
1176
1181
|
projection: M,
|
|
1177
1182
|
modelView: U,
|
|
1178
1183
|
camera: te(x),
|
|
1179
1184
|
screen: m,
|
|
1180
1185
|
count: r,
|
|
1181
|
-
position: te(
|
|
1186
|
+
position: te(S(w)),
|
|
1182
1187
|
orientation: ct(ve(), L(_)),
|
|
1183
1188
|
color: R,
|
|
1184
1189
|
diffuse: E,
|
|
@@ -1188,7 +1193,7 @@ const Tr = (e, n = {}) => {
|
|
|
1188
1193
|
index: d,
|
|
1189
1194
|
texture: o
|
|
1190
1195
|
});
|
|
1191
|
-
}, h =
|
|
1196
|
+
}, h = oe(
|
|
1192
1197
|
() => n.mesh?.(),
|
|
1193
1198
|
(M) => {
|
|
1194
1199
|
const {
|
|
@@ -1203,7 +1208,7 @@ const Tr = (e, n = {}) => {
|
|
|
1203
1208
|
g.length === 0 ? U.flatMap(() => [0, 0]) : g.flatMap((d) => [...d])
|
|
1204
1209
|
), r = x.length * 3;
|
|
1205
1210
|
}
|
|
1206
|
-
), T = "data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==", l =
|
|
1211
|
+
), T = "data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==", l = oe(
|
|
1207
1212
|
() => n.textureUrl?.(),
|
|
1208
1213
|
(M = T) => {
|
|
1209
1214
|
const U = Ye({
|
|
@@ -1244,16 +1249,16 @@ const Tr = (e, n = {}) => {
|
|
|
1244
1249
|
screen: I,
|
|
1245
1250
|
count: b,
|
|
1246
1251
|
position: C,
|
|
1247
|
-
orientation:
|
|
1248
|
-
color:
|
|
1249
|
-
diffuse:
|
|
1252
|
+
orientation: X,
|
|
1253
|
+
color: F,
|
|
1254
|
+
diffuse: B,
|
|
1250
1255
|
size: j,
|
|
1251
1256
|
minSizePixels: $,
|
|
1252
1257
|
maxSizePixels: q,
|
|
1253
1258
|
index: Y,
|
|
1254
|
-
texture:
|
|
1259
|
+
texture: H
|
|
1255
1260
|
}) => {
|
|
1256
|
-
f.use(), v.use(), h.use(), T.use(), l.set(P), y.set(N), p.set(L), x.set(I), M.set(C), U.set(
|
|
1261
|
+
f.use(), v.use(), h.use(), T.use(), l.set(P), y.set(N), p.set(L), x.set(I), M.set(C), U.set(X), m.set(F), g.set(B), d.set(j), w.set($), _.set(q), R.set(Y), !u && H && (e.activeTexture(e.TEXTURE0), E.set(0), H.use()), r.use(), e.drawElements(e.TRIANGLES, b, e.UNSIGNED_INT, 0);
|
|
1257
1262
|
} };
|
|
1258
1263
|
}, c = i(), a = i(!0);
|
|
1259
1264
|
return { renderProgram: c, depthProgram: a };
|
|
@@ -1278,7 +1283,7 @@ function Mn(e, n, t = 2) {
|
|
|
1278
1283
|
}
|
|
1279
1284
|
function xt(e, n, t, r, o) {
|
|
1280
1285
|
let s;
|
|
1281
|
-
if (o ===
|
|
1286
|
+
if (o === Bn(e, n, t, r) > 0)
|
|
1282
1287
|
for (let i = n; i < t; i += r)
|
|
1283
1288
|
s = ot(i / r | 0, e[i], e[i + 1], s);
|
|
1284
1289
|
else
|
|
@@ -1286,13 +1291,13 @@ function xt(e, n, t, r, o) {
|
|
|
1286
1291
|
s = ot(i / r | 0, e[i], e[i + 1], s);
|
|
1287
1292
|
return s && ue(s, s.next) && (Ee(s), s = s.next), s;
|
|
1288
1293
|
}
|
|
1289
|
-
function
|
|
1294
|
+
function se(e, n) {
|
|
1290
1295
|
if (!e)
|
|
1291
1296
|
return e;
|
|
1292
1297
|
n || (n = e);
|
|
1293
1298
|
let t = e, r;
|
|
1294
1299
|
do
|
|
1295
|
-
if (r = !1, !t.steiner && (ue(t, t.next) ||
|
|
1300
|
+
if (r = !1, !t.steiner && (ue(t, t.next) || D(t.prev, t, t.next) === 0)) {
|
|
1296
1301
|
if (Ee(t), t = n = t.prev, t === t.next)
|
|
1297
1302
|
break;
|
|
1298
1303
|
r = !0;
|
|
@@ -1313,19 +1318,19 @@ function he(e, n, t, r, o, s, i) {
|
|
|
1313
1318
|
continue;
|
|
1314
1319
|
}
|
|
1315
1320
|
if (e = u, e === c) {
|
|
1316
|
-
i ? i === 1 ? (e = An(
|
|
1321
|
+
i ? i === 1 ? (e = An(se(e), n), he(e, n, t, r, o, s, 2)) : i === 2 && Pn(e, n, t, r, o, s) : he(se(e), n, t, r, o, s, 1);
|
|
1317
1322
|
break;
|
|
1318
1323
|
}
|
|
1319
1324
|
}
|
|
1320
1325
|
}
|
|
1321
1326
|
function gn(e) {
|
|
1322
1327
|
const n = e.prev, t = e, r = e.next;
|
|
1323
|
-
if (
|
|
1328
|
+
if (D(n, t, r) >= 0)
|
|
1324
1329
|
return !1;
|
|
1325
1330
|
const o = n.x, s = t.x, i = r.x, c = n.y, a = t.y, u = r.y, f = Math.min(o, s, i), v = Math.min(c, a, u), h = Math.max(o, s, i), T = Math.max(c, a, u);
|
|
1326
1331
|
let l = r.next;
|
|
1327
1332
|
for (; l !== n; ) {
|
|
1328
|
-
if (l.x >= f && l.x <= h && l.y >= v && l.y <= T && xe(o, c, s, a, i, u, l.x, l.y) &&
|
|
1333
|
+
if (l.x >= f && l.x <= h && l.y >= v && l.y <= T && xe(o, c, s, a, i, u, l.x, l.y) && D(l.prev, l, l.next) >= 0)
|
|
1329
1334
|
return !1;
|
|
1330
1335
|
l = l.next;
|
|
1331
1336
|
}
|
|
@@ -1333,22 +1338,22 @@ function gn(e) {
|
|
|
1333
1338
|
}
|
|
1334
1339
|
function Un(e, n, t, r) {
|
|
1335
1340
|
const o = e.prev, s = e, i = e.next;
|
|
1336
|
-
if (
|
|
1341
|
+
if (D(o, s, i) >= 0)
|
|
1337
1342
|
return !1;
|
|
1338
|
-
const c = o.x, a = s.x, u = i.x, f = o.y, v = s.y, h = i.y, T = Math.min(c, a, u), l = Math.min(f, v, h), y = Math.max(c, a, u), p = Math.max(f, v, h), M =
|
|
1343
|
+
const c = o.x, a = s.x, u = i.x, f = o.y, v = s.y, h = i.y, T = Math.min(c, a, u), l = Math.min(f, v, h), y = Math.max(c, a, u), p = Math.max(f, v, h), M = Ze(T, l, n, t, r), U = Ze(y, p, n, t, r);
|
|
1339
1344
|
let x = e.prevZ, m = e.nextZ;
|
|
1340
1345
|
for (; x && x.z >= M && m && m.z <= U; ) {
|
|
1341
|
-
if (x.x >= T && x.x <= y && x.y >= l && x.y <= p && x !== o && x !== i && xe(c, f, a, v, u, h, x.x, x.y) &&
|
|
1346
|
+
if (x.x >= T && x.x <= y && x.y >= l && x.y <= p && x !== o && x !== i && xe(c, f, a, v, u, h, x.x, x.y) && D(x.prev, x, x.next) >= 0 || (x = x.prevZ, m.x >= T && m.x <= y && m.y >= l && m.y <= p && m !== o && m !== i && xe(c, f, a, v, u, h, m.x, m.y) && D(m.prev, m, m.next) >= 0))
|
|
1342
1347
|
return !1;
|
|
1343
1348
|
m = m.nextZ;
|
|
1344
1349
|
}
|
|
1345
1350
|
for (; x && x.z >= M; ) {
|
|
1346
|
-
if (x.x >= T && x.x <= y && x.y >= l && x.y <= p && x !== o && x !== i && xe(c, f, a, v, u, h, x.x, x.y) &&
|
|
1351
|
+
if (x.x >= T && x.x <= y && x.y >= l && x.y <= p && x !== o && x !== i && xe(c, f, a, v, u, h, x.x, x.y) && D(x.prev, x, x.next) >= 0)
|
|
1347
1352
|
return !1;
|
|
1348
1353
|
x = x.prevZ;
|
|
1349
1354
|
}
|
|
1350
1355
|
for (; m && m.z <= U; ) {
|
|
1351
|
-
if (m.x >= T && m.x <= y && m.y >= l && m.y <= p && m !== o && m !== i && xe(c, f, a, v, u, h, m.x, m.y) &&
|
|
1356
|
+
if (m.x >= T && m.x <= y && m.y >= l && m.y <= p && m !== o && m !== i && xe(c, f, a, v, u, h, m.x, m.y) && D(m.prev, m, m.next) >= 0)
|
|
1352
1357
|
return !1;
|
|
1353
1358
|
m = m.nextZ;
|
|
1354
1359
|
}
|
|
@@ -1360,7 +1365,7 @@ function An(e, n) {
|
|
|
1360
1365
|
const r = t.prev, o = t.next.next;
|
|
1361
1366
|
!ue(r, o) && pt(r, t, t.next, o) && pe(r, o) && pe(o, r) && (n.push(r.i, t.i, o.i), Ee(t), Ee(t.next), t = e = o), t = t.next;
|
|
1362
1367
|
} while (t !== e);
|
|
1363
|
-
return
|
|
1368
|
+
return se(t);
|
|
1364
1369
|
}
|
|
1365
1370
|
function Pn(e, n, t, r, o, s) {
|
|
1366
1371
|
let i = e;
|
|
@@ -1369,7 +1374,7 @@ function Pn(e, n, t, r, o, s) {
|
|
|
1369
1374
|
for (; c !== i.prev; ) {
|
|
1370
1375
|
if (i.i !== c.i && Xn(i, c)) {
|
|
1371
1376
|
let a = Et(i, c);
|
|
1372
|
-
i =
|
|
1377
|
+
i = se(i, i.next), a = se(a, a.next), he(i, n, t, r, o, s, 0), he(a, n, t, r, o, s, 0);
|
|
1373
1378
|
return;
|
|
1374
1379
|
}
|
|
1375
1380
|
c = c.next;
|
|
@@ -1401,7 +1406,7 @@ function bn(e, n) {
|
|
|
1401
1406
|
if (!t)
|
|
1402
1407
|
return n;
|
|
1403
1408
|
const r = Et(t, e);
|
|
1404
|
-
return
|
|
1409
|
+
return se(r, r.next), se(t, t.next);
|
|
1405
1410
|
}
|
|
1406
1411
|
function In(e, n) {
|
|
1407
1412
|
let t = n;
|
|
@@ -1434,12 +1439,12 @@ function In(e, n) {
|
|
|
1434
1439
|
return i;
|
|
1435
1440
|
}
|
|
1436
1441
|
function zn(e, n) {
|
|
1437
|
-
return
|
|
1442
|
+
return D(e.prev, e, n.prev) < 0 && D(n.next, e, e.next) < 0;
|
|
1438
1443
|
}
|
|
1439
1444
|
function Fn(e, n, t, r) {
|
|
1440
1445
|
let o = e;
|
|
1441
1446
|
do
|
|
1442
|
-
o.z === 0 && (o.z =
|
|
1447
|
+
o.z === 0 && (o.z = Ze(o.x, o.y, n, t, r)), o.prevZ = o.prev, o.nextZ = o.next, o = o.next;
|
|
1443
1448
|
while (o !== e);
|
|
1444
1449
|
o.prevZ.nextZ = null, o.prevZ = null, Sn(o);
|
|
1445
1450
|
}
|
|
@@ -1463,7 +1468,7 @@ function Sn(e) {
|
|
|
1463
1468
|
} while (n > 1);
|
|
1464
1469
|
return e;
|
|
1465
1470
|
}
|
|
1466
|
-
function
|
|
1471
|
+
function Ze(e, n, t, r, o) {
|
|
1467
1472
|
return e = (e - t) * o | 0, n = (n - r) * o | 0, e = (e | e << 8) & 16711935, e = (e | e << 4) & 252645135, e = (e | e << 2) & 858993459, e = (e | e << 1) & 1431655765, n = (n | n << 8) & 16711935, n = (n | n << 4) & 252645135, n = (n | n << 2) & 858993459, n = (n | n << 1) & 1431655765, e | n << 1;
|
|
1468
1473
|
}
|
|
1469
1474
|
function Dn(e) {
|
|
@@ -1482,17 +1487,17 @@ function xe(e, n, t, r, o, s, i, c) {
|
|
|
1482
1487
|
function Xn(e, n) {
|
|
1483
1488
|
return e.next.i !== n.i && e.prev.i !== n.i && !On(e, n) && // dones't intersect other edges
|
|
1484
1489
|
(pe(e, n) && pe(n, e) && Cn(e, n) && // locally visible
|
|
1485
|
-
(
|
|
1486
|
-
ue(e, n) &&
|
|
1490
|
+
(D(e.prev, e, n.prev) || D(e, n.prev, n)) || // does not create opposite-facing sectors
|
|
1491
|
+
ue(e, n) && D(e.prev, e, e.next) > 0 && D(n.prev, n, n.next) > 0);
|
|
1487
1492
|
}
|
|
1488
|
-
function
|
|
1493
|
+
function D(e, n, t) {
|
|
1489
1494
|
return (n.y - e.y) * (t.x - n.x) - (n.x - e.x) * (t.y - n.y);
|
|
1490
1495
|
}
|
|
1491
1496
|
function ue(e, n) {
|
|
1492
1497
|
return e.x === n.x && e.y === n.y;
|
|
1493
1498
|
}
|
|
1494
1499
|
function pt(e, n, t, r) {
|
|
1495
|
-
const o = Pe(
|
|
1500
|
+
const o = Pe(D(e, n, t)), s = Pe(D(e, n, r)), i = Pe(D(t, r, e)), c = Pe(D(t, r, n));
|
|
1496
1501
|
return !!(o !== s && i !== c || o === 0 && Ae(e, t, n) || s === 0 && Ae(e, r, n) || i === 0 && Ae(t, e, r) || c === 0 && Ae(t, n, r));
|
|
1497
1502
|
}
|
|
1498
1503
|
function Ae(e, n, t) {
|
|
@@ -1511,7 +1516,7 @@ function On(e, n) {
|
|
|
1511
1516
|
return !1;
|
|
1512
1517
|
}
|
|
1513
1518
|
function pe(e, n) {
|
|
1514
|
-
return
|
|
1519
|
+
return D(e.prev, e, e.next) < 0 ? D(e, n, e.next) >= 0 && D(e, e.prev, n) >= 0 : D(e, n, e.prev) < 0 || D(e, e.next, n) < 0;
|
|
1515
1520
|
}
|
|
1516
1521
|
function Cn(e, n) {
|
|
1517
1522
|
let t = e, r = !1;
|
|
@@ -1551,13 +1556,13 @@ function Ve(e, n, t) {
|
|
|
1551
1556
|
// indicates whether this is a steiner point
|
|
1552
1557
|
};
|
|
1553
1558
|
}
|
|
1554
|
-
function
|
|
1559
|
+
function Bn(e, n, t, r) {
|
|
1555
1560
|
let o = 0;
|
|
1556
1561
|
for (let s = n, i = t - r; s < t; s += r)
|
|
1557
1562
|
o += (e[i] - e[s]) * (e[s + 1] + e[i + 1]), i = s;
|
|
1558
1563
|
return o;
|
|
1559
1564
|
}
|
|
1560
|
-
function
|
|
1565
|
+
function Zn(e) {
|
|
1561
1566
|
const n = [], t = [], r = e[0][0].length;
|
|
1562
1567
|
let o = 0, s = 0;
|
|
1563
1568
|
for (const i of e) {
|
|
@@ -1624,12 +1629,12 @@ const yr = (e, n = {}) => {
|
|
|
1624
1629
|
color: U,
|
|
1625
1630
|
index: M
|
|
1626
1631
|
});
|
|
1627
|
-
}, u =
|
|
1632
|
+
}, u = oe(
|
|
1628
1633
|
() => n.points?.() ?? [],
|
|
1629
1634
|
(h) => {
|
|
1630
1635
|
const { vertices: T, indices: l } = jn(
|
|
1631
1636
|
h.map(
|
|
1632
|
-
(y) => y.map((p) => p.map((M) => te(
|
|
1637
|
+
(y) => y.map((p) => p.map((M) => te(S(M)))).filter((p) => p.length > 0)
|
|
1633
1638
|
).filter((y) => y.length > 0)
|
|
1634
1639
|
);
|
|
1635
1640
|
o.set(T), s.set(l), r = l.length;
|
|
@@ -1669,7 +1674,7 @@ const yr = (e, n = {}) => {
|
|
|
1669
1674
|
}, jn = (e) => {
|
|
1670
1675
|
const [n, t] = e.reduce(
|
|
1671
1676
|
([r, o, s], i) => {
|
|
1672
|
-
const c =
|
|
1677
|
+
const c = Zn(i);
|
|
1673
1678
|
return r.push(...c.vertices), o.push(
|
|
1674
1679
|
...Mn(c.vertices, c.holes, c.dimensions).map((a) => a + s)
|
|
1675
1680
|
), s += c.vertices.length / c.dimensions, [r, o, s];
|
|
@@ -1861,7 +1866,7 @@ const Se = (e) => {
|
|
|
1861
1866
|
delete: (o) => n.delete(t(o)),
|
|
1862
1867
|
clear: () => n.clear()
|
|
1863
1868
|
};
|
|
1864
|
-
}, kn = 15,
|
|
1869
|
+
}, kn = 15, ie = 256, $n = ({
|
|
1865
1870
|
gl: e,
|
|
1866
1871
|
terrainCache: n
|
|
1867
1872
|
}) => {
|
|
@@ -1877,18 +1882,18 @@ const Se = (e) => {
|
|
|
1877
1882
|
const { texture: h, downsample: T } = v, l = 2 ** T, y = [Math.floor(a / l), Math.floor(u / l), f - T], p = t.get(y);
|
|
1878
1883
|
if (p)
|
|
1879
1884
|
return { buffer: p, downsample: T };
|
|
1880
|
-
const M = new Uint8Array(4 *
|
|
1881
|
-
return e.bindFramebuffer(e.FRAMEBUFFER, o), h.attach(), e.readPixels(0, 0,
|
|
1885
|
+
const M = new Uint8Array(4 * ie * ie);
|
|
1886
|
+
return e.bindFramebuffer(e.FRAMEBUFFER, o), h.attach(), e.readPixels(0, 0, ie, ie, e.RGBA, e.UNSIGNED_BYTE, M), e.bindFramebuffer(e.FRAMEBUFFER, null), t.set(y, M), { buffer: M, downsample: T };
|
|
1882
1887
|
};
|
|
1883
1888
|
return { get: ([a = 0, u = 0], f = kn) => {
|
|
1884
|
-
const v = 2 ** f, h =
|
|
1889
|
+
const v = 2 ** f, h = S([a, u, 0]).map((E) => E * v), [T = 0, l = 0] = h.map((E) => Math.floor(E % v));
|
|
1885
1890
|
let [y = 0, p = 0] = h.map((E) => E % 1);
|
|
1886
1891
|
const M = s([T, l, f]);
|
|
1887
1892
|
if (!M)
|
|
1888
1893
|
return 0;
|
|
1889
1894
|
const { buffer: U, downsample: x } = M, m = 2 ** x;
|
|
1890
1895
|
[y, p] = [(T % m + y) / m, (l % m + p) / m];
|
|
1891
|
-
const g = 4 *
|
|
1896
|
+
const g = 4 * ie * Math.floor(p * ie) + 4 * Math.floor(y * ie), [d = 0, w = 0, _ = 0] = U.slice(g, g + 4);
|
|
1892
1897
|
return (d * 65536 + w * 256 + _) / 10 - 1e4;
|
|
1893
1898
|
}, dispose: () => {
|
|
1894
1899
|
e.deleteFramebuffer(o);
|
|
@@ -1899,12 +1904,15 @@ var Hn = `#version 300 es
|
|
|
1899
1904
|
precision highp float;
|
|
1900
1905
|
|
|
1901
1906
|
uniform sampler2D imagery;
|
|
1907
|
+
uniform float saturation;
|
|
1902
1908
|
in vec2 uv;
|
|
1903
1909
|
in vec4 color_out;
|
|
1904
1910
|
out vec4 result;
|
|
1905
1911
|
|
|
1906
1912
|
void main(void) {
|
|
1907
|
-
|
|
1913
|
+
vec4 texture_color = texture(imagery, uv);
|
|
1914
|
+
float luminance = dot(texture_color.rgb, vec3(0.299, 0.587, 0.114));
|
|
1915
|
+
result = vec4(mix(vec3(luminance), texture_color.rgb, saturation), texture_color.a) * color_out;
|
|
1908
1916
|
}`;
|
|
1909
1917
|
const it = ({
|
|
1910
1918
|
gl: e,
|
|
@@ -1971,7 +1979,7 @@ const it = ({
|
|
|
1971
1979
|
ut([i + T, c + l, a], v),
|
|
1972
1980
|
v
|
|
1973
1981
|
);
|
|
1974
|
-
f[h] =
|
|
1982
|
+
f[h] = S([y, p, e.get([y, p], u)]);
|
|
1975
1983
|
}
|
|
1976
1984
|
return n.set(o, f), f;
|
|
1977
1985
|
} };
|
|
@@ -2034,7 +2042,7 @@ const V = 34, Kn = 22, qn = ae(0, V).flatMap(
|
|
|
2034
2042
|
"EXT_texture_filter_anisotropic"
|
|
2035
2043
|
), i = s ? t.getParameter(
|
|
2036
2044
|
s.MAX_TEXTURE_MAX_ANISOTROPY_EXT
|
|
2037
|
-
) : void 0, c =
|
|
2045
|
+
) : void 0, c = oe(
|
|
2038
2046
|
() => n.imageryUrl?.() ?? "",
|
|
2039
2047
|
(R) => {
|
|
2040
2048
|
r?.dispose(), r = it({
|
|
@@ -2072,16 +2080,16 @@ const V = 34, Kn = 22, qn = ae(0, V).flatMap(
|
|
|
2072
2080
|
const b = E.pop();
|
|
2073
2081
|
if (!b)
|
|
2074
2082
|
break;
|
|
2075
|
-
const [C = 0,
|
|
2083
|
+
const [C = 0, X = 0, F = 0] = b, j = h.get(b).map((Y, H) => P(Y, U[H])).map((Y, H) => N(Y, x[H]));
|
|
2076
2084
|
if (nr(j))
|
|
2077
2085
|
continue;
|
|
2078
2086
|
rr(
|
|
2079
|
-
or(j).map((Y,
|
|
2080
|
-
) > I &&
|
|
2081
|
-
[2 * C, 2 *
|
|
2082
|
-
[2 * C + 1, 2 *
|
|
2083
|
-
[2 * C, 2 *
|
|
2084
|
-
[2 * C + 1, 2 *
|
|
2087
|
+
or(j).map((Y, H) => L(Y, m[H]))
|
|
2088
|
+
) > I && F < Kn ? E.push(
|
|
2089
|
+
[2 * C, 2 * X, F + 1],
|
|
2090
|
+
[2 * C + 1, 2 * X, F + 1],
|
|
2091
|
+
[2 * C, 2 * X + 1, F + 1],
|
|
2092
|
+
[2 * C + 1, 2 * X + 1, F + 1]
|
|
2085
2093
|
) : A.push(b);
|
|
2086
2094
|
}
|
|
2087
2095
|
return A;
|
|
@@ -2090,25 +2098,26 @@ const V = 34, Kn = 22, qn = ae(0, V).flatMap(
|
|
|
2090
2098
|
depth: E = !1,
|
|
2091
2099
|
index: A = 0
|
|
2092
2100
|
}) => {
|
|
2093
|
-
const P = n.color?.() ?? [1, 1, 1, 1];
|
|
2101
|
+
const P = n.color?.() ?? [1, 1, 1, 1], N = n.saturation?.() ?? 1;
|
|
2094
2102
|
if (c(), Te(t, E, n))
|
|
2095
2103
|
return;
|
|
2096
|
-
const
|
|
2097
|
-
for (const F of
|
|
2098
|
-
const
|
|
2099
|
-
if (!E && !
|
|
2104
|
+
const L = E ? p : y, { projection: I, modelView: b, camera: C } = R, X = g(R);
|
|
2105
|
+
for (const F of X) {
|
|
2106
|
+
const B = E ? void 0 : o?.get(F), j = f.get(F);
|
|
2107
|
+
if (!E && !B || !j)
|
|
2100
2108
|
continue;
|
|
2101
|
-
const { texture:
|
|
2102
|
-
|
|
2103
|
-
projection:
|
|
2104
|
-
modelView:
|
|
2105
|
-
camera: te(
|
|
2109
|
+
const { texture: $, downsample: q } = j, { texture: Y = $, downsample: H = 0 } = B ?? {};
|
|
2110
|
+
L.execute({
|
|
2111
|
+
projection: I,
|
|
2112
|
+
modelView: b,
|
|
2113
|
+
camera: te(C),
|
|
2106
2114
|
xyz: F,
|
|
2107
|
-
imagery:
|
|
2108
|
-
terrain:
|
|
2109
|
-
downsampleImagery:
|
|
2110
|
-
downsampleTerrain:
|
|
2115
|
+
imagery: Y,
|
|
2116
|
+
terrain: $,
|
|
2117
|
+
downsampleImagery: H,
|
|
2118
|
+
downsampleTerrain: q,
|
|
2111
2119
|
color: P,
|
|
2120
|
+
saturation: N,
|
|
2112
2121
|
index: A
|
|
2113
2122
|
});
|
|
2114
2123
|
}
|
|
@@ -2126,20 +2135,21 @@ const V = 34, Kn = 22, qn = ae(0, V).flatMap(
|
|
|
2126
2135
|
const a = n.get({
|
|
2127
2136
|
vertexSource: Jn,
|
|
2128
2137
|
fragmentSource: c ? ye : Hn
|
|
2129
|
-
}), u = a.attribute3f("uvw", t), f = a.uniformMatrix4f("projection"), v = a.uniformMatrix4f("model_view"), h = a.uniform1i("imagery"), T = a.uniform1i("terrain"), l = a.uniform1i("downsample_imagery"), y = a.uniform1i("downsample_terrain"), p = a.uniform4f("color"), M = a.uniform3i("xyz"),
|
|
2138
|
+
}), u = a.attribute3f("uvw", t), f = a.uniformMatrix4f("projection"), v = a.uniformMatrix4f("model_view"), h = a.uniform1i("imagery"), T = a.uniform1i("terrain"), l = a.uniform1i("downsample_imagery"), y = a.uniform1i("downsample_terrain"), p = a.uniform4f("color"), M = a.uniform1f("saturation"), U = a.uniform3i("xyz"), x = a.uniform3i("camera"), m = a.uniform1i("index");
|
|
2130
2139
|
return { execute: ({
|
|
2131
|
-
projection:
|
|
2132
|
-
modelView:
|
|
2133
|
-
camera:
|
|
2134
|
-
xyz:
|
|
2135
|
-
imagery:
|
|
2136
|
-
terrain:
|
|
2137
|
-
downsampleImagery:
|
|
2138
|
-
downsampleTerrain:
|
|
2139
|
-
color:
|
|
2140
|
-
|
|
2140
|
+
projection: d,
|
|
2141
|
+
modelView: w,
|
|
2142
|
+
camera: _,
|
|
2143
|
+
xyz: R,
|
|
2144
|
+
imagery: E,
|
|
2145
|
+
terrain: A,
|
|
2146
|
+
downsampleImagery: P,
|
|
2147
|
+
downsampleTerrain: N,
|
|
2148
|
+
color: L,
|
|
2149
|
+
saturation: I,
|
|
2150
|
+
index: b
|
|
2141
2151
|
}) => {
|
|
2142
|
-
a.use(), u.use(), f.set(
|
|
2152
|
+
a.use(), u.use(), f.set(d), v.set(w), U.set(R), x.set(_), l.set(P), y.set(N), p.set(L), M.set(I), m.set(b), e.activeTexture(e.TEXTURE0), h.set(0), E.use(), e.activeTexture(e.TEXTURE1), T.set(1), A.use(), r.use(), e.drawElements(e.TRIANGLES, V * V * 2 * 3, e.UNSIGNED_SHORT, 0);
|
|
2143
2153
|
} };
|
|
2144
2154
|
}, s = o(), i = o(!0);
|
|
2145
2155
|
return { renderProgram: s, depthProgram: i };
|
|
@@ -2188,7 +2198,7 @@ const V = 34, Kn = 22, qn = ae(0, V).flatMap(
|
|
|
2188
2198
|
}
|
|
2189
2199
|
return s;
|
|
2190
2200
|
};
|
|
2191
|
-
},
|
|
2201
|
+
}, oe = (e, n) => {
|
|
2192
2202
|
let t;
|
|
2193
2203
|
return () => {
|
|
2194
2204
|
const r = e();
|
|
@@ -2219,16 +2229,16 @@ const V = 34, Kn = 22, qn = ae(0, V).flatMap(
|
|
|
2219
2229
|
onMouseMove: a
|
|
2220
2230
|
};
|
|
2221
2231
|
}, Re = 8, Me = 1e-3;
|
|
2222
|
-
let
|
|
2232
|
+
let Q = performance.now();
|
|
2223
2233
|
const _t = () => {
|
|
2224
|
-
requestAnimationFrame(_t),
|
|
2234
|
+
requestAnimationFrame(_t), Q = performance.now();
|
|
2225
2235
|
};
|
|
2226
2236
|
_t();
|
|
2227
2237
|
const le = (e) => (n) => {
|
|
2228
2238
|
let t, r;
|
|
2229
2239
|
return () => {
|
|
2230
|
-
const o = (
|
|
2231
|
-
r =
|
|
2240
|
+
const o = (Q - (r ?? Q)) / 1e3;
|
|
2241
|
+
r = Q, o > 1 && (t = void 0);
|
|
2232
2242
|
const s = n();
|
|
2233
2243
|
return t = t ?? s, t = e({ time: o, current: t, target: s }), t;
|
|
2234
2244
|
};
|
|
@@ -2242,7 +2252,7 @@ const le = (e) => (n) => {
|
|
|
2242
2252
|
cn(ce(), r, t),
|
|
2243
2253
|
1 - Math.exp(-Re * n)
|
|
2244
2254
|
)
|
|
2245
|
-
), t))(() => Kt(e())), gr = (e) => le(({ time: n, current: t, target: r }) => (Gt(t, r) < Me ? Ct(t, r) : t =
|
|
2255
|
+
), t))(() => Kt(e())), gr = (e) => le(({ time: n, current: t, target: r }) => (Gt(t, r) < Me ? Ct(t, r) : t = Bt(
|
|
2246
2256
|
re(),
|
|
2247
2257
|
t,
|
|
2248
2258
|
Vt(
|
|
@@ -2251,14 +2261,14 @@ const le = (e) => (n) => {
|
|
|
2251
2261
|
1 - Math.exp(-Re * n)
|
|
2252
2262
|
)
|
|
2253
2263
|
), t))(() => at(e())), Ur = (e) => le(({ time: n, current: t, target: r }) => {
|
|
2254
|
-
const o = _e(
|
|
2255
|
-
return o *
|
|
2264
|
+
const o = _e(S(t), S(r));
|
|
2265
|
+
return o * J < Me ? Ne(t, r) : o > 1e5 / J ? t = Ke(r) : t = ee(
|
|
2256
2266
|
We(
|
|
2257
2267
|
z(),
|
|
2258
|
-
|
|
2268
|
+
S(t),
|
|
2259
2269
|
je(
|
|
2260
2270
|
z(),
|
|
2261
|
-
Fe(z(),
|
|
2271
|
+
Fe(z(), S(r), S(t)),
|
|
2262
2272
|
1 - Math.exp(-Re * n)
|
|
2263
2273
|
)
|
|
2264
2274
|
)
|
|
@@ -2268,22 +2278,22 @@ const le = (e) => (n) => {
|
|
|
2268
2278
|
const o = z(), s = z(), i = z(), c = z(), a = z(), u = z();
|
|
2269
2279
|
let f = 0, v = 0;
|
|
2270
2280
|
return () => {
|
|
2271
|
-
if (
|
|
2281
|
+
if (Q === f)
|
|
2272
2282
|
return ee(o);
|
|
2273
2283
|
const h = e();
|
|
2274
|
-
if (!t ||
|
|
2275
|
-
return t = !0, r = h, f =
|
|
2284
|
+
if (!t || Q - f > 1e3 || _e(o, i) > 1e3 / J)
|
|
2285
|
+
return t = !0, r = h, f = Q, v = Q, Ne(o, S(r)), fe(s, 0, 0, 0), Ne(i, o), fe(c, 0, 0, 0), ee(o);
|
|
2276
2286
|
if (r !== h) {
|
|
2277
2287
|
r = h;
|
|
2278
|
-
const p =
|
|
2288
|
+
const p = S(h);
|
|
2279
2289
|
je(
|
|
2280
2290
|
c,
|
|
2281
2291
|
Ce(c, p, i),
|
|
2282
|
-
1e3 / (
|
|
2283
|
-
), Ne(i, p), v =
|
|
2292
|
+
1e3 / (Q - v)
|
|
2293
|
+
), Ne(i, p), v = Q;
|
|
2284
2294
|
}
|
|
2285
|
-
const T = (
|
|
2286
|
-
return ge(o, o, s, T), ge(u, i, c, T), Ce(a, u, o), ge(o, o, a, l), ge(s, s, a, y / T), f =
|
|
2295
|
+
const T = (Q - f) / 1e3, l = 1 - Math.exp(-T / 0.5), y = l * (2 - l) / 1e3;
|
|
2296
|
+
return ge(o, o, s, T), ge(u, i, c, T), Ce(a, u, o), ge(o, o, a, l), ge(s, s, a, y / T), f = Q, ee(o);
|
|
2287
2297
|
};
|
|
2288
2298
|
}, cr = (e) => {
|
|
2289
2299
|
const n = ar(() => lt(e()));
|
|
@@ -2291,7 +2301,7 @@ const le = (e) => (n) => {
|
|
|
2291
2301
|
}, ar = (e) => le(({ time: n, current: t, target: r }) => {
|
|
2292
2302
|
let o = $t(t, r);
|
|
2293
2303
|
return isNaN(o) && (o = 0), t = be(
|
|
2294
|
-
|
|
2304
|
+
Be(),
|
|
2295
2305
|
t,
|
|
2296
2306
|
r,
|
|
2297
2307
|
Re * Math.max(0.5, o) * n
|
|
@@ -2299,20 +2309,20 @@ const le = (e) => (n) => {
|
|
|
2299
2309
|
})(() => Qt(e())), fr = 8, Pr = (e) => {
|
|
2300
2310
|
const n = cr(() => e().orientation), t = sr(() => e().offset), r = ir(() => e().fieldOfView);
|
|
2301
2311
|
return le(({ time: s, current: i, target: c }) => {
|
|
2302
|
-
let a = _e(
|
|
2312
|
+
let a = _e(S(i.target), S(c.target)) * J;
|
|
2303
2313
|
a < 1e3 && (a = 0);
|
|
2304
2314
|
const u = Math.max(c.distance, a), f = 1 - Math.exp(-fr * s), v = Math.exp(
|
|
2305
2315
|
Math.log(i.distance) + (Math.log(u) - Math.log(i.distance)) * f
|
|
2306
2316
|
), h = i.distance > a ? 1 : i.distance / a, T = ee(
|
|
2307
2317
|
We(
|
|
2308
2318
|
z(),
|
|
2309
|
-
|
|
2319
|
+
S(i.target),
|
|
2310
2320
|
je(
|
|
2311
2321
|
z(),
|
|
2312
2322
|
Fe(
|
|
2313
2323
|
z(),
|
|
2314
|
-
|
|
2315
|
-
|
|
2324
|
+
S(c.target),
|
|
2325
|
+
S(i.target)
|
|
2316
2326
|
),
|
|
2317
2327
|
f * h
|
|
2318
2328
|
)
|
|
@@ -2475,13 +2485,13 @@ const Lr = ({ gl: e }, n) => {
|
|
|
2475
2485
|
P * devicePixelRatio,
|
|
2476
2486
|
N * devicePixelRatio
|
|
2477
2487
|
]), [b = 0, C = 0] = _(d);
|
|
2478
|
-
let
|
|
2479
|
-
const
|
|
2488
|
+
let X = ee(E(R([b, C, L, 1])));
|
|
2489
|
+
const F = I === 0 ? void 0 : A ?? ze(r())[I - 1];
|
|
2480
2490
|
if (w) {
|
|
2481
|
-
const [
|
|
2482
|
-
|
|
2491
|
+
const [B = 0, j = 0] = X, $ = A?.elevation([B, j]) ?? 0;
|
|
2492
|
+
X = [B, j, $];
|
|
2483
2493
|
}
|
|
2484
|
-
return { point: d, position:
|
|
2494
|
+
return { point: d, position: X, layer: F };
|
|
2485
2495
|
}, x = lr(e, {
|
|
2486
2496
|
view: t,
|
|
2487
2497
|
screen: () => i,
|
|
@@ -2504,9 +2514,9 @@ const Lr = ({ gl: e }, n) => {
|
|
|
2504
2514
|
};
|
|
2505
2515
|
}, ze = (e, n = []) => e.reduce((t, r) => (ze(r.children ?? [], t), t.push(r), t), n);
|
|
2506
2516
|
export {
|
|
2507
|
-
|
|
2517
|
+
oe as cache,
|
|
2508
2518
|
Mr as cacheAll,
|
|
2509
|
-
|
|
2519
|
+
J as circumference,
|
|
2510
2520
|
vr as createBillboardLayer,
|
|
2511
2521
|
xr as createContainer,
|
|
2512
2522
|
mr as createContext,
|
|
@@ -2534,7 +2544,7 @@ export {
|
|
|
2534
2544
|
mt as defaultView,
|
|
2535
2545
|
an as degrees,
|
|
2536
2546
|
ee as geodetic,
|
|
2537
|
-
|
|
2547
|
+
S as mercator,
|
|
2538
2548
|
fn as quadratic,
|
|
2539
2549
|
Ie as radians,
|
|
2540
2550
|
ae as range,
|