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; } }
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); }