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