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

9 months ago
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);
});