Exemplo n.º 1
0
 void Awake()
 {
     alg     = new DiamondSquareAlgorithm();
     terrain = GetComponent <Terrain>();
     h_size  = terrain.terrainData.heightmapResolution;
     terrain.terrainData.SetHeights(0, 0, alg.GenerateTerrain(h_size, seed, variation, roughness));
 }
Exemplo n.º 2
0
        public void TestFindSquareMidPoint()
        {
            Tuple <int, int>[] points = { new Tuple <int, int>(0, 0), new Tuple <int, int>(2, 0), new Tuple <int, int>(0, 2), new Tuple <int, int>(2, 2) };

            var result   = DiamondSquareAlgorithm.FindSquareMidPoint(points);
            var expected = Tuple.Create(1, 1);

            Assert.AreEqual(expected, result);
        }
Exemplo n.º 3
0
        public void TestFindDiamondsMidPoints()
        {
            Tuple <int, int>[] points = { new Tuple <int, int>(0, 0), new Tuple <int, int>(4, 0), new Tuple <int, int>(0, 4), new Tuple <int, int>(4, 4) };

            var result = DiamondSquareAlgorithm.FindDiamondsMidPoints(points);

            Tuple <int, int>[] expected = { new Tuple <int, int>(2, 0), new Tuple <int, int>(4, 2), new Tuple <int, int>(0, 2), new Tuple <int, int>(2, 4) };

            Assert.AreEqual(expected, result);
        }
Exemplo n.º 4
0
        public void TestFindMeanHeight()
        {
            Tuple <int, int>[] coords = { new Tuple <int, int>(0, 0), new Tuple <int, int>(0, 1), new Tuple <int, int>(1, 1), new Tuple <int, int>(1, 0) };
            float[,] heights = { { 1, 2 }, { 3, 4 } };

            var mean     = DiamondSquareAlgorithm.FindMeanHeight(coords, heights);
            var expected = 2.5f;

            Assert.AreEqual(expected, mean);
        }
Exemplo n.º 5
0
        public void TestDiamondSquareInit()
        {
            var mapSize = 3;

            var result = DiamondSquareAlgorithm.DiamondSquareInit(mapSize);

            Tuple <int, int>[] expected = { new Tuple <int, int>(0, 0), new Tuple <int, int>(2, 0), new Tuple <int, int>(0, 2), new Tuple <int, int>(2, 2) };

            Assert.AreEqual(expected, result);
        }
Exemplo n.º 6
0
        public void TestFindSquareCorners()
        {
            var division = 2;
            var point    = Tuple.Create(2, 2);

            var result = DiamondSquareAlgorithm.FindSquareCorners(division, point);

            Tuple <int, int>[] expected = { new Tuple <int, int>(2, 2), new Tuple <int, int>(4, 2), new Tuple <int, int>(2, 4), new Tuple <int, int>(4, 4) };

            Assert.AreEqual(expected, result);
        }
Exemplo n.º 7
0
        public void TestFindDiamondCornersRight()
        {
            var mapSize  = 5;
            var division = 2;

            var point = Tuple.Create(mapSize - 1, 2);

            var result = DiamondSquareAlgorithm.FindDiamondCorners(division, point, mapSize);

            Tuple <int, int>[] expected = { new Tuple <int, int>(4, 1), new Tuple <int, int>(3, 2), new Tuple <int, int>(4, 3) };

            Assert.AreEqual(expected, result);
        }
Exemplo n.º 8
0
        public void TestFindDiamondCornersFull()
        {
            var mapSize  = 5;
            var division = 2;

            var point = Tuple.Create(1, 1);

            var result = DiamondSquareAlgorithm.FindDiamondCorners(division, point, mapSize);

            Tuple <int, int>[] expected = { new Tuple <int, int>(1, 0), new Tuple <int, int>(2, 1), new Tuple <int, int>(0, 1), new Tuple <int, int>(1, 2) };

            Assert.AreEqual(expected, result);
        }
Exemplo n.º 9
0
    public void CreateTerrain(int allDivisions, float meshSize,
                              float meshHeight, float scale)
    {
        /*
         * Get corresponding terrain data and set the heights calculated by
         * our diamond square algorithm.
         */
        TerrainData terrainData = terrain.terrainData;

        DiamondSquareAlgorithm.ResultSet resultSet =
            DiamondSquareAlgorithm.CreateTerrain(allDivisions, meshSize,
                                                 meshHeight);
        terrainData.SetHeights(0, 0,
                               GetHeights(terrainData, resultSet, scale));
    }
Exemplo n.º 10
0
 public static Vector3[] Generate(int mapSize)
 {
     return(DiamondSquareAlgorithm.GenerateDiamondSquareMap(mapSize, _r, _seed, heightMultiplier, _heightCurve));
 }