From 209492e7005bd9e58b216ff7f3a0ea39670f3a5d Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Tue, 9 Apr 2024 21:36:19 +0400 Subject: Add ease-out-quad curve --- src/animation/mod.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/animation/mod.rs b/src/animation/mod.rs index d8e8cbd5..073b0ae3 100644 --- a/src/animation/mod.rs +++ b/src/animation/mod.rs @@ -1,6 +1,6 @@ use std::time::Duration; -use keyframe::functions::EaseOutCubic; +use keyframe::functions::{EaseOutCubic, EaseOutQuad}; use keyframe::EasingFunction; use portable_atomic::{AtomicF64, Ordering}; @@ -35,6 +35,7 @@ enum Kind { #[derive(Debug, Clone, Copy)] pub enum Curve { + EaseOutQuad, EaseOutCubic, EaseOutExpo, } @@ -276,6 +277,7 @@ impl Animation { impl Curve { pub fn y(self, x: f64) -> f64 { match self { + Curve::EaseOutQuad => EaseOutQuad.y(x), Curve::EaseOutCubic => EaseOutCubic.y(x), Curve::EaseOutExpo => 1. - 2f64.powf(-10. * x), } @@ -285,6 +287,7 @@ impl Curve { impl From for Curve { fn from(value: niri_config::AnimationCurve) -> Self { match value { + niri_config::AnimationCurve::EaseOutQuad => Curve::EaseOutQuad, niri_config::AnimationCurve::EaseOutCubic => Curve::EaseOutCubic, niri_config::AnimationCurve::EaseOutExpo => Curve::EaseOutExpo, } -- cgit