#version 300 es

in vec4 position;
in vec4 color;
in float highlight;
in float selected;

out vec4 point_color;
out float point_highlight;
out float total_radius;

// camera
const float focal_slope = 0.3;

void main() {
    total_radius = 5. + 0.5*selected;
    
    float depth = -focal_slope * position.z;
    gl_Position = vec4(position.xy / depth, 0., 1.);
    gl_PointSize = 2.*total_radius;
    
    point_color = color;
    point_highlight = highlight;
}