Ejemplo n.º 1
0
        // +---------------------------------------------------------------------------+
        //  Animation Utilities
        // +---------------------------------------------------------------------------+

        private static void AnimateScale(Node node, long duration, Vector targetScale,
                                         AnimationTimingFunction fcn, Thread thread)
        {
            AnimationTransaction.Begin();
            AnimationTransaction.SetAnimationDuration(duration);
            AnimationTransaction.SetTimingFunction(fcn);
            node.SetScale(targetScale);
            if (thread != null)
            {
                AnimationTransaction.SetListener(new AnimationTransactionListener(thread));
            }

            AnimationTransaction.Commit();
        }
Ejemplo n.º 2
0
 public static string CubicBezier(this AnimationTimingFunction timing, AnimationEasing?easing)
 {
     (double x1, double y1, double x2, double y2)cb = timing switch {
         AnimationTimingFunction.linear => (0.250, 0.250, 0.750, 0.750),
         AnimationTimingFunction.ease => (0.250, 0.100, 0.250, 1.000),
         AnimationTimingFunction.easeIn => easing switch {
             AnimationEasing.Quad => (0.550, 0.085, 0.680, 0.530),
             AnimationEasing.Cubic => (0.550, 0.055, 0.675, 0.190),
             AnimationEasing.Quart => (0.895, 0.030, 0.685, 0.220),
             AnimationEasing.Quint => (0.755, 0.050, 0.855, 0.060),
             AnimationEasing.Sine => (0.470, 0.000, 0.745, 0.715),
             AnimationEasing.Expo => (0.950, 0.050, 0.795, 0.035),
             AnimationEasing.Circ => (0.600, 0.040, 0.980, 0.335),
             AnimationEasing.Back => (0.600, -0.280, 0.735, 0.045),
             _ => (0.420, 0.000, 1.000, 1.000)
         },