1 line
14 KiB
Plaintext
1 line
14 KiB
Plaintext
{"version":3,"file":"createCoplanarPolygonOutlineGeometry.js","sources":["../../../../Source/Core/CoplanarPolygonOutlineGeometry.js","../../../../Source/WorkersES6/createCoplanarPolygonOutlineGeometry.js"],"sourcesContent":["import arrayRemoveDuplicates from \"./arrayRemoveDuplicates.js\";\nimport BoundingSphere from \"./BoundingSphere.js\";\nimport Cartesian3 from \"./Cartesian3.js\";\nimport Check from \"./Check.js\";\nimport ComponentDatatype from \"./ComponentDatatype.js\";\nimport CoplanarPolygonGeometryLibrary from \"./CoplanarPolygonGeometryLibrary.js\";\nimport defaultValue from \"./defaultValue.js\";\nimport defined from \"./defined.js\";\nimport Geometry from \"./Geometry.js\";\nimport GeometryAttribute from \"./GeometryAttribute.js\";\nimport GeometryAttributes from \"./GeometryAttributes.js\";\nimport GeometryInstance from \"./GeometryInstance.js\";\nimport GeometryPipeline from \"./GeometryPipeline.js\";\nimport IndexDatatype from \"./IndexDatatype.js\";\nimport PolygonGeometryLibrary from \"./PolygonGeometryLibrary.js\";\nimport PrimitiveType from \"./PrimitiveType.js\";\n\nfunction createGeometryFromPositions(positions) {\n const length = positions.length;\n const flatPositions = new Float64Array(length * 3);\n const indices = IndexDatatype.createTypedArray(length, length * 2);\n\n let positionIndex = 0;\n let index = 0;\n\n for (let i = 0; i < length; i++) {\n const position = positions[i];\n flatPositions[positionIndex++] = position.x;\n flatPositions[positionIndex++] = position.y;\n flatPositions[positionIndex++] = position.z;\n\n indices[index++] = i;\n indices[index++] = (i + 1) % length;\n }\n\n const attributes = new GeometryAttributes({\n position: new GeometryAttribute({\n componentDatatype: ComponentDatatype.DOUBLE,\n componentsPerAttribute: 3,\n values: flatPositions,\n }),\n });\n\n return new Geometry({\n attributes: attributes,\n indices: indices,\n primitiveType: PrimitiveType.LINES,\n });\n}\n\n/**\n * A description of the outline of a polygon composed of arbitrary coplanar positions.\n *\n * @alias CoplanarPolygonOutlineGeometry\n * @constructor\n *\n * @param {Object} options Object with the following properties:\n * @param {PolygonHierarchy} options.polygonHierarchy A polygon hierarchy that can include holes.\n *\n * @see CoplanarPolygonOutlineGeometry.createGeometry\n *\n * @example\n * const polygonOutline = new Cesium.CoplanarPolygonOutlineGeometry({\n * positions : Cesium.Cartesian3.fromDegreesArrayHeights([\n * -90.0, 30.0, 0.0,\n * -90.0, 30.0, 1000.0,\n * -80.0, 30.0, 1000.0,\n * -80.0, 30.0, 0.0\n * ])\n * });\n * const geometry = Cesium.CoplanarPolygonOutlineGeometry.createGeometry(polygonOutline);\n */\nfunction CoplanarPolygonOutlineGeometry(options) {\n options = defaultValue(options, defaultValue.EMPTY_OBJECT);\n const polygonHierarchy = options.polygonHierarchy;\n //>>includeStart('debug', pragmas.debug);\n Check.defined(\"options.polygonHierarchy\", polygonHierarchy);\n //>>includeEnd('debug');\n\n this._polygonHierarchy = polygonHierarchy;\n this._workerName = \"createCoplanarPolygonOutlineGeometry\";\n\n /**\n * The number of elements used to pack the object into an array.\n * @type {Number}\n */\n this.packedLength =\n PolygonGeometryLibrary.computeHierarchyPackedLength(polygonHierarchy) + 1;\n}\n\n/**\n * A description of a coplanar polygon outline from an array of positions.\n *\n * @param {Object} options Object with the following properties:\n * @param {Cartesian3[]} options.positions An array of positions that defined the corner points of the polygon.\n * @returns {CoplanarPolygonOutlineGeometry}\n */\nCoplanarPolygonOutlineGeometry.fromPositions = function (options) {\n options = defaultValue(options, defaultValue.EMPTY_OBJECT);\n\n //>>includeStart('debug', pragmas.debug);\n Check.defined(\"options.positions\", options.positions);\n //>>includeEnd('debug');\n\n const newOptions = {\n polygonHierarchy: {\n positions: options.positions,\n },\n };\n return new CoplanarPolygonOutlineGeometry(newOptions);\n};\n\n/**\n * Stores the provided instance into the provided array.\n *\n * @param {CoplanarPolygonOutlineGeometry} 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 */\nCoplanarPolygonOutlineGeometry.pack = function (value, array, startingIndex) {\n //>>includeStart('debug', pragmas.debug);\n Check.typeOf.object(\"value\", value);\n Check.defined(\"array\", array);\n //>>includeEnd('debug');\n\n startingIndex = defaultValue(startingIndex, 0);\n\n startingIndex = PolygonGeometryLibrary.packPolygonHierarchy(\n value._polygonHierarchy,\n array,\n startingIndex\n );\n\n array[startingIndex] = value.packedLength;\n\n return array;\n};\n\nconst scratchOptions = {\n polygonHierarchy: {},\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 {CoplanarPolygonOutlineGeometry} [result] The object into which to store the result.\n * @returns {CoplanarPolygonOutlineGeometry} The modified result parameter or a new CoplanarPolygonOutlineGeometry instance if one was not provided.\n */\nCoplanarPolygonOutlineGeometry.unpack = function (\n array,\n startingIndex,\n result\n) {\n //>>includeStart('debug', pragmas.debug);\n Check.defined(\"array\", array);\n //>>includeEnd('debug');\n\n startingIndex = defaultValue(startingIndex, 0);\n\n const polygonHierarchy = PolygonGeometryLibrary.unpackPolygonHierarchy(\n array,\n startingIndex\n );\n startingIndex = polygonHierarchy.startingIndex;\n delete polygonHierarchy.startingIndex;\n const packedLength = array[startingIndex];\n\n if (!defined(result)) {\n result = new CoplanarPolygonOutlineGeometry(scratchOptions);\n }\n\n result._polygonHierarchy = polygonHierarchy;\n result.packedLength = packedLength;\n\n return result;\n};\n\n/**\n * Computes the geometric representation of an arbitrary coplanar polygon, including its vertices, indices, and a bounding sphere.\n *\n * @param {CoplanarPolygonOutlineGeometry} polygonGeometry A description of the polygon.\n * @returns {Geometry|undefined} The computed vertices and indices.\n */\nCoplanarPolygonOutlineGeometry.createGeometry = function (polygonGeometry) {\n const polygonHierarchy = polygonGeometry._polygonHierarchy;\n\n let outerPositions = polygonHierarchy.positions;\n outerPositions = arrayRemoveDuplicates(\n outerPositions,\n Cartesian3.equalsEpsilon,\n true\n );\n if (outerPositions.length < 3) {\n return;\n }\n const isValid = CoplanarPolygonGeometryLibrary.validOutline(outerPositions);\n if (!isValid) {\n return undefined;\n }\n\n const polygons = PolygonGeometryLibrary.polygonOutlinesFromHierarchy(\n polygonHierarchy,\n false\n );\n\n if (polygons.length === 0) {\n return undefined;\n }\n\n const geometries = [];\n\n for (let i = 0; i < polygons.length; i++) {\n const geometryInstance = new GeometryInstance({\n geometry: createGeometryFromPositions(polygons[i]),\n });\n geometries.push(geometryInstance);\n }\n\n const geometry = GeometryPipeline.combineInstances(geometries)[0];\n const boundingSphere = BoundingSphere.fromPoints(polygonHierarchy.positions);\n\n return new Geometry({\n attributes: geometry.attributes,\n indices: geometry.indices,\n primitiveType: geometry.primitiveType,\n boundingSphere: boundingSphere,\n });\n};\nexport default CoplanarPolygonOutlineGeometry;\n","import CoplanarPolygonOutlineGeometry from \"../Core/CoplanarPolygonOutlineGeometry.js\";\nimport defined from \"../Core/defined.js\";\nimport Ellipsoid from \"../Core/Ellipsoid.js\";\n\nfunction createCoplanarPolygonOutlineGeometry(polygonGeometry, offset) {\n if (defined(offset)) {\n polygonGeometry = CoplanarPolygonOutlineGeometry.unpack(\n polygonGeometry,\n offset\n );\n }\n polygonGeometry._ellipsoid = Ellipsoid.clone(polygonGeometry._ellipsoid);\n return CoplanarPolygonOutlineGeometry.createGeometry(polygonGeometry);\n}\nexport default createCoplanarPolygonOutlineGeometry;\n"],"names":["IndexDatatype","GeometryAttributes","GeometryAttribute","ComponentDatatype","Geometry","PrimitiveType","defaultValue","Check","PolygonGeometryLibrary","defined","arrayRemoveDuplicates","Cartesian3","CoplanarPolygonGeometryLibrary","GeometryInstance","GeometryPipeline","BoundingSphere","Ellipsoid"],"mappings":"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"} |