Root/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | #region License /* FNA - XNA4 Reimplementation for Desktop Platforms * Copyright 2009-2016 Ethan Lee and the MonoGame Team * * Released under the Microsoft Public License. * See LICENSE for details. */ #endregion #region Using Statements using System; using System.Runtime.InteropServices; #endregion namespace Microsoft.Xna.Framework.Graphics { [Serializable] [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct VertexPositionNormalTexture : IVertexType { #region Private Properties VertexDeclaration IVertexType.VertexDeclaration { get { return VertexDeclaration; } } #endregion #region Public Variables public Vector3 Position; public Vector3 Normal; public Vector2 TextureCoordinate; #endregion #region Public Static Variables public static readonly VertexDeclaration VertexDeclaration; #endregion #region Private Static Constructor static VertexPositionNormalTexture() { VertexDeclaration = new VertexDeclaration( new VertexElement[] { new VertexElement( 0, VertexElementFormat.Vector3, VertexElementUsage.Position, 0 ), new VertexElement( 12, VertexElementFormat.Vector3, VertexElementUsage.Normal, 0 ), new VertexElement( 24, VertexElementFormat.Vector2, VertexElementUsage.TextureCoordinate, 0 ) } ); } #endregion #region Public Constructor public VertexPositionNormalTexture( Vector3 position, Vector3 normal, Vector2 textureCoordinate ) { Position = position; Normal = normal; TextureCoordinate = textureCoordinate; } #endregion #region Public Static Operators and Override Methods public override int GetHashCode() { // TODO: Fix GetHashCode return 0; } public override string ToString() { return ( "{{Position:" + Position.ToString() + " Normal:" + Normal.ToString() + " TextureCoordinate:" + TextureCoordinate.ToString() + "}}" ); } public static bool operator ==(VertexPositionNormalTexture left, VertexPositionNormalTexture right) { return ( (left.Position == right.Position) && (left.Normal == right.Normal) && (left.TextureCoordinate == right.TextureCoordinate) ); } public static bool operator !=(VertexPositionNormalTexture left, VertexPositionNormalTexture right) { return !(left == right); } public override bool Equals( object obj) { if (obj == null ) { return false ; } if (obj.GetType() != base .GetType()) { return false ; } return ( this == ((VertexPositionNormalTexture) obj)); } #endregion } } |