OLD | NEW |
| (Empty) |
1 // Copyright 2012 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 "config.h" | |
6 | |
7 #include "CCTimingFunction.h" | |
8 | |
9 namespace { | |
10 const double epsilon = 1e-6; | |
11 } // namespace | |
12 | |
13 namespace cc { | |
14 | |
15 CCTimingFunction::CCTimingFunction() | |
16 { | |
17 } | |
18 | |
19 CCTimingFunction::~CCTimingFunction() | |
20 { | |
21 } | |
22 | |
23 double CCTimingFunction::duration() const | |
24 { | |
25 return 1.0; | |
26 } | |
27 | |
28 scoped_ptr<CCCubicBezierTimingFunction> CCCubicBezierTimingFunction::create(doub
le x1, double y1, double x2, double y2) | |
29 { | |
30 return make_scoped_ptr(new CCCubicBezierTimingFunction(x1, y1, x2, y2)); | |
31 } | |
32 | |
33 CCCubicBezierTimingFunction::CCCubicBezierTimingFunction(double x1, double y1, d
ouble x2, double y2) | |
34 : m_curve(x1, y1, x2, y2) | |
35 { | |
36 } | |
37 | |
38 CCCubicBezierTimingFunction::~CCCubicBezierTimingFunction() | |
39 { | |
40 } | |
41 | |
42 float CCCubicBezierTimingFunction::getValue(double x) const | |
43 { | |
44 UnitBezier temp(m_curve); | |
45 return static_cast<float>(temp.solve(x, epsilon)); | |
46 } | |
47 | |
48 scoped_ptr<CCAnimationCurve> CCCubicBezierTimingFunction::clone() const | |
49 { | |
50 return make_scoped_ptr(new CCCubicBezierTimingFunction(*this)).PassAs<CCAnim
ationCurve>(); | |
51 } | |
52 | |
53 // These numbers come from http://www.w3.org/TR/css3-transitions/#transition-tim
ing-function_tag. | |
54 scoped_ptr<CCTimingFunction> CCEaseTimingFunction::create() | |
55 { | |
56 return CCCubicBezierTimingFunction::create(0.25, 0.1, 0.25, 1).PassAs<CCTimi
ngFunction>(); | |
57 } | |
58 | |
59 scoped_ptr<CCTimingFunction> CCEaseInTimingFunction::create() | |
60 { | |
61 return CCCubicBezierTimingFunction::create(0.42, 0, 1.0, 1).PassAs<CCTimingF
unction>(); | |
62 } | |
63 | |
64 scoped_ptr<CCTimingFunction> CCEaseOutTimingFunction::create() | |
65 { | |
66 return CCCubicBezierTimingFunction::create(0, 0, 0.58, 1).PassAs<CCTimingFun
ction>(); | |
67 } | |
68 | |
69 scoped_ptr<CCTimingFunction> CCEaseInOutTimingFunction::create() | |
70 { | |
71 return CCCubicBezierTimingFunction::create(0.42, 0, 0.58, 1).PassAs<CCTiming
Function>(); | |
72 } | |
73 | |
74 } // namespace cc | |
OLD | NEW |