Beispiel #1
0
    public void setMixAlgo(mixingMethod newMixAlgo, int i)
    {
        mixAlgo = newMixAlgo;
        updateMixture(Camera.main.GetComponent <demo_colors>().getAllColors(), Camera.main.GetComponent <demo_colors>().getAllQuants());

        theGO.GetComponent <mixtureRefs>().justSet = true;
        theGO.GetComponent <mixtureRefs>().mixingGO.GetComponent <Dropdown>().value = i;
        theGO.GetComponent <mixtureRefs>().justSet = false;
    }
Beispiel #2
0
    public void setMixAlgo(mixingMethod newMixAlgo)
    {
        int newIndex = 0;

        switch (newMixAlgo)
        {
        case mixingMethod.colorComponentAveraging:
            newIndex = 0;
            break;

        case mixingMethod.colorAveraging:
            newIndex = 1;
            break;

        case mixingMethod.spaceAveraging:
            newIndex = 2;
            break;
        }

        setMixAlgo(newMixAlgo, newIndex);
    }
Beispiel #3
0
    public void addMixture(desiredMixtureType aimingFor, bool ignoreQuants, colorSpace csUsed, mixingMethod mixAlgo)
    {
        GameObject newMixtureDataGO = Instantiate(mixtureDataPrefab, mixtureListPanel.transform);

        mixtureDataList.Add(newMixtureDataGO, new mixtureData(newMixtureDataGO, aimingFor, ignoreQuants, csUsed, mixAlgo));
        mixtureDataList[newMixtureDataGO].updateMixture(Camera.main.GetComponent <demo_colors>().getAllColors(), Camera.main.GetComponent <demo_colors>().getAllQuants());
    }
Beispiel #4
0
    public mixtureData(GameObject GO, desiredMixtureType AF, bool IQ, colorSpace CSU, mixingMethod MM)
    {
        theGO = GO;

        setAimingFor(AF);
        setIgnoreQuants(IQ);
        setCSUsed(CSU);
        setMixAlgo(MM);
    }
        static Color mixColors_inCMYK_colorSpace(Color[] colors, float[] colorQuantities, mixingMethod mm, bool ignoreQuants)
        {
            List <float[]> passedColors = new List <float[]>();

            for (int i = 0; i < colors.Length; i++)
            {
                float[] colorFloat_RGB = colorTypeConversion.color_to_array(colors[i]);
                float[] color255_RGB   = colorFormatConversion._float_to_255(colorFloat_RGB);
                float[] color255_CMYK  = rgb2cmyk_cmyk2rgb.rgb255_to_cmyk255(color255_RGB);
                passedColors.Add(color255_CMYK);
            }

            float[] result255_CMYK  = (ignoreQuants == false) ? mixingMethods.mixColors(passedColors, colorQuantities, mm) : mixingMethods.mixColors(passedColors, mm); //actual Color Mixing
            float[] result255_RGB   = rgb2cmyk_cmyk2rgb.cmyk255_to_rgb255(result255_CMYK);
            float[] resultFloat_RGB = colorFormatConversion._255_to_float(result255_RGB);

            return(colorTypeConversion.array_to_color(resultFloat_RGB));
        }
 //Ignore Quants == true
 public static Color mixColors(Color[] colors, colorSpace csToUse, mixingMethod mm)
 {
     float[] colorQuantities = new float[0]; //create it to meet requirements
     return(mixColors(colors, colorQuantities, csToUse, mm, true));
 }
 //Ignore Quants == false
 public static Color mixColors(Color[] colors, float[] colorQuantities, colorSpace csToUse, mixingMethod mm)
 {
     return(mixColors(colors, colorQuantities, csToUse, mm, false));
 }
        static Color mixColors(Color[] colors, float[] colorQuantities, colorSpace csToUse, mixingMethod mm, bool ignoreQuants)
        {
            switch (csToUse)
            {
            case colorSpace.RGB:
                return(mixColors_inRGB_colorSpace(colors, colorQuantities, mm, ignoreQuants));

            case colorSpace.RYB:
                return(mixColors_inRYB_colorSpace(colors, colorQuantities, mm, ignoreQuants));

            default:
                return(mixColors_inCMYK_colorSpace(colors, colorQuantities, mm, ignoreQuants));
            }
        }
 public static Color mixColors(this Color[] colors, float[] colorQuantities, colorSpace csToUse, mixingMethod mm)
 {
     return(colorMixing.mixColors(colors, colorQuantities, csToUse, mm));
 }
 public static float[] mixColors(this List <float[]> colors, float[] colorQuantities, mixingMethod mm)
 {
     return(mixingMethods.mixColors(colors, colorQuantities, mm));
 }
 public static float[] mixColors(this Color c, List <float[]> colors, mixingMethod mm)
 {
     return(mixingMethods.mixColors(colors, mm));
 }
 public static Color mixColors(this Color c, Color[] colors, colorSpace csToUse, mixingMethod mm)
 {
     return(colorMixing.mixColors(colors, csToUse, mm));
 }
Beispiel #13
0
        //BASE CODE
        static float[] mixColors(List <float[]> colors, float[] colorQuantities, mixingMethod mm, bool ignoreQuants)
        {
            if (
                //COLOR QUANTITIES SHOULD BE POSITIVE... but I WILL NOT CHECK THIS...
                //COLORS SHOULD BE IN THE SAME COLOR SPACE (rgb,ryb,cmyk) -AND- FORMAT (255,float)... but I CANNOT CHECK THIS...
                (colors[0].Length == 3 || colors[0].Length == 4) && //colors can only be in these formats
                (colors.Count > 1) && //we need 2 or more colors to MIX them
                ((ignoreQuants == false) && (colors.Count == colorQuantities.Length)))
            {
                switch (mm)
                {
                case mixingMethod.spaceAveraging:
                    if (ignoreQuants)
                    {
                        return(spaceAveraging(colors));
                    }
                    else
                    {
                        return(spaceAveraging(colors, colorQuantities));
                    }

                case mixingMethod.colorComponentAveraging:
                    if (ignoreQuants)
                    {
                        return(colorComponentAveraging(colors));
                    }
                    else
                    {
                        return(colorComponentAveraging(colors, colorQuantities));
                    }

                case mixingMethod.eachAsPercentOfMax:
                    if (ignoreQuants)
                    {
                        return(eachAsPercentOfMax(colors));
                    }
                    else
                    {
                        return(eachAsPercentOfMax(colors, colorQuantities));
                    }

                default:     //colorAveraging
                    if (ignoreQuants)
                    {
                        return(colorAveraging(colors));
                    }
                    else
                    {
                        return(colorAveraging(colors, colorQuantities));
                    }
                }
            }
            else
            {
                if (colors.Count == 1)
                {
                    return(colors[0]);
                }
                else
                {
                    return(new float[colors[0].Length]);
                }
            }
        }
Beispiel #14
0
 //Ignore Quants == false
 public static float[] mixColors(List <float[]> colors, float[] colorQuantities, mixingMethod mm)
 {
     return(mixColors(colors, colorQuantities, mm, false));
 }
Beispiel #15
0
        static bool useVect4Dist = true; //might be used later

        //-------------------------Originally From Color Mixing-------------------------

        //Ignore Quants == true
        public static float[] mixColors(List <float[]> colors, mixingMethod mm)
        {
            float[] colorQuantities = new float[0]; //create it to meet requirements
            return(mixColors(colors, colorQuantities, mm, true));
        }