precision mediump float;
varying vec4 color;
varying vec3 position;

//uniform vec4 lineParams;
//uniform vec4 startPointEndPoint;

varying vec3 lineParams;
varying vec4 startPointEndPoint;


void main() 
{
	float a = lineParams.x;
	float b = lineParams.y;
	float c = lineParams.z;
	
	float Xa = startPointEndPoint.r;
	float Ya = startPointEndPoint.g;
	
	float Xb = startPointEndPoint.b;
	float Yb = startPointEndPoint.a;
	
	
	
	float distance;
	
	
	float distanceToA = (Xa - position.x)*(Xb - Xa) + (Ya - position.y)*(Yb - Ya);
	
	float distanceToB = (Xb - position.x)*(Xb - Xa) + (Yb - position.y)*(Yb - Ya);
	
	
	
	if (distanceToA * distanceToB > 0)
	{
		float len = sqrt((Xb - Xa)*(Xb - Xa) + (Yb - Ya)*(Yb - Ya));
		distance = max(abs(distanceToA/len), abs(distanceToB/len));
	}
	else
	{
		distance = abs(a*position.x + b*position.y + c);
	}

	
	float t = clamp(1.2 / (distance + 1.0) - 0.5, 0.0, 1.0);
	
	
	gl_FragColor = vec4(color.rgb, color.a*t);
	
	//gl_FragColor = vec4(color.rgb*clamp(1.2 / (distance + 1.0) - 0.5, 0.0, 1.0), 1.0);
}