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

Side by Side Diff: cc/animation_curve.h

Issue 11365025: Make cc a component (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix win?? Created 8 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 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 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 CCAnimationCurve_h 5 #ifndef CCAnimationCurve_h
6 #define CCAnimationCurve_h 6 #define CCAnimationCurve_h
7 7
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "cc/cc_export.h"
9 #include <public/WebTransformationMatrix.h> 10 #include <public/WebTransformationMatrix.h>
10 11
11 namespace cc { 12 namespace cc {
12 13
13 class FloatAnimationCurve; 14 class FloatAnimationCurve;
14 class TransformAnimationCurve; 15 class TransformAnimationCurve;
15 class IntSize; 16 class IntSize;
16 class TransformOperations; 17 class TransformOperations;
17 18
18 // An animation curve is a function that returns a value given a time. 19 // An animation curve is a function that returns a value given a time.
19 // There are currently only two types of curve, float and transform. 20 // There are currently only two types of curve, float and transform.
20 class AnimationCurve { 21 class CC_EXPORT AnimationCurve {
21 public: 22 public:
22 enum Type { Float, Transform }; 23 enum Type { Float, Transform };
23 24
24 virtual ~AnimationCurve() { } 25 virtual ~AnimationCurve() { }
25 26
26 virtual double duration() const = 0; 27 virtual double duration() const = 0;
27 virtual Type type() const = 0; 28 virtual Type type() const = 0;
28 virtual scoped_ptr<AnimationCurve> clone() const = 0; 29 virtual scoped_ptr<AnimationCurve> clone() const = 0;
29 30
30 const FloatAnimationCurve* toFloatAnimationCurve() const; 31 const FloatAnimationCurve* toFloatAnimationCurve() const;
31 const TransformAnimationCurve* toTransformAnimationCurve() const; 32 const TransformAnimationCurve* toTransformAnimationCurve() const;
32 }; 33 };
33 34
34 class FloatAnimationCurve : public AnimationCurve { 35 class CC_EXPORT FloatAnimationCurve : public AnimationCurve {
35 public: 36 public:
36 virtual ~FloatAnimationCurve() { } 37 virtual ~FloatAnimationCurve() { }
37 38
38 virtual float getValue(double t) const = 0; 39 virtual float getValue(double t) const = 0;
39 40
40 // Partial Animation implementation. 41 // Partial Animation implementation.
41 virtual Type type() const OVERRIDE; 42 virtual Type type() const OVERRIDE;
42 }; 43 };
43 44
44 class TransformAnimationCurve : public AnimationCurve { 45 class CC_EXPORT TransformAnimationCurve : public AnimationCurve {
45 public: 46 public:
46 virtual ~TransformAnimationCurve() { } 47 virtual ~TransformAnimationCurve() { }
47 48
48 virtual WebKit::WebTransformationMatrix getValue(double t) const = 0; 49 virtual WebKit::WebTransformationMatrix getValue(double t) const = 0;
49 50
50 // Partial Animation implementation. 51 // Partial Animation implementation.
51 virtual Type type() const OVERRIDE; 52 virtual Type type() const OVERRIDE;
52 }; 53 };
53 54
54 } // namespace cc 55 } // namespace cc
55 56
56 #endif // CCAnimation_h 57 #endif // CCAnimation_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698