define([ './when-229515d6', './Matrix2-f2da41d4', './Transforms-7cd3197b', './ComponentDatatype-17b06483', './RuntimeError-ffe03243', './GeometryAttribute-80036e07', './GeometryAttributes-b253752a', './IndexDatatype-b10faa0b', './WallGeometryLibrary-fb5b94e4', './combine-8ce3f24b', './WebGLConstants-4e26b85a', './arrayRemoveDuplicates-bb548aa3', './PolylinePipeline-a3ba6f24', './EllipsoidGeodesic-43ba18de', './EllipsoidRhumbLine-afd6cd20', './IntersectionTests-1b8a3cb9', './Plane-0421a8be', ], function (e, i, t, a, n, r, o, s, l, m, d, u, p, f, h, c, g) { 'use strict'; var y = new i.Cartesian3(), v = new i.Cartesian3(); function b(t) { var n = (t = e.defaultValue(t, e.defaultValue.EMPTY_OBJECT)).positions, r = t.maximumHeights, o = t.minimumHeights, s = e.defaultValue(t.granularity, a.CesiumMath.RADIANS_PER_DEGREE), l = e.defaultValue(t.ellipsoid, i.Ellipsoid.WGS84); (this._positions = n), (this._minimumHeights = o), (this._maximumHeights = r), (this._granularity = s), (this._ellipsoid = i.Ellipsoid.clone(l)), (this._workerName = 'createWallOutlineGeometry'); var m = 1 + n.length * i.Cartesian3.packedLength + 2; e.defined(o) && (m += o.length), e.defined(r) && (m += r.length), (this.packedLength = m + i.Ellipsoid.packedLength + 1); } b.pack = function (t, a, n) { var r; n = e.defaultValue(n, 0); var o = t._positions, s = o.length; for (a[n++] = s, r = 0; r < s; ++r, n += i.Cartesian3.packedLength) i.Cartesian3.pack(o[r], a, n); var l = t._minimumHeights; if (((s = e.defined(l) ? l.length : 0), (a[n++] = s), e.defined(l))) for (r = 0; r < s; ++r) a[n++] = l[r]; var m = t._maximumHeights; if (((s = e.defined(m) ? m.length : 0), (a[n++] = s), e.defined(m))) for (r = 0; r < s; ++r) a[n++] = m[r]; return ( i.Ellipsoid.pack(t._ellipsoid, a, n), (a[(n += i.Ellipsoid.packedLength)] = t._granularity), a ); }; var _ = i.Ellipsoid.clone(i.Ellipsoid.UNIT_SPHERE), E = { positions: void 0, minimumHeights: void 0, maximumHeights: void 0, ellipsoid: _, granularity: void 0, }; return ( (b.unpack = function (t, a, n) { var r; a = e.defaultValue(a, 0); var o, s, l = t[a++], m = new Array(l); for (r = 0; r < l; ++r, a += i.Cartesian3.packedLength) m[r] = i.Cartesian3.unpack(t, a); if ((l = t[a++]) > 0) for (o = new Array(l), r = 0; r < l; ++r) o[r] = t[a++]; if ((l = t[a++]) > 0) for (s = new Array(l), r = 0; r < l; ++r) s[r] = t[a++]; var d = i.Ellipsoid.unpack(t, a, _), u = t[(a += i.Ellipsoid.packedLength)]; return e.defined(n) ? ((n._positions = m), (n._minimumHeights = o), (n._maximumHeights = s), (n._ellipsoid = i.Ellipsoid.clone(d, n._ellipsoid)), (n._granularity = u), n) : ((E.positions = m), (E.minimumHeights = o), (E.maximumHeights = s), (E.granularity = u), new b(E)); }), (b.fromConstantHeights = function (i) { var t, a, n = (i = e.defaultValue(i, e.defaultValue.EMPTY_OBJECT)).positions, r = i.minimumHeight, o = i.maximumHeight, s = e.defined(r), l = e.defined(o); if (s || l) { var m = n.length; (t = s ? new Array(m) : void 0), (a = l ? new Array(m) : void 0); for (var d = 0; d < m; ++d) s && (t[d] = r), l && (a[d] = o); } return new b({ positions: n, maximumHeights: a, minimumHeights: t, ellipsoid: i.ellipsoid }); }), (b.createGeometry = function (n) { var m = n._positions, d = n._minimumHeights, u = n._maximumHeights, p = n._granularity, f = n._ellipsoid, h = l.WallGeometryLibrary.computePositions(f, m, u, d, p, !1); if (e.defined(h)) { var c, g = h.bottomPositions, b = h.topPositions, _ = b.length, E = 2 * _, C = new Float64Array(E), H = 0; for (_ /= 3, c = 0; c < _; ++c) { var A = 3 * c, w = i.Cartesian3.fromArray(b, A, y), k = i.Cartesian3.fromArray(g, A, v); (C[H++] = k.x), (C[H++] = k.y), (C[H++] = k.z), (C[H++] = w.x), (C[H++] = w.y), (C[H++] = w.z); } var x = new o.GeometryAttributes({ position: new r.GeometryAttribute({ componentDatatype: a.ComponentDatatype.DOUBLE, componentsPerAttribute: 3, values: C, }), }), G = E / 3; E = 2 * G - 4 + G; var L = s.IndexDatatype.createTypedArray(G, E), P = 0; for (c = 0; c < G - 2; c += 2) { var T = c, D = c + 2, V = i.Cartesian3.fromArray(C, 3 * T, y), I = i.Cartesian3.fromArray(C, 3 * D, v); if (!i.Cartesian3.equalsEpsilon(V, I, a.CesiumMath.EPSILON10)) { var R = c + 1, S = c + 3; (L[P++] = R), (L[P++] = T), (L[P++] = R), (L[P++] = S), (L[P++] = T), (L[P++] = D); } } return ( (L[P++] = G - 2), (L[P++] = G - 1), new r.Geometry({ attributes: x, indices: L, primitiveType: r.PrimitiveType.LINES, boundingSphere: new t.BoundingSphere.fromVertices(C), }) ); } }), function (t, a) { return ( e.defined(a) && (t = b.unpack(t, a)), (t._ellipsoid = i.Ellipsoid.clone(t._ellipsoid)), b.createGeometry(t) ); } ); });