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

Unified Diff: cc/animation/timing_function.cc

Issue 2019613002: Blink Compositor Animation: Make Animation and Curve methods non-virtual. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix codereview issues. Add cc::TimingFunction::Type enum. Created 4 years, 7 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
Index: cc/animation/timing_function.cc
diff --git a/cc/animation/timing_function.cc b/cc/animation/timing_function.cc
index e33943cbdf711e1d81a3d078e93cd17ca05fc4d7..23f75d517c826d6f8acebcdf52dbc45843230b5b 100644
--- a/cc/animation/timing_function.cc
+++ b/cc/animation/timing_function.cc
@@ -20,32 +20,41 @@ std::unique_ptr<TimingFunction> CubicBezierTimingFunction::CreatePreset(
EaseType ease_type) {
switch (ease_type) {
case EaseType::EASE:
- return EaseTimingFunction::Create();
+ return base::WrapUnique(
+ new CubicBezierTimingFunction(EaseType::EASE, 0.25, 0.1, 0.25, 1.0));
case EaseType::EASE_IN:
- return EaseInTimingFunction::Create();
+ return base::WrapUnique(new CubicBezierTimingFunction(
+ EaseType::EASE_IN, 0.42, 0.0, 1.0, 1.0));
case EaseType::EASE_OUT:
- return EaseOutTimingFunction::Create();
+ return base::WrapUnique(new CubicBezierTimingFunction(
+ EaseType::EASE_OUT, 0.0, 0.0, 0.58, 1.0));
case EaseType::EASE_IN_OUT:
- return EaseInOutTimingFunction::Create();
+ return base::WrapUnique(new CubicBezierTimingFunction(
+ EaseType::EASE_IN_OUT, 0.42, 0.0, 0.58, 1));
default:
NOTREACHED();
return nullptr;
}
}
-
std::unique_ptr<CubicBezierTimingFunction>
CubicBezierTimingFunction::Create(double x1, double y1, double x2, double y2) {
- return base::WrapUnique(new CubicBezierTimingFunction(x1, y1, x2, y2));
+ return base::WrapUnique(
+ new CubicBezierTimingFunction(EaseType::CUSTOM, x1, y1, x2, y2));
}
-CubicBezierTimingFunction::CubicBezierTimingFunction(double x1,
+CubicBezierTimingFunction::CubicBezierTimingFunction(EaseType ease_type,
+ double x1,
double y1,
double x2,
double y2)
- : bezier_(x1, y1, x2, y2) {}
+ : bezier_(x1, y1, x2, y2), ease_type_(ease_type) {}
CubicBezierTimingFunction::~CubicBezierTimingFunction() {}
+TimingFunction::Type CubicBezierTimingFunction::GetType() const {
+ return Type::CUBIC_BEZIER;
+}
+
float CubicBezierTimingFunction::GetValue(double x) const {
return static_cast<float>(bezier_.Solve(x));
}
@@ -66,19 +75,23 @@ std::unique_ptr<TimingFunction> CubicBezierTimingFunction::Clone() const {
// These numbers come from
// http://www.w3.org/TR/css3-transitions/#transition-timing-function_tag.
std::unique_ptr<TimingFunction> EaseTimingFunction::Create() {
- return CubicBezierTimingFunction::Create(0.25, 0.1, 0.25, 1.0);
+ return CubicBezierTimingFunction::CreatePreset(
+ CubicBezierTimingFunction::EaseType::EASE);
}
std::unique_ptr<TimingFunction> EaseInTimingFunction::Create() {
- return CubicBezierTimingFunction::Create(0.42, 0.0, 1.0, 1.0);
+ return CubicBezierTimingFunction::CreatePreset(
+ CubicBezierTimingFunction::EaseType::EASE_IN);
}
std::unique_ptr<TimingFunction> EaseOutTimingFunction::Create() {
- return CubicBezierTimingFunction::Create(0.0, 0.0, 0.58, 1.0);
+ return CubicBezierTimingFunction::CreatePreset(
+ CubicBezierTimingFunction::EaseType::EASE_OUT);
}
std::unique_ptr<TimingFunction> EaseInOutTimingFunction::Create() {
- return CubicBezierTimingFunction::Create(0.42, 0.0, 0.58, 1);
+ return CubicBezierTimingFunction::CreatePreset(
+ CubicBezierTimingFunction::EaseType::EASE_IN_OUT);
}
std::unique_ptr<StepsTimingFunction> StepsTimingFunction::Create(
@@ -105,6 +118,10 @@ StepsTimingFunction::StepsTimingFunction(int steps, StepPosition step_position)
StepsTimingFunction::~StepsTimingFunction() {
}
+TimingFunction::Type StepsTimingFunction::GetType() const {
+ return Type::STEPS;
+}
+
float StepsTimingFunction::GetValue(double t) const {
const double steps = static_cast<double>(steps_);
const double value = MathUtil::ClampToRange(
« no previous file with comments | « cc/animation/timing_function.h ('k') | third_party/WebKit/Source/core/animation/CompositorAnimationsTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698