Ejemplo n.º 1
0
 public Color Evaluate(float time) => Color.Lerp(g1.Evaluate(time), g2.Evaluate(time),
                                                 Mathf.Clamp01((time - 0.5f) * (0.5f / (0.5f - lerpOff)) + 0.5f));
Ejemplo n.º 2
0
        public static void GradientHelpers()
        {
            IGradient g = EvenlySpaced(Color.red, Color.blue);

            ColorEq(g.Evaluate(0f), Color.red);
            ColorEq(g.Evaluate(1f), Color.blue);
            var gr = g.Reverse();

            ColorEq(gr.Evaluate(0f), Color.blue);
            ColorEq(gr.Evaluate(1f), Color.red);
            var gsr = gr.RemapTime(0.2f, 0.7f);

            ColorEq(gsr.Evaluate(0), Color.Lerp(Color.blue, Color.red, 0.2f));
            ColorEq(gsr.Evaluate(1), Color.Lerp(Color.blue, Color.red, 0.7f));
            ColorEq(gsr.Evaluate(0.5f), Color.Lerp(Color.blue, Color.red, 0.45f));
            Assert.IsTrue(gsr is DGradient);
            var red0 = new Color(1f, 0, 0, 0);

            g = EvenlySpaced(red0, Color.blue);
            //Alpha in color DOES matter as fallback
            ColorEq(g.Evaluate(0f), Color.red.WithA(0f));
            ColorEq(g.Evaluate(1f), Color.blue);
            g = FromKeys(new[] { new GradientColorKey(Color.red, 0f), new GradientColorKey(Color.blue, 1f) },
                         new[] { new GradientAlphaKey(0f, 0f), new GradientAlphaKey(1f, 1f) });
            ColorEq(g.Evaluate(0f), red0);
            ColorEq(g.Evaluate(1f), Color.blue);
            g = g.RemapTime(0.2f, 0.7f);
            ColorEq(g.Evaluate(0), Color.Lerp(red0, Color.blue, 0.2f));
            ColorEq(g.Evaluate(1), Color.Lerp(red0, Color.blue, 0.7f));
            ColorEq(g.Evaluate(0.5f), Color.Lerp(red0, Color.blue, 0.45f));
            g = g.RemapTime(0f, 2f);
            ColorEq(g.Evaluate(0), Color.Lerp(red0, Color.blue, 0.2f));
            ColorEq(g.Evaluate(1), Color.Lerp(red0, Color.blue, 0.7f));
            ColorEq(g.Evaluate(0.5f), Color.Lerp(red0, Color.blue, 0.7f));
            Assert.IsTrue(g is DGradient);
        }
Ejemplo n.º 3
0
 public Color Evaluate(float time) => inner.Evaluate(Mathf.Clamp01(start + eminuss * time));