private FractalColorValue ReturnColor(int valueIn, IList <FractalColorValue> fractalColorValuesIn)
        {
            FractalColorValue aFractalColorValue;

            aFractalColorValue = ColorInterpolation.InterpolateColor(valueIn, 0, MaximumNumberOfIterations, fractalColorValuesIn[0], fractalColorValuesIn[1]);
            return(aFractalColorValue);
        }
        private FractalColorValue ReturnColor(int rootIn, int valueIn, IList <FractalColorValue> fractalColorValuesIn)
        {
            FractalColorValue aFractalColorValue = new FractalColorValue();

            // choosing color appropriate to root found
            switch (rootIn)
            {
            case 0:
                aFractalColorValue.red   = fractalColorValuesIn[0].red;
                aFractalColorValue.green = fractalColorValuesIn[0].green;
                aFractalColorValue.blue  = fractalColorValuesIn[0].blue;
                aFractalColorValue.alpha = fractalColorValuesIn[0].alpha;
                break;

            case 1:
                aFractalColorValue.red   = fractalColorValuesIn[1].red;
                aFractalColorValue.green = fractalColorValuesIn[1].green;
                aFractalColorValue.blue  = fractalColorValuesIn[1].blue;
                aFractalColorValue.alpha = fractalColorValuesIn[1].alpha;
                break;

            case 2:
                aFractalColorValue.red   = fractalColorValuesIn[2].red;
                aFractalColorValue.green = fractalColorValuesIn[2].green;
                aFractalColorValue.blue  = fractalColorValuesIn[2].blue;
                aFractalColorValue.alpha = fractalColorValuesIn[2].alpha;
                break;

            case 3:
                aFractalColorValue.red   = fractalColorValuesIn[3].red;
                aFractalColorValue.green = fractalColorValuesIn[3].green;
                aFractalColorValue.blue  = fractalColorValuesIn[3].blue;
                aFractalColorValue.alpha = fractalColorValuesIn[3].alpha;
                break;

            default:
                break;
            }

            // background color is used if too many (maximum) iterations are used to converge to root
            aFractalColorValue = ColorInterpolation.InterpolateColor(valueIn, 0, MaximumNumberOfIterations, aFractalColorValue, fractalColorValuesIn[0]);

            return(aFractalColorValue);
        }