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.
687 lines
20 KiB
687 lines
20 KiB
define([
|
|
'exports',
|
|
'./Matrix2-f2da41d4',
|
|
'./RuntimeError-ffe03243',
|
|
'./ComponentDatatype-17b06483',
|
|
'./when-229515d6',
|
|
'./EllipsoidRhumbLine-afd6cd20',
|
|
'./GeometryAttribute-80036e07',
|
|
'./WebGLConstants-4e26b85a',
|
|
], function (e, t, n, r, a, i, u, x) {
|
|
'use strict';
|
|
var o = p,
|
|
s = p;
|
|
function p(e, t, n) {
|
|
n = n || 2;
|
|
var r,
|
|
a,
|
|
i,
|
|
u,
|
|
x,
|
|
o,
|
|
s,
|
|
p = t && t.length,
|
|
v = p ? t[0] * n : e.length,
|
|
y = h(e, 0, v, n, !0),
|
|
c = [];
|
|
if (!y || y.next === y.prev) return c;
|
|
if (
|
|
(p &&
|
|
(y = (function (e, t, n, r) {
|
|
var a,
|
|
i,
|
|
u,
|
|
x = [];
|
|
for (a = 0, i = t.length; a < i; a++)
|
|
(u = h(e, t[a] * r, a < i - 1 ? t[a + 1] * r : e.length, r, !1)) === u.next &&
|
|
(u.steiner = !0),
|
|
x.push(b(u));
|
|
for (x.sort(m), a = 0; a < x.length; a++) n = l((n = C(x[a], n)), n.next);
|
|
return n;
|
|
})(e, t, y, n)),
|
|
e.length > 80 * n)
|
|
) {
|
|
(r = i = e[0]), (a = u = e[1]);
|
|
for (var d = n; d < v; d += n)
|
|
(x = e[d]) < r && (r = x),
|
|
(o = e[d + 1]) < a && (a = o),
|
|
x > i && (i = x),
|
|
o > u && (u = o);
|
|
s = 0 !== (s = Math.max(i - r, u - a)) ? 1 / s : 0;
|
|
}
|
|
return f(y, c, n, r, a, s), c;
|
|
}
|
|
function h(e, t, n, r, a) {
|
|
var i, u;
|
|
if (a === W(e, t, n, r) > 0) for (i = t; i < n; i += r) u = G(i, e[i], e[i + 1], u);
|
|
else for (i = n - r; i >= t; i -= r) u = G(i, e[i], e[i + 1], u);
|
|
return u && S(u, u.next) && (O(u), (u = u.next)), u;
|
|
}
|
|
function l(e, t) {
|
|
if (!e) return e;
|
|
t || (t = e);
|
|
var n,
|
|
r = e;
|
|
do {
|
|
if (((n = !1), r.steiner || (!S(r, r.next) && 0 !== Z(r.prev, r, r.next)))) r = r.next;
|
|
else {
|
|
if ((O(r), (r = t = r.prev) === r.next)) break;
|
|
n = !0;
|
|
}
|
|
} while (n || r !== t);
|
|
return t;
|
|
}
|
|
function f(e, t, n, r, a, i, u) {
|
|
if (e) {
|
|
!u &&
|
|
i &&
|
|
(function (e, t, n, r) {
|
|
var a = e;
|
|
do {
|
|
null === a.z && (a.z = w(a.x, a.y, t, n, r)),
|
|
(a.prevZ = a.prev),
|
|
(a.nextZ = a.next),
|
|
(a = a.next);
|
|
} while (a !== e);
|
|
(a.prevZ.nextZ = null),
|
|
(a.prevZ = null),
|
|
(function (e) {
|
|
var t,
|
|
n,
|
|
r,
|
|
a,
|
|
i,
|
|
u,
|
|
x,
|
|
o,
|
|
s = 1;
|
|
do {
|
|
for (n = e, e = null, i = null, u = 0; n; ) {
|
|
for (u++, r = n, x = 0, t = 0; t < s && (x++, (r = r.nextZ)); t++);
|
|
for (o = s; x > 0 || (o > 0 && r); )
|
|
0 !== x && (0 === o || !r || n.z <= r.z)
|
|
? ((a = n), (n = n.nextZ), x--)
|
|
: ((a = r), (r = r.nextZ), o--),
|
|
i ? (i.nextZ = a) : (e = a),
|
|
(a.prevZ = i),
|
|
(i = a);
|
|
n = r;
|
|
}
|
|
(i.nextZ = null), (s *= 2);
|
|
} while (u > 1);
|
|
})(a);
|
|
})(e, r, a, i);
|
|
for (var x, o, s = e; e.prev !== e.next; )
|
|
if (((x = e.prev), (o = e.next), i ? y(e, r, a, i) : v(e)))
|
|
t.push(x.i / n), t.push(e.i / n), t.push(o.i / n), O(e), (e = o.next), (s = o.next);
|
|
else if ((e = o) === s) {
|
|
u
|
|
? 1 === u
|
|
? f((e = c(l(e), t, n)), t, n, r, a, i, 2)
|
|
: 2 === u && d(e, t, n, r, a, i)
|
|
: f(l(e), t, n, r, a, i, 1);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
function v(e) {
|
|
var t = e.prev,
|
|
n = e,
|
|
r = e.next;
|
|
if (Z(t, n, r) >= 0) return !1;
|
|
for (var a = e.next.next; a !== e.prev; ) {
|
|
if (E(t.x, t.y, n.x, n.y, r.x, r.y, a.x, a.y) && Z(a.prev, a, a.next) >= 0) return !1;
|
|
a = a.next;
|
|
}
|
|
return !0;
|
|
}
|
|
function y(e, t, n, r) {
|
|
var a = e.prev,
|
|
i = e,
|
|
u = e.next;
|
|
if (Z(a, i, u) >= 0) return !1;
|
|
for (
|
|
var x = a.x < i.x ? (a.x < u.x ? a.x : u.x) : i.x < u.x ? i.x : u.x,
|
|
o = a.y < i.y ? (a.y < u.y ? a.y : u.y) : i.y < u.y ? i.y : u.y,
|
|
s = a.x > i.x ? (a.x > u.x ? a.x : u.x) : i.x > u.x ? i.x : u.x,
|
|
p = a.y > i.y ? (a.y > u.y ? a.y : u.y) : i.y > u.y ? i.y : u.y,
|
|
h = w(x, o, t, n, r),
|
|
l = w(s, p, t, n, r),
|
|
f = e.prevZ,
|
|
v = e.nextZ;
|
|
f && f.z >= h && v && v.z <= l;
|
|
|
|
) {
|
|
if (
|
|
f !== e.prev &&
|
|
f !== e.next &&
|
|
E(a.x, a.y, i.x, i.y, u.x, u.y, f.x, f.y) &&
|
|
Z(f.prev, f, f.next) >= 0
|
|
)
|
|
return !1;
|
|
if (
|
|
((f = f.prevZ),
|
|
v !== e.prev &&
|
|
v !== e.next &&
|
|
E(a.x, a.y, i.x, i.y, u.x, u.y, v.x, v.y) &&
|
|
Z(v.prev, v, v.next) >= 0)
|
|
)
|
|
return !1;
|
|
v = v.nextZ;
|
|
}
|
|
for (; f && f.z >= h; ) {
|
|
if (
|
|
f !== e.prev &&
|
|
f !== e.next &&
|
|
E(a.x, a.y, i.x, i.y, u.x, u.y, f.x, f.y) &&
|
|
Z(f.prev, f, f.next) >= 0
|
|
)
|
|
return !1;
|
|
f = f.prevZ;
|
|
}
|
|
for (; v && v.z <= l; ) {
|
|
if (
|
|
v !== e.prev &&
|
|
v !== e.next &&
|
|
E(a.x, a.y, i.x, i.y, u.x, u.y, v.x, v.y) &&
|
|
Z(v.prev, v, v.next) >= 0
|
|
)
|
|
return !1;
|
|
v = v.nextZ;
|
|
}
|
|
return !0;
|
|
}
|
|
function c(e, t, n) {
|
|
var r = e;
|
|
do {
|
|
var a = r.prev,
|
|
i = r.next.next;
|
|
!S(a, i) &&
|
|
A(a, r, r.next, i) &&
|
|
L(a, i) &&
|
|
L(i, a) &&
|
|
(t.push(a.i / n), t.push(r.i / n), t.push(i.i / n), O(r), O(r.next), (r = e = i)),
|
|
(r = r.next);
|
|
} while (r !== e);
|
|
return l(r);
|
|
}
|
|
function d(e, t, n, r, a, i) {
|
|
var u = e;
|
|
do {
|
|
for (var x = u.next.next; x !== u.prev; ) {
|
|
if (u.i !== x.i && M(u, x)) {
|
|
var o = D(u, x);
|
|
return (
|
|
(u = l(u, u.next)), (o = l(o, o.next)), f(u, t, n, r, a, i), void f(o, t, n, r, a, i)
|
|
);
|
|
}
|
|
x = x.next;
|
|
}
|
|
u = u.next;
|
|
} while (u !== e);
|
|
}
|
|
function m(e, t) {
|
|
return e.x - t.x;
|
|
}
|
|
function C(e, t) {
|
|
var n = (function (e, t) {
|
|
var n,
|
|
r = t,
|
|
a = e.x,
|
|
i = e.y,
|
|
u = -1 / 0;
|
|
do {
|
|
if (i <= r.y && i >= r.next.y && r.next.y !== r.y) {
|
|
var x = r.x + ((i - r.y) * (r.next.x - r.x)) / (r.next.y - r.y);
|
|
if (x <= a && x > u) {
|
|
if (((u = x), x === a)) {
|
|
if (i === r.y) return r;
|
|
if (i === r.next.y) return r.next;
|
|
}
|
|
n = r.x < r.next.x ? r : r.next;
|
|
}
|
|
}
|
|
r = r.next;
|
|
} while (r !== t);
|
|
if (!n) return null;
|
|
if (a === u) return n;
|
|
var o,
|
|
s = n,
|
|
p = n.x,
|
|
h = n.y,
|
|
l = 1 / 0;
|
|
r = n;
|
|
do {
|
|
a >= r.x &&
|
|
r.x >= p &&
|
|
a !== r.x &&
|
|
E(i < h ? a : u, i, p, h, i < h ? u : a, i, r.x, r.y) &&
|
|
((o = Math.abs(i - r.y) / (a - r.x)),
|
|
L(r, e) &&
|
|
(o < l || (o === l && (r.x > n.x || (r.x === n.x && g(n, r))))) &&
|
|
((n = r), (l = o))),
|
|
(r = r.next);
|
|
} while (r !== s);
|
|
return n;
|
|
})(e, t);
|
|
if (!n) return t;
|
|
var r = D(n, e),
|
|
a = l(n, n.next);
|
|
return l(r, r.next), t === n ? a : t;
|
|
}
|
|
function g(e, t) {
|
|
return Z(e.prev, e, t.prev) < 0 && Z(t.next, e, e.next) < 0;
|
|
}
|
|
function w(e, t, n, r, a) {
|
|
return (
|
|
(e =
|
|
1431655765 &
|
|
((e =
|
|
858993459 &
|
|
((e = 252645135 & ((e = 16711935 & ((e = 32767 * (e - n) * a) | (e << 8))) | (e << 4))) |
|
|
(e << 2))) |
|
|
(e << 1))) |
|
|
((t =
|
|
1431655765 &
|
|
((t =
|
|
858993459 &
|
|
((t = 252645135 & ((t = 16711935 & ((t = 32767 * (t - r) * a) | (t << 8))) | (t << 4))) |
|
|
(t << 2))) |
|
|
(t << 1))) <<
|
|
1)
|
|
);
|
|
}
|
|
function b(e) {
|
|
var t = e,
|
|
n = e;
|
|
do {
|
|
(t.x < n.x || (t.x === n.x && t.y < n.y)) && (n = t), (t = t.next);
|
|
} while (t !== e);
|
|
return n;
|
|
}
|
|
function E(e, t, n, r, a, i, u, x) {
|
|
return (
|
|
(a - u) * (t - x) - (e - u) * (i - x) >= 0 &&
|
|
(e - u) * (r - x) - (n - u) * (t - x) >= 0 &&
|
|
(n - u) * (i - x) - (a - u) * (r - x) >= 0
|
|
);
|
|
}
|
|
function M(e, t) {
|
|
return (
|
|
e.next.i !== t.i &&
|
|
e.prev.i !== t.i &&
|
|
!(function (e, t) {
|
|
var n = e;
|
|
do {
|
|
if (
|
|
n.i !== e.i &&
|
|
n.next.i !== e.i &&
|
|
n.i !== t.i &&
|
|
n.next.i !== t.i &&
|
|
A(n, n.next, e, t)
|
|
)
|
|
return !0;
|
|
n = n.next;
|
|
} while (n !== e);
|
|
return !1;
|
|
})(e, t) &&
|
|
((L(e, t) &&
|
|
L(t, e) &&
|
|
(function (e, t) {
|
|
var n = e,
|
|
r = !1,
|
|
a = (e.x + t.x) / 2,
|
|
i = (e.y + t.y) / 2;
|
|
do {
|
|
n.y > i != n.next.y > i &&
|
|
n.next.y !== n.y &&
|
|
a < ((n.next.x - n.x) * (i - n.y)) / (n.next.y - n.y) + n.x &&
|
|
(r = !r),
|
|
(n = n.next);
|
|
} while (n !== e);
|
|
return r;
|
|
})(e, t) &&
|
|
(Z(e.prev, e, t.prev) || Z(e, t.prev, t))) ||
|
|
(S(e, t) && Z(e.prev, e, e.next) > 0 && Z(t.prev, t, t.next) > 0))
|
|
);
|
|
}
|
|
function Z(e, t, n) {
|
|
return (t.y - e.y) * (n.x - t.x) - (t.x - e.x) * (n.y - t.y);
|
|
}
|
|
function S(e, t) {
|
|
return e.x === t.x && e.y === t.y;
|
|
}
|
|
function A(e, t, n, r) {
|
|
var a = R(Z(e, t, n)),
|
|
i = R(Z(e, t, r)),
|
|
u = R(Z(n, r, e)),
|
|
x = R(Z(n, r, t));
|
|
return (
|
|
(a !== i && u !== x) ||
|
|
!(0 !== a || !z(e, n, t)) ||
|
|
!(0 !== i || !z(e, r, t)) ||
|
|
!(0 !== u || !z(n, e, r)) ||
|
|
!(0 !== x || !z(n, t, r))
|
|
);
|
|
}
|
|
function z(e, t, n) {
|
|
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)
|
|
);
|
|
}
|
|
function R(e) {
|
|
return e > 0 ? 1 : e < 0 ? -1 : 0;
|
|
}
|
|
function L(e, t) {
|
|
return Z(e.prev, e, e.next) < 0
|
|
? Z(e, t, e.next) >= 0 && Z(e, e.prev, t) >= 0
|
|
: Z(e, t, e.prev) < 0 || Z(e, e.next, t) < 0;
|
|
}
|
|
function D(e, t) {
|
|
var n = new T(e.i, e.x, e.y),
|
|
r = new T(t.i, t.x, t.y),
|
|
a = e.next,
|
|
i = t.prev;
|
|
return (
|
|
(e.next = t),
|
|
(t.prev = e),
|
|
(n.next = a),
|
|
(a.prev = n),
|
|
(r.next = n),
|
|
(n.prev = r),
|
|
(i.next = r),
|
|
(r.prev = i),
|
|
r
|
|
);
|
|
}
|
|
function G(e, t, n, r) {
|
|
var a = new T(e, t, n);
|
|
return (
|
|
r
|
|
? ((a.next = r.next), (a.prev = r), (r.next.prev = a), (r.next = a))
|
|
: ((a.prev = a), (a.next = a)),
|
|
a
|
|
);
|
|
}
|
|
function O(e) {
|
|
(e.next.prev = e.prev),
|
|
(e.prev.next = e.next),
|
|
e.prevZ && (e.prevZ.nextZ = e.nextZ),
|
|
e.nextZ && (e.nextZ.prevZ = e.prevZ);
|
|
}
|
|
function T(e, t, n) {
|
|
(this.i = e),
|
|
(this.x = t),
|
|
(this.y = n),
|
|
(this.prev = null),
|
|
(this.next = null),
|
|
(this.z = null),
|
|
(this.prevZ = null),
|
|
(this.nextZ = null),
|
|
(this.steiner = !1);
|
|
}
|
|
function W(e, t, n, r) {
|
|
for (var a = 0, i = t, u = n - r; i < n; i += r)
|
|
(a += (e[u] - e[i]) * (e[i + 1] + e[u + 1])), (u = i);
|
|
return a;
|
|
}
|
|
(p.deviation = function (e, t, n, r) {
|
|
var a = t && t.length,
|
|
i = a ? t[0] * n : e.length,
|
|
u = Math.abs(W(e, 0, i, n));
|
|
if (a)
|
|
for (var x = 0, o = t.length; x < o; x++) {
|
|
var s = t[x] * n,
|
|
p = x < o - 1 ? t[x + 1] * n : e.length;
|
|
u -= Math.abs(W(e, s, p, n));
|
|
}
|
|
var h = 0;
|
|
for (x = 0; x < r.length; x += 3) {
|
|
var l = r[x] * n,
|
|
f = r[x + 1] * n,
|
|
v = r[x + 2] * n;
|
|
h += Math.abs((e[l] - e[v]) * (e[f + 1] - e[l + 1]) - (e[l] - e[f]) * (e[v + 1] - e[l + 1]));
|
|
}
|
|
return 0 === u && 0 === h ? 0 : Math.abs((h - u) / u);
|
|
}),
|
|
(p.flatten = function (e) {
|
|
for (
|
|
var t = e[0][0].length, n = { vertices: [], holes: [], dimensions: t }, r = 0, a = 0;
|
|
a < e.length;
|
|
a++
|
|
) {
|
|
for (var i = 0; i < e[a].length; i++)
|
|
for (var u = 0; u < t; u++) n.vertices.push(e[a][i][u]);
|
|
a > 0 && ((r += e[a - 1].length), n.holes.push(r));
|
|
}
|
|
return n;
|
|
}),
|
|
(o.default = s);
|
|
var P = {
|
|
CLOCKWISE: x.WebGLConstants.CW,
|
|
COUNTER_CLOCKWISE: x.WebGLConstants.CCW,
|
|
validate: function (e) {
|
|
return e === P.CLOCKWISE || e === P.COUNTER_CLOCKWISE;
|
|
},
|
|
},
|
|
I = Object.freeze(P),
|
|
B = new t.Cartesian3(),
|
|
N = new t.Cartesian3(),
|
|
U = {
|
|
computeArea2D: function (e) {
|
|
for (var t = e.length, n = 0, r = t - 1, a = 0; a < t; r = a++) {
|
|
var i = e[r],
|
|
u = e[a];
|
|
n += i.x * u.y - u.x * i.y;
|
|
}
|
|
return 0.5 * n;
|
|
},
|
|
computeWindingOrder2D: function (e) {
|
|
return U.computeArea2D(e) > 0 ? I.COUNTER_CLOCKWISE : I.CLOCKWISE;
|
|
},
|
|
triangulate: function (e, n) {
|
|
var r = t.Cartesian2.packArray(e);
|
|
return o(r, n, 2);
|
|
},
|
|
},
|
|
_ = new t.Cartesian3(),
|
|
K = new t.Cartesian3(),
|
|
V = new t.Cartesian3(),
|
|
k = new t.Cartesian3(),
|
|
q = new t.Cartesian3(),
|
|
F = new t.Cartesian3(),
|
|
j = new t.Cartesian3();
|
|
U.computeSubdivision = function (e, n, i, x) {
|
|
x = a.defaultValue(x, r.CesiumMath.RADIANS_PER_DEGREE);
|
|
var o,
|
|
s = i.slice(0),
|
|
p = n.length,
|
|
h = new Array(3 * p),
|
|
l = 0;
|
|
for (o = 0; o < p; o++) {
|
|
var f = n[o];
|
|
(h[l++] = f.x), (h[l++] = f.y), (h[l++] = f.z);
|
|
}
|
|
for (
|
|
var v = [], y = {}, c = e.maximumRadius, d = r.CesiumMath.chordLength(x, c), m = d * d;
|
|
s.length > 0;
|
|
|
|
) {
|
|
var C,
|
|
g,
|
|
w = s.pop(),
|
|
b = s.pop(),
|
|
E = s.pop(),
|
|
M = t.Cartesian3.fromArray(h, 3 * E, _),
|
|
Z = t.Cartesian3.fromArray(h, 3 * b, K),
|
|
S = t.Cartesian3.fromArray(h, 3 * w, V),
|
|
A = t.Cartesian3.multiplyByScalar(t.Cartesian3.normalize(M, k), c, k),
|
|
z = t.Cartesian3.multiplyByScalar(t.Cartesian3.normalize(Z, q), c, q),
|
|
R = t.Cartesian3.multiplyByScalar(t.Cartesian3.normalize(S, F), c, F),
|
|
L = t.Cartesian3.magnitudeSquared(t.Cartesian3.subtract(A, z, j)),
|
|
D = t.Cartesian3.magnitudeSquared(t.Cartesian3.subtract(z, R, j)),
|
|
G = t.Cartesian3.magnitudeSquared(t.Cartesian3.subtract(R, A, j)),
|
|
O = Math.max(L, D, G);
|
|
O > m
|
|
? L === O
|
|
? ((o = y[(C = Math.min(E, b) + ' ' + Math.max(E, b))]),
|
|
a.defined(o) ||
|
|
((g = t.Cartesian3.add(M, Z, j)),
|
|
t.Cartesian3.multiplyByScalar(g, 0.5, g),
|
|
h.push(g.x, g.y, g.z),
|
|
(o = h.length / 3 - 1),
|
|
(y[C] = o)),
|
|
s.push(E, o, w),
|
|
s.push(o, b, w))
|
|
: D === O
|
|
? ((o = y[(C = Math.min(b, w) + ' ' + Math.max(b, w))]),
|
|
a.defined(o) ||
|
|
((g = t.Cartesian3.add(Z, S, j)),
|
|
t.Cartesian3.multiplyByScalar(g, 0.5, g),
|
|
h.push(g.x, g.y, g.z),
|
|
(o = h.length / 3 - 1),
|
|
(y[C] = o)),
|
|
s.push(b, o, E),
|
|
s.push(o, w, E))
|
|
: G === O &&
|
|
((o = y[(C = Math.min(w, E) + ' ' + Math.max(w, E))]),
|
|
a.defined(o) ||
|
|
((g = t.Cartesian3.add(S, M, j)),
|
|
t.Cartesian3.multiplyByScalar(g, 0.5, g),
|
|
h.push(g.x, g.y, g.z),
|
|
(o = h.length / 3 - 1),
|
|
(y[C] = o)),
|
|
s.push(w, o, b),
|
|
s.push(o, E, b))
|
|
: (v.push(E), v.push(b), v.push(w));
|
|
}
|
|
return new u.Geometry({
|
|
attributes: {
|
|
position: new u.GeometryAttribute({
|
|
componentDatatype: r.ComponentDatatype.DOUBLE,
|
|
componentsPerAttribute: 3,
|
|
values: h,
|
|
}),
|
|
},
|
|
indices: v,
|
|
primitiveType: u.PrimitiveType.TRIANGLES,
|
|
});
|
|
};
|
|
var H = new t.Cartographic(),
|
|
J = new t.Cartographic(),
|
|
Q = new t.Cartographic(),
|
|
X = new t.Cartographic();
|
|
(U.computeRhumbLineSubdivision = function (e, n, x, o) {
|
|
o = a.defaultValue(o, r.CesiumMath.RADIANS_PER_DEGREE);
|
|
var s,
|
|
p = x.slice(0),
|
|
h = n.length,
|
|
l = new Array(3 * h),
|
|
f = 0;
|
|
for (s = 0; s < h; s++) {
|
|
var v = n[s];
|
|
(l[f++] = v.x), (l[f++] = v.y), (l[f++] = v.z);
|
|
}
|
|
for (
|
|
var y = [],
|
|
c = {},
|
|
d = e.maximumRadius,
|
|
m = r.CesiumMath.chordLength(o, d),
|
|
C = new i.EllipsoidRhumbLine(void 0, void 0, e),
|
|
g = new i.EllipsoidRhumbLine(void 0, void 0, e),
|
|
w = new i.EllipsoidRhumbLine(void 0, void 0, e);
|
|
p.length > 0;
|
|
|
|
) {
|
|
var b = p.pop(),
|
|
E = p.pop(),
|
|
M = p.pop(),
|
|
Z = t.Cartesian3.fromArray(l, 3 * M, _),
|
|
S = t.Cartesian3.fromArray(l, 3 * E, K),
|
|
A = t.Cartesian3.fromArray(l, 3 * b, V),
|
|
z = e.cartesianToCartographic(Z, H),
|
|
R = e.cartesianToCartographic(S, J),
|
|
L = e.cartesianToCartographic(A, Q);
|
|
C.setEndPoints(z, R);
|
|
var D = C.surfaceDistance;
|
|
g.setEndPoints(R, L);
|
|
var G = g.surfaceDistance;
|
|
w.setEndPoints(L, z);
|
|
var O,
|
|
T,
|
|
W,
|
|
P,
|
|
I = w.surfaceDistance,
|
|
B = Math.max(D, G, I);
|
|
B > m
|
|
? D === B
|
|
? ((s = c[(O = Math.min(M, E) + ' ' + Math.max(M, E))]),
|
|
a.defined(s) ||
|
|
((T = C.interpolateUsingFraction(0.5, X)),
|
|
(W = 0.5 * (z.height + R.height)),
|
|
(P = t.Cartesian3.fromRadians(T.longitude, T.latitude, W, e, j)),
|
|
l.push(P.x, P.y, P.z),
|
|
(s = l.length / 3 - 1),
|
|
(c[O] = s)),
|
|
p.push(M, s, b),
|
|
p.push(s, E, b))
|
|
: G === B
|
|
? ((s = c[(O = Math.min(E, b) + ' ' + Math.max(E, b))]),
|
|
a.defined(s) ||
|
|
((T = g.interpolateUsingFraction(0.5, X)),
|
|
(W = 0.5 * (R.height + L.height)),
|
|
(P = t.Cartesian3.fromRadians(T.longitude, T.latitude, W, e, j)),
|
|
l.push(P.x, P.y, P.z),
|
|
(s = l.length / 3 - 1),
|
|
(c[O] = s)),
|
|
p.push(E, s, M),
|
|
p.push(s, b, M))
|
|
: I === B &&
|
|
((s = c[(O = Math.min(b, M) + ' ' + Math.max(b, M))]),
|
|
a.defined(s) ||
|
|
((T = w.interpolateUsingFraction(0.5, X)),
|
|
(W = 0.5 * (L.height + z.height)),
|
|
(P = t.Cartesian3.fromRadians(T.longitude, T.latitude, W, e, j)),
|
|
l.push(P.x, P.y, P.z),
|
|
(s = l.length / 3 - 1),
|
|
(c[O] = s)),
|
|
p.push(b, s, E),
|
|
p.push(s, M, E))
|
|
: (y.push(M), y.push(E), y.push(b));
|
|
}
|
|
return new u.Geometry({
|
|
attributes: {
|
|
position: new u.GeometryAttribute({
|
|
componentDatatype: r.ComponentDatatype.DOUBLE,
|
|
componentsPerAttribute: 3,
|
|
values: l,
|
|
}),
|
|
},
|
|
indices: y,
|
|
primitiveType: u.PrimitiveType.TRIANGLES,
|
|
});
|
|
}),
|
|
(U.scaleToGeodeticHeight = function (e, n, r, i) {
|
|
r = a.defaultValue(r, t.Ellipsoid.WGS84);
|
|
var u = B,
|
|
x = N;
|
|
if (((n = a.defaultValue(n, 0)), (i = a.defaultValue(i, !0)), a.defined(e)))
|
|
for (var o = e.length, s = 0; s < o; s += 3)
|
|
t.Cartesian3.fromArray(e, s, x),
|
|
i && (x = r.scaleToGeodeticSurface(x, x)),
|
|
0 !== n &&
|
|
((u = r.geodeticSurfaceNormal(x, u)),
|
|
t.Cartesian3.multiplyByScalar(u, n, u),
|
|
t.Cartesian3.add(x, u, x)),
|
|
(e[s] = x.x),
|
|
(e[s + 1] = x.y),
|
|
(e[s + 2] = x.z);
|
|
return e;
|
|
}),
|
|
(e.PolygonPipeline = U),
|
|
(e.WindingOrder = I);
|
|
});
|