Revert velocity damping.
Bug: 4364920 Velocity damping proved to be a bad idea because it would cause a significant ramp in velocity at the beginning of a gesture, instead of the desired smooth behavior. Oh well. Change-Id: Ie631946f47ef2492bd71fbed1ab44bbb39a875a8
This commit is contained in:
parent
2768505342
commit
7ca7ba2064
@ -608,11 +608,6 @@ private:
|
|||||||
// Oldest sample to consider when calculating the velocity.
|
// Oldest sample to consider when calculating the velocity.
|
||||||
static const nsecs_t MAX_AGE = 200 * 1000000; // 200 ms
|
static const nsecs_t MAX_AGE = 200 * 1000000; // 200 ms
|
||||||
|
|
||||||
// When the total duration of the window of samples being averaged is less
|
|
||||||
// than the window size, the resulting velocity is scaled to reduce the impact
|
|
||||||
// of overestimation in short traces.
|
|
||||||
static const nsecs_t MIN_WINDOW = 100 * 1000000; // 100 ms
|
|
||||||
|
|
||||||
// The minimum duration between samples when estimating velocity.
|
// The minimum duration between samples when estimating velocity.
|
||||||
static const nsecs_t MIN_DURATION = 10 * 1000000; // 10 ms
|
static const nsecs_t MIN_DURATION = 10 * 1000000; // 10 ms
|
||||||
|
|
||||||
|
@ -677,7 +677,6 @@ bool MotionEvent::isTouchEvent(int32_t source, int32_t action) {
|
|||||||
|
|
||||||
const uint32_t VelocityTracker::HISTORY_SIZE;
|
const uint32_t VelocityTracker::HISTORY_SIZE;
|
||||||
const nsecs_t VelocityTracker::MAX_AGE;
|
const nsecs_t VelocityTracker::MAX_AGE;
|
||||||
const nsecs_t VelocityTracker::MIN_WINDOW;
|
|
||||||
const nsecs_t VelocityTracker::MIN_DURATION;
|
const nsecs_t VelocityTracker::MIN_DURATION;
|
||||||
|
|
||||||
VelocityTracker::VelocityTracker() {
|
VelocityTracker::VelocityTracker() {
|
||||||
@ -868,14 +867,6 @@ bool VelocityTracker::getVelocity(uint32_t id, float* outVx, float* outVy) const
|
|||||||
|
|
||||||
// Make sure we used at least one sample.
|
// Make sure we used at least one sample.
|
||||||
if (samplesUsed != 0) {
|
if (samplesUsed != 0) {
|
||||||
// Scale the velocity linearly if the window of samples is small.
|
|
||||||
nsecs_t totalDuration = newestMovement.eventTime - oldestMovement.eventTime;
|
|
||||||
if (totalDuration < MIN_WINDOW) {
|
|
||||||
float scale = float(totalDuration) / float(MIN_WINDOW);
|
|
||||||
accumVx *= scale;
|
|
||||||
accumVy *= scale;
|
|
||||||
}
|
|
||||||
|
|
||||||
*outVx = accumVx;
|
*outVx = accumVx;
|
||||||
*outVy = accumVy;
|
*outVy = accumVy;
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
Reference in New Issue
Block a user