/**
 * OpenGL RedBook Shader.
 * Example 7.8
 */
#version 330 core

uniform mat4 MVPMatrix;
uniform mat4 MVMatrix;
uniform mat3 NormalMatrix;

layout (location = 0) in vec3 VertexPosition;
layout (location = 1) in vec3 VertexNormal;
layout (location = 2) in vec3 VertexColour;

out vec4 Position;
out vec3 Normal;
out vec4 Colour;
out int matIndex;

void main() {
    Colour = vec4(1.0, 1.0, 1.0, 1.0f);
    Normal = NormalMatrix * VertexNormal;
    Position = MVMatrix * vec4(VertexPosition, 1.0);
    matIndex = 0;

    gl_Position = MVPMatrix * vec4(VertexPosition, 1.0);
}