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