declare const _default: "#define SHADER_NAME flow-line-layer-vertex-shader\n\nattribute vec3 positions;\nattribute vec3 normals;\nattribute vec4 instanceColors;\nattribute float instanceThickness; // 0..0.5\nattribute vec3 instanceSourcePositions;\nattribute vec3 instanceTargetPositions;\nattribute vec3 instanceSourcePositions64Low;\nattribute vec3 instanceTargetPositions64Low;\nattribute vec3 instancePickingColors;\nattribute vec2 instanceEndpointOffsets;\nattribute float instancePickable;\n\nuniform vec4 outlineColor;\nuniform float thicknessUnit;\nuniform float gap;\nuniform float opacity;\n\nvarying vec4 vColor;\nvarying vec2 uv;\n\nvoid main(void) {\n geometry.worldPosition = instanceSourcePositions;\n geometry.worldPositionAlt = instanceTargetPositions;\n \n // Position\n vec4 source_commonspace; \n vec4 target_commonspace;\n vec4 source = project_position_to_clipspace(instanceSourcePositions, instanceSourcePositions64Low, vec3(0.), source_commonspace);\n vec4 target = project_position_to_clipspace(instanceTargetPositions, instanceTargetPositions64Low, vec3(0.), target_commonspace);\n\n // linear interpolation of source & target to pick right coord\n float sourceOrTarget = positions.x;\n geometry.position = mix(source_commonspace, target_commonspace, sourceOrTarget);\n uv = positions.xy;\n geometry.uv = uv;\n if (instancePickable > 0.5) {\n geometry.pickingColor = instancePickingColors;\n }\n \n // set the clamp limits in pixel size \n float lengthCommon = length(target_commonspace - source_commonspace); \n vec2 offsetDistances = project_pixel_size(positions.yz) * thicknessUnit;\n \n vec2 limitedOffsetDistances = clamp( \n project_pixel_size(positions.yz) * thicknessUnit,\n -lengthCommon*.8, lengthCommon*.8\n );\n float startOffsetCommon = project_pixel_size(instanceEndpointOffsets[0]);\n float endOffsetCommon = project_pixel_size(instanceEndpointOffsets[1]);\n float endpointOffset = mix(\n clamp(startOffsetCommon, 0.0, lengthCommon*.2),\n -clamp(endOffsetCommon, 0.0, lengthCommon*.2),\n positions.x\n );\n\n vec2 flowlineDir = normalize(target_commonspace.xy - source_commonspace.xy);\n vec2 perpendicularDir = vec2(-flowlineDir.y, flowlineDir.x);\n vec2 normalsCommon = project_pixel_size(normals.xy);\n float gapCommon = project_pixel_size(gap);\n vec3 offsetCommon = vec3(\n flowlineDir * (instanceThickness * limitedOffsetDistances[1] + normalsCommon.y + endpointOffset * 1.05) -\n perpendicularDir * (instanceThickness * limitedOffsetDistances[0] + gapCommon + normalsCommon.x),\n 0.0\n );\n \n DECKGL_FILTER_SIZE(offsetCommon, geometry);\n vec4 position_commonspace = mix(source_commonspace, target_commonspace, sourceOrTarget);\n vec4 offset_commonspace = vec4(offsetCommon, 0.0);\n gl_Position = project_common_position_to_clipspace(position_commonspace + offset_commonspace);\n \n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n \n vec4 fillColor = vec4(instanceColors.rgb, instanceColors.a * opacity) / 255.;\n if (instancePickable <= 0.5) {\n vColor = mix(fillColor, vec4(outlineColor.xyz, instanceThickness), normals.z);\n } else {\n vColor = mix(fillColor, vec4(outlineColor.xyz, outlineColor.w * fillColor.w), normals.z);\n }\n DECKGL_FILTER_COLOR(vColor, geometry);\n}\n"; export default _default; //# sourceMappingURL=FlowLinesLayerVertex.glsl.d.ts.map