Пример #1
0
        public void GetMinMax(float[] scalars, ExtremaMethod extremaMethod)
        {
            switch (extremaMethod)
            {
            case (ExtremaMethod.LocalExtrema):
                oldMin = scalars.Min();
                oldMax = scalars.Max();
                break;

            case (ExtremaMethod.GlobalExtrema):

                // The user requested a custom global max, but didn't set one.
                if (GlobalMax == float.NegativeInfinity || GlobalMin == float.PositiveInfinity)
                {
                    Debug.LogWarning("Global extrema requested but not preset. Local extrema used instead");
                    GlobalMin = scalars.Min();
                    GlobalMax = scalars.Max();
                }
                oldMin = GlobalMin;
                oldMax = GlobalMax;
                break;

            case (ExtremaMethod.RollingExtrema):
                // If localMax > globalMax, replace globalMax
                GlobalMax = Max(GlobalMax, scalars.Max());
                GlobalMin = Min(GlobalMin, scalars.Min());
                oldMin    = GlobalMin;
                oldMax    = GlobalMax;
                break;
            }
        }
Пример #2
0
 private float[] RescaleArray(float[] scalars, ExtremaMethod extremaMethod)
 {
     oldMin = 0;
     oldMax = 0;
     GetMinMax(scalars, extremaMethod);
     // Rescale based on extrema
     scalars.RescaleArray(0f, (lutRes - 1), oldMin, oldMax);
     return(scalars);
 }