Пример #1
0
 public ColorMapCalculator(ColorMapPrecision precision, Color[] palette, bool[] usedColors, int numColors, System.Action doneCallback)
 {
     this.precision = precision;
     this.palette = palette;
     this.usedColors = usedColors;
     this.doneCallback = doneCallback;
     this.numColors = numColors;
     progress = 0;
     pixelProgress = 0;
     SetupPixelBuffer();
 }
Пример #2
0
 public ColorMapCalculator(ColorMapPrecision precision, Color[] palette, bool[] usedColors, int numColors, System.Action doneCallback)
 {
     this.precision    = precision;
     this.palette      = palette;
     this.usedColors   = usedColors;
     this.doneCallback = doneCallback;
     this.numColors    = numColors;
     progress          = 0;
     pixelProgress     = 0;
     SetupPixelBuffer();
 }
Пример #3
0
 public static int GetPrecisionColorsteps(ColorMapPrecision precision)
 {
     switch (precision)
     {
     case ColorMapPrecision.Low: return 16;
     case ColorMapPrecision.Medium: return 32;
     case ColorMapPrecision.High: return 64;
     case ColorMapPrecision.Overkill: return 128;
     case ColorMapPrecision.StupidOverkill: return 256;
     default: return 16;
     }
 }
Пример #4
0
        void Reset()
        {
            horizontalResolution = 320;
            verticalResolution   = 200;
            palette            = new Color[256];
            numberOfColors     = 16;
            usedColors         = new bool[256];
            colormapPrecision  = ColorMapPrecision.Medium;
            preset             = PalettePresets.PresetName.Classic1;
            strength           = 1;
            autoUpdateColormap = true;

            ApplyPreset();
            UpdateColormap();
        }
Пример #5
0
        Texture2D makeColorMap(ColorMapPrecision precision, Color[] palette, bool[] usedColors, int numColors)
        {
            Texture2D colormap;
            float     progress;

            Color32[] pixelBuffer;

            int colorsteps    = 32;
            int totalPixels   = colorsteps * colorsteps * colorsteps;
            int pixelProgress = 0;

            //colorsteps = ColormapUtils.GetPrecisionColorsteps(precision);
            //totalPixels = colorsteps * colorsteps;
            pixelBuffer = new Color32[totalPixels];

            while (true)
            {
                if (pixelProgress < totalPixels)
                {
                    int temp = pixelProgress;

                    int r = temp % colorsteps;
                    temp /= colorsteps;

                    int g = temp % colorsteps;
                    temp /= colorsteps;

                    int b = temp % colorsteps;

                    CalculatePixel(r, g, b, pixelBuffer, pixelProgress, colorsteps, numColors, palette, usedColors);

                    ++pixelProgress;
                    progress = (float)pixelProgress / (float)totalPixels;
                }
                else
                {
                    colormap            = new Texture2D(colorsteps, colorsteps * colorsteps, TextureFormat.Alpha8, false);
                    colormap.filterMode = FilterMode.Point;
                    colormap.wrapMode   = TextureWrapMode.Clamp;
                    colormap.SetPixels32(pixelBuffer);
                    colormap.Apply();
                    break;
                }
            }

            return(colormap);
        }
Пример #6
0
        public static int GetPrecisionColorsteps(ColorMapPrecision precision)
        {
            switch (precision)
            {
            case ColorMapPrecision.Low: return(16);

            case ColorMapPrecision.Medium: return(32);

            case ColorMapPrecision.High: return(64);

            case ColorMapPrecision.Overkill: return(128);

            case ColorMapPrecision.StupidOverkill: return(256);

            default: return(16);
            }
        }
Пример #7
0
        void Reset()
        {
            horizontalResolution = 320;
            verticalResolution = 200;
            palette = new Color[256];
            numberOfColors = 16;
            usedColors = new bool[256];
            colormapPrecision = ColorMapPrecision.Medium;
            preset = PalettePresets.PresetName.Classic1;
            strength = 1;
            autoUpdateColormap = true;

            ApplyPreset();
            UpdateColormap();
        }