1 line
38 KiB
Plaintext
1 line
38 KiB
Plaintext
{"version":3,"file":"createPolylineGeometry.js","sources":["../../../../Source/Core/PolylineGeometry.js","../../../../Source/WorkersES6/createPolylineGeometry.js"],"sourcesContent":["import ArcType from \"./ArcType.js\";\nimport arrayRemoveDuplicates from \"./arrayRemoveDuplicates.js\";\nimport BoundingSphere from \"./BoundingSphere.js\";\nimport Cartesian3 from \"./Cartesian3.js\";\nimport Color from \"./Color.js\";\nimport ComponentDatatype from \"./ComponentDatatype.js\";\nimport defaultValue from \"./defaultValue.js\";\nimport defined from \"./defined.js\";\nimport DeveloperError from \"./DeveloperError.js\";\nimport Ellipsoid from \"./Ellipsoid.js\";\nimport Geometry from \"./Geometry.js\";\nimport GeometryAttribute from \"./GeometryAttribute.js\";\nimport GeometryAttributes from \"./GeometryAttributes.js\";\nimport GeometryType from \"./GeometryType.js\";\nimport IndexDatatype from \"./IndexDatatype.js\";\nimport CesiumMath from \"./Math.js\";\nimport PolylinePipeline from \"./PolylinePipeline.js\";\nimport PrimitiveType from \"./PrimitiveType.js\";\nimport VertexFormat from \"./VertexFormat.js\";\n\nconst scratchInterpolateColorsArray = [];\n\nfunction interpolateColors(p0, p1, color0, color1, numPoints) {\n const colors = scratchInterpolateColorsArray;\n colors.length = numPoints;\n let i;\n\n const r0 = color0.red;\n const g0 = color0.green;\n const b0 = color0.blue;\n const a0 = color0.alpha;\n\n const r1 = color1.red;\n const g1 = color1.green;\n const b1 = color1.blue;\n const a1 = color1.alpha;\n\n if (Color.equals(color0, color1)) {\n for (i = 0; i < numPoints; i++) {\n colors[i] = Color.clone(color0);\n }\n return colors;\n }\n\n const redPerVertex = (r1 - r0) / numPoints;\n const greenPerVertex = (g1 - g0) / numPoints;\n const bluePerVertex = (b1 - b0) / numPoints;\n const alphaPerVertex = (a1 - a0) / numPoints;\n\n for (i = 0; i < numPoints; i++) {\n colors[i] = new Color(\n r0 + i * redPerVertex,\n g0 + i * greenPerVertex,\n b0 + i * bluePerVertex,\n a0 + i * alphaPerVertex\n );\n }\n\n return colors;\n}\n\n/**\n * A description of a polyline modeled as a line strip; the first two positions define a line segment,\n * and each additional position defines a line segment from the previous position. The polyline is capable of\n * displaying with a material.\n *\n * @alias PolylineGeometry\n * @constructor\n *\n * @param {Object} options Object with the following properties:\n * @param {Cartesian3[]} options.positions An array of {@link Cartesian3} defining the positions in the polyline as a line strip.\n * @param {Number} [options.width=1.0] The width in pixels.\n * @param {Color[]} [options.colors] An Array of {@link Color} defining the per vertex or per segment colors.\n * @param {Boolean} [options.colorsPerVertex=false] A boolean that determines whether the colors will be flat across each segment of the line or interpolated across the vertices.\n * @param {ArcType} [options.arcType=ArcType.GEODESIC] The type of line the polyline segments must follow.\n * @param {Number} [options.granularity=CesiumMath.RADIANS_PER_DEGREE] The distance, in radians, between each latitude and longitude if options.arcType is not ArcType.NONE. Determines the number of positions in the buffer.\n * @param {VertexFormat} [options.vertexFormat=VertexFormat.DEFAULT] The vertex attributes to be computed.\n * @param {Ellipsoid} [options.ellipsoid=Ellipsoid.WGS84] The ellipsoid to be used as a reference.\n *\n * @exception {DeveloperError} At least two positions are required.\n * @exception {DeveloperError} width must be greater than or equal to one.\n * @exception {DeveloperError} colors has an invalid length.\n *\n * @see PolylineGeometry#createGeometry\n *\n * @demo {@link https://sandcastle.cesium.com/index.html?src=Polyline.html|Cesium Sandcastle Polyline Demo}\n *\n * @example\n * // A polyline with two connected line segments\n * const polyline = new Cesium.PolylineGeometry({\n * positions : Cesium.Cartesian3.fromDegreesArray([\n * 0.0, 0.0,\n * 5.0, 0.0,\n * 5.0, 5.0\n * ]),\n * width : 10.0\n * });\n * const geometry = Cesium.PolylineGeometry.createGeometry(polyline);\n */\nfunction PolylineGeometry(options) {\n options = defaultValue(options, defaultValue.EMPTY_OBJECT);\n const positions = options.positions;\n const colors = options.colors;\n const width = defaultValue(options.width, 1.0);\n const colorsPerVertex = defaultValue(options.colorsPerVertex, false);\n\n //>>includeStart('debug', pragmas.debug);\n if (!defined(positions) || positions.length < 2) {\n throw new DeveloperError(\"At least two positions are required.\");\n }\n if (typeof width !== \"number\") {\n throw new DeveloperError(\"width must be a number\");\n }\n if (\n defined(colors) &&\n ((colorsPerVertex && colors.length < positions.length) ||\n (!colorsPerVertex && colors.length < positions.length - 1))\n ) {\n throw new DeveloperError(\"colors has an invalid length.\");\n }\n //>>includeEnd('debug');\n\n this._positions = positions;\n this._colors = colors;\n this._width = width;\n this._colorsPerVertex = colorsPerVertex;\n this._vertexFormat = VertexFormat.clone(\n defaultValue(options.vertexFormat, VertexFormat.DEFAULT)\n );\n\n this._arcType = defaultValue(options.arcType, ArcType.GEODESIC);\n this._granularity = defaultValue(\n options.granularity,\n CesiumMath.RADIANS_PER_DEGREE\n );\n this._ellipsoid = Ellipsoid.clone(\n defaultValue(options.ellipsoid, Ellipsoid.WGS84)\n );\n this._workerName = \"createPolylineGeometry\";\n\n let numComponents = 1 + positions.length * Cartesian3.packedLength;\n numComponents += defined(colors) ? 1 + colors.length * Color.packedLength : 1;\n\n /**\n * The number of elements used to pack the object into an array.\n * @type {Number}\n */\n this.packedLength =\n numComponents + Ellipsoid.packedLength + VertexFormat.packedLength + 4;\n}\n\n/**\n * Stores the provided instance into the provided array.\n *\n * @param {PolylineGeometry} value The value to pack.\n * @param {Number[]} array The array to pack into.\n * @param {Number} [startingIndex=0] The index into the array at which to start packing the elements.\n *\n * @returns {Number[]} The array that was packed into\n */\nPolylineGeometry.pack = function (value, array, startingIndex) {\n //>>includeStart('debug', pragmas.debug);\n if (!defined(value)) {\n throw new DeveloperError(\"value is required\");\n }\n if (!defined(array)) {\n throw new DeveloperError(\"array is required\");\n }\n //>>includeEnd('debug');\n\n startingIndex = defaultValue(startingIndex, 0);\n\n let i;\n\n const positions = value._positions;\n let length = positions.length;\n array[startingIndex++] = length;\n\n for (i = 0; i < length; ++i, startingIndex += Cartesian3.packedLength) {\n Cartesian3.pack(positions[i], array, startingIndex);\n }\n\n const colors = value._colors;\n length = defined(colors) ? colors.length : 0.0;\n array[startingIndex++] = length;\n\n for (i = 0; i < length; ++i, startingIndex += Color.packedLength) {\n Color.pack(colors[i], array, startingIndex);\n }\n\n Ellipsoid.pack(value._ellipsoid, array, startingIndex);\n startingIndex += Ellipsoid.packedLength;\n\n VertexFormat.pack(value._vertexFormat, array, startingIndex);\n startingIndex += VertexFormat.packedLength;\n\n array[startingIndex++] = value._width;\n array[startingIndex++] = value._colorsPerVertex ? 1.0 : 0.0;\n array[startingIndex++] = value._arcType;\n array[startingIndex] = value._granularity;\n\n return array;\n};\n\nconst scratchEllipsoid = Ellipsoid.clone(Ellipsoid.UNIT_SPHERE);\nconst scratchVertexFormat = new VertexFormat();\nconst scratchOptions = {\n positions: undefined,\n colors: undefined,\n ellipsoid: scratchEllipsoid,\n vertexFormat: scratchVertexFormat,\n width: undefined,\n colorsPerVertex: undefined,\n arcType: undefined,\n granularity: undefined,\n};\n\n/**\n * Retrieves an instance from a packed array.\n *\n * @param {Number[]} array The packed array.\n * @param {Number} [startingIndex=0] The starting index of the element to be unpacked.\n * @param {PolylineGeometry} [result] The object into which to store the result.\n * @returns {PolylineGeometry} The modified result parameter or a new PolylineGeometry instance if one was not provided.\n */\nPolylineGeometry.unpack = function (array, startingIndex, result) {\n //>>includeStart('debug', pragmas.debug);\n if (!defined(array)) {\n throw new DeveloperError(\"array is required\");\n }\n //>>includeEnd('debug');\n\n startingIndex = defaultValue(startingIndex, 0);\n\n let i;\n\n let length = array[startingIndex++];\n const positions = new Array(length);\n\n for (i = 0; i < length; ++i, startingIndex += Cartesian3.packedLength) {\n positions[i] = Cartesian3.unpack(array, startingIndex);\n }\n\n length = array[startingIndex++];\n const colors = length > 0 ? new Array(length) : undefined;\n\n for (i = 0; i < length; ++i, startingIndex += Color.packedLength) {\n colors[i] = Color.unpack(array, startingIndex);\n }\n\n const ellipsoid = Ellipsoid.unpack(array, startingIndex, scratchEllipsoid);\n startingIndex += Ellipsoid.packedLength;\n\n const vertexFormat = VertexFormat.unpack(\n array,\n startingIndex,\n scratchVertexFormat\n );\n startingIndex += VertexFormat.packedLength;\n\n const width = array[startingIndex++];\n const colorsPerVertex = array[startingIndex++] === 1.0;\n const arcType = array[startingIndex++];\n const granularity = array[startingIndex];\n\n if (!defined(result)) {\n scratchOptions.positions = positions;\n scratchOptions.colors = colors;\n scratchOptions.width = width;\n scratchOptions.colorsPerVertex = colorsPerVertex;\n scratchOptions.arcType = arcType;\n scratchOptions.granularity = granularity;\n return new PolylineGeometry(scratchOptions);\n }\n\n result._positions = positions;\n result._colors = colors;\n result._ellipsoid = Ellipsoid.clone(ellipsoid, result._ellipsoid);\n result._vertexFormat = VertexFormat.clone(vertexFormat, result._vertexFormat);\n result._width = width;\n result._colorsPerVertex = colorsPerVertex;\n result._arcType = arcType;\n result._granularity = granularity;\n\n return result;\n};\n\nconst scratchCartesian3 = new Cartesian3();\nconst scratchPosition = new Cartesian3();\nconst scratchPrevPosition = new Cartesian3();\nconst scratchNextPosition = new Cartesian3();\n\n/**\n * Computes the geometric representation of a polyline, including its vertices, indices, and a bounding sphere.\n *\n * @param {PolylineGeometry} polylineGeometry A description of the polyline.\n * @returns {Geometry|undefined} The computed vertices and indices.\n */\nPolylineGeometry.createGeometry = function (polylineGeometry) {\n const width = polylineGeometry._width;\n const vertexFormat = polylineGeometry._vertexFormat;\n let colors = polylineGeometry._colors;\n const colorsPerVertex = polylineGeometry._colorsPerVertex;\n const arcType = polylineGeometry._arcType;\n const granularity = polylineGeometry._granularity;\n const ellipsoid = polylineGeometry._ellipsoid;\n\n let i;\n let j;\n let k;\n\n const removedIndices = [];\n let positions = arrayRemoveDuplicates(\n polylineGeometry._positions,\n Cartesian3.equalsEpsilon,\n false,\n removedIndices\n );\n\n if (defined(colors) && removedIndices.length > 0) {\n let removedArrayIndex = 0;\n let nextRemovedIndex = removedIndices[0];\n colors = colors.filter(function (color, index) {\n let remove = false;\n if (colorsPerVertex) {\n remove =\n index === nextRemovedIndex || (index === 0 && nextRemovedIndex === 1);\n } else {\n remove = index + 1 === nextRemovedIndex;\n }\n\n if (remove) {\n removedArrayIndex++;\n nextRemovedIndex = removedIndices[removedArrayIndex];\n return false;\n }\n return true;\n });\n }\n\n let positionsLength = positions.length;\n\n // A width of a pixel or less is not a valid geometry, but in order to support external data\n // that may have errors we treat this as an empty geometry.\n if (positionsLength < 2 || width <= 0.0) {\n return undefined;\n }\n\n if (arcType === ArcType.GEODESIC || arcType === ArcType.RHUMB) {\n let subdivisionSize;\n let numberOfPointsFunction;\n if (arcType === ArcType.GEODESIC) {\n subdivisionSize = CesiumMath.chordLength(\n granularity,\n ellipsoid.maximumRadius\n );\n numberOfPointsFunction = PolylinePipeline.numberOfPoints;\n } else {\n subdivisionSize = granularity;\n numberOfPointsFunction = PolylinePipeline.numberOfPointsRhumbLine;\n }\n\n const heights = PolylinePipeline.extractHeights(positions, ellipsoid);\n\n if (defined(colors)) {\n let colorLength = 1;\n for (i = 0; i < positionsLength - 1; ++i) {\n colorLength += numberOfPointsFunction(\n positions[i],\n positions[i + 1],\n subdivisionSize\n );\n }\n\n const newColors = new Array(colorLength);\n let newColorIndex = 0;\n\n for (i = 0; i < positionsLength - 1; ++i) {\n const p0 = positions[i];\n const p1 = positions[i + 1];\n const c0 = colors[i];\n\n const numColors = numberOfPointsFunction(p0, p1, subdivisionSize);\n if (colorsPerVertex && i < colorLength) {\n const c1 = colors[i + 1];\n const interpolatedColors = interpolateColors(\n p0,\n p1,\n c0,\n c1,\n numColors\n );\n const interpolatedColorsLength = interpolatedColors.length;\n for (j = 0; j < interpolatedColorsLength; ++j) {\n newColors[newColorIndex++] = interpolatedColors[j];\n }\n } else {\n for (j = 0; j < numColors; ++j) {\n newColors[newColorIndex++] = Color.clone(c0);\n }\n }\n }\n\n newColors[newColorIndex] = Color.clone(colors[colors.length - 1]);\n colors = newColors;\n\n scratchInterpolateColorsArray.length = 0;\n }\n\n if (arcType === ArcType.GEODESIC) {\n positions = PolylinePipeline.generateCartesianArc({\n positions: positions,\n minDistance: subdivisionSize,\n ellipsoid: ellipsoid,\n height: heights,\n });\n } else {\n positions = PolylinePipeline.generateCartesianRhumbArc({\n positions: positions,\n granularity: subdivisionSize,\n ellipsoid: ellipsoid,\n height: heights,\n });\n }\n }\n\n positionsLength = positions.length;\n const size = positionsLength * 4.0 - 4.0;\n\n const finalPositions = new Float64Array(size * 3);\n const prevPositions = new Float64Array(size * 3);\n const nextPositions = new Float64Array(size * 3);\n const expandAndWidth = new Float32Array(size * 2);\n const st = vertexFormat.st ? new Float32Array(size * 2) : undefined;\n const finalColors = defined(colors) ? new Uint8Array(size * 4) : undefined;\n\n let positionIndex = 0;\n let expandAndWidthIndex = 0;\n let stIndex = 0;\n let colorIndex = 0;\n let position;\n\n for (j = 0; j < positionsLength; ++j) {\n if (j === 0) {\n position = scratchCartesian3;\n Cartesian3.subtract(positions[0], positions[1], position);\n Cartesian3.add(positions[0], position, position);\n } else {\n position = positions[j - 1];\n }\n\n Cartesian3.clone(position, scratchPrevPosition);\n Cartesian3.clone(positions[j], scratchPosition);\n\n if (j === positionsLength - 1) {\n position = scratchCartesian3;\n Cartesian3.subtract(\n positions[positionsLength - 1],\n positions[positionsLength - 2],\n position\n );\n Cartesian3.add(positions[positionsLength - 1], position, position);\n } else {\n position = positions[j + 1];\n }\n\n Cartesian3.clone(position, scratchNextPosition);\n\n let color0, color1;\n if (defined(finalColors)) {\n if (j !== 0 && !colorsPerVertex) {\n color0 = colors[j - 1];\n } else {\n color0 = colors[j];\n }\n\n if (j !== positionsLength - 1) {\n color1 = colors[j];\n }\n }\n\n const startK = j === 0 ? 2 : 0;\n const endK = j === positionsLength - 1 ? 2 : 4;\n\n for (k = startK; k < endK; ++k) {\n Cartesian3.pack(scratchPosition, finalPositions, positionIndex);\n Cartesian3.pack(scratchPrevPosition, prevPositions, positionIndex);\n Cartesian3.pack(scratchNextPosition, nextPositions, positionIndex);\n positionIndex += 3;\n\n const direction = k - 2 < 0 ? -1.0 : 1.0;\n expandAndWidth[expandAndWidthIndex++] = 2 * (k % 2) - 1; // expand direction\n expandAndWidth[expandAndWidthIndex++] = direction * width;\n\n if (vertexFormat.st) {\n st[stIndex++] = j / (positionsLength - 1);\n st[stIndex++] = Math.max(expandAndWidth[expandAndWidthIndex - 2], 0.0);\n }\n\n if (defined(finalColors)) {\n const color = k < 2 ? color0 : color1;\n\n finalColors[colorIndex++] = Color.floatToByte(color.red);\n finalColors[colorIndex++] = Color.floatToByte(color.green);\n finalColors[colorIndex++] = Color.floatToByte(color.blue);\n finalColors[colorIndex++] = Color.floatToByte(color.alpha);\n }\n }\n }\n\n const attributes = new GeometryAttributes();\n\n attributes.position = new GeometryAttribute({\n componentDatatype: ComponentDatatype.DOUBLE,\n componentsPerAttribute: 3,\n values: finalPositions,\n });\n\n attributes.prevPosition = new GeometryAttribute({\n componentDatatype: ComponentDatatype.DOUBLE,\n componentsPerAttribute: 3,\n values: prevPositions,\n });\n\n attributes.nextPosition = new GeometryAttribute({\n componentDatatype: ComponentDatatype.DOUBLE,\n componentsPerAttribute: 3,\n values: nextPositions,\n });\n\n attributes.expandAndWidth = new GeometryAttribute({\n componentDatatype: ComponentDatatype.FLOAT,\n componentsPerAttribute: 2,\n values: expandAndWidth,\n });\n\n if (vertexFormat.st) {\n attributes.st = new GeometryAttribute({\n componentDatatype: ComponentDatatype.FLOAT,\n componentsPerAttribute: 2,\n values: st,\n });\n }\n\n if (defined(finalColors)) {\n attributes.color = new GeometryAttribute({\n componentDatatype: ComponentDatatype.UNSIGNED_BYTE,\n componentsPerAttribute: 4,\n values: finalColors,\n normalize: true,\n });\n }\n\n const indices = IndexDatatype.createTypedArray(size, positionsLength * 6 - 6);\n let index = 0;\n let indicesIndex = 0;\n const length = positionsLength - 1.0;\n for (j = 0; j < length; ++j) {\n indices[indicesIndex++] = index;\n indices[indicesIndex++] = index + 2;\n indices[indicesIndex++] = index + 1;\n\n indices[indicesIndex++] = index + 1;\n indices[indicesIndex++] = index + 2;\n indices[indicesIndex++] = index + 3;\n\n index += 4;\n }\n\n return new Geometry({\n attributes: attributes,\n indices: indices,\n primitiveType: PrimitiveType.TRIANGLES,\n boundingSphere: BoundingSphere.fromPoints(positions),\n geometryType: GeometryType.POLYLINES,\n });\n};\nexport default PolylineGeometry;\n","import defined from \"../Core/defined.js\";\nimport Ellipsoid from \"../Core/Ellipsoid.js\";\nimport PolylineGeometry from \"../Core/PolylineGeometry.js\";\n\nfunction createPolylineGeometry(polylineGeometry, offset) {\n if (defined(offset)) {\n polylineGeometry = PolylineGeometry.unpack(polylineGeometry, offset);\n }\n polylineGeometry._ellipsoid = Ellipsoid.clone(polylineGeometry._ellipsoid);\n return PolylineGeometry.createGeometry(polylineGeometry);\n}\nexport default createPolylineGeometry;\n"],"names":["Color","defaultValue","defined","DeveloperError","VertexFormat","ArcType","CesiumMath","Ellipsoid","Cartesian3","arrayRemoveDuplicates","PolylinePipeline","GeometryAttributes","GeometryAttribute","ComponentDatatype","IndexDatatype","Geometry","PrimitiveType","BoundingSphere","GeometryType"],"mappings":"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"} |