// +---------------------------------------------------------------------------+ // 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(); }
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) },