define([ './when-229515d6', './Matrix2-f2da41d4', './arrayRemoveDuplicates-bb548aa3', './BoundingRectangle-18e42324', './Transforms-7cd3197b', './ComponentDatatype-17b06483', './PolylineVolumeGeometryLibrary-4af6d4dc', './RuntimeError-ffe03243', './GeometryAttribute-80036e07', './GeometryAttributes-b253752a', './GeometryPipeline-5b3fba53', './IndexDatatype-b10faa0b', './PolygonPipeline-5582b1ec', './VertexFormat-565d6a6c', './combine-8ce3f24b', './WebGLConstants-4e26b85a', './EllipsoidTangentPlane-b27cd2f7', './AxisAlignedBoundingBox-1feb0c48', './IntersectionTests-1b8a3cb9', './Plane-0421a8be', './PolylinePipeline-a3ba6f24', './EllipsoidGeodesic-43ba18de', './EllipsoidRhumbLine-afd6cd20', './AttributeCompression-0af3c035', './EncodedCartesian3-d4f305ce', ], function (e, t, n, a, i, r, o, l, s, p, d, c, u, m, y, g, f, h, b, v, P, E, _, k, L) { 'use strict'; function V(n) { var a = (n = e.defaultValue(n, e.defaultValue.EMPTY_OBJECT)).polylinePositions, i = n.shapePositions; (this._positions = a), (this._shape = i), (this._ellipsoid = t.Ellipsoid.clone(e.defaultValue(n.ellipsoid, t.Ellipsoid.WGS84))), (this._cornerType = e.defaultValue(n.cornerType, o.CornerType.ROUNDED)), (this._vertexFormat = m.VertexFormat.clone( e.defaultValue(n.vertexFormat, m.VertexFormat.DEFAULT) )), (this._granularity = e.defaultValue(n.granularity, r.CesiumMath.RADIANS_PER_DEGREE)), (this._workerName = 'createPolylineVolumeGeometry'); var l = 1 + a.length * t.Cartesian3.packedLength; (l += 1 + i.length * t.Cartesian2.packedLength), (this.packedLength = l + t.Ellipsoid.packedLength + m.VertexFormat.packedLength + 2); } V.pack = function (n, a, i) { var r; i = e.defaultValue(i, 0); var o = n._positions, l = o.length; for (a[i++] = l, r = 0; r < l; ++r, i += t.Cartesian3.packedLength) t.Cartesian3.pack(o[r], a, i); var s = n._shape; for (l = s.length, a[i++] = l, r = 0; r < l; ++r, i += t.Cartesian2.packedLength) t.Cartesian2.pack(s[r], a, i); return ( t.Ellipsoid.pack(n._ellipsoid, a, i), (i += t.Ellipsoid.packedLength), m.VertexFormat.pack(n._vertexFormat, a, i), (i += m.VertexFormat.packedLength), (a[i++] = n._cornerType), (a[i] = n._granularity), a ); }; var x = t.Ellipsoid.clone(t.Ellipsoid.UNIT_SPHERE), C = new m.VertexFormat(), F = { polylinePositions: void 0, shapePositions: void 0, ellipsoid: x, vertexFormat: C, cornerType: void 0, granularity: void 0, }; V.unpack = function (n, a, i) { var r; a = e.defaultValue(a, 0); var o = n[a++], l = new Array(o); for (r = 0; r < o; ++r, a += t.Cartesian3.packedLength) l[r] = t.Cartesian3.unpack(n, a); o = n[a++]; var s = new Array(o); for (r = 0; r < o; ++r, a += t.Cartesian2.packedLength) s[r] = t.Cartesian2.unpack(n, a); var p = t.Ellipsoid.unpack(n, a, x); a += t.Ellipsoid.packedLength; var d = m.VertexFormat.unpack(n, a, C); a += m.VertexFormat.packedLength; var c = n[a++], u = n[a]; return e.defined(i) ? ((i._positions = l), (i._shape = s), (i._ellipsoid = t.Ellipsoid.clone(p, i._ellipsoid)), (i._vertexFormat = m.VertexFormat.clone(d, i._vertexFormat)), (i._cornerType = c), (i._granularity = u), i) : ((F.polylinePositions = l), (F.shapePositions = s), (F.cornerType = c), (F.granularity = u), new V(F)); }; var A = new a.BoundingRectangle(); return ( (V.createGeometry = function (e) { var l = e._positions, m = n.arrayRemoveDuplicates(l, t.Cartesian3.equalsEpsilon), y = e._shape; if ( ((y = o.PolylineVolumeGeometryLibrary.removeDuplicatesFromShape(y)), !(m.length < 2 || y.length < 3)) ) { u.PolygonPipeline.computeWindingOrder2D(y) === u.WindingOrder.CLOCKWISE && y.reverse(); var g = a.BoundingRectangle.fromPoints(y, A); return (function (e, t, n, a) { var l = new p.GeometryAttributes(); a.position && (l.position = new s.GeometryAttribute({ componentDatatype: r.ComponentDatatype.DOUBLE, componentsPerAttribute: 3, values: e, })); var m, y, g, f, h, b, v = t.length, P = e.length / 3, E = (P - 2 * v) / (2 * v), _ = u.PolygonPipeline.triangulate(t), k = (E - 1) * v * 6 + 2 * _.length, L = c.IndexDatatype.createTypedArray(P, k), V = 2 * v, x = 0; for (m = 0; m < E - 1; m++) { for (y = 0; y < v - 1; y++) (b = (g = 2 * y + m * v * 2) + V), (h = (f = g + 1) + V), (L[x++] = f), (L[x++] = g), (L[x++] = h), (L[x++] = h), (L[x++] = g), (L[x++] = b); (h = (f = 1 + (g = 2 * v - 2 + m * v * 2)) + V), (b = g + V), (L[x++] = f), (L[x++] = g), (L[x++] = h), (L[x++] = h), (L[x++] = g), (L[x++] = b); } if (a.st || a.tangent || a.bitangent) { var C, F, A = new Float32Array(2 * P), T = 1 / (E - 1), G = 1 / n.height, D = n.height / 2, w = 0; for (m = 0; m < E; m++) { for (C = m * T, F = G * (t[0].y + D), A[w++] = C, A[w++] = F, y = 1; y < v; y++) (F = G * (t[y].y + D)), (A[w++] = C), (A[w++] = F), (A[w++] = C), (A[w++] = F); (F = G * (t[0].y + D)), (A[w++] = C), (A[w++] = F); } for (y = 0; y < v; y++) (C = 0), (F = G * (t[y].y + D)), (A[w++] = C), (A[w++] = F); for (y = 0; y < v; y++) (C = (E - 1) * T), (F = G * (t[y].y + D)), (A[w++] = C), (A[w++] = F); l.st = new s.GeometryAttribute({ componentDatatype: r.ComponentDatatype.FLOAT, componentsPerAttribute: 2, values: new Float32Array(A), }); } var R = P - 2 * v; for (m = 0; m < _.length; m += 3) { var B = _[m] + R, S = _[m + 1] + R, I = _[m + 2] + R; (L[x++] = B), (L[x++] = S), (L[x++] = I), (L[x++] = I + v), (L[x++] = S + v), (L[x++] = B + v); } var O = new s.Geometry({ attributes: l, indices: L, boundingSphere: i.BoundingSphere.fromVertices(e), primitiveType: s.PrimitiveType.TRIANGLES, }); if ((a.normal && (O = d.GeometryPipeline.computeNormal(O)), a.tangent || a.bitangent)) { try { O = d.GeometryPipeline.computeTangentAndBitangent(O); } catch (e) { o.oneTimeWarning( 'polyline-volume-tangent-bitangent', 'Unable to compute tangents and bitangents for polyline volume geometry' ); } a.tangent || (O.attributes.tangent = void 0), a.bitangent || (O.attributes.bitangent = void 0), a.st || (O.attributes.st = void 0); } return O; })(o.PolylineVolumeGeometryLibrary.computePositions(m, y, g, e, !0), y, g, e._vertexFormat); } }), function (n, a) { return ( e.defined(a) && (n = V.unpack(n, a)), (n._ellipsoid = t.Ellipsoid.clone(n._ellipsoid)), V.createGeometry(n) ); } ); });