void CaseRasterization(ref float[,] _array, int _x, int _y, RasterizationSettings _settings)
    {
        float _val = _array[_x, _y];

        if (_val > _settings.maxValue)
        {
            _val = _settings.maxValue;
        }
        else if (_val < _settings.minValue)
        {
            _val = _settings.minValue;
        }

        _array[_x, _y] = MT_MathTools.Cross(_val, _settings.maxValue, _settings.minValue);
    }
Esempio n. 2
0
    static void DiamondStep(int _side, int _step, int _randomRange, int _size, ref float[,] _map, ref float _min, ref float _max)
    {
        for (int i = 0; i < _size - 1; i += _step)
        {
            //Debug.Log("Stepping in");
            //(i+_step)%_side
            for (int j = (i + _step) % _side; j < _size - 1; j += _side)
            {
                /*if (i == 0 && j != 0)
                 * {
                 *  Debug.Log(i + _step);
                 *  Debug.Log(i);
                 * }*/
                //Debug.Log(j);


                //Debug.Log(MT_MathTools.Mod(i + _step, _size));
                //Debug.Log(j);
                float _average = _map[MT_MathTools.Mod(i + _step, _size), j];

                /*Debug.Log(i - _step);
                 * Debug.Log(MT_MathTools.Mod(i - _step, _size));
                 * Debug.Log(j);*/
                _average += _map[MT_MathTools.Mod(i - _step, _size), j];

                //Debug.Log(MT_MathTools.Mod(i + _step, _size));
                _average += _map[i, MT_MathTools.Mod(j + _step, _size)];

                //Debug.Log(MT_MathTools.Mod(i + _step, _size));
                _average += _map[i, MT_MathTools.Mod(j - _step, _size)];
                _average /= 4;
                _average += UnityEngine.Random.Range(-_randomRange, _randomRange);

                /*if (i == 0)
                 * {
                 *  _map[_size - 1, j] = 30;
                 * }
                 * if (j==0)
                 * {
                 *  _map[i, _size - 1] = 10;
                 * }*/
                if (_map[i, j] != 0)
                {
                    Debug.Log($"OVERIDING : [{i + _step}][{i}]");
                    Debug.Log($"VALUE : {_map[i + _step, i]}");
                }

                if (i == 0)
                {
                    _map[_size - 1, j] = _average;
                }
                if (j == 0)
                {
                    _map[i, _size - 1] = _average;
                }

                _map[i, j] = _average;

                _max = _max < _average ? _average : _max;
                _min = _min > _average ? _average : _min;

                /*if (_map[i, i + _step] != 0)
                 * {
                 *  Debug.Log($"OVERIDING : [{i}][{i + _step}]");
                 *  Debug.Log($"VALUE : {_map[i, i + _step]}");
                 * }
                 * _map[i+_step, i] = 100;
                 * _map[i, i+ _step] = 50;*/
            }
        }
    }