1 line
48 KiB
Plaintext
1 line
48 KiB
Plaintext
{"version":3,"file":"PolygonGeometryLibrary-e329b948.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 const array = this._array;\n let offset = this._offset;\n const 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 */\nconst PolygonGeometryLibrary = {};\n\nPolygonGeometryLibrary.computeHierarchyPackedLength = function (\n polygonHierarchy\n) {\n let numComponents = 0;\n const stack = [polygonHierarchy];\n while (stack.length > 0) {\n const hierarchy = stack.pop();\n if (!defined(hierarchy)) {\n continue;\n }\n\n numComponents += 2;\n\n const positions = hierarchy.positions;\n const holes = hierarchy.holes;\n\n if (defined(positions)) {\n numComponents += positions.length * Cartesian3.packedLength;\n }\n\n if (defined(holes)) {\n const length = holes.length;\n for (let 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 const stack = [polygonHierarchy];\n while (stack.length > 0) {\n const hierarchy = stack.pop();\n if (!defined(hierarchy)) {\n continue;\n }\n\n const positions = hierarchy.positions;\n const 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 const positionsLength = positions.length;\n for (let i = 0; i < positionsLength; ++i, startingIndex += 3) {\n Cartesian3.pack(positions[i], array, startingIndex);\n }\n }\n\n if (defined(holes)) {\n const holesLength = holes.length;\n for (let 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 const positionsLength = array[startingIndex++];\n const holesLength = array[startingIndex++];\n\n const positions = new Array(positionsLength);\n const holes = holesLength > 0 ? new Array(holesLength) : undefined;\n\n for (\n let i = 0;\n i < positionsLength;\n ++i, startingIndex += Cartesian3.packedLength\n ) {\n positions[i] = Cartesian3.unpack(array, startingIndex);\n }\n\n for (let 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\nconst 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 const distance = Cartesian3.distance(p0, p1);\n const n = distance / minDistance;\n const countDivide = Math.max(0, Math.ceil(CesiumMath.log2(n)));\n return Math.pow(2, countDivide);\n};\n\nconst scratchCartographic0 = new Cartographic();\nconst scratchCartographic1 = new Cartographic();\nconst scratchCartographic2 = new Cartographic();\nconst scratchCartesian0 = new Cartesian3();\nPolygonGeometryLibrary.subdivideRhumbLineCount = function (\n ellipsoid,\n p0,\n p1,\n minDistance\n) {\n const c0 = ellipsoid.cartesianToCartographic(p0, scratchCartographic0);\n const c1 = ellipsoid.cartesianToCartographic(p1, scratchCartographic1);\n const rhumb = new EllipsoidRhumbLine(c0, c1, ellipsoid);\n const n = rhumb.surfaceDistance / minDistance;\n const 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 const numVertices = PolygonGeometryLibrary.subdivideLineCount(\n p0,\n p1,\n minDistance\n );\n const length = Cartesian3.distance(p0, p1);\n const distanceBetweenVertices = length / numVertices;\n\n if (!defined(result)) {\n result = [];\n }\n\n const positions = result;\n positions.length = numVertices * 3;\n\n let index = 0;\n for (let i = 0; i < numVertices; i++) {\n const 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 const c0 = ellipsoid.cartesianToCartographic(p0, scratchCartographic0);\n const c1 = ellipsoid.cartesianToCartographic(p1, scratchCartographic1);\n const rhumb = new EllipsoidRhumbLine(c0, c1, ellipsoid);\n\n const n = rhumb.surfaceDistance / minDistance;\n const countDivide = Math.max(0, Math.ceil(CesiumMath.log2(n)));\n const numVertices = Math.pow(2, countDivide);\n const distanceBetweenVertices = rhumb.surfaceDistance / numVertices;\n\n if (!defined(result)) {\n result = [];\n }\n\n const positions = result;\n positions.length = numVertices * 3;\n\n let index = 0;\n for (let i = 0; i < numVertices; i++) {\n const c = rhumb.interpolateUsingSurfaceDistance(\n i * distanceBetweenVertices,\n scratchCartographic2\n );\n const 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\nconst scaleToGeodeticHeightN1 = new Cartesian3();\nconst scaleToGeodeticHeightN2 = new Cartesian3();\nconst scaleToGeodeticHeightP1 = new Cartesian3();\nconst 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 const n1 = scaleToGeodeticHeightN1;\n let n2 = scaleToGeodeticHeightN2;\n const p = scaleToGeodeticHeightP1;\n let p2 = scaleToGeodeticHeightP2;\n\n if (\n defined(geometry) &&\n defined(geometry.attributes) &&\n defined(geometry.attributes.position)\n ) {\n const positions = geometry.attributes.position.values;\n const length = positions.length / 2;\n\n for (let 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 const polygons = [];\n const queue = new Queue();\n queue.enqueue(polygonHierarchy);\n let i;\n let j;\n let length;\n while (queue.length !== 0) {\n const outerNode = queue.dequeue();\n let 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 const numChildren = outerNode.holes ? outerNode.holes.length : 0;\n // The outer polygon contains inner polygons\n for (i = 0; i < numChildren; i++) {\n const hole = outerNode.holes[i];\n let 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 let 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 const hierarchy = [];\n const polygons = [];\n\n const queue = new Queue();\n queue.enqueue(polygonHierarchy);\n\n while (queue.length !== 0) {\n const outerNode = queue.dequeue();\n let outerRing = outerNode.positions;\n const holes = outerNode.holes;\n\n let i;\n let 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 let positions2D = projectPointsTo2D(outerRing);\n if (!defined(positions2D)) {\n continue;\n }\n const holeIndices = [];\n\n let originalWindingOrder = PolygonPipeline.computeWindingOrder2D(\n positions2D\n );\n if (originalWindingOrder === WindingOrder.CLOCKWISE) {\n positions2D.reverse();\n outerRing = outerRing.slice().reverse();\n }\n\n let positions = outerRing.slice();\n const numChildren = defined(holes) ? holes.length : 0;\n const polygonHoles = [];\n let j;\n\n for (i = 0; i < numChildren; i++) {\n const hole = holes[i];\n let 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 const 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 let 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\nconst computeBoundingRectangleCartesian2 = new Cartesian2();\nconst computeBoundingRectangleCartesian3 = new Cartesian3();\nconst computeBoundingRectangleQuaternion = new Quaternion();\nconst computeBoundingRectangleMatrix3 = new Matrix3();\nPolygonGeometryLibrary.computeBoundingRectangle = function (\n planeNormal,\n projectPointTo2D,\n positions,\n angle,\n result\n) {\n const rotation = Quaternion.fromAxisAngle(\n planeNormal,\n angle,\n computeBoundingRectangleQuaternion\n );\n const textureMatrix = Matrix3.fromQuaternion(\n rotation,\n computeBoundingRectangleMatrix3\n );\n\n let minX = Number.POSITIVE_INFINITY;\n let maxX = Number.NEGATIVE_INFINITY;\n let minY = Number.POSITIVE_INFINITY;\n let maxY = Number.NEGATIVE_INFINITY;\n\n const length = positions.length;\n for (let i = 0; i < length; ++i) {\n const p = Cartesian3.clone(\n positions[i],\n computeBoundingRectangleCartesian3\n );\n Matrix3.multiplyByVector(textureMatrix, p, p);\n const 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 let 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 const positions = polygon.positions;\n\n if (perPositionHeight) {\n const length = positions.length;\n const flattenedPositions = new Array(length * 3);\n let index = 0;\n for (let i = 0; i < length; i++) {\n const p = positions[i];\n flattenedPositions[index++] = p.x;\n flattenedPositions[index++] = p.y;\n flattenedPositions[index++] = p.z;\n }\n const 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\nconst computeWallIndicesSubdivided = [];\nconst p1Scratch = new Cartesian3();\nconst p2Scratch = new Cartesian3();\n\nPolygonGeometryLibrary.computeWallGeometry = function (\n positions,\n ellipsoid,\n granularity,\n perPositionHeight,\n arcType\n) {\n let edgePositions;\n let topEdgeLength;\n let i;\n let p1;\n let p2;\n\n let length = positions.length;\n let index = 0;\n\n if (!perPositionHeight) {\n const minDistance = CesiumMath.chordLength(\n granularity,\n ellipsoid.maximumRadius\n );\n\n let 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 let 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 const tempPositionsLength = tempPositions.length;\n for (let 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 const indices = IndexDatatype.createTypedArray(\n length / 3,\n length - positions.length * 6\n );\n let edgeIndex = 0;\n length /= 6;\n\n for (i = 0; i < length; i++) {\n const UL = i;\n const UR = UL + 1;\n const LL = UL + length;\n const 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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"} |