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

Side by Side Diff: third_party/WebKit/Source/platform/animation/WebFloatAnimationCurve.cpp

Issue 1616653002: CC Animation: Move files from cc_blink to Source/platform/animation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix ScrollAnimatorCompositorCoordinator for MSVC. Created 4 years, 11 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "platform/animation/WebFloatAnimationCurve.h"
6
7 #include "cc/animation/animation_curve.h"
8 #include "cc/animation/keyframed_animation_curve.h"
9 #include "cc/animation/timing_function.h"
10
11 using blink::WebFloatKeyframe;
12
13 namespace blink {
14
15 WebFloatAnimationCurve::WebFloatAnimationCurve()
16 : m_curve(cc::KeyframedFloatAnimationCurve::Create())
17 {
18 }
19
20 WebFloatAnimationCurve::~WebFloatAnimationCurve()
21 {
22 }
23
24 WebCompositorAnimationCurve::AnimationCurveType
25 WebFloatAnimationCurve::type() const
26 {
27 return WebCompositorAnimationCurve::AnimationCurveTypeFloat;
28 }
29
30 void WebFloatAnimationCurve::add(const WebFloatKeyframe& keyframe)
31 {
32 add(keyframe, TimingFunctionTypeEase);
33 }
34
35 void WebFloatAnimationCurve::add(const WebFloatKeyframe& keyframe,
36 TimingFunctionType type)
37 {
38 m_curve->AddKeyframe(
39 cc::FloatKeyframe::Create(base::TimeDelta::FromSecondsD(keyframe.time),
40 keyframe.value, CreateTimingFunction(type)));
41 }
42
43 void WebFloatAnimationCurve::add(const WebFloatKeyframe& keyframe,
44 double x1,
45 double y1,
46 double x2,
47 double y2)
48 {
49 m_curve->AddKeyframe(cc::FloatKeyframe::Create(
50 base::TimeDelta::FromSecondsD(keyframe.time), keyframe.value,
51 cc::CubicBezierTimingFunction::Create(x1, y1, x2, y2)));
52 }
53
54 void WebFloatAnimationCurve::add(const WebFloatKeyframe& keyframe,
55 int steps,
56 float stepsStartOffset)
57 {
58 m_curve->AddKeyframe(cc::FloatKeyframe::Create(
59 base::TimeDelta::FromSecondsD(keyframe.time), keyframe.value,
60 cc::StepsTimingFunction::Create(steps, stepsStartOffset)));
61 }
62
63 void WebFloatAnimationCurve::setLinearTimingFunction()
64 {
65 m_curve->SetTimingFunction(nullptr);
66 }
67
68 void WebFloatAnimationCurve::setCubicBezierTimingFunction(
69 TimingFunctionType type)
70 {
71 m_curve->SetTimingFunction(CreateTimingFunction(type));
72 }
73
74 void WebFloatAnimationCurve::setCubicBezierTimingFunction(double x1,
75 double y1,
76 double x2,
77 double y2)
esprehn 2016/01/28 03:40:40 I really hate this style, it leaves one arg way fa
loyso (OOO) 2016/01/28 07:10:09 Done.
78 {
79 m_curve->SetTimingFunction(
80 cc::CubicBezierTimingFunction::Create(x1, y1, x2, y2));
81 }
82
83 void WebFloatAnimationCurve::setStepsTimingFunction(
84 int numberOfSteps,
85 float stepsStartOffset)
86 {
87 m_curve->SetTimingFunction(
88 cc::StepsTimingFunction::Create(numberOfSteps, stepsStartOffset));
89 }
90
91 float WebFloatAnimationCurve::getValue(double time) const
92 {
93 return m_curve->GetValue(base::TimeDelta::FromSecondsD(time));
94 }
95
96 scoped_ptr<cc::AnimationCurve>
97 WebFloatAnimationCurve::CloneToAnimationCurve() const
98 {
99 return m_curve->Clone();
100 }
101
102 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698