{"version":3,"file":"createPolylineVolumeOutlineGeometry.js","sources":["../../../../Source/Core/PolylineVolumeOutlineGeometry.js","../../../../Source/WorkersES6/createPolylineVolumeOutlineGeometry.js"],"sourcesContent":["import arrayRemoveDuplicates from \"./arrayRemoveDuplicates.js\";\nimport BoundingRectangle from \"./BoundingRectangle.js\";\nimport BoundingSphere from \"./BoundingSphere.js\";\nimport Cartesian2 from \"./Cartesian2.js\";\nimport Cartesian3 from \"./Cartesian3.js\";\nimport ComponentDatatype from \"./ComponentDatatype.js\";\nimport CornerType from \"./CornerType.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 IndexDatatype from \"./IndexDatatype.js\";\nimport CesiumMath from \"./Math.js\";\nimport PolygonPipeline from \"./PolygonPipeline.js\";\nimport PolylineVolumeGeometryLibrary from \"./PolylineVolumeGeometryLibrary.js\";\nimport PrimitiveType from \"./PrimitiveType.js\";\nimport WindingOrder from \"./WindingOrder.js\";\n\nfunction computeAttributes(positions, shape) {\n const attributes = new GeometryAttributes();\n attributes.position = new GeometryAttribute({\n componentDatatype: ComponentDatatype.DOUBLE,\n componentsPerAttribute: 3,\n values: positions,\n });\n\n const shapeLength = shape.length;\n const vertexCount = attributes.position.values.length / 3;\n const positionLength = positions.length / 3;\n const shapeCount = positionLength / shapeLength;\n const indices = IndexDatatype.createTypedArray(\n vertexCount,\n 2 * shapeLength * (shapeCount + 1)\n );\n let i, j;\n let index = 0;\n i = 0;\n let offset = i * shapeLength;\n for (j = 0; j < shapeLength - 1; j++) {\n indices[index++] = j + offset;\n indices[index++] = j + offset + 1;\n }\n indices[index++] = shapeLength - 1 + offset;\n indices[index++] = offset;\n\n i = shapeCount - 1;\n offset = i * shapeLength;\n for (j = 0; j < shapeLength - 1; j++) {\n indices[index++] = j + offset;\n indices[index++] = j + offset + 1;\n }\n indices[index++] = shapeLength - 1 + offset;\n indices[index++] = offset;\n\n for (i = 0; i < shapeCount - 1; i++) {\n const firstOffset = shapeLength * i;\n const secondOffset = firstOffset + shapeLength;\n for (j = 0; j < shapeLength; j++) {\n indices[index++] = j + firstOffset;\n indices[index++] = j + secondOffset;\n }\n }\n\n const geometry = new Geometry({\n attributes: attributes,\n indices: IndexDatatype.createTypedArray(vertexCount, indices),\n boundingSphere: BoundingSphere.fromVertices(positions),\n primitiveType: PrimitiveType.LINES,\n });\n\n return geometry;\n}\n\n/**\n * A description of a polyline with a volume (a 2D shape extruded along a polyline).\n *\n * @alias PolylineVolumeOutlineGeometry\n * @constructor\n *\n * @param {Object} options Object with the following properties:\n * @param {Cartesian3[]} options.polylinePositions An array of positions that define the center of the polyline volume.\n * @param {Cartesian2[]} options.shapePositions An array of positions that define the shape to be extruded along the polyline\n * @param {Ellipsoid} [options.ellipsoid=Ellipsoid.WGS84] The ellipsoid to be used as a reference.\n * @param {Number} [options.granularity=CesiumMath.RADIANS_PER_DEGREE] The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.\n * @param {CornerType} [options.cornerType=CornerType.ROUNDED] Determines the style of the corners.\n *\n * @see PolylineVolumeOutlineGeometry#createGeometry\n *\n * @example\n * function computeCircle(radius) {\n * const positions = [];\n * for (let i = 0; i < 360; i++) {\n * const radians = Cesium.Math.toRadians(i);\n * positions.push(new Cesium.Cartesian2(radius * Math.cos(radians), radius * Math.sin(radians)));\n * }\n * return positions;\n * }\n *\n * const volumeOutline = new Cesium.PolylineVolumeOutlineGeometry({\n * polylinePositions : Cesium.Cartesian3.fromDegreesArray([\n * -72.0, 40.0,\n * -70.0, 35.0\n * ]),\n * shapePositions : computeCircle(100000.0)\n * });\n */\nfunction PolylineVolumeOutlineGeometry(options) {\n options = defaultValue(options, defaultValue.EMPTY_OBJECT);\n const positions = options.polylinePositions;\n const shape = options.shapePositions;\n\n //>>includeStart('debug', pragmas.debug);\n if (!defined(positions)) {\n throw new DeveloperError(\"options.polylinePositions is required.\");\n }\n if (!defined(shape)) {\n throw new DeveloperError(\"options.shapePositions is required.\");\n }\n //>>includeEnd('debug');\n\n this._positions = positions;\n this._shape = shape;\n this._ellipsoid = Ellipsoid.clone(\n defaultValue(options.ellipsoid, Ellipsoid.WGS84)\n );\n this._cornerType = defaultValue(options.cornerType, CornerType.ROUNDED);\n this._granularity = defaultValue(\n options.granularity,\n CesiumMath.RADIANS_PER_DEGREE\n );\n this._workerName = \"createPolylineVolumeOutlineGeometry\";\n\n let numComponents = 1 + positions.length * Cartesian3.packedLength;\n numComponents += 1 + shape.length * Cartesian2.packedLength;\n\n /**\n * The number of elements used to pack the object into an array.\n * @type {Number}\n */\n this.packedLength = numComponents + Ellipsoid.packedLength + 2;\n}\n\n/**\n * Stores the provided instance into the provided array.\n *\n * @param {PolylineVolumeOutlineGeometry} 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 */\nPolylineVolumeOutlineGeometry.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 shape = value._shape;\n length = shape.length;\n array[startingIndex++] = length;\n\n for (i = 0; i < length; ++i, startingIndex += Cartesian2.packedLength) {\n Cartesian2.pack(shape[i], array, startingIndex);\n }\n\n Ellipsoid.pack(value._ellipsoid, array, startingIndex);\n startingIndex += Ellipsoid.packedLength;\n\n array[startingIndex++] = value._cornerType;\n array[startingIndex] = value._granularity;\n\n return array;\n};\n\nconst scratchEllipsoid = Ellipsoid.clone(Ellipsoid.UNIT_SPHERE);\nconst scratchOptions = {\n polylinePositions: undefined,\n shapePositions: undefined,\n ellipsoid: scratchEllipsoid,\n height: undefined,\n cornerType: 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 {PolylineVolumeOutlineGeometry} [result] The object into which to store the result.\n * @returns {PolylineVolumeOutlineGeometry} The modified result parameter or a new PolylineVolumeOutlineGeometry instance if one was not provided.\n */\nPolylineVolumeOutlineGeometry.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 shape = new Array(length);\n\n for (i = 0; i < length; ++i, startingIndex += Cartesian2.packedLength) {\n shape[i] = Cartesian2.unpack(array, startingIndex);\n }\n\n const ellipsoid = Ellipsoid.unpack(array, startingIndex, scratchEllipsoid);\n startingIndex += Ellipsoid.packedLength;\n\n const cornerType = array[startingIndex++];\n const granularity = array[startingIndex];\n\n if (!defined(result)) {\n scratchOptions.polylinePositions = positions;\n scratchOptions.shapePositions = shape;\n scratchOptions.cornerType = cornerType;\n scratchOptions.granularity = granularity;\n return new PolylineVolumeOutlineGeometry(scratchOptions);\n }\n\n result._positions = positions;\n result._shape = shape;\n result._ellipsoid = Ellipsoid.clone(ellipsoid, result._ellipsoid);\n result._cornerType = cornerType;\n result._granularity = granularity;\n\n return result;\n};\n\nconst brScratch = new BoundingRectangle();\n\n/**\n * Computes the geometric representation of the outline of a polyline with a volume, including its vertices, indices, and a bounding sphere.\n *\n * @param {PolylineVolumeOutlineGeometry} polylineVolumeOutlineGeometry A description of the polyline volume outline.\n * @returns {Geometry|undefined} The computed vertices and indices.\n */\nPolylineVolumeOutlineGeometry.createGeometry = function (\n polylineVolumeOutlineGeometry\n) {\n const positions = polylineVolumeOutlineGeometry._positions;\n const cleanPositions = arrayRemoveDuplicates(\n positions,\n Cartesian3.equalsEpsilon\n );\n let shape2D = polylineVolumeOutlineGeometry._shape;\n shape2D = PolylineVolumeGeometryLibrary.removeDuplicatesFromShape(shape2D);\n\n if (cleanPositions.length < 2 || shape2D.length < 3) {\n return undefined;\n }\n\n if (\n PolygonPipeline.computeWindingOrder2D(shape2D) === WindingOrder.CLOCKWISE\n ) {\n shape2D.reverse();\n }\n const boundingRectangle = BoundingRectangle.fromPoints(shape2D, brScratch);\n\n const computedPositions = PolylineVolumeGeometryLibrary.computePositions(\n cleanPositions,\n shape2D,\n boundingRectangle,\n polylineVolumeOutlineGeometry,\n false\n );\n return computeAttributes(computedPositions, shape2D);\n};\nexport default PolylineVolumeOutlineGeometry;\n","import defined from \"../Core/defined.js\";\nimport Ellipsoid from \"../Core/Ellipsoid.js\";\nimport PolylineVolumeOutlineGeometry from \"../Core/PolylineVolumeOutlineGeometry.js\";\n\nfunction createPolylineVolumeOutlineGeometry(\n polylineVolumeOutlineGeometry,\n offset\n) {\n if (defined(offset)) {\n polylineVolumeOutlineGeometry = PolylineVolumeOutlineGeometry.unpack(\n polylineVolumeOutlineGeometry,\n offset\n );\n }\n polylineVolumeOutlineGeometry._ellipsoid = Ellipsoid.clone(\n polylineVolumeOutlineGeometry._ellipsoid\n );\n return PolylineVolumeOutlineGeometry.createGeometry(\n polylineVolumeOutlineGeometry\n );\n}\nexport default createPolylineVolumeOutlineGeometry;\n"],"names":["GeometryAttributes","GeometryAttribute","ComponentDatatype","IndexDatatype","Geometry","BoundingSphere","PrimitiveType","defaultValue","defined","DeveloperError","Ellipsoid","CornerType","CesiumMath","Cartesian3","Cartesian2","BoundingRectangle","arrayRemoveDuplicates","PolylineVolumeGeometryLibrary","PolygonPipeline","WindingOrder"],"mappings":"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"}