public static unsafe void CalculateNormalizationParams( float[, ,] map, out float multiplier, out float constant, float low, float high )
{
fixed ( float* ptr = map ) {
float min = float.MaxValue,
max = float.MinValue;
for ( int i = 0; i < map.Length; i++ ) {
min = Math.Min( min, ptr[i] );
max = Math.Max( max, ptr[i] );
}
multiplier = ( high - low ) / ( max - min );
constant = -min * ( high - low ) / ( max - min ) + low;
for ( int i = 0; i < map.Length; i++ ) {
ptr[i] = ptr[i] * multiplier + constant;
}
}
}