Ejemplo n.º 1
0
        private void AddHist(GridIndex index)
        {
            int idx = index.Offset(Size) * 8;

            double x1 = (double)index.J / (Size.Width - 1) - 0.5d;
            double x2 = (double)(index.J + 1) / (Size.Width - 1) - 0.5d;
            double y1 = (double)index.I / (Size.Height - 1) - 0.5d;
            double y2 = (double)(index.I + 1) / (Size.Height - 1) - 0.5d;

            double tX1 = (index.J + 0.4d) / (Size.Width - 1);
            double tX2 = (index.J + 0.6d) / (Size.Width - 1);
            double tY1 = (index.I + 0.4d) / (Size.Height - 1);
            double tY2 = (index.I + 0.6d) / (Size.Height - 1);

            // Upper
            Mesh.Positions.Add(new Point3D(x1, 0, y1));
            Mesh.Positions.Add(new Point3D(x2, 0, y1));
            Mesh.Positions.Add(new Point3D(x2, 0, y2));
            Mesh.Positions.Add(new Point3D(x1, 0, y2));

            Mesh.TextureCoordinates.Add(new Point(tX1, tY1));
            Mesh.TextureCoordinates.Add(new Point(tX2, tY1));
            Mesh.TextureCoordinates.Add(new Point(tX2, tY2));
            Mesh.TextureCoordinates.Add(new Point(tX1, tY2));

            /*Mesh.TextureCoordinates.Add(new Point((double)index.J / Size.Width, (double)index.I / Size.Height));
             * Mesh.TextureCoordinates.Add(new Point((double)(index.J + 1) / Size.Width, (double)index.I / Size.Height));
             * Mesh.TextureCoordinates.Add(new Point((double)(index.J + 1) / Size.Width, (double)(index.I + 1) / Size.Height));
             * Mesh.TextureCoordinates.Add(new Point((double)index.J / Size.Width, (double)(index.I + 1) / Size.Height));*/

            // Lower
            Mesh.Positions.Add(new Point3D(x1, 0, y1));
            Mesh.Positions.Add(new Point3D(x2, 0, y1));
            Mesh.Positions.Add(new Point3D(x2, 0, y2));
            Mesh.Positions.Add(new Point3D(x1, 0, y2));

            Mesh.TextureCoordinates.Add(new Point(tX1, tY1));
            Mesh.TextureCoordinates.Add(new Point(tX2, tY1));
            Mesh.TextureCoordinates.Add(new Point(tX2, tY2));
            Mesh.TextureCoordinates.Add(new Point(tX1, tY2));

            /*Mesh.TextureCoordinates.Add(new Point((double)index.J / Size.Width, (double)index.I / Size.Height));
             * Mesh.TextureCoordinates.Add(new Point((double)(index.J + 1) / Size.Width, (double)index.I / Size.Height));
             * Mesh.TextureCoordinates.Add(new Point((double)(index.J + 1) / Size.Width, (double)(index.I + 1) / Size.Height));
             * Mesh.TextureCoordinates.Add(new Point((double)index.J / Size.Width, (double)(index.I + 1) / Size.Height));*/

            AddFace(idx + 0, idx + 1, idx + 2, idx + 3);
            AddFace(idx + 1, idx + 0, idx + 4, idx + 5);
            AddFace(idx + 2, idx + 1, idx + 5, idx + 6);
            AddFace(idx + 3, idx + 2, idx + 6, idx + 7);
            AddFace(idx + 0, idx + 3, idx + 7, idx + 4);
        }