1 // Copyright (c) 2013 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 "webkit/child/fling_curve_configuration.h"
7 #include "base/logging.h"
8 #include "third_party/WebKit/public/platform/WebGestureCurve.h"
9 #include "webkit/child/touch_fling_gesture_curve.h"
11 namespace webkit_glue
{
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
, cumulativeScroll
);
43 blink::WebGestureCurve
* FlingCurveConfiguration::CreateForTouchPad(
44 const blink::WebFloatPoint
& velocity
,
45 const blink::WebSize
& cumulativeScroll
) {
46 return CreateCore(touchpad_coefs_
, velocity
, cumulativeScroll
);
49 blink::WebGestureCurve
* FlingCurveConfiguration::CreateForTouchScreen(
50 const blink::WebFloatPoint
& velocity
,
51 const blink::WebSize
& cumulativeScroll
) {
52 return CreateCore(touchscreen_coefs_
, velocity
, cumulativeScroll
);
55 } // namespace webkit_glue