trackers_velocity(struct pointer_trackers *trackers, uint64_t time)
{
const double MAX_VELOCITY_DIFF = v_ms2us(1); /* units/us */
- struct pointer_tracker *tracker;
- double velocity;
double result = 0.0;
double initial_velocity = 0.0;
- double velocity_diff;
- unsigned int offset;
unsigned int dir = trackers_by_offset(trackers, 0)->dir;
/* Find least recent vector within a timelimit, maximum velocity diff
* and direction threshold. */
- for (offset = 1; offset < trackers->ntrackers; offset++) {
- tracker = trackers_by_offset(trackers, offset);
+ for (unsigned int offset = 1; offset < trackers->ntrackers; offset++) {
+ const struct pointer_tracker *tracker = trackers_by_offset(trackers, offset);
/* Bug: time running backwards */
if (tracker->time > time)
break;
}
- velocity = calculate_trackers_velocity(tracker,
- time,
- trackers->smoothener);
+ double velocity = calculate_trackers_velocity(tracker,
+ time,
+ trackers->smoothener);
/* Stop if direction changed */
dir &= tracker->dir;
result = initial_velocity = velocity;
} else {
/* Stop if velocity differs too much from initial */
- velocity_diff = fabs(initial_velocity - velocity);
+ double velocity_diff = fabs(initial_velocity - velocity);
if (velocity_diff > MAX_VELOCITY_DIFF)
break;