using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace GraphiXNA.Vertex
{
    public struct VertexPositionTangentBinormalNormalTexture
    {
        public Vector3 Position;
        public Vector3 Tangent;
        public Vector3 Binormal;
        public Vector3 Normal;
        public Vector2 TextureCoordinate;

        public static VertexElement[] VertexElements
        {
            get
            {
                return new VertexElement[]
                {
                    new VertexElement(0, 0, VertexElementFormat.Vector3, VertexElementMethod.Default, VertexElementUsage.Position, 0),
                    new VertexElement(0, 12, VertexElementFormat.Vector3, VertexElementMethod.Default, VertexElementUsage.Tangent, 0),
                    new VertexElement(0, 24, VertexElementFormat.Vector3, VertexElementMethod.Default, VertexElementUsage.Binormal, 0),
                    new VertexElement(0, 36, VertexElementFormat.Vector3, VertexElementMethod.Default, VertexElementUsage.Normal, 0),
                    new VertexElement(0, 48, VertexElementFormat.Vector2, VertexElementMethod.Default, VertexElementUsage.TextureCoordinate, 0)
                };
            }
        }

        public static int SizeInBytes
        {
            get
            {
                return 12 + 12 + 12 + 12 + 8;
            }
        }
    }
}
