{"version":3,"file":"PrimitivePipeline-ffc4dd1c.js","sources":["../../../../Source/Core/OffsetGeometryInstanceAttribute.js","../../../../Source/Scene/PrimitivePipeline.js"],"sourcesContent":["import Check from \"./Check.js\";\nimport ComponentDatatype from \"./ComponentDatatype.js\";\nimport defaultValue from \"./defaultValue.js\";\nimport defined from \"./defined.js\";\n\n/**\n * Value and type information for per-instance geometry attribute that determines the geometry instance offset\n *\n * @alias OffsetGeometryInstanceAttribute\n * @constructor\n *\n * @param {Number} [x=0] The x translation\n * @param {Number} [y=0] The y translation\n * @param {Number} [z=0] The z translation\n *\n * @private\n *\n * @see GeometryInstance\n * @see GeometryInstanceAttribute\n */\nfunction OffsetGeometryInstanceAttribute(x, y, z) {\n x = defaultValue(x, 0);\n y = defaultValue(y, 0);\n z = defaultValue(z, 0);\n\n /**\n * The values for the attributes stored in a typed array.\n *\n * @type Float32Array\n */\n this.value = new Float32Array([x, y, z]);\n}\n\nObject.defineProperties(OffsetGeometryInstanceAttribute.prototype, {\n /**\n * The datatype of each component in the attribute, e.g., individual elements in\n * {@link OffsetGeometryInstanceAttribute#value}.\n *\n * @memberof OffsetGeometryInstanceAttribute.prototype\n *\n * @type {ComponentDatatype}\n * @readonly\n *\n * @default {@link ComponentDatatype.FLOAT}\n */\n componentDatatype: {\n get: function () {\n return ComponentDatatype.FLOAT;\n },\n },\n\n /**\n * The number of components in the attributes, i.e., {@link OffsetGeometryInstanceAttribute#value}.\n *\n * @memberof OffsetGeometryInstanceAttribute.prototype\n *\n * @type {Number}\n * @readonly\n *\n * @default 3\n */\n componentsPerAttribute: {\n get: function () {\n return 3;\n },\n },\n\n /**\n * When true
and componentDatatype
is an integer format,\n * indicate that the components should be mapped to the range [0, 1] (unsigned)\n * or [-1, 1] (signed) when they are accessed as floating-point for rendering.\n *\n * @memberof OffsetGeometryInstanceAttribute.prototype\n *\n * @type {Boolean}\n * @readonly\n *\n * @default false\n */\n normalize: {\n get: function () {\n return false;\n },\n },\n});\n\n/**\n * Creates a new {@link OffsetGeometryInstanceAttribute} instance given the provided an enabled flag and {@link DistanceDisplayCondition}.\n *\n * @param {Cartesian3} offset The cartesian offset\n * @returns {OffsetGeometryInstanceAttribute} The new {@link OffsetGeometryInstanceAttribute} instance.\n */\nOffsetGeometryInstanceAttribute.fromCartesian3 = function (offset) {\n //>>includeStart('debug', pragmas.debug);\n Check.defined(\"offset\", offset);\n //>>includeEnd('debug');\n\n return new OffsetGeometryInstanceAttribute(offset.x, offset.y, offset.z);\n};\n\n/**\n * Converts a distance display condition to a typed array that can be used to assign a distance display condition attribute.\n *\n * @param {Cartesian3} offset The cartesian offset\n * @param {Float32Array} [result] The array to store the result in, if undefined a new instance will be created.\n * @returns {Float32Array} The modified result parameter or a new instance if result was undefined.\n *\n * @example\n * const attributes = primitive.getGeometryInstanceAttributes('an id');\n * attributes.modelMatrix = Cesium.OffsetGeometryInstanceAttribute.toValue(modelMatrix, attributes.modelMatrix);\n */\nOffsetGeometryInstanceAttribute.toValue = function (offset, result) {\n //>>includeStart('debug', pragmas.debug);\n Check.defined(\"offset\", offset);\n //>>includeEnd('debug');\n\n if (!defined(result)) {\n result = new Float32Array([offset.x, offset.y, offset.z]);\n }\n\n result[0] = offset.x;\n result[1] = offset.y;\n result[2] = offset.z;\n return result;\n};\nexport default OffsetGeometryInstanceAttribute;\n","import BoundingSphere from \"../Core/BoundingSphere.js\";\nimport ComponentDatatype from \"../Core/ComponentDatatype.js\";\nimport defaultValue from \"../Core/defaultValue.js\";\nimport defined from \"../Core/defined.js\";\nimport DeveloperError from \"../Core/DeveloperError.js\";\nimport Ellipsoid from \"../Core/Ellipsoid.js\";\nimport GeographicProjection from \"../Core/GeographicProjection.js\";\nimport Geometry from \"../Core/Geometry.js\";\nimport GeometryAttribute from \"../Core/GeometryAttribute.js\";\nimport GeometryAttributes from \"../Core/GeometryAttributes.js\";\nimport GeometryPipeline from \"../Core/GeometryPipeline.js\";\nimport IndexDatatype from \"../Core/IndexDatatype.js\";\nimport Matrix4 from \"../Core/Matrix4.js\";\nimport OffsetGeometryInstanceAttribute from \"../Core/OffsetGeometryInstanceAttribute.js\";\nimport WebMercatorProjection from \"../Core/WebMercatorProjection.js\";\n\nfunction transformToWorldCoordinates(\n instances,\n primitiveModelMatrix,\n scene3DOnly\n) {\n let toWorld = !scene3DOnly;\n const length = instances.length;\n let i;\n\n if (!toWorld && length > 1) {\n const modelMatrix = instances[0].modelMatrix;\n\n for (i = 1; i < length; ++i) {\n if (!Matrix4.equals(modelMatrix, instances[i].modelMatrix)) {\n toWorld = true;\n break;\n }\n }\n }\n\n if (toWorld) {\n for (i = 0; i < length; ++i) {\n if (defined(instances[i].geometry)) {\n GeometryPipeline.transformToWorldCoordinates(instances[i]);\n }\n }\n } else {\n // Leave geometry in local coordinate system; auto update model-matrix.\n Matrix4.multiplyTransformation(\n primitiveModelMatrix,\n instances[0].modelMatrix,\n primitiveModelMatrix\n );\n }\n}\n\nfunction addGeometryBatchId(geometry, batchId) {\n const attributes = geometry.attributes;\n const positionAttr = attributes.position;\n const numberOfComponents =\n positionAttr.values.length / positionAttr.componentsPerAttribute;\n\n attributes.batchId = new GeometryAttribute({\n componentDatatype: ComponentDatatype.FLOAT,\n componentsPerAttribute: 1,\n values: new Float32Array(numberOfComponents),\n });\n\n const values = attributes.batchId.values;\n for (let j = 0; j < numberOfComponents; ++j) {\n values[j] = batchId;\n }\n}\n\nfunction addBatchIds(instances) {\n const length = instances.length;\n\n for (let i = 0; i < length; ++i) {\n const instance = instances[i];\n if (defined(instance.geometry)) {\n addGeometryBatchId(instance.geometry, i);\n } else if (\n defined(instance.westHemisphereGeometry) &&\n defined(instance.eastHemisphereGeometry)\n ) {\n addGeometryBatchId(instance.westHemisphereGeometry, i);\n addGeometryBatchId(instance.eastHemisphereGeometry, i);\n }\n }\n}\n\nfunction geometryPipeline(parameters) {\n const instances = parameters.instances;\n const projection = parameters.projection;\n const uintIndexSupport = parameters.elementIndexUintSupported;\n const scene3DOnly = parameters.scene3DOnly;\n const vertexCacheOptimize = parameters.vertexCacheOptimize;\n const compressVertices = parameters.compressVertices;\n const modelMatrix = parameters.modelMatrix;\n\n let i;\n let geometry;\n let primitiveType;\n let length = instances.length;\n\n for (i = 0; i < length; ++i) {\n if (defined(instances[i].geometry)) {\n primitiveType = instances[i].geometry.primitiveType;\n break;\n }\n }\n\n //>>includeStart('debug', pragmas.debug);\n for (i = 1; i < length; ++i) {\n if (\n defined(instances[i].geometry) &&\n instances[i].geometry.primitiveType !== primitiveType\n ) {\n throw new DeveloperError(\n \"All instance geometries must have the same primitiveType.\"\n );\n }\n }\n //>>includeEnd('debug');\n\n // Unify to world coordinates before combining.\n transformToWorldCoordinates(instances, modelMatrix, scene3DOnly);\n\n // Clip to IDL\n if (!scene3DOnly) {\n for (i = 0; i < length; ++i) {\n if (defined(instances[i].geometry)) {\n GeometryPipeline.splitLongitude(instances[i]);\n }\n }\n }\n\n addBatchIds(instances);\n\n // Optimize for vertex shader caches\n if (vertexCacheOptimize) {\n for (i = 0; i < length; ++i) {\n const instance = instances[i];\n if (defined(instance.geometry)) {\n GeometryPipeline.reorderForPostVertexCache(instance.geometry);\n GeometryPipeline.reorderForPreVertexCache(instance.geometry);\n } else if (\n defined(instance.westHemisphereGeometry) &&\n defined(instance.eastHemisphereGeometry)\n ) {\n GeometryPipeline.reorderForPostVertexCache(\n instance.westHemisphereGeometry\n );\n GeometryPipeline.reorderForPreVertexCache(\n instance.westHemisphereGeometry\n );\n\n GeometryPipeline.reorderForPostVertexCache(\n instance.eastHemisphereGeometry\n );\n GeometryPipeline.reorderForPreVertexCache(\n instance.eastHemisphereGeometry\n );\n }\n }\n }\n\n // Combine into single geometry for better rendering performance.\n let geometries = GeometryPipeline.combineInstances(instances);\n\n length = geometries.length;\n for (i = 0; i < length; ++i) {\n geometry = geometries[i];\n\n // Split positions for GPU RTE\n const attributes = geometry.attributes;\n if (!scene3DOnly) {\n for (const name in attributes) {\n if (\n attributes.hasOwnProperty(name) &&\n attributes[name].componentDatatype === ComponentDatatype.DOUBLE\n ) {\n const name3D = `${name}3D`;\n const name2D = `${name}2D`;\n\n // Compute 2D positions\n GeometryPipeline.projectTo2D(\n geometry,\n name,\n name3D,\n name2D,\n projection\n );\n if (defined(geometry.boundingSphere) && name === \"position\") {\n geometry.boundingSphereCV = BoundingSphere.fromVertices(\n geometry.attributes.position2D.values\n );\n }\n\n GeometryPipeline.encodeAttribute(\n geometry,\n name3D,\n `${name3D}High`,\n `${name3D}Low`\n );\n GeometryPipeline.encodeAttribute(\n geometry,\n name2D,\n `${name2D}High`,\n `${name2D}Low`\n );\n }\n }\n } else {\n for (const name in attributes) {\n if (\n attributes.hasOwnProperty(name) &&\n attributes[name].componentDatatype === ComponentDatatype.DOUBLE\n ) {\n GeometryPipeline.encodeAttribute(\n geometry,\n name,\n `${name}3DHigh`,\n `${name}3DLow`\n );\n }\n }\n }\n\n // oct encode and pack normals, compress texture coordinates\n if (compressVertices) {\n GeometryPipeline.compressVertices(geometry);\n }\n }\n\n if (!uintIndexSupport) {\n // Break into multiple geometries to fit within unsigned short indices if needed\n let splitGeometries = [];\n length = geometries.length;\n for (i = 0; i < length; ++i) {\n geometry = geometries[i];\n splitGeometries = splitGeometries.concat(\n GeometryPipeline.fitToUnsignedShortIndices(geometry)\n );\n }\n\n geometries = splitGeometries;\n }\n\n return geometries;\n}\n\nfunction createPickOffsets(instances, geometryName, geometries, pickOffsets) {\n let offset;\n let indexCount;\n let geometryIndex;\n\n const offsetIndex = pickOffsets.length - 1;\n if (offsetIndex >= 0) {\n const pickOffset = pickOffsets[offsetIndex];\n offset = pickOffset.offset + pickOffset.count;\n geometryIndex = pickOffset.index;\n indexCount = geometries[geometryIndex].indices.length;\n } else {\n offset = 0;\n geometryIndex = 0;\n indexCount = geometries[geometryIndex].indices.length;\n }\n\n const length = instances.length;\n for (let i = 0; i < length; ++i) {\n const instance = instances[i];\n const geometry = instance[geometryName];\n if (!defined(geometry)) {\n continue;\n }\n\n const count = geometry.indices.length;\n\n if (offset + count > indexCount) {\n offset = 0;\n indexCount = geometries[++geometryIndex].indices.length;\n }\n\n pickOffsets.push({\n index: geometryIndex,\n offset: offset,\n count: count,\n });\n offset += count;\n }\n}\n\nfunction createInstancePickOffsets(instances, geometries) {\n const pickOffsets = [];\n createPickOffsets(instances, \"geometry\", geometries, pickOffsets);\n createPickOffsets(\n instances,\n \"westHemisphereGeometry\",\n geometries,\n pickOffsets\n );\n createPickOffsets(\n instances,\n \"eastHemisphereGeometry\",\n geometries,\n pickOffsets\n );\n return pickOffsets;\n}\n\n/**\n * @private\n */\nconst PrimitivePipeline = {};\n\n/**\n * @private\n */\nPrimitivePipeline.combineGeometry = function (parameters) {\n let geometries;\n let attributeLocations;\n const instances = parameters.instances;\n const length = instances.length;\n let pickOffsets;\n\n let offsetInstanceExtend;\n let hasOffset = false;\n if (length > 0) {\n geometries = geometryPipeline(parameters);\n if (geometries.length > 0) {\n attributeLocations = GeometryPipeline.createAttributeLocations(\n geometries[0]\n );\n if (parameters.createPickOffsets) {\n pickOffsets = createInstancePickOffsets(instances, geometries);\n }\n }\n if (\n defined(instances[0].attributes) &&\n defined(instances[0].attributes.offset)\n ) {\n offsetInstanceExtend = new Array(length);\n hasOffset = true;\n }\n }\n\n const boundingSpheres = new Array(length);\n const boundingSpheresCV = new Array(length);\n for (let i = 0; i < length; ++i) {\n const instance = instances[i];\n const geometry = instance.geometry;\n if (defined(geometry)) {\n boundingSpheres[i] = geometry.boundingSphere;\n boundingSpheresCV[i] = geometry.boundingSphereCV;\n if (hasOffset) {\n offsetInstanceExtend[i] = instance.geometry.offsetAttribute;\n }\n }\n\n const eastHemisphereGeometry = instance.eastHemisphereGeometry;\n const westHemisphereGeometry = instance.westHemisphereGeometry;\n if (defined(eastHemisphereGeometry) && defined(westHemisphereGeometry)) {\n if (\n defined(eastHemisphereGeometry.boundingSphere) &&\n defined(westHemisphereGeometry.boundingSphere)\n ) {\n boundingSpheres[i] = BoundingSphere.union(\n eastHemisphereGeometry.boundingSphere,\n westHemisphereGeometry.boundingSphere\n );\n }\n if (\n defined(eastHemisphereGeometry.boundingSphereCV) &&\n defined(westHemisphereGeometry.boundingSphereCV)\n ) {\n boundingSpheresCV[i] = BoundingSphere.union(\n eastHemisphereGeometry.boundingSphereCV,\n westHemisphereGeometry.boundingSphereCV\n );\n }\n }\n }\n\n return {\n geometries: geometries,\n modelMatrix: parameters.modelMatrix,\n attributeLocations: attributeLocations,\n pickOffsets: pickOffsets,\n offsetInstanceExtend: offsetInstanceExtend,\n boundingSpheres: boundingSpheres,\n boundingSpheresCV: boundingSpheresCV,\n };\n};\n\nfunction transferGeometry(geometry, transferableObjects) {\n const attributes = geometry.attributes;\n for (const name in attributes) {\n if (attributes.hasOwnProperty(name)) {\n const attribute = attributes[name];\n\n if (defined(attribute) && defined(attribute.values)) {\n transferableObjects.push(attribute.values.buffer);\n }\n }\n }\n\n if (defined(geometry.indices)) {\n transferableObjects.push(geometry.indices.buffer);\n }\n}\n\nfunction transferGeometries(geometries, transferableObjects) {\n const length = geometries.length;\n for (let i = 0; i < length; ++i) {\n transferGeometry(geometries[i], transferableObjects);\n }\n}\n\n// This function was created by simplifying packCreateGeometryResults into a count-only operation.\nfunction countCreateGeometryResults(items) {\n let count = 1;\n const length = items.length;\n for (let i = 0; i < length; i++) {\n const geometry = items[i];\n ++count;\n\n if (!defined(geometry)) {\n continue;\n }\n\n const attributes = geometry.attributes;\n\n count +=\n 7 +\n 2 * BoundingSphere.packedLength +\n (defined(geometry.indices) ? geometry.indices.length : 0);\n\n for (const property in attributes) {\n if (\n attributes.hasOwnProperty(property) &&\n defined(attributes[property])\n ) {\n const attribute = attributes[property];\n count += 5 + attribute.values.length;\n }\n }\n }\n\n return count;\n}\n\n/**\n * @private\n */\nPrimitivePipeline.packCreateGeometryResults = function (\n items,\n transferableObjects\n) {\n const packedData = new Float64Array(countCreateGeometryResults(items));\n const stringTable = [];\n const stringHash = {};\n\n const length = items.length;\n let count = 0;\n packedData[count++] = length;\n for (let i = 0; i < length; i++) {\n const geometry = items[i];\n\n const validGeometry = defined(geometry);\n packedData[count++] = validGeometry ? 1.0 : 0.0;\n\n if (!validGeometry) {\n continue;\n }\n\n packedData[count++] = geometry.primitiveType;\n packedData[count++] = geometry.geometryType;\n packedData[count++] = defaultValue(geometry.offsetAttribute, -1);\n\n const validBoundingSphere = defined(geometry.boundingSphere) ? 1.0 : 0.0;\n packedData[count++] = validBoundingSphere;\n if (validBoundingSphere) {\n BoundingSphere.pack(geometry.boundingSphere, packedData, count);\n }\n\n count += BoundingSphere.packedLength;\n\n const validBoundingSphereCV = defined(geometry.boundingSphereCV)\n ? 1.0\n : 0.0;\n packedData[count++] = validBoundingSphereCV;\n if (validBoundingSphereCV) {\n BoundingSphere.pack(geometry.boundingSphereCV, packedData, count);\n }\n\n count += BoundingSphere.packedLength;\n\n const attributes = geometry.attributes;\n const attributesToWrite = [];\n for (const property in attributes) {\n if (\n attributes.hasOwnProperty(property) &&\n defined(attributes[property])\n ) {\n attributesToWrite.push(property);\n if (!defined(stringHash[property])) {\n stringHash[property] = stringTable.length;\n stringTable.push(property);\n }\n }\n }\n\n packedData[count++] = attributesToWrite.length;\n for (let q = 0; q < attributesToWrite.length; q++) {\n const name = attributesToWrite[q];\n const attribute = attributes[name];\n packedData[count++] = stringHash[name];\n packedData[count++] = attribute.componentDatatype;\n packedData[count++] = attribute.componentsPerAttribute;\n packedData[count++] = attribute.normalize ? 1 : 0;\n packedData[count++] = attribute.values.length;\n packedData.set(attribute.values, count);\n count += attribute.values.length;\n }\n\n const indicesLength = defined(geometry.indices)\n ? geometry.indices.length\n : 0;\n packedData[count++] = indicesLength;\n\n if (indicesLength > 0) {\n packedData.set(geometry.indices, count);\n count += indicesLength;\n }\n }\n\n transferableObjects.push(packedData.buffer);\n\n return {\n stringTable: stringTable,\n packedData: packedData,\n };\n};\n\n/**\n * @private\n */\nPrimitivePipeline.unpackCreateGeometryResults = function (\n createGeometryResult\n) {\n const stringTable = createGeometryResult.stringTable;\n const packedGeometry = createGeometryResult.packedData;\n\n let i;\n const result = new Array(packedGeometry[0]);\n let resultIndex = 0;\n\n let packedGeometryIndex = 1;\n while (packedGeometryIndex < packedGeometry.length) {\n const valid = packedGeometry[packedGeometryIndex++] === 1.0;\n if (!valid) {\n result[resultIndex++] = undefined;\n continue;\n }\n\n const primitiveType = packedGeometry[packedGeometryIndex++];\n const geometryType = packedGeometry[packedGeometryIndex++];\n let offsetAttribute = packedGeometry[packedGeometryIndex++];\n if (offsetAttribute === -1) {\n offsetAttribute = undefined;\n }\n\n let boundingSphere;\n let boundingSphereCV;\n\n const validBoundingSphere = packedGeometry[packedGeometryIndex++] === 1.0;\n if (validBoundingSphere) {\n boundingSphere = BoundingSphere.unpack(\n packedGeometry,\n packedGeometryIndex\n );\n }\n\n packedGeometryIndex += BoundingSphere.packedLength;\n\n const validBoundingSphereCV = packedGeometry[packedGeometryIndex++] === 1.0;\n if (validBoundingSphereCV) {\n boundingSphereCV = BoundingSphere.unpack(\n packedGeometry,\n packedGeometryIndex\n );\n }\n\n packedGeometryIndex += BoundingSphere.packedLength;\n\n let length;\n let values;\n let componentsPerAttribute;\n const attributes = new GeometryAttributes();\n const numAttributes = packedGeometry[packedGeometryIndex++];\n for (i = 0; i < numAttributes; i++) {\n const name = stringTable[packedGeometry[packedGeometryIndex++]];\n const componentDatatype = packedGeometry[packedGeometryIndex++];\n componentsPerAttribute = packedGeometry[packedGeometryIndex++];\n const normalize = packedGeometry[packedGeometryIndex++] !== 0;\n\n length = packedGeometry[packedGeometryIndex++];\n values = ComponentDatatype.createTypedArray(componentDatatype, length);\n for (let valuesIndex = 0; valuesIndex < length; valuesIndex++) {\n values[valuesIndex] = packedGeometry[packedGeometryIndex++];\n }\n\n attributes[name] = new GeometryAttribute({\n componentDatatype: componentDatatype,\n componentsPerAttribute: componentsPerAttribute,\n normalize: normalize,\n values: values,\n });\n }\n\n let indices;\n length = packedGeometry[packedGeometryIndex++];\n\n if (length > 0) {\n const numberOfVertices = values.length / componentsPerAttribute;\n indices = IndexDatatype.createTypedArray(numberOfVertices, length);\n for (i = 0; i < length; i++) {\n indices[i] = packedGeometry[packedGeometryIndex++];\n }\n }\n\n result[resultIndex++] = new Geometry({\n primitiveType: primitiveType,\n geometryType: geometryType,\n boundingSphere: boundingSphere,\n boundingSphereCV: boundingSphereCV,\n indices: indices,\n attributes: attributes,\n offsetAttribute: offsetAttribute,\n });\n }\n\n return result;\n};\n\nfunction packInstancesForCombine(instances, transferableObjects) {\n const length = instances.length;\n const packedData = new Float64Array(1 + length * 19);\n let count = 0;\n packedData[count++] = length;\n for (let i = 0; i < length; i++) {\n const instance = instances[i];\n Matrix4.pack(instance.modelMatrix, packedData, count);\n count += Matrix4.packedLength;\n if (defined(instance.attributes) && defined(instance.attributes.offset)) {\n const values = instance.attributes.offset.value;\n packedData[count] = values[0];\n packedData[count + 1] = values[1];\n packedData[count + 2] = values[2];\n }\n count += 3;\n }\n transferableObjects.push(packedData.buffer);\n\n return packedData;\n}\n\nfunction unpackInstancesForCombine(data) {\n const packedInstances = data;\n const result = new Array(packedInstances[0]);\n let count = 0;\n\n let i = 1;\n while (i < packedInstances.length) {\n const modelMatrix = Matrix4.unpack(packedInstances, i);\n let attributes;\n i += Matrix4.packedLength;\n if (defined(packedInstances[i])) {\n attributes = {\n offset: new OffsetGeometryInstanceAttribute(\n packedInstances[i],\n packedInstances[i + 1],\n packedInstances[i + 2]\n ),\n };\n }\n i += 3;\n\n result[count++] = {\n modelMatrix: modelMatrix,\n attributes: attributes,\n };\n }\n\n return result;\n}\n\n/**\n * @private\n */\nPrimitivePipeline.packCombineGeometryParameters = function (\n parameters,\n transferableObjects\n) {\n const createGeometryResults = parameters.createGeometryResults;\n const length = createGeometryResults.length;\n\n for (let i = 0; i < length; i++) {\n transferableObjects.push(createGeometryResults[i].packedData.buffer);\n }\n\n return {\n createGeometryResults: parameters.createGeometryResults,\n packedInstances: packInstancesForCombine(\n parameters.instances,\n transferableObjects\n ),\n ellipsoid: parameters.ellipsoid,\n isGeographic: parameters.projection instanceof GeographicProjection,\n elementIndexUintSupported: parameters.elementIndexUintSupported,\n scene3DOnly: parameters.scene3DOnly,\n vertexCacheOptimize: parameters.vertexCacheOptimize,\n compressVertices: parameters.compressVertices,\n modelMatrix: parameters.modelMatrix,\n createPickOffsets: parameters.createPickOffsets,\n };\n};\n\n/**\n * @private\n */\nPrimitivePipeline.unpackCombineGeometryParameters = function (\n packedParameters\n) {\n const instances = unpackInstancesForCombine(packedParameters.packedInstances);\n const createGeometryResults = packedParameters.createGeometryResults;\n const length = createGeometryResults.length;\n let instanceIndex = 0;\n\n for (let resultIndex = 0; resultIndex < length; resultIndex++) {\n const geometries = PrimitivePipeline.unpackCreateGeometryResults(\n createGeometryResults[resultIndex]\n );\n const geometriesLength = geometries.length;\n for (\n let geometryIndex = 0;\n geometryIndex < geometriesLength;\n geometryIndex++\n ) {\n const geometry = geometries[geometryIndex];\n const instance = instances[instanceIndex];\n instance.geometry = geometry;\n ++instanceIndex;\n }\n }\n\n const ellipsoid = Ellipsoid.clone(packedParameters.ellipsoid);\n const projection = packedParameters.isGeographic\n ? new GeographicProjection(ellipsoid)\n : new WebMercatorProjection(ellipsoid);\n\n return {\n instances: instances,\n ellipsoid: ellipsoid,\n projection: projection,\n elementIndexUintSupported: packedParameters.elementIndexUintSupported,\n scene3DOnly: packedParameters.scene3DOnly,\n vertexCacheOptimize: packedParameters.vertexCacheOptimize,\n compressVertices: packedParameters.compressVertices,\n modelMatrix: Matrix4.clone(packedParameters.modelMatrix),\n createPickOffsets: packedParameters.createPickOffsets,\n };\n};\n\nfunction packBoundingSpheres(boundingSpheres) {\n const length = boundingSpheres.length;\n const bufferLength = 1 + (BoundingSphere.packedLength + 1) * length;\n const buffer = new Float32Array(bufferLength);\n\n let bufferIndex = 0;\n buffer[bufferIndex++] = length;\n\n for (let i = 0; i < length; ++i) {\n const bs = boundingSpheres[i];\n if (!defined(bs)) {\n buffer[bufferIndex++] = 0.0;\n } else {\n buffer[bufferIndex++] = 1.0;\n BoundingSphere.pack(boundingSpheres[i], buffer, bufferIndex);\n }\n bufferIndex += BoundingSphere.packedLength;\n }\n\n return buffer;\n}\n\nfunction unpackBoundingSpheres(buffer) {\n const result = new Array(buffer[0]);\n let count = 0;\n\n let i = 1;\n while (i < buffer.length) {\n if (buffer[i++] === 1.0) {\n result[count] = BoundingSphere.unpack(buffer, i);\n }\n ++count;\n i += BoundingSphere.packedLength;\n }\n\n return result;\n}\n\n/**\n * @private\n */\nPrimitivePipeline.packCombineGeometryResults = function (\n results,\n transferableObjects\n) {\n if (defined(results.geometries)) {\n transferGeometries(results.geometries, transferableObjects);\n }\n\n const packedBoundingSpheres = packBoundingSpheres(results.boundingSpheres);\n const packedBoundingSpheresCV = packBoundingSpheres(\n results.boundingSpheresCV\n );\n transferableObjects.push(\n packedBoundingSpheres.buffer,\n packedBoundingSpheresCV.buffer\n );\n\n return {\n geometries: results.geometries,\n attributeLocations: results.attributeLocations,\n modelMatrix: results.modelMatrix,\n pickOffsets: results.pickOffsets,\n offsetInstanceExtend: results.offsetInstanceExtend,\n boundingSpheres: packedBoundingSpheres,\n boundingSpheresCV: packedBoundingSpheresCV,\n };\n};\n\n/**\n * @private\n */\nPrimitivePipeline.unpackCombineGeometryResults = function (packedResult) {\n return {\n geometries: packedResult.geometries,\n attributeLocations: packedResult.attributeLocations,\n modelMatrix: packedResult.modelMatrix,\n pickOffsets: packedResult.pickOffsets,\n offsetInstanceExtend: packedResult.offsetInstanceExtend,\n boundingSpheres: unpackBoundingSpheres(packedResult.boundingSpheres),\n boundingSpheresCV: unpackBoundingSpheres(packedResult.boundingSpheresCV),\n };\n};\nexport default PrimitivePipeline;\n"],"names":["defaultValue","ComponentDatatype","Check","defined","Matrix4","GeometryPipeline","GeometryAttribute","DeveloperError","BoundingSphere","GeometryAttributes","IndexDatatype","Geometry","GeographicProjection","Ellipsoid","WebMercatorProjection"],"mappings":"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"}