public BGRA Lerp(BGRA color1, int factor1, BGRA color2, int factor2, BGRA color3, int factor3)
        {
            int alphaFactor1 = factor1;
            int alphaFactor2 = factor2;
            int alphaFactor3 = factor3;

            if (color1.A == 0)
            {
                factor1 = 0;
            }
            if (color2.A == 0)
            {
                factor2 = 0;
            }
            if (color3.A == 0)
            {
                factor3 = 0;
            }

            if (factor1 == 0 && factor2 == 0 && factor3 == 0)
            {
                return(color1);
            }

            return(BGRA.FromArgb(
                       LerpChannel(color1.A, alphaFactor1, color2.A, alphaFactor2, color3.A, alphaFactor3),
                       LerpChannel(color1.R, factor1, color2.R, factor2, color3.R, factor3),
                       LerpChannel(color1.G, factor1, color2.G, factor2, color3.G, factor3),
                       LerpChannel(color1.B, factor1, color2.B, factor2, color3.B, factor3)
                       ));
        }
 public BGRA Lerp(BGRA color1, int factor1, BGRA color2, int factor2, BGRA color3, int factor3)
 {
     return(BGRA.FromArgb(
                LerpChannel(color1.R, factor1, color2.R, factor2, color3.R, factor3),
                LerpChannel(color1.G, factor1, color2.G, factor2, color3.G, factor3),
                LerpChannel(color1.B, factor1, color2.B, factor2, color3.B, factor3)
                ));
 }