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 #ifndef WEBKIT_RENDERER_COMPOSITOR_BINDINGS_WEB_FLOAT_ANIMATION_CURVE_IMPL_H_ 6 #define WEBKIT_RENDERER_COMPOSITOR_BINDINGS_WEB_FLOAT_ANIMATION_CURVE_IMPL_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 #include "third_party/WebKit/public/platform/WebFloatAnimationCurve.h" 10 #include "webkit/renderer/compositor_bindings/webkit_compositor_bindings_export.h" 11 12 namespace cc { 13 class AnimationCurve; 14 class KeyframedFloatAnimationCurve; 15 } 16 17 namespace WebKit { struct WebFloatKeyframe; } 18 19 namespace webkit { 20 21 class WebFloatAnimationCurveImpl : public WebKit::WebFloatAnimationCurve { 22 public: 23 WEBKIT_COMPOSITOR_BINDINGS_EXPORT WebFloatAnimationCurveImpl(); 24 virtual ~WebFloatAnimationCurveImpl(); 25 26 // WebAnimationCurve implementation. 27 virtual AnimationCurveType type() const; 28 29 // WebFloatAnimationCurve implementation. 30 virtual void add(const WebKit::WebFloatKeyframe& keyframe); 31 virtual void add(const WebKit::WebFloatKeyframe& keyframe, 32 TimingFunctionType type); 33 virtual void add(const WebKit::WebFloatKeyframe& keyframe, 34 double x1, 35 double y1, 36 double x2, 37 double y2); 38 39 virtual float getValue(double time) const; 40 41 scoped_ptr<cc::AnimationCurve> CloneToAnimationCurve() const; 42 43 private: 44 scoped_ptr<cc::KeyframedFloatAnimationCurve> curve_; 45 46 DISALLOW_COPY_AND_ASSIGN(WebFloatAnimationCurveImpl); 47 }; 48 49 } // namespace webkit 50 51 #endif // WEBKIT_RENDERER_COMPOSITOR_BINDINGS_WEB_FLOAT_ANIMATION_CURVE_IMPL_H_ 52