//This file is automatically rebuilt by the Cesium build process. export default "void featureStage(inout Feature feature)\n\ { \n\ #ifdef FEATURE_ID_TEXTURE\n\ \n\ float featureId = floor(texture2D(FEATURE_ID_TEXTURE, FEATURE_ID_TEXCOORD).FEATURE_ID_CHANNEL * 255.0 + 0.5);\n\ vec2 featureSt;\n\ if (featureId < model_featuresLength)\n\ {\n\ featureSt = computeSt(featureId);\n\ \n\ feature.id = int(featureId);\n\ feature.st = featureSt;\n\ feature.color = texture2D(model_batchTexture, featureSt);\n\ }\n\ // Floating point comparisons can be unreliable in GLSL, so we\n\ // increment the feature ID to make sure it's always greater\n\ // then the model_featuresLength - a condition we check for in the\n\ // pick ID, to avoid sampling the pick texture if the feature ID is\n\ // greater than the number of features.\n\ else\n\ {\n\ feature.id = int(model_featuresLength) + 1;\n\ feature.st = vec2(0.0);\n\ feature.color = vec4(1.0);\n\ }\n\ #else\n\ // For feature ID vertex attributes, the function generated in FeatureIdPipelineStage \n\ // is used to update the Feature struct from the varyings passed in.\n\ updateFeatureStruct(feature);\n\ #endif\n\ }\n\ ";