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.
95 lines
3.1 KiB
95 lines
3.1 KiB
define([
|
|
'exports',
|
|
'./arrayRemoveDuplicates-bb548aa3',
|
|
'./Matrix2-f2da41d4',
|
|
'./when-229515d6',
|
|
'./ComponentDatatype-17b06483',
|
|
'./PolylinePipeline-a3ba6f24',
|
|
], function (e, i, t, a, r, n) {
|
|
'use strict';
|
|
var o = {};
|
|
function l(e, i) {
|
|
return (
|
|
r.CesiumMath.equalsEpsilon(e.latitude, i.latitude, r.CesiumMath.EPSILON10) &&
|
|
r.CesiumMath.equalsEpsilon(e.longitude, i.longitude, r.CesiumMath.EPSILON10)
|
|
);
|
|
}
|
|
var s = new t.Cartographic(),
|
|
h = new t.Cartographic();
|
|
var g = new Array(2),
|
|
p = new Array(2),
|
|
u = { positions: void 0, height: void 0, granularity: void 0, ellipsoid: void 0 };
|
|
(o.computePositions = function (e, o, c, d, y, v) {
|
|
var m = (function (e, r, n, o) {
|
|
var g = (r = i.arrayRemoveDuplicates(r, t.Cartesian3.equalsEpsilon)).length;
|
|
if (!(g < 2)) {
|
|
var p = a.defined(o),
|
|
u = a.defined(n),
|
|
c = new Array(g),
|
|
d = new Array(g),
|
|
y = new Array(g),
|
|
v = r[0];
|
|
c[0] = v;
|
|
var m = e.cartesianToCartographic(v, s);
|
|
u && (m.height = n[0]), (d[0] = m.height), (y[0] = p ? o[0] : 0);
|
|
for (var f = d[0] === y[0], P = 1, A = 1; A < g; ++A) {
|
|
var C = r[A],
|
|
w = e.cartesianToCartographic(C, h);
|
|
u && (w.height = n[A]),
|
|
(f = f && 0 === w.height),
|
|
l(m, w)
|
|
? m.height < w.height && (d[P - 1] = w.height)
|
|
: ((c[P] = C),
|
|
(d[P] = w.height),
|
|
(y[P] = p ? o[A] : 0),
|
|
(f = f && d[P] === y[P]),
|
|
t.Cartographic.clone(w, m),
|
|
++P);
|
|
}
|
|
if (!(f || P < 2))
|
|
return (
|
|
(c.length = P),
|
|
(d.length = P),
|
|
(y.length = P),
|
|
{ positions: c, topHeights: d, bottomHeights: y }
|
|
);
|
|
}
|
|
})(e, o, c, d);
|
|
if (a.defined(m)) {
|
|
(o = m.positions), (c = m.topHeights), (d = m.bottomHeights);
|
|
var f,
|
|
P,
|
|
A = o.length,
|
|
C = A - 2,
|
|
w = r.CesiumMath.chordLength(y, e.maximumRadius),
|
|
b = u;
|
|
if (((b.minDistance = w), (b.ellipsoid = e), v)) {
|
|
var M,
|
|
E = 0;
|
|
for (M = 0; M < A - 1; M++) E += n.PolylinePipeline.numberOfPoints(o[M], o[M + 1], w) + 1;
|
|
(f = new Float64Array(3 * E)), (P = new Float64Array(3 * E));
|
|
var D = g,
|
|
F = p;
|
|
(b.positions = D), (b.height = F);
|
|
var H = 0;
|
|
for (M = 0; M < A - 1; M++) {
|
|
(D[0] = o[M]), (D[1] = o[M + 1]), (F[0] = c[M]), (F[1] = c[M + 1]);
|
|
var L = n.PolylinePipeline.generateArc(b);
|
|
f.set(L, H),
|
|
(F[0] = d[M]),
|
|
(F[1] = d[M + 1]),
|
|
P.set(n.PolylinePipeline.generateArc(b), H),
|
|
(H += L.length);
|
|
}
|
|
} else
|
|
(b.positions = o),
|
|
(b.height = c),
|
|
(f = new Float64Array(n.PolylinePipeline.generateArc(b))),
|
|
(b.height = d),
|
|
(P = new Float64Array(n.PolylinePipeline.generateArc(b)));
|
|
return { bottomPositions: P, topPositions: f, numCorners: C };
|
|
}
|
|
}),
|
|
(e.WallGeometryLibrary = o);
|
|
});
|