public void TestGenerateBottomIslandHeightmap()
        {
            var gen    = new IslandGenerater(new Random(123));
            var map2   = gen.GenerateBottomIslandHeightmap(32);
            var island = map2.Copy();

            gen.MakeIslandShape(island);


            Action <Array2D <float> > renderLines = delegate(Array2D <float> map)
            {
                Func <int, int, SlimDX.Vector3> getPoint = (x, y) => new SlimDX.Vector3(x, map[new Point2(x, y)], y);

                for (int x = 0; x < map.Size.X; x++)
                {
                    for (int y = 0; y < map.Size.Y; y++)
                    {
                        TW.Graphics.LineManager3D.AddLine(getPoint(x, y), getPoint(x + 1, y), new Color4(0, 0, 0));
                        TW.Graphics.LineManager3D.AddLine(getPoint(x, y), getPoint(x + 1, y + 1),
                                                          new Color4(0, 0, 0));
                        TW.Graphics.LineManager3D.AddLine(getPoint(x, y), getPoint(x, y + 1), new Color4(0, 0, 0));
                    }
                }
            };

            engine.AddSimulator(new BasicSimulator(delegate
            {
                renderLines(map2);
                TW.Graphics.LineManager3D.WorldMatrix = Matrix.Translation(40, 0, 0);

                renderLines(island);
            }));
        }
        public IMesh CreateMesh(int seed)
        {
            var r   = new Random(seed);
            var gen = new IslandGenerater(r);

            var island = gen.GenerateIsland(r.Next(7, 20));
            var mesh   = c.BuildMesh(island);

            return(mesh);
        }
        public void TestGenerateIsland()
        {
            var gen    = new IslandGenerater(new Random(123));
            var island = gen.GenerateIsland(20);

            var c    = new VoxelMeshBuilder();
            var mesh = c.BuildMesh(island);


            var e = new Entity();

            e.Mesh = mesh;
        }
        public void TestRender100Islands()
        {
            var s   = new Seeder(123);
            var gen = new IslandGenerater(new Random(123));

            var c = new VoxelMeshBuilder();

            var scale = 25;

            var range = new Vector3(100, 10, 100) * (float)Math.Sqrt(scale);

            for (int i = 0; i < 20 * scale; i++)
            {
                var island = gen.GenerateIsland(s.NextInt(7, 20));
                var mesh   = c.BuildMesh(island);
                var e      = new Entity();
                e.Mesh        = mesh;
                e.WorldMatrix = Matrix.Translation(s.NextVector3(-range, range).dx());
            }
        }