Chromium Code Reviews| Index: ui/events/gesture_detection/velocity_tracker.cc |
| diff --git a/ui/events/gesture_detection/velocity_tracker.cc b/ui/events/gesture_detection/velocity_tracker.cc |
| index 639e5ef098bd7671e6d4fbb7af9c73601914ea83..40a30c53e6de1dd358f6d8e3771bd6741a2f8518 100644 |
| --- a/ui/events/gesture_detection/velocity_tracker.cc |
| +++ b/ui/events/gesture_detection/velocity_tracker.cc |
| @@ -34,6 +34,12 @@ namespace { |
| COMPILE_ASSERT(MotionEvent::MAX_POINTER_ID < 32, max_pointer_id_too_large); |
| +// Threshold for determining that a pointer has stopped moving. |
| +// Some input devices do not send ACTION_MOVE events in the case where a pointer |
| +// hasstopped. We need to detect this case so that we can accurately predict |
|
tdresser
2014/04/14 18:22:21
Might as well fix hasstopped while you're here.
jdduke (slow)
2014/04/14 18:40:38
Done.
|
| +// the velocity after the pointer starts moving again. |
| +const int kAssumePointerStoppedTimeMs = 40; |
| + |
| struct Position { |
| float x, y; |
| }; |
| @@ -66,13 +72,7 @@ struct Estimator { |
| } |
| }; |
| -// Threshold for determining that a pointer has stopped moving. |
| -// Some input devices do not send ACTION_MOVE events in the case where a pointer |
| -// hasstopped. We need to detect this case so that we can accurately predict |
| -// the velocity after the pointer starts moving again. |
| -const TimeDelta ASSUME_POINTER_STOPPED_TIME = TimeDelta::FromMilliseconds(40); |
| - |
| -static float VectorDot(const float* a, const float* b, uint32_t m) { |
| +float VectorDot(const float* a, const float* b, uint32_t m) { |
| float r = 0; |
| while (m--) { |
| r += *(a++) * *(b++); |
| @@ -80,7 +80,7 @@ static float VectorDot(const float* a, const float* b, uint32_t m) { |
| return r; |
| } |
| -static float VectorNorm(const float* a, uint32_t m) { |
| +float VectorNorm(const float* a, uint32_t m) { |
| float r = 0; |
| while (m--) { |
| float t = *(a++); |
| @@ -107,9 +107,6 @@ class LeastSquaresVelocityTrackerStrategy : public VelocityTrackerStrategy { |
| WEIGHTING_RECENT, |
| }; |
| - // Number of samples to keep. |
| - enum { HISTORY_SIZE = 20 }; |
| - |
| // Degree must be no greater than Estimator::MAX_DEGREE. |
| LeastSquaresVelocityTrackerStrategy(uint32_t degree, |
| Weighting weighting = WEIGHTING_NONE); |
| @@ -124,10 +121,13 @@ class LeastSquaresVelocityTrackerStrategy : public VelocityTrackerStrategy { |
| Estimator* out_estimator) const OVERRIDE; |
| private: |
| + // Number of samples to keep. |
| + enum { HISTORY_SIZE = 20 }; |
| + |
| // Sample horizon. |
| // We don't use too much history by default since we want to react to quick |
| // changes in direction. |
| - static const TimeDelta HORIZON; |
| + enum { HORIZON_MS = 100 }; |
| struct Movement { |
| TimeTicks event_time; |
| @@ -255,7 +255,8 @@ void VelocityTracker::AddMovement(const TimeTicks& event_time, |
| id_bits.clear_last_marked_bit(); |
| if ((current_pointer_id_bits_.value & id_bits.value) && |
| - event_time >= (last_event_time_ + ASSUME_POINTER_STOPPED_TIME)) { |
| + event_time >= (last_event_time_ + base::TimeDelta::FromMilliseconds( |
| + kAssumePointerStoppedTimeMs))) { |
|
tdresser
2014/04/14 18:22:21
Is this indentation correct?
jdduke (slow)
2014/04/14 18:40:38
According to "git cl format", yes =/
|
| // We have not received any movements for too long. Assume that all |
| // pointers |
| // have stopped. |
| @@ -377,9 +378,6 @@ bool VelocityTracker::GetEstimator(uint32_t id, |
| // --- LeastSquaresVelocityTrackerStrategy --- |
| -const TimeDelta LeastSquaresVelocityTrackerStrategy::HORIZON = |
| - TimeDelta::FromMilliseconds(100); |
| - |
| LeastSquaresVelocityTrackerStrategy::LeastSquaresVelocityTrackerStrategy( |
| uint32_t degree, |
| Weighting weighting) |
| @@ -568,6 +566,7 @@ bool LeastSquaresVelocityTrackerStrategy::GetEstimator( |
| float time[HISTORY_SIZE]; |
| uint32_t m = 0; |
| uint32_t index = index_; |
| + const base::TimeDelta horizon = base::TimeDelta::FromMilliseconds(HORIZON_MS); |
| const Movement& newest_movement = movements_[index_]; |
| do { |
| const Movement& movement = movements_[index]; |
| @@ -575,7 +574,7 @@ bool LeastSquaresVelocityTrackerStrategy::GetEstimator( |
| break; |
| TimeDelta age = newest_movement.event_time - movement.event_time; |
| - if (age > HORIZON) |
| + if (age > horizon) |
| break; |
| const Position& position = movement.GetPosition(id); |