* Default parameters for pointer acceleration profiles.
*/
-#define DEFAULT_CONSTANT_ACCELERATION 10.0 /* unitless factor */
-#define DEFAULT_THRESHOLD 4.0 /* in units/ms */
+#define DEFAULT_THRESHOLD 0.4 /* in units/ms */
#define DEFAULT_ACCELERATION 2.0 /* unitless factor */
/*
double threshold = DEFAULT_THRESHOLD; /* units/ms */
double accel = DEFAULT_ACCELERATION; /* unitless factor */
double smooth_accel_coefficient; /* unitless factor */
+ double factor; /* unitless factor */
- if (threshold < 1.0)
- threshold = 1.0;
+ if (threshold < 0.1)
+ threshold = 0.1;
if (accel < 1.0)
accel = 1.0;
- velocity *= DEFAULT_CONSTANT_ACCELERATION;
if (velocity < (threshold / 2.0))
return calc_penumbral_gradient(0.5 + velocity / threshold) * 2.0 - 1.0;
if (velocity <= threshold)
return 1.0;
- velocity /= threshold;
- if (velocity >= accel)
+ factor = velocity/threshold;
+ if (factor >= accel)
return accel;
- /* Velocity is between 1.0 and accel, scale this to 0.0 - 1.0 */
- velocity = (velocity - 1.0) / (accel - 1.0);
- smooth_accel_coefficient = calc_penumbral_gradient(velocity);
+ /* factor is between 1.0 and accel, scale this to 0.0 - 1.0 */
+ factor = (factor - 1.0) / (accel - 1.0);
+ smooth_accel_coefficient = calc_penumbral_gradient(factor);
return 1.0 + (smooth_accel_coefficient * (accel - 1.0));
}