#version 330 core

layout(location=0) in vec3 position;
layout(location=1) in vec3 normal;
layout(location=2) in vec2 uv;

uniform mat3 normal_mat;
uniform mat4 model;

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

// interface block
out VS_OUT {
  vec3 vert_normal;
} vs_out;

void main() {
  vs_out.vert_normal = normal_mat * normal;

  gl_Position = view * model * vec4(position, 1.0);
};
