#version 330 core

const int numBones = 1;
const int numVertGroups = 1;
const int numMaxInfluences = 4;
const int numShapeKeys = 1;

layout (location = 0) in vec3 aPos;
layout (location = 1) in vec3 aNorm;
layout (location = 2) in vec2 aTexCoords;
layout (location = 3) in vec3 aTan;
layout (location = 4) in vec3 aBiTan;

out vec3 fragPos, norm, tan, biTan;
out vec2 texCoords;

struct Bone{
	float angle;
	vec3 pos, trans, rotAxis, scale;
	int vertGroup, parent;
};

uniform bool animated;
uniform Bone bones[numBones];
uniform mat4 model;
uniform mat4 view;
uniform mat4 proj;
uniform float[numShapeKeys] shapeKeyFactors; 

void main(){
	mat3 normalMat = mat3(model);
	norm = mat3(normalMat) * aNorm;
	tan = mat3(normalMat) * aTan;
	biTan = mat3(normalMat) * aBiTan;
	fragPos = vec3(model * vec4(aPos, 1));
	texCoords = aTexCoords;

	gl_Position = proj * view * model * vec4(aPos, 1);
}
