Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / content / child / fling_curve_configuration.cc
blob8beeb3672c673bf3f0cd7477b220e4f87c93ddbc
1 // Copyright 2014 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.
5 #include "content/child/fling_curve_configuration.h"
7 #include "base/logging.h"
8 #include "content/child/touch_fling_gesture_curve.h"
9 #include "third_party/WebKit/public/platform/WebGestureCurve.h"
11 namespace content {
13 FlingCurveConfiguration::FlingCurveConfiguration() { }
15 FlingCurveConfiguration::~FlingCurveConfiguration() { }
17 void FlingCurveConfiguration::SetCurveParameters(
18 const std::vector<float>& new_touchpad,
19 const std::vector<float>& new_touchscreen) {
20 DCHECK(new_touchpad.size() >= 3);
21 DCHECK(new_touchscreen.size() >= 3);
22 base::AutoLock scoped_lock(lock_);
23 touchpad_coefs_ = new_touchpad;
24 touchscreen_coefs_ = new_touchscreen;
27 blink::WebGestureCurve* FlingCurveConfiguration::CreateCore(
28 const std::vector<float>& coefs,
29 const blink::WebFloatPoint& velocity,
30 const blink::WebSize& cumulativeScroll) {
31 float p0, p1, p2;
34 base::AutoLock scoped_lock(lock_);
35 p0 = coefs[0];
36 p1 = coefs[1];
37 p2 = coefs[2];
40 return TouchFlingGestureCurve::Create(velocity, p0, p1, p2,
41 cumulativeScroll);
44 blink::WebGestureCurve* FlingCurveConfiguration::CreateForTouchPad(
45 const blink::WebFloatPoint& velocity,
46 const blink::WebSize& cumulativeScroll) {
47 return CreateCore(touchpad_coefs_, velocity, cumulativeScroll);
50 blink::WebGestureCurve* FlingCurveConfiguration::CreateForTouchScreen(
51 const blink::WebFloatPoint& velocity,
52 const blink::WebSize& cumulativeScroll) {
53 return CreateCore(touchscreen_coefs_, velocity, cumulativeScroll);
56 } // namespace content