#version 150

uniform vec4 origColour;
uniform vec4 cloneColour;

out vec4 colour;

layout(triangles) in;
layout(line_strip, max_vertices = 6) out;

void main()
{
    // Pass-through!
    for (int i = 0; i < gl_in.length(); i++){
        gl_Position = gl_in[i].gl_Position;
        colour = origColour;
        EmitVertex();
    }
    EndPrimitive();

    // New piece of geometry!  We just swizzle the x and y terms.
    for (int i = 0; i < gl_in.length(); i++){
        gl_Position = gl_in[i].gl_Position;
        gl_Position.xy = gl_Position.yx;
        colour = cloneColour;
        EmitVertex();
    }
    EndPrimitive();
}
