#version 330 core

#define MAGNITUDE 0.1

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

uniform float time;

in VS_OUT {
  vec3 vert_normal;
} gs_in[];

layout (std140) uniform Common {
  mat4 projection;
  mat4 view;
  vec3 camera_position;
};

void generate_line(int index) {
  gl_Position = projection * gl_in[index].gl_Position;
  EmitVertex();

  gl_Position = projection * (gl_in[index].gl_Position + vec4(gs_in[index].vert_normal, 1.0) * MAGNITUDE);
  EmitVertex();

  EndPrimitive();
}

void main() {
  for (int i = 0; i < 3; ++i) {
    generate_line(i);
  }
}