layout (quads,equal_spacing,cw) in;

uniform mat4 g_WorldViewProjectionMatrix;

void main(){
        vec3 p0 = mix(gl_in[0].gl_Position.xyz, gl_in[3].gl_Position.xyz, gl_TessCoord.x);
        // interpolate in horizontal direction between vert. 1 and 2
        vec3 p1 = mix(gl_in[1].gl_Position.xyz, gl_in[2].gl_Position.xyz, gl_TessCoord.x);
        // interpolate in vert direction
        vec3 tePosition = mix(p0, p1, gl_TessCoord.y);
        gl_Position = g_WorldViewProjectionMatrix * vec4(tePosition, 1);
}

