You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
4.5 KiB
138 lines
4.5 KiB
define([
|
|
'./Matrix2-f2da41d4',
|
|
'./combine-8ce3f24b',
|
|
'./AttributeCompression-0af3c035',
|
|
'./ComponentDatatype-17b06483',
|
|
'./IndexDatatype-b10faa0b',
|
|
'./createTaskProcessorWorker',
|
|
'./RuntimeError-ffe03243',
|
|
'./when-229515d6',
|
|
'./WebGLConstants-4e26b85a',
|
|
], function (a, e, r, n, t, i, s, o, f) {
|
|
'use strict';
|
|
var u = 32767,
|
|
c = new a.Cartographic(),
|
|
p = new a.Cartesian3();
|
|
var d = new a.Rectangle(),
|
|
b = new a.Ellipsoid(),
|
|
C = new a.Cartesian3(),
|
|
l = { min: void 0, max: void 0 };
|
|
var w = new a.Cartesian3(),
|
|
h = new a.Cartesian3(),
|
|
v = new a.Cartesian3(),
|
|
y = new a.Cartesian3(),
|
|
k = new a.Cartesian3();
|
|
return i(function (i, s) {
|
|
var o = new Uint16Array(i.positions),
|
|
f = new Uint16Array(i.widths),
|
|
m = new Uint32Array(i.counts),
|
|
A = new Uint16Array(i.batchIds);
|
|
!(function (e) {
|
|
e = new Float64Array(e);
|
|
var r = 0;
|
|
(l.min = e[r++]),
|
|
(l.max = e[r++]),
|
|
a.Rectangle.unpack(e, r, d),
|
|
(r += a.Rectangle.packedLength),
|
|
a.Ellipsoid.unpack(e, r, b),
|
|
(r += a.Ellipsoid.packedLength),
|
|
a.Cartesian3.unpack(e, r, C);
|
|
})(i.packedBuffer);
|
|
var g,
|
|
x = b,
|
|
D = C,
|
|
E = (function (e, t, i, s, o) {
|
|
var f = e.length / 3,
|
|
d = e.subarray(0, f),
|
|
b = e.subarray(f, 2 * f),
|
|
C = e.subarray(2 * f, 3 * f);
|
|
r.AttributeCompression.zigZagDeltaDecode(d, b, C);
|
|
for (var l = new Float64Array(e.length), w = 0; w < f; ++w) {
|
|
var h = d[w],
|
|
v = b[w],
|
|
y = C[w],
|
|
k = n.CesiumMath.lerp(t.west, t.east, h / u),
|
|
m = n.CesiumMath.lerp(t.south, t.north, v / u),
|
|
A = n.CesiumMath.lerp(i, s, y / u),
|
|
g = a.Cartographic.fromRadians(k, m, A, c),
|
|
x = o.cartographicToCartesian(g, p);
|
|
a.Cartesian3.pack(x, l, 3 * w);
|
|
}
|
|
return l;
|
|
})(o, d, l.min, l.max, x),
|
|
I = E.length / 3,
|
|
P = 4 * I - 4,
|
|
U = new Float32Array(3 * P),
|
|
R = new Float32Array(3 * P),
|
|
T = new Float32Array(3 * P),
|
|
F = new Float32Array(2 * P),
|
|
N = new Uint16Array(P),
|
|
M = 0,
|
|
L = 0,
|
|
S = 0,
|
|
_ = 0,
|
|
G = m.length;
|
|
for (g = 0; g < G; ++g) {
|
|
for (var W = m[g], B = f[g], O = A[g], z = 0; z < W; ++z) {
|
|
var H;
|
|
if (0 === z) {
|
|
var Y = a.Cartesian3.unpack(E, 3 * _, w),
|
|
Z = a.Cartesian3.unpack(E, 3 * (_ + 1), h);
|
|
(H = a.Cartesian3.subtract(Y, Z, v)), a.Cartesian3.add(Y, H, H);
|
|
} else H = a.Cartesian3.unpack(E, 3 * (_ + z - 1), v);
|
|
var j,
|
|
q = a.Cartesian3.unpack(E, 3 * (_ + z), y);
|
|
if (z === W - 1) {
|
|
var J = a.Cartesian3.unpack(E, 3 * (_ + W - 1), w),
|
|
K = a.Cartesian3.unpack(E, 3 * (_ + W - 2), h);
|
|
(j = a.Cartesian3.subtract(J, K, k)), a.Cartesian3.add(J, j, j);
|
|
} else j = a.Cartesian3.unpack(E, 3 * (_ + z + 1), k);
|
|
a.Cartesian3.subtract(H, D, H),
|
|
a.Cartesian3.subtract(q, D, q),
|
|
a.Cartesian3.subtract(j, D, j);
|
|
for (var Q = z === W - 1 ? 2 : 4, V = 0 === z ? 2 : 0; V < Q; ++V) {
|
|
a.Cartesian3.pack(q, U, M),
|
|
a.Cartesian3.pack(H, R, M),
|
|
a.Cartesian3.pack(j, T, M),
|
|
(M += 3);
|
|
var X = V - 2 < 0 ? -1 : 1;
|
|
(F[L++] = (V % 2) * 2 - 1), (F[L++] = X * B), (N[S++] = O);
|
|
}
|
|
}
|
|
_ += W;
|
|
}
|
|
var $ = t.IndexDatatype.createTypedArray(P, 6 * I - 6),
|
|
aa = 0,
|
|
ea = 0;
|
|
for (G = I - 1, g = 0; g < G; ++g)
|
|
($[ea++] = aa),
|
|
($[ea++] = aa + 2),
|
|
($[ea++] = aa + 1),
|
|
($[ea++] = aa + 1),
|
|
($[ea++] = aa + 2),
|
|
($[ea++] = aa + 3),
|
|
(aa += 4);
|
|
s.push(U.buffer, R.buffer, T.buffer), s.push(F.buffer, N.buffer, $.buffer);
|
|
var ra = {
|
|
indexDatatype:
|
|
2 === $.BYTES_PER_ELEMENT ? t.IndexDatatype.UNSIGNED_SHORT : t.IndexDatatype.UNSIGNED_INT,
|
|
currentPositions: U.buffer,
|
|
previousPositions: R.buffer,
|
|
nextPositions: T.buffer,
|
|
expandAndWidth: F.buffer,
|
|
batchIds: N.buffer,
|
|
indices: $.buffer,
|
|
};
|
|
if (i.keepDecodedPositions) {
|
|
var na = (function (a) {
|
|
for (var e = a.length, r = new Uint32Array(e + 1), n = 0, t = 0; t < e; ++t)
|
|
(r[t] = n), (n += a[t]);
|
|
return (r[e] = n), r;
|
|
})(m);
|
|
s.push(E.buffer, na.buffer),
|
|
(ra = e.combine(ra, { decodedPositions: E.buffer, decodedPositionOffsets: na.buffer }));
|
|
}
|
|
return ra;
|
|
});
|
|
});
|