package speiger.src.coreengine.rendering.tesselation;

import speiger.src.coreengine.rendering.tesselation.VertexElement.ElementUsage;

public class VertexType
{
	public static final VertexElement POSITION_2F = new VertexElement(2, ElementUsage.POS);
	public static final VertexElement POSITION_3F = new VertexElement(3, ElementUsage.POS);
	public static final VertexElement TEXTURE_2F = new VertexElement(2, ElementUsage.UV);
	public static final VertexElement COLOR_3F = new VertexElement(3, ElementUsage.COLOR);
	public static final VertexElement COLOR_4F = new VertexElement(4, ElementUsage.COLOR);
	public static final VertexElement NORMAL_3F = new VertexElement(3, ElementUsage.NORMAL);
	public static final VertexElement CUSTOM_4F = new VertexElement(4, ElementUsage.CUSTOM);
	
	public static final VertexList POS_COLOR_3F = new VertexList();
	public static final VertexList POS_COLOR_4F = new VertexList();
	public static final VertexList POS_COLOR_2F = new VertexList();
	public static final VertexList POS_TEX = new VertexList();
	public static final VertexList TERRAIN = new VertexList();
	
	public static final VertexList UI = new VertexList();
	public static final VertexList IN_WORLD_UI = new VertexList();

	static
	{
		UI.addElement(POSITION_3F);
		UI.addElement(TEXTURE_2F);
		UI.addElement(COLOR_4F);
		
		IN_WORLD_UI.addElement(POSITION_3F);
		IN_WORLD_UI.addElement(TEXTURE_2F);
		IN_WORLD_UI.addElement(COLOR_4F);
		IN_WORLD_UI.addElement(CUSTOM_4F);
		
		TERRAIN.addElement(POSITION_3F);
		TERRAIN.addElement(COLOR_3F);
		TERRAIN.addElement(NORMAL_3F);
		POS_COLOR_2F.addElement(POSITION_2F);
		POS_COLOR_2F.addElement(COLOR_4F);
		POS_COLOR_3F.addElement(POSITION_3F);
		POS_COLOR_3F.addElement(COLOR_3F);
		POS_COLOR_4F.addElement(POSITION_3F);
		POS_COLOR_4F.addElement(COLOR_4F);
		POS_TEX.addElement(POSITION_3F);
		POS_TEX.addElement(TEXTURE_2F);
	}
}
