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

Side by Side Diff: chrome/browser/android/vr_shell/easing.h

Issue 2696293002: Adds in-out easing type. (Closed)
Patch Set: Created 3 years, 10 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #ifndef CHROME_BROWSER_ANDROID_VR_SHELL_EASING_H_ 5 #ifndef CHROME_BROWSER_ANDROID_VR_SHELL_EASING_H_
6 #define CHROME_BROWSER_ANDROID_VR_SHELL_EASING_H_ 6 #define CHROME_BROWSER_ANDROID_VR_SHELL_EASING_H_
7 7
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "ui/gfx/geometry/cubic_bezier.h" 9 #include "ui/gfx/geometry/cubic_bezier.h"
10 10
11 namespace vr_shell { 11 namespace vr_shell {
12 namespace easing { 12 namespace easing {
13 13
14 enum EasingType { 14 enum EasingType {
15 LINEAR = 0, 15 LINEAR = 0,
16 CUBICBEZIER, 16 CUBICBEZIER,
17 EASEIN, 17 EASEIN,
18 EASEOUT 18 EASEOUT,
19 EASEINOUT
cjgrant 2017/02/16 15:10:25 nit: Should have a comma as well. https://engdoc.c
tiborg 2017/02/16 18:39:33 Done.
19 }; 20 };
20 21
21 // Abstract base class for custom interpolators, mapping linear input between 22 // Abstract base class for custom interpolators, mapping linear input between
22 // 0 and 1 to custom values between those two points. 23 // 0 and 1 to custom values between those two points.
23 class Easing { 24 class Easing {
24 public: 25 public:
25 // Compute an output value, given an input between 0 and 1. Output will 26 // Compute an output value, given an input between 0 and 1. Output will
26 // equal input at (at least) points 0 and 1. 27 // equal input at (at least) points 0 and 1.
27 double CalculateValue(double input); 28 double CalculateValue(double input);
28 virtual ~Easing() {} 29 virtual ~Easing() {}
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 class EaseOut : public Easing { 72 class EaseOut : public Easing {
72 public: 73 public:
73 explicit EaseOut(double power); 74 explicit EaseOut(double power);
74 double CalculateValueImpl(double input) override; 75 double CalculateValueImpl(double input) override;
75 76
76 private: 77 private:
77 double power_; 78 double power_;
78 DISALLOW_COPY_AND_ASSIGN(EaseOut); 79 DISALLOW_COPY_AND_ASSIGN(EaseOut);
79 }; 80 };
80 81
82 // Behaves like EaseIn for inputs smaller 0.5 and like EaseOut otherwise.
cjgrant 2017/02/16 15:10:25 s/smaller/smaller than/. But I found the comment
tiborg 2017/02/16 18:39:33 Done.
83 class EaseInOut : public Easing {
84 public:
85 explicit EaseInOut(double power);
86 double CalculateValueImpl(double input) override;
87
88 private:
89 EaseIn ease_in_;
90 EaseOut ease_out_;
91 DISALLOW_COPY_AND_ASSIGN(EaseInOut);
92 };
93
81 } // namespace easing 94 } // namespace easing
82 } // namespace vr_shell 95 } // namespace vr_shell
83 96
84 #endif // CHROME_BROWSER_ANDROID_VR_SHELL_EASING_H_ 97 #endif // CHROME_BROWSER_ANDROID_VR_SHELL_EASING_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/android/vr_shell/easing.cc » ('j') | chrome/browser/android/vr_shell/easing.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698