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.
5 #ifndef CCTimingFunction_h
6 #define CCTimingFunction_h
8 #include "CCAnimationCurve.h"
9 #include "UnitBezier.h"
10 #include <wtf/PassOwnPtr.h>
14 // See http://www.w3.org/TR/css3-transitions/.
15 class CCTimingFunction
: public CCFloatAnimationCurve
{
17 virtual ~CCTimingFunction();
19 // Partial implementation of CCFloatAnimationCurve.
20 virtual double duration() const OVERRIDE
;
26 class CCCubicBezierTimingFunction
: public CCTimingFunction
{
28 static PassOwnPtr
<CCCubicBezierTimingFunction
> create(double x1
, double y1
, double x2
, double y2
);
29 virtual ~CCCubicBezierTimingFunction();
31 // Partial implementation of CCFloatAnimationCurve.
32 virtual float getValue(double time
) const OVERRIDE
;
33 virtual PassOwnPtr
<CCAnimationCurve
> clone() const OVERRIDE
;
36 CCCubicBezierTimingFunction(double x1
, double y1
, double x2
, double y2
);
41 class CCEaseTimingFunction
{
43 static PassOwnPtr
<CCTimingFunction
> create();
46 class CCEaseInTimingFunction
{
48 static PassOwnPtr
<CCTimingFunction
> create();
51 class CCEaseOutTimingFunction
{
53 static PassOwnPtr
<CCTimingFunction
> create();
56 class CCEaseInOutTimingFunction
{
58 static PassOwnPtr
<CCTimingFunction
> create();
61 } // namespace WebCore
63 #endif // CCTimingFunction_h