declare const _default: "struct Attributes {\n @builtin(instance_index) instanceIndex: u32,\n @location(0) positions: vec3,\n @location(1) normals: vec3,\n @location(2) instancePositions: vec2,\n @location(3) instanceColorValues: f32,\n @location(4) instanceElevationValues: f32,\n};\n\nstruct Varyings {\n @builtin(position) position: vec4,\n @location(0) color: vec4,\n @location(1) pickingColor: vec3,\n};\n\nfn interpolate(value: f32, domain: vec2, range: vec2) -> f32 {\n let ratio = clamp((value - domain.x) / (domain.y - domain.x), 0.0, 1.0);\n return mix(range.x, range.y, ratio);\n}\n\nfn sampleColorRange(value: f32, domain: vec2) -> vec4 {\n let ratio = (value - domain.x) / (domain.y - domain.x);\n return textureSampleLevel(colorRange, colorRangeSampler, vec2(ratio, 0.5), 0.0);\n}\n\n@vertex\nfn vertexMain(attributes: Attributes) -> Varyings {\n var output: Varyings;\n geometry.pickingColor = picking_getPickingColorFromIndex(attributes.instanceIndex);\n output.pickingColor = geometry.pickingColor;\n\n if (\n attributes.instanceColorValues != attributes.instanceColorValues ||\n attributes.instanceColorValues < grid.colorDomain.z ||\n attributes.instanceColorValues > grid.colorDomain.w ||\n attributes.instanceElevationValues < grid.elevationDomain.z ||\n attributes.instanceElevationValues > grid.elevationDomain.w\n ) {\n output.position = vec4(0.0);\n output.color = vec4(0.0);\n return output;\n }\n\n let commonPosition =\n (attributes.instancePositions +\n (attributes.positions.xy + vec2(1.0)) * 0.5 * column.coverage) *\n grid.sizeCommon +\n grid.originCommon -\n project.commonOrigin.xy;\n geometry.position = vec4(commonPosition, 0.0, 1.0);\n geometry.normal = project_normal(attributes.normals);\n\n if (column.extruded > 0.5) {\n var elevation = interpolate(\n attributes.instanceElevationValues,\n grid.elevationDomain.xy,\n grid.elevationRange\n );\n elevation = project_size_float(elevation);\n geometry.position.z = (attributes.positions.z + 1.0) * 0.5 * elevation;\n }\n\n output.position = project_common_position_to_clipspace(geometry.position);\n var colorValue = sampleColorRange(attributes.instanceColorValues, grid.colorDomain.xy);\n if (column.extruded > 0.5) {\n colorValue = vec4(\n lighting_getLightColor2(\n colorValue.rgb,\n project.cameraPosition,\n geometry.position.xyz,\n geometry.normal\n ),\n colorValue.a\n );\n }\n output.color = vec4(colorValue.rgb, colorValue.a * layer.opacity);\n return output;\n}\n\n@fragment\nfn fragmentMain(varyings: Varyings) -> @location(0) vec4 {\n if (picking.isActive > 0.5) {\n if (!picking_isColorValid(varyings.pickingColor)) {\n discard;\n }\n return vec4(varyings.pickingColor, 1.0);\n }\n\n var color = varyings.color;\n if (picking.isHighlightActive > 0.5) {\n let highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor);\n if (picking_isColorZero(abs(varyings.pickingColor - highlightedObjectColor))) {\n let highlightAlpha = picking.highlightColor.a;\n let blendedAlpha = highlightAlpha + color.a * (1.0 - highlightAlpha);\n if (blendedAlpha > 0.0) {\n let highlightRatio = highlightAlpha / blendedAlpha;\n color = vec4(\n mix(color.rgb, picking.highlightColor.rgb, highlightRatio),\n blendedAlpha\n );\n } else {\n color = vec4(color.rgb, 0.0);\n }\n }\n }\n\n return deckgl_premultiplied_alpha(color);\n}\n"; export default _default; //# sourceMappingURL=grid-cell-layer.wgsl.d.ts.map