Пример #1
0
        public Quad(Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4, String textureName, String snowTextureName = "")
        {
            if (textureName != "")
            {
                texture = SceneManager.staticContent.Load <Texture2D>(textureName);
            }
            if (snowTextureName != "")
            {
                snowTexture = SceneManager.staticContent.Load <Texture2D>(snowTextureName);
            }

            effect = SceneManager.staticEffect;

            world = Matrix.Identity;

            // Incluir em todo construtor;
            device = SceneManager.staticDevice;

            vertsTexture = new VertexPositionTexture[6];

            vertsTexture[0] = new VertexPositionTexture(p1, Vector2.Zero);
            vertsTexture[1] = new VertexPositionTexture(p2, Vector2.UnitY);
            vertsTexture[2] = new VertexPositionTexture(p3, Vector2.One);

            vertsTexture[3] = new VertexPositionTexture(p1, Vector2.Zero);
            vertsTexture[4] = new VertexPositionTexture(p3, Vector2.One);
            vertsTexture[5] = new VertexPositionTexture(p4, Vector2.UnitX);

            vertexBuffer = new VertexBuffer(device, typeof(VertexPositionTexture), vertsTexture.Length, BufferUsage.None);
            vertexBuffer.SetData <VertexPositionTexture>(vertsTexture);

            vertType = VERTEX_TYPE.Texture;
        }
Пример #2
0
        /// <summary>
        /// Cria um retangulo formado por 2 triangulos. Comecar do ponto inferior esquerdo
        /// e terminar no ponto inferior direito
        /// </summary>
        /// <param name="device">Graphic Device</param>
        /// <param name="p1">ponto inferior esquerdo</param>
        /// <param name="p2">ponto superior esquerdo</param>
        /// <param name="p3">ponto superior direito</param>
        /// <param name="p4">ponto inferior direito</param>
        public Quad(Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4, Color color = default(Color))
        {
            world = Matrix.Identity;

            // Incluir em todo construtor;
            device = SceneManager.staticDevice;

            vertsColor = new VertexPositionColor[6];

            if (object.Equals(color, default(Color)))
            {
                vertsColor[0] = new VertexPositionColor(p1, Color.Black);
                vertsColor[1] = new VertexPositionColor(p2, Color.Black);
                vertsColor[2] = new VertexPositionColor(p3, Color.Black);

                vertsColor[3] = new VertexPositionColor(p1, Color.Black);
                vertsColor[4] = new VertexPositionColor(p3, Color.Black);
                vertsColor[5] = new VertexPositionColor(p4, Color.Black);
            }
            else
            {
                vertsColor[0] = new VertexPositionColor(p1, color);
                vertsColor[1] = new VertexPositionColor(p2, color);
                vertsColor[2] = new VertexPositionColor(p3, color);

                vertsColor[3] = new VertexPositionColor(p1, color);
                vertsColor[4] = new VertexPositionColor(p3, color);
                vertsColor[5] = new VertexPositionColor(p4, color);
            }

            vertexBuffer = new VertexBuffer(device, typeof(VertexPositionColor), vertsColor.Length, BufferUsage.None);
            vertexBuffer.SetData <VertexPositionColor>(vertsColor);

            basicEffect = new BasicEffect(device);

            vertType = VERTEX_TYPE.Color;
        }