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

Side by Side Diff: cc/animation/scroll_offset_animation_curve.cc

Issue 2032643003: CC Animation: Erase EaseTimingFunction helpers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gmock
Patch Set: Created 4 years, 6 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "cc/animation/scroll_offset_animation_curve.h" 5 #include "cc/animation/scroll_offset_animation_curve.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 } 62 }
63 return base::TimeDelta::FromMicroseconds(duration / kDurationDivisor * 63 return base::TimeDelta::FromMicroseconds(duration / kDurationDivisor *
64 base::Time::kMicrosecondsPerSecond); 64 base::Time::kMicrosecondsPerSecond);
65 } 65 }
66 66
67 static std::unique_ptr<TimingFunction> EaseOutWithInitialVelocity( 67 static std::unique_ptr<TimingFunction> EaseOutWithInitialVelocity(
68 double velocity) { 68 double velocity) {
69 // Clamp velocity to a sane value. 69 // Clamp velocity to a sane value.
70 velocity = std::min(std::max(velocity, -1000.0), 1000.0); 70 velocity = std::min(std::max(velocity, -1000.0), 1000.0);
71 71
72 // Based on EaseInOutTimingFunction::Create with first control point scaled. 72 // Based on CubicBezierTimingFunction::EaseType::EASE_IN_OUT preset
73 // with first control point scaled.
73 const double x1 = 0.42; 74 const double x1 = 0.42;
74 const double y1 = velocity * x1; 75 const double y1 = velocity * x1;
75 return CubicBezierTimingFunction::Create(x1, y1, 0.58, 1); 76 return CubicBezierTimingFunction::Create(x1, y1, 0.58, 1);
76 } 77 }
77 78
78 } // namespace 79 } // namespace
79 80
80 std::unique_ptr<ScrollOffsetAnimationCurve> ScrollOffsetAnimationCurve::Create( 81 std::unique_ptr<ScrollOffsetAnimationCurve> ScrollOffsetAnimationCurve::Create(
81 const gfx::ScrollOffset& target_value, 82 const gfx::ScrollOffset& target_value,
82 std::unique_ptr<TimingFunction> timing_function, 83 std::unique_ptr<TimingFunction> timing_function,
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 (MaximumDimension(old_delta) / MaximumDimension(new_delta)); 227 (MaximumDimension(old_delta) / MaximumDimension(new_delta));
227 228
228 initial_value_ = current_position; 229 initial_value_ = current_position;
229 target_value_ = new_target; 230 target_value_ = new_target;
230 total_animation_duration_ = base::TimeDelta::FromSecondsD(t + new_duration); 231 total_animation_duration_ = base::TimeDelta::FromSecondsD(t + new_duration);
231 last_retarget_ = base::TimeDelta::FromSecondsD(t); 232 last_retarget_ = base::TimeDelta::FromSecondsD(t);
232 timing_function_ = EaseOutWithInitialVelocity(new_normalized_velocity); 233 timing_function_ = EaseOutWithInitialVelocity(new_normalized_velocity);
233 } 234 }
234 235
235 } // namespace cc 236 } // namespace cc
OLDNEW
« no previous file with comments | « cc/animation/keyframed_animation_curve_unittest.cc ('k') | cc/animation/scroll_offset_animation_curve_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698