#version 330 core
layout(location=0) in vec3 aPos;
layout(location=1) in vec3 aNormal;

uniform mat4 View;
uniform mat4 Model;
uniform mat4 Projection;

out vec3 Normal;
out vec3 Position;

void main() {
  Normal = mat3(transpose(inverse(Model))) * aNormal;
  Position = vec3(Model * vec4(aPos, 1.0));
  gl_Position = Projection * View * Model * vec4(aPos, 1.0);
};