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"
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
) {
34 base::AutoLock
scoped_lock(lock_
);
40 return TouchFlingGestureCurve::Create(velocity
, p0
, p1
, p2
,
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