using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; namespace MorphShader { public struct Vertex2PositionNormalTexture { public Vector3 SourcePosition; public Vector3 SourceNormal; public Vector2 SourceTextureCoord; public Vector3 DestinationPosition; public Vector3 DestinationNormal; public Vector2 DestinationTextureCoord; public Vertex2PositionNormalTexture(Vector3 sourcePosition, Vector3 sourceNormal, Vector2 sourceTexCoord, Vector3 destinationPosition, Vector3 destinationNormal, Vector2 destinationTexCoord) { this.SourcePosition = sourcePosition; this.SourceTextureCoord = sourceTexCoord; this.SourceNormal = sourceNormal; this.DestinationPosition = destinationPosition; this.DestinationNormal = destinationNormal; this.DestinationTextureCoord = destinationTexCoord; } public static int SizeInBytes = 16 * sizeof(float); public static VertexElement[] VertexElements = { new VertexElement( 0, 0, VertexElementFormat.Vector3, VertexElementMethod.Default, VertexElementUsage.Position, 0 ), new VertexElement( 0, sizeof(float) * 3, VertexElementFormat.Vector3, VertexElementMethod.Default, VertexElementUsage.Normal, 0 ), new VertexElement( 0, sizeof(float) * 6, VertexElementFormat.Vector2, VertexElementMethod.Default, VertexElementUsage.TextureCoordinate, 0 ), new VertexElement( 1, sizeof(float) * 8, VertexElementFormat.Vector3, VertexElementMethod.Default, VertexElementUsage.Position, 1 ), new VertexElement( 1, sizeof(float) * 11, VertexElementFormat.Vector3, VertexElementMethod.Default, VertexElementUsage.Normal, 1 ), new VertexElement( 1, sizeof(float) * 14, VertexElementFormat.Vector2, VertexElementMethod.Default, VertexElementUsage.TextureCoordinate, 1 ) }; } }