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

Side by Side Diff: sky/sdk/lib/animation/generators.dart

Issue 1211603003: Baby steps towards an odeon-like animation system. First victim: Drawer. (Closed) Base URL: git@github.com:/domokit/mojo.git@master
Patch Set: abarth Created 5 years, 5 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 unified diff | Download patch
« no previous file with comments | « sky/sdk/lib/animation/animation_performance.dart ('k') | sky/sdk/lib/base/lerp.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 import 'dart:async'; 5 import 'dart:async';
6 import 'dart:math' as math; 6 import 'dart:math' as math;
7 7
8 import '../base/scheduler.dart' as scheduler; 8 import '../base/scheduler.dart' as scheduler;
9 import 'curves.dart'; 9 import 'curves.dart';
10 import 'mechanics.dart'; 10 import 'mechanics.dart';
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 assert(curve != null); 82 assert(curve != null);
83 assert(duration != null && duration > 0.0); 83 assert(duration != null && duration > 0.0);
84 _generator = new FrameGenerator(onDone: onDone); 84 _generator = new FrameGenerator(onDone: onDone);
85 85
86 double startTime = 0.0; 86 double startTime = 0.0;
87 _stream = _generator.onTick.map((timeStamp) { 87 _stream = _generator.onTick.map((timeStamp) {
88 if (startTime == 0.0) 88 if (startTime == 0.0)
89 startTime = timeStamp; 89 startTime = timeStamp;
90 90
91 double t = (timeStamp - (startTime + initialDelay)) / duration; 91 double t = (timeStamp - (startTime + initialDelay)) / duration;
92 _lastTime = math.max(0.0, math.min(t, 1.0)); 92 _lastTime = t.clamp(0.0, 1.0);
93 return _lastTime; 93 return _lastTime;
94 }) 94 })
95 .takeWhile(_checkForCompletion) 95 .takeWhile(_checkForCompletion)
96 .where((t) => t >= 0.0) 96 .where((t) => t >= 0.0)
97 .map(_transform); 97 .map(_transform);
98 } 98 }
99 99
100 double get remainingTime { 100 double get remainingTime {
101 if (_lastTime == null) 101 if (_lastTime == null)
102 return duration; 102 return duration;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 double _update(double timeStamp) { 153 double _update(double timeStamp) {
154 double previousTime = _previousTime; 154 double previousTime = _previousTime;
155 _previousTime = timeStamp; 155 _previousTime = timeStamp;
156 if (previousTime == 0.0) 156 if (previousTime == 0.0)
157 return timeStamp; 157 return timeStamp;
158 double deltaT = timeStamp - previousTime; 158 double deltaT = timeStamp - previousTime;
159 system.update(deltaT); 159 system.update(deltaT);
160 return timeStamp; 160 return timeStamp;
161 } 161 }
162 } 162 }
OLDNEW
« no previous file with comments | « sky/sdk/lib/animation/animation_performance.dart ('k') | sky/sdk/lib/base/lerp.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698