#version 330 core
layout(location =0) in vec4 position; // possitions are on location 0
layout (location = 1) in vec3 normal;
layout(location = 2) in vec2 texCoord;

out vec3 Normal;
out vec3 FragPos;
out vec2 TexCoord;
out vec4 smCoords;


uniform mat4 tModel;
uniform mat4 view;
uniform mat4 projection;
uniform mat4 M_VL_PL_L;

void main()
{

    gl_Position = projection * view *  tModel * position;
    FragPos = vec3(tModel * position);
    Normal = mat3(transpose(inverse(tModel))) * normal;  

	TexCoord = vec2(texCoord.x, texCoord.y);
	smCoords = M_VL_PL_L * tModel * position;
	
}