Index: packages/charted/lib/core/interpolators/easing.dart |
diff --git a/packages/charted/lib/core/interpolators/easing.dart b/packages/charted/lib/core/interpolators/easing.dart |
index 2b4bdec1193843ea0ab713c660bc52f5c91c1c3f..e80bbd6f533b77262a00e6d1dc6b2e80e3c6d326 100644 |
--- a/packages/charted/lib/core/interpolators/easing.dart |
+++ b/packages/charted/lib/core/interpolators/easing.dart |
@@ -8,21 +8,21 @@ |
part of charted.core.interpolators; |
-const String EASE_TYPE_LINEAR = 'linear'; |
-const String EASE_TYPE_POLY = 'poly'; |
-const String EASE_TYPE_QUAD = 'quad'; |
-const String EASE_TYPE_CUBIC = 'cubic'; |
-const String EASE_TYPE_SIN = 'sin'; |
-const String EASE_TYPE_EXP = 'exp'; |
-const String EASE_TYPE_CIRCLE = 'circle'; |
-const String EASE_TYPE_ELASTIC = 'elastic'; |
-const String EASE_TYPE_BACK = 'back'; |
-const String EASE_TYPE_BOUNCE = 'bounce'; |
- |
-const String EASE_MODE_IN = 'in'; |
-const String EASE_MODE_OUT = 'out'; |
-const String EASE_MODE_IN_OUT = 'in-out'; |
-const String EASE_MODE_OUT_IN = 'out-in'; |
+const String EASE_TYPE_LINEAR = 'linear'; |
+const String EASE_TYPE_POLY = 'poly'; |
+const String EASE_TYPE_QUAD = 'quad'; |
+const String EASE_TYPE_CUBIC = 'cubic'; |
+const String EASE_TYPE_SIN = 'sin'; |
+const String EASE_TYPE_EXP = 'exp'; |
+const String EASE_TYPE_CIRCLE = 'circle'; |
+const String EASE_TYPE_ELASTIC = 'elastic'; |
+const String EASE_TYPE_BACK = 'back'; |
+const String EASE_TYPE_BOUNCE = 'bounce'; |
+ |
+const String EASE_MODE_IN = 'in'; |
+const String EASE_MODE_OUT = 'out'; |
+const String EASE_MODE_IN_OUT = 'in-out'; |
+const String EASE_MODE_OUT_IN = 'out-in'; |
/// [EasingFunction] manipulates progression of an animation. The returned |
/// value is passed to an [Interpolator] to generate intermediate state. |
@@ -33,8 +33,8 @@ typedef num EasingFunction(num t); |
typedef EasingFunction EasingModeFunction(EasingFunction fn); |
/// Creates an easing function based on type and mode. |
-EasingFunction easingFunctionByName( |
- String type, [String mode = EASE_MODE_IN, List params]) { |
+EasingFunction easingFunctionByName(String type, |
+ [String mode = EASE_MODE_IN, List params]) { |
const Map easingTypes = const { |
EASE_TYPE_LINEAR: identityFunction, |
EASE_TYPE_POLY: easePoly, |
@@ -47,21 +47,21 @@ EasingFunction easingFunctionByName( |
EASE_TYPE_BACK: easeBack, |
EASE_TYPE_BOUNCE: easeBounce |
}; |
- |
+ |
const Map easingModes = const { |
EASE_MODE_IN: identityFunction, |
EASE_MODE_OUT: reverseEasingFn, |
EASE_MODE_IN_OUT: reflectEasingFn, |
EASE_MODE_OUT_IN: reflectReverseEasingFn |
}; |
- |
+ |
const Map customEasingFunctions = const { |
- '$EASE_TYPE_CUBIC-$EASE_MODE_IN_OUT': easeCubicInOut |
+ '$EASE_TYPE_CUBIC-$EASE_MODE_IN_OUT': easeCubicInOut |
}; |
assert(easingTypes.containsKey(type)); |
assert(easingModes.containsKey(mode)); |
- |
+ |
EasingFunction fn; |
if (customEasingFunctions.containsKey('$type-$mode')) { |
fn = Function.apply(customEasingFunctions['$type-$mode'], params); |
@@ -72,18 +72,15 @@ EasingFunction easingFunctionByName( |
return clampEasingFn(fn); |
} |
- |
/// Clamps transition progress to stay between 0.0 and 1.0 |
EasingFunction clampEasingFn(EasingFunction f) => |
(t) => t <= 0 ? 0 : t >= 1 ? 1 : f(t); |
- |
// |
// Implementation of easing modes. |
// |
-EasingFunction reverseEasingFn(EasingFunction f) => |
- (t) => 1 - f(1 - t); |
+EasingFunction reverseEasingFn(EasingFunction f) => (t) => 1 - f(1 - t); |
EasingFunction reflectEasingFn(EasingFunction f) => |
(t) => .5 * (t < .5 ? f(2 * t) : (2 - f(2 - 2 * t))); |
@@ -91,7 +88,6 @@ EasingFunction reflectEasingFn(EasingFunction f) => |
EasingFunction reflectReverseEasingFn(EasingFunction f) => |
reflectEasingFn(reverseEasingFn(f)); |
- |
// |
// Implementation of easing function generators. |
// |
@@ -100,38 +96,33 @@ EasingFunction easePoly([e = 1]) => (t) => math.pow(t, e); |
EasingFunction easeElastic([a = 1, p = 0.45]) { |
var s = p / 2 * math.PI * math.asin(1 / a); |
- return (t) => 1 + a * math.pow(2, -10 * t) * |
- math.sin((t - s) * 2 * math.PI / p); |
+ return (t) => |
+ 1 + a * math.pow(2, -10 * t) * math.sin((t - s) * 2 * math.PI / p); |
} |
-EasingFunction easeBack([s = 1.70158]) => |
- (num t) => t * t * ((s + 1) * t - s); |
+EasingFunction easeBack([s = 1.70158]) => (num t) => t * t * ((s + 1) * t - s); |
EasingFunction easeQuad() => (num t) => t * t; |
EasingFunction easeCubic() => (num t) => t * t * t; |
-EasingFunction easeCubicInOut() => |
- (num t) { |
+EasingFunction easeCubicInOut() => (num t) { |
if (t <= 0) return 0; |
if (t >= 1) return 1; |
- var t2 = t * t, |
- t3 = t2 * t; |
+ var t2 = t * t, t3 = t2 * t; |
return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75); |
}; |
-EasingFunction easeSin() => |
- (num t) => 1 - math.cos(t * math.PI / 2); |
+EasingFunction easeSin() => (num t) => 1 - math.cos(t * math.PI / 2); |
-EasingFunction easeExp() => |
- (num t) => math.pow(2, 10 * (t - 1)); |
+EasingFunction easeExp() => (num t) => math.pow(2, 10 * (t - 1)); |
-EasingFunction easeCircle() => |
- (num t) => 1 - math.sqrt(1 - t * t); |
+EasingFunction easeCircle() => (num t) => 1 - math.sqrt(1 - t * t); |
-EasingFunction easeBounce() => |
- (num t) => t < 1 / 2.75 ? |
- 7.5625 * t * t : t < 2 / 2.75 ? |
- 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? |
- 7.5625 * (t -= 2.25 / 2.75) * t + .9375 |
- : 7.5625 * (t -= 2.625 / 2.75) * t + .984375; |
+EasingFunction easeBounce() => (num t) => t < 1 / 2.75 |
+ ? 7.5625 * t * t |
+ : t < 2 / 2.75 |
+ ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 |
+ : t < 2.5 / 2.75 |
+ ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 |
+ : 7.5625 * (t -= 2.625 / 2.75) * t + .984375; |