using System; using ANX.Framework.NonXNA.Development; // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. // For details see: http://anxframework.codeplex.com/license namespace ANX.Framework.Graphics { [PercentageComplete(95)] public struct VertexPositionTexture : IVertexType { public Vector3 Position; public Vector2 TextureCoordinate; public static readonly VertexDeclaration VertexDeclaration; VertexDeclaration IVertexType.VertexDeclaration { get { return VertexDeclaration; } } public VertexPositionTexture(Vector3 position, Vector2 textureCoordinate) { this.Position = position; this.TextureCoordinate = textureCoordinate; } static VertexPositionTexture() { VertexElement[] elements = new VertexElement[] { new VertexElement(0, VertexElementFormat.Vector3, VertexElementUsage.Position, 0), new VertexElement(12, VertexElementFormat.Vector2, VertexElementUsage.TextureCoordinate, 0), }; VertexDeclaration = new VertexDeclaration(20, elements); VertexDeclaration.Name = "VertexPositionTexture.VertexDeclaration"; } public override int GetHashCode() { throw new NotImplementedException(); } public override string ToString() { return String.Format("{{Position:{0} TextureCoordinate:{1}}}", Position, TextureCoordinate); } public override bool Equals(object obj) { if (obj != null && obj is VertexPositionTexture) return this == (VertexPositionTexture)obj; return false; } public static bool operator ==(VertexPositionTexture lhs, VertexPositionTexture rhs) { return lhs.TextureCoordinate.Equals(rhs.TextureCoordinate) && lhs.Position.Equals(rhs.Position); } public static bool operator !=(VertexPositionTexture lhs, VertexPositionTexture rhs) { return !lhs.TextureCoordinate.Equals(rhs.TextureCoordinate) || !lhs.Position.Equals(rhs.Position); } } }