Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(653)

Unified Diff: sky/framework/animation/scroll_curve.dart

Issue 1001373002: Organize sky/framework/animation (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sky/framework/animation/scroll_behavior.dart ('k') | sky/framework/animation/simulation.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/framework/animation/scroll_curve.dart
diff --git a/sky/framework/animation/scroll_curve.dart b/sky/framework/animation/scroll_curve.dart
deleted file mode 100644
index bee8ee9fa7aca47dfd2b3363861b9a3f88f511ed..0000000000000000000000000000000000000000
--- a/sky/framework/animation/scroll_curve.dart
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'dart:math' as math;
-import 'mechanics.dart';
-import 'simulation.dart';
-
-const double _kSlope = 0.01;
-
-abstract class ScrollCurve {
- Simulation release(Particle particle) => null;
-
- // Returns the new scroll offset.
- double apply(double scrollOffset, double scrollDelta);
-}
-
-class BoundedScrollCurve extends ScrollCurve {
- double minOffset;
- double maxOffset;
-
- BoundedScrollCurve({this.minOffset: 0.0, this.maxOffset});
-
- double apply(double scrollOffset, double scrollDelta) {
- double newScrollOffset = scrollOffset + scrollDelta;
- if (minOffset != null)
- newScrollOffset = math.max(minOffset, newScrollOffset);
- if (maxOffset != null)
- newScrollOffset = math.min(maxOffset, newScrollOffset);
- return newScrollOffset;
- }
-}
-
-class OverscrollCurve extends ScrollCurve {
- Simulation release(Particle particle) {
- if (particle.position >= 0.0)
- return null;
- System system = new ParticleClimbingRamp(
- particle: particle,
- box: new Box(max: 0.0),
- slope: _kSlope,
- targetPosition: 0.0);
- return new Simulation(system,
- terminationCondition: () => particle.position == 0.0);
- }
-
- double apply(double scrollOffset, double scrollDelta) {
- double newScrollOffset = scrollOffset + scrollDelta;
- if (newScrollOffset < 0.0) {
- // If we're overscrolling, we want move the scroll offset 2x slower than
- // we would otherwise. Therefore, we "rewind" the newScrollOffset by half
- // the amount that we moved it above. Notice that we clap the "old" value
- // to 0.0 so that we only reduce the portion of scrollDelta that's applied
- // beyond 0.0.
- newScrollOffset -= (newScrollOffset - math.min(0.0, scrollOffset)) / 2.0;
- }
- return newScrollOffset;
- }
-}
« no previous file with comments | « sky/framework/animation/scroll_behavior.dart ('k') | sky/framework/animation/simulation.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698