15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
25d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// found in the LICENSE file.
45d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "cc/blink/web_scroll_offset_animation_curve_impl.h"
65d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
75d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "cc/animation/scroll_offset_animation_curve.h"
85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "cc/animation/timing_function.h"
903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "cc/blink/web_animation_curve_common.h"
105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)using blink::WebFloatPoint;
125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)namespace cc_blink {
145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)WebScrollOffsetAnimationCurveImpl::WebScrollOffsetAnimationCurveImpl(
165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    WebFloatPoint target_value,
175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    TimingFunctionType timing_function)
185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    : curve_(cc::ScrollOffsetAnimationCurve::Create(
195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)          gfx::Vector2dF(target_value.x, target_value.y),
20f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)          CreateTimingFunction(timing_function))) {
21f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
23f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)WebScrollOffsetAnimationCurveImpl::~WebScrollOffsetAnimationCurveImpl() {
24f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)blink::WebCompositorAnimationCurve::AnimationCurveType
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)WebScrollOffsetAnimationCurveImpl::type() const {
285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  return WebCompositorAnimationCurve::AnimationCurveTypeScrollOffset;
295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)void WebScrollOffsetAnimationCurveImpl::setInitialValue(
325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    WebFloatPoint initial_value) {
335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  curve_->SetInitialValue(gfx::Vector2dF(initial_value.x, initial_value.y));
345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)WebFloatPoint WebScrollOffsetAnimationCurveImpl::getValue(double time) const {
375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Vector2dF value = curve_->GetValue(time);
385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return WebFloatPoint(value.x(), value.y());
395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)double WebScrollOffsetAnimationCurveImpl::duration() const {
425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return curve_->Duration();
435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)scoped_ptr<cc::AnimationCurve>
465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)WebScrollOffsetAnimationCurveImpl::CloneToAnimationCurve() const {
475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return curve_->Clone();
485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
5003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)}  // namespace cc_blink
51