/*void RasterizeHeightMap(float _min = 0, float _max = 1) * { * OnEachArrayCase(ref heightMap, (_array, _x, _y) => CaseRasterization(ref _array, _x, _y, _min, _max)); * } * * void CaseRasterization(ref float[,] _array, int _x, int _y, float _min, float _max) * { * float _val = _array[_x, _y]; * } * * void OnEachArrayCase<T>(ref T[,] _array, Action<T[,] ,int, int> OnEachtArray) * { * for (int x = 0; x < _array.GetLength(0); x++) * { * for (int y = 0; y < _array.GetLength(1); y++) * { * OnEachtArray?.Invoke(_array,x,y); * } * } * }*/ void RasterizeHeightMap(ref float[,] _array) { float _maxValue = maxValue; float _minValue = minValue; if (!useMinMax) { _maxValue = maxMapValue; _minValue = minMapValue; } RasterizationSettings _settings = new RasterizationSettings(_minValue, _maxValue); OnEachMapCase(ref _array, (a, b, c) => CaseRasterization(ref a, b, c, _settings)); }
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); }