1 |
- {"version":3,"file":"PolygonGeometryLibrary-98a03962.js","sources":["../../../../Source/Core/Queue.js","../../../../Source/Core/PolygonGeometryLibrary.js"],"sourcesContent":["/**\n * A queue that can enqueue items at the end, and dequeue items from the front.\n *\n * @alias Queue\n * @constructor\n */\nfunction Queue() {\n this._array = [];\n this._offset = 0;\n this._length = 0;\n}\n\nObject.defineProperties(Queue.prototype, {\n /**\n * The length of the queue.\n *\n * @memberof Queue.prototype\n *\n * @type {Number}\n * @readonly\n */\n length: {\n get: function () {\n return this._length;\n },\n },\n});\n\n/**\n * Enqueues the specified item.\n *\n * @param {*} item The item to enqueue.\n */\nQueue.prototype.enqueue = function (item) {\n this._array.push(item);\n this._length++;\n};\n\n/**\n * Dequeues an item. Returns undefined if the queue is empty.\n *\n * @returns {*} The the dequeued item.\n */\nQueue.prototype.dequeue = function () {\n if (this._length === 0) {\n return undefined;\n }\n\n var array = this._array;\n var offset = this._offset;\n var item = array[offset];\n array[offset] = undefined;\n\n offset++;\n if (offset > 10 && offset * 2 > array.length) {\n //compact array\n this._array = array.slice(offset);\n offset = 0;\n }\n\n this._offset = offset;\n this._length--;\n\n return item;\n};\n\n/**\n * Returns the item at the front of the queue. Returns undefined if the queue is empty.\n *\n * @returns {*} The item at the front of the queue.\n */\nQueue.prototype.peek = function () {\n if (this._length === 0) {\n return undefined;\n }\n\n return this._array[this._offset];\n};\n\n/**\n * Check whether this queue contains the specified item.\n *\n * @param {*} item The item to search for.\n */\nQueue.prototype.contains = function (item) {\n return this._array.indexOf(item) !== -1;\n};\n\n/**\n * Remove all items from the queue.\n */\nQueue.prototype.clear = function () {\n this._array.length = this._offset = this._length = 0;\n};\n\n/**\n * Sort the items in the queue in-place.\n *\n * @param {Queue.Comparator} compareFunction A function that defines the sort order.\n */\nQueue.prototype.sort = function (compareFunction) {\n if (this._offset > 0) {\n //compact array\n this._array = this._array.slice(this._offset);\n this._offset = 0;\n }\n\n this._array.sort(compareFunction);\n};\n\n/**\n * A function used to compare two items while sorting a queue.\n * @callback Queue.Comparator\n *\n * @param {*} a An item in the array.\n * @param {*} b An item in the array.\n * @returns {Number} Returns a negative value if <code>a</code> is less than <code>b</code>,\n * a positive value if <code>a</code> is greater than <code>b</code>, or\n * 0 if <code>a</code> is equal to <code>b</code>.\n *\n * @example\n * function compareNumbers(a, b) {\n * return a - b;\n * }\n */\nexport default Queue;\n","import ArcType from \"./ArcType.js\";\nimport arrayRemoveDuplicates from \"./arrayRemoveDuplicates.js\";\nimport Cartesian2 from \"./Cartesian2.js\";\nimport Cartesian3 from \"./Cartesian3.js\";\nimport Cartographic from \"./Cartographic.js\";\nimport ComponentDatatype from \"./ComponentDatatype.js\";\nimport defaultValue from \"./defaultValue.js\";\nimport defined from \"./defined.js\";\nimport Ellipsoid from \"./Ellipsoid.js\";\nimport EllipsoidRhumbLine from \"./EllipsoidRhumbLine.js\";\nimport Geometry from \"./Geometry.js\";\nimport GeometryAttribute from \"./GeometryAttribute.js\";\nimport GeometryAttributes from \"./GeometryAttributes.js\";\nimport GeometryPipeline from \"./GeometryPipeline.js\";\nimport IndexDatatype from \"./IndexDatatype.js\";\nimport CesiumMath from \"./Math.js\";\nimport Matrix3 from \"./Matrix3.js\";\nimport PolygonPipeline from \"./PolygonPipeline.js\";\nimport PrimitiveType from \"./PrimitiveType.js\";\nimport Quaternion from \"./Quaternion.js\";\nimport Queue from \"./Queue.js\";\nimport WindingOrder from \"./WindingOrder.js\";\n\n/**\n * @private\n */\nvar PolygonGeometryLibrary = {};\n\nPolygonGeometryLibrary.computeHierarchyPackedLength = function (\n polygonHierarchy\n) {\n var numComponents = 0;\n var stack = [polygonHierarchy];\n while (stack.length > 0) {\n var hierarchy = stack.pop();\n if (!defined(hierarchy)) {\n continue;\n }\n\n numComponents += 2;\n\n var positions = hierarchy.positions;\n var holes = hierarchy.holes;\n\n if (defined(positions)) {\n numComponents += positions.length * Cartesian3.packedLength;\n }\n\n if (defined(holes)) {\n var length = holes.length;\n for (var i = 0; i < length; ++i) {\n stack.push(holes[i]);\n }\n }\n }\n\n return numComponents;\n};\n\nPolygonGeometryLibrary.packPolygonHierarchy = function (\n polygonHierarchy,\n array,\n startingIndex\n) {\n var stack = [polygonHierarchy];\n while (stack.length > 0) {\n var hierarchy = stack.pop();\n if (!defined(hierarchy)) {\n continue;\n }\n\n var positions = hierarchy.positions;\n var holes = hierarchy.holes;\n\n array[startingIndex++] = defined(positions) ? positions.length : 0;\n array[startingIndex++] = defined(holes) ? holes.length : 0;\n\n if (defined(positions)) {\n var positionsLength = positions.length;\n for (var i = 0; i < positionsLength; ++i, startingIndex += 3) {\n Cartesian3.pack(positions[i], array, startingIndex);\n }\n }\n\n if (defined(holes)) {\n var holesLength = holes.length;\n for (var j = 0; j < holesLength; ++j) {\n stack.push(holes[j]);\n }\n }\n }\n\n return startingIndex;\n};\n\nPolygonGeometryLibrary.unpackPolygonHierarchy = function (\n array,\n startingIndex\n) {\n var positionsLength = array[startingIndex++];\n var holesLength = array[startingIndex++];\n\n var positions = new Array(positionsLength);\n var holes = holesLength > 0 ? new Array(holesLength) : undefined;\n\n for (\n var i = 0;\n i < positionsLength;\n ++i, startingIndex += Cartesian3.packedLength\n ) {\n positions[i] = Cartesian3.unpack(array, startingIndex);\n }\n\n for (var j = 0; j < holesLength; ++j) {\n holes[j] = PolygonGeometryLibrary.unpackPolygonHierarchy(\n array,\n startingIndex\n );\n startingIndex = holes[j].startingIndex;\n delete holes[j].startingIndex;\n }\n\n return {\n positions: positions,\n holes: holes,\n startingIndex: startingIndex,\n };\n};\n\nvar distanceScratch = new Cartesian3();\nfunction getPointAtDistance(p0, p1, distance, length) {\n Cartesian3.subtract(p1, p0, distanceScratch);\n Cartesian3.multiplyByScalar(\n distanceScratch,\n distance / length,\n distanceScratch\n );\n Cartesian3.add(p0, distanceScratch, distanceScratch);\n return [distanceScratch.x, distanceScratch.y, distanceScratch.z];\n}\n\nPolygonGeometryLibrary.subdivideLineCount = function (p0, p1, minDistance) {\n var distance = Cartesian3.distance(p0, p1);\n var n = distance / minDistance;\n var countDivide = Math.max(0, Math.ceil(CesiumMath.log2(n)));\n return Math.pow(2, countDivide);\n};\n\nvar scratchCartographic0 = new Cartographic();\nvar scratchCartographic1 = new Cartographic();\nvar scratchCartographic2 = new Cartographic();\nvar scratchCartesian0 = new Cartesian3();\nPolygonGeometryLibrary.subdivideRhumbLineCount = function (\n ellipsoid,\n p0,\n p1,\n minDistance\n) {\n var c0 = ellipsoid.cartesianToCartographic(p0, scratchCartographic0);\n var c1 = ellipsoid.cartesianToCartographic(p1, scratchCartographic1);\n var rhumb = new EllipsoidRhumbLine(c0, c1, ellipsoid);\n var n = rhumb.surfaceDistance / minDistance;\n var countDivide = Math.max(0, Math.ceil(CesiumMath.log2(n)));\n return Math.pow(2, countDivide);\n};\n\nPolygonGeometryLibrary.subdivideLine = function (p0, p1, minDistance, result) {\n var numVertices = PolygonGeometryLibrary.subdivideLineCount(\n p0,\n p1,\n minDistance\n );\n var length = Cartesian3.distance(p0, p1);\n var distanceBetweenVertices = length / numVertices;\n\n if (!defined(result)) {\n result = [];\n }\n\n var positions = result;\n positions.length = numVertices * 3;\n\n var index = 0;\n for (var i = 0; i < numVertices; i++) {\n var p = getPointAtDistance(p0, p1, i * distanceBetweenVertices, length);\n positions[index++] = p[0];\n positions[index++] = p[1];\n positions[index++] = p[2];\n }\n\n return positions;\n};\n\nPolygonGeometryLibrary.subdivideRhumbLine = function (\n ellipsoid,\n p0,\n p1,\n minDistance,\n result\n) {\n var c0 = ellipsoid.cartesianToCartographic(p0, scratchCartographic0);\n var c1 = ellipsoid.cartesianToCartographic(p1, scratchCartographic1);\n var rhumb = new EllipsoidRhumbLine(c0, c1, ellipsoid);\n\n var n = rhumb.surfaceDistance / minDistance;\n var countDivide = Math.max(0, Math.ceil(CesiumMath.log2(n)));\n var numVertices = Math.pow(2, countDivide);\n var distanceBetweenVertices = rhumb.surfaceDistance / numVertices;\n\n if (!defined(result)) {\n result = [];\n }\n\n var positions = result;\n positions.length = numVertices * 3;\n\n var index = 0;\n for (var i = 0; i < numVertices; i++) {\n var c = rhumb.interpolateUsingSurfaceDistance(\n i * distanceBetweenVertices,\n scratchCartographic2\n );\n var p = ellipsoid.cartographicToCartesian(c, scratchCartesian0);\n positions[index++] = p.x;\n positions[index++] = p.y;\n positions[index++] = p.z;\n }\n\n return positions;\n};\n\nvar scaleToGeodeticHeightN1 = new Cartesian3();\nvar scaleToGeodeticHeightN2 = new Cartesian3();\nvar scaleToGeodeticHeightP1 = new Cartesian3();\nvar scaleToGeodeticHeightP2 = new Cartesian3();\n\nPolygonGeometryLibrary.scaleToGeodeticHeightExtruded = function (\n geometry,\n maxHeight,\n minHeight,\n ellipsoid,\n perPositionHeight\n) {\n ellipsoid = defaultValue(ellipsoid, Ellipsoid.WGS84);\n\n var n1 = scaleToGeodeticHeightN1;\n var n2 = scaleToGeodeticHeightN2;\n var p = scaleToGeodeticHeightP1;\n var p2 = scaleToGeodeticHeightP2;\n\n if (\n defined(geometry) &&\n defined(geometry.attributes) &&\n defined(geometry.attributes.position)\n ) {\n var positions = geometry.attributes.position.values;\n var length = positions.length / 2;\n\n for (var i = 0; i < length; i += 3) {\n Cartesian3.fromArray(positions, i, p);\n\n ellipsoid.geodeticSurfaceNormal(p, n1);\n p2 = ellipsoid.scaleToGeodeticSurface(p, p2);\n n2 = Cartesian3.multiplyByScalar(n1, minHeight, n2);\n n2 = Cartesian3.add(p2, n2, n2);\n positions[i + length] = n2.x;\n positions[i + 1 + length] = n2.y;\n positions[i + 2 + length] = n2.z;\n\n if (perPositionHeight) {\n p2 = Cartesian3.clone(p, p2);\n }\n n2 = Cartesian3.multiplyByScalar(n1, maxHeight, n2);\n n2 = Cartesian3.add(p2, n2, n2);\n positions[i] = n2.x;\n positions[i + 1] = n2.y;\n positions[i + 2] = n2.z;\n }\n }\n return geometry;\n};\n\nPolygonGeometryLibrary.polygonOutlinesFromHierarchy = function (\n polygonHierarchy,\n scaleToEllipsoidSurface,\n ellipsoid\n) {\n // create from a polygon hierarchy\n // Algorithm adapted from http://www.geometrictools.com/Documentation/TriangulationByEarClipping.pdf\n var polygons = [];\n var queue = new Queue();\n queue.enqueue(polygonHierarchy);\n var i;\n var j;\n var length;\n while (queue.length !== 0) {\n var outerNode = queue.dequeue();\n var outerRing = outerNode.positions;\n if (scaleToEllipsoidSurface) {\n length = outerRing.length;\n for (i = 0; i < length; i++) {\n ellipsoid.scaleToGeodeticSurface(outerRing[i], outerRing[i]);\n }\n }\n outerRing = arrayRemoveDuplicates(\n outerRing,\n Cartesian3.equalsEpsilon,\n true\n );\n if (outerRing.length < 3) {\n continue;\n }\n\n var numChildren = outerNode.holes ? outerNode.holes.length : 0;\n // The outer polygon contains inner polygons\n for (i = 0; i < numChildren; i++) {\n var hole = outerNode.holes[i];\n var holePositions = hole.positions;\n if (scaleToEllipsoidSurface) {\n length = holePositions.length;\n for (j = 0; j < length; ++j) {\n ellipsoid.scaleToGeodeticSurface(holePositions[j], holePositions[j]);\n }\n }\n holePositions = arrayRemoveDuplicates(\n holePositions,\n Cartesian3.equalsEpsilon,\n true\n );\n if (holePositions.length < 3) {\n continue;\n }\n polygons.push(holePositions);\n\n var numGrandchildren = 0;\n if (defined(hole.holes)) {\n numGrandchildren = hole.holes.length;\n }\n\n for (j = 0; j < numGrandchildren; j++) {\n queue.enqueue(hole.holes[j]);\n }\n }\n\n polygons.push(outerRing);\n }\n\n return polygons;\n};\n\nPolygonGeometryLibrary.polygonsFromHierarchy = function (\n polygonHierarchy,\n projectPointsTo2D,\n scaleToEllipsoidSurface,\n ellipsoid\n) {\n // create from a polygon hierarchy\n // Algorithm adapted from http://www.geometrictools.com/Documentation/TriangulationByEarClipping.pdf\n var hierarchy = [];\n var polygons = [];\n\n var queue = new Queue();\n queue.enqueue(polygonHierarchy);\n\n while (queue.length !== 0) {\n var outerNode = queue.dequeue();\n var outerRing = outerNode.positions;\n var holes = outerNode.holes;\n\n var i;\n var length;\n if (scaleToEllipsoidSurface) {\n length = outerRing.length;\n for (i = 0; i < length; i++) {\n ellipsoid.scaleToGeodeticSurface(outerRing[i], outerRing[i]);\n }\n }\n\n outerRing = arrayRemoveDuplicates(\n outerRing,\n Cartesian3.equalsEpsilon,\n true\n );\n if (outerRing.length < 3) {\n continue;\n }\n\n var positions2D = projectPointsTo2D(outerRing);\n if (!defined(positions2D)) {\n continue;\n }\n var holeIndices = [];\n\n var originalWindingOrder = PolygonPipeline.computeWindingOrder2D(\n positions2D\n );\n if (originalWindingOrder === WindingOrder.CLOCKWISE) {\n positions2D.reverse();\n outerRing = outerRing.slice().reverse();\n }\n\n var positions = outerRing.slice();\n var numChildren = defined(holes) ? holes.length : 0;\n var polygonHoles = [];\n var j;\n\n for (i = 0; i < numChildren; i++) {\n var hole = holes[i];\n var holePositions = hole.positions;\n if (scaleToEllipsoidSurface) {\n length = holePositions.length;\n for (j = 0; j < length; ++j) {\n ellipsoid.scaleToGeodeticSurface(holePositions[j], holePositions[j]);\n }\n }\n\n holePositions = arrayRemoveDuplicates(\n holePositions,\n Cartesian3.equalsEpsilon,\n true\n );\n if (holePositions.length < 3) {\n continue;\n }\n\n var holePositions2D = projectPointsTo2D(holePositions);\n if (!defined(holePositions2D)) {\n continue;\n }\n\n originalWindingOrder = PolygonPipeline.computeWindingOrder2D(\n holePositions2D\n );\n if (originalWindingOrder === WindingOrder.CLOCKWISE) {\n holePositions2D.reverse();\n holePositions = holePositions.slice().reverse();\n }\n\n polygonHoles.push(holePositions);\n holeIndices.push(positions.length);\n positions = positions.concat(holePositions);\n positions2D = positions2D.concat(holePositions2D);\n\n var numGrandchildren = 0;\n if (defined(hole.holes)) {\n numGrandchildren = hole.holes.length;\n }\n\n for (j = 0; j < numGrandchildren; j++) {\n queue.enqueue(hole.holes[j]);\n }\n }\n\n hierarchy.push({\n outerRing: outerRing,\n holes: polygonHoles,\n });\n polygons.push({\n positions: positions,\n positions2D: positions2D,\n holes: holeIndices,\n });\n }\n\n return {\n hierarchy: hierarchy,\n polygons: polygons,\n };\n};\n\nvar computeBoundingRectangleCartesian2 = new Cartesian2();\nvar computeBoundingRectangleCartesian3 = new Cartesian3();\nvar computeBoundingRectangleQuaternion = new Quaternion();\nvar computeBoundingRectangleMatrix3 = new Matrix3();\nPolygonGeometryLibrary.computeBoundingRectangle = function (\n planeNormal,\n projectPointTo2D,\n positions,\n angle,\n result\n) {\n var rotation = Quaternion.fromAxisAngle(\n planeNormal,\n angle,\n computeBoundingRectangleQuaternion\n );\n var textureMatrix = Matrix3.fromQuaternion(\n rotation,\n computeBoundingRectangleMatrix3\n );\n\n var minX = Number.POSITIVE_INFINITY;\n var maxX = Number.NEGATIVE_INFINITY;\n var minY = Number.POSITIVE_INFINITY;\n var maxY = Number.NEGATIVE_INFINITY;\n\n var length = positions.length;\n for (var i = 0; i < length; ++i) {\n var p = Cartesian3.clone(positions[i], computeBoundingRectangleCartesian3);\n Matrix3.multiplyByVector(textureMatrix, p, p);\n var st = projectPointTo2D(p, computeBoundingRectangleCartesian2);\n\n if (defined(st)) {\n minX = Math.min(minX, st.x);\n maxX = Math.max(maxX, st.x);\n\n minY = Math.min(minY, st.y);\n maxY = Math.max(maxY, st.y);\n }\n }\n\n result.x = minX;\n result.y = minY;\n result.width = maxX - minX;\n result.height = maxY - minY;\n return result;\n};\n\nPolygonGeometryLibrary.createGeometryFromPositions = function (\n ellipsoid,\n polygon,\n granularity,\n perPositionHeight,\n vertexFormat,\n arcType\n) {\n var indices = PolygonPipeline.triangulate(polygon.positions2D, polygon.holes);\n\n /* If polygon is completely unrenderable, just use the first three vertices */\n if (indices.length < 3) {\n indices = [0, 1, 2];\n }\n\n var positions = polygon.positions;\n\n if (perPositionHeight) {\n var length = positions.length;\n var flattenedPositions = new Array(length * 3);\n var index = 0;\n for (var i = 0; i < length; i++) {\n var p = positions[i];\n flattenedPositions[index++] = p.x;\n flattenedPositions[index++] = p.y;\n flattenedPositions[index++] = p.z;\n }\n var geometry = new Geometry({\n attributes: {\n position: new GeometryAttribute({\n componentDatatype: ComponentDatatype.DOUBLE,\n componentsPerAttribute: 3,\n values: flattenedPositions,\n }),\n },\n indices: indices,\n primitiveType: PrimitiveType.TRIANGLES,\n });\n\n if (vertexFormat.normal) {\n return GeometryPipeline.computeNormal(geometry);\n }\n\n return geometry;\n }\n\n if (arcType === ArcType.GEODESIC) {\n return PolygonPipeline.computeSubdivision(\n ellipsoid,\n positions,\n indices,\n granularity\n );\n } else if (arcType === ArcType.RHUMB) {\n return PolygonPipeline.computeRhumbLineSubdivision(\n ellipsoid,\n positions,\n indices,\n granularity\n );\n }\n};\n\nvar computeWallIndicesSubdivided = [];\nvar p1Scratch = new Cartesian3();\nvar p2Scratch = new Cartesian3();\n\nPolygonGeometryLibrary.computeWallGeometry = function (\n positions,\n ellipsoid,\n granularity,\n perPositionHeight,\n arcType\n) {\n var edgePositions;\n var topEdgeLength;\n var i;\n var p1;\n var p2;\n\n var length = positions.length;\n var index = 0;\n\n if (!perPositionHeight) {\n var minDistance = CesiumMath.chordLength(\n granularity,\n ellipsoid.maximumRadius\n );\n\n var numVertices = 0;\n if (arcType === ArcType.GEODESIC) {\n for (i = 0; i < length; i++) {\n numVertices += PolygonGeometryLibrary.subdivideLineCount(\n positions[i],\n positions[(i + 1) % length],\n minDistance\n );\n }\n } else if (arcType === ArcType.RHUMB) {\n for (i = 0; i < length; i++) {\n numVertices += PolygonGeometryLibrary.subdivideRhumbLineCount(\n ellipsoid,\n positions[i],\n positions[(i + 1) % length],\n minDistance\n );\n }\n }\n\n topEdgeLength = (numVertices + length) * 3;\n edgePositions = new Array(topEdgeLength * 2);\n for (i = 0; i < length; i++) {\n p1 = positions[i];\n p2 = positions[(i + 1) % length];\n\n var tempPositions;\n if (arcType === ArcType.GEODESIC) {\n tempPositions = PolygonGeometryLibrary.subdivideLine(\n p1,\n p2,\n minDistance,\n computeWallIndicesSubdivided\n );\n } else if (arcType === ArcType.RHUMB) {\n tempPositions = PolygonGeometryLibrary.subdivideRhumbLine(\n ellipsoid,\n p1,\n p2,\n minDistance,\n computeWallIndicesSubdivided\n );\n }\n var tempPositionsLength = tempPositions.length;\n for (var j = 0; j < tempPositionsLength; ++j, ++index) {\n edgePositions[index] = tempPositions[j];\n edgePositions[index + topEdgeLength] = tempPositions[j];\n }\n\n edgePositions[index] = p2.x;\n edgePositions[index + topEdgeLength] = p2.x;\n ++index;\n\n edgePositions[index] = p2.y;\n edgePositions[index + topEdgeLength] = p2.y;\n ++index;\n\n edgePositions[index] = p2.z;\n edgePositions[index + topEdgeLength] = p2.z;\n ++index;\n }\n } else {\n topEdgeLength = length * 3 * 2;\n edgePositions = new Array(topEdgeLength * 2);\n for (i = 0; i < length; i++) {\n p1 = positions[i];\n p2 = positions[(i + 1) % length];\n edgePositions[index] = edgePositions[index + topEdgeLength] = p1.x;\n ++index;\n edgePositions[index] = edgePositions[index + topEdgeLength] = p1.y;\n ++index;\n edgePositions[index] = edgePositions[index + topEdgeLength] = p1.z;\n ++index;\n edgePositions[index] = edgePositions[index + topEdgeLength] = p2.x;\n ++index;\n edgePositions[index] = edgePositions[index + topEdgeLength] = p2.y;\n ++index;\n edgePositions[index] = edgePositions[index + topEdgeLength] = p2.z;\n ++index;\n }\n }\n\n length = edgePositions.length;\n var indices = IndexDatatype.createTypedArray(\n length / 3,\n length - positions.length * 6\n );\n var edgeIndex = 0;\n length /= 6;\n\n for (i = 0; i < length; i++) {\n var UL = i;\n var UR = UL + 1;\n var LL = UL + length;\n var LR = LL + 1;\n\n p1 = Cartesian3.fromArray(edgePositions, UL * 3, p1Scratch);\n p2 = Cartesian3.fromArray(edgePositions, UR * 3, p2Scratch);\n if (\n Cartesian3.equalsEpsilon(\n p1,\n p2,\n CesiumMath.EPSILON10,\n CesiumMath.EPSILON10\n )\n ) {\n //skip corner\n continue;\n }\n\n indices[edgeIndex++] = UL;\n indices[edgeIndex++] = LL;\n indices[edgeIndex++] = UR;\n indices[edgeIndex++] = UR;\n indices[edgeIndex++] = LL;\n indices[edgeIndex++] = LR;\n }\n\n return new Geometry({\n attributes: new GeometryAttributes({\n position: new GeometryAttribute({\n componentDatatype: ComponentDatatype.DOUBLE,\n componentsPerAttribute: 3,\n values: edgePositions,\n }),\n }),\n indices: indices,\n primitiveType: PrimitiveType.TRIANGLES,\n });\n};\nexport default PolygonGeometryLibrary;\n"],"names":["defined","Cartesian3","CesiumMath","Cartographic","EllipsoidRhumbLine","defaultValue","Ellipsoid","arrayRemoveDuplicates","PolygonPipeline","WindingOrder","Cartesian2","Quaternion","Matrix3","Geometry","GeometryAttribute","ComponentDatatype","PrimitiveType","GeometryPipeline","ArcType","IndexDatatype","GeometryAttributes"],"mappings":"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"}
|