mirror of
https://gitlab.freedesktop.org/monado/monado.git
synced 2025-01-04 06:06:17 +00:00
a/math: Fix some truncation warnings.
This commit is contained in:
parent
72995a8298
commit
5f8cb4e227
|
@ -150,15 +150,15 @@ gravity_correction(struct m_imu_3dof *f,
|
||||||
|
|
||||||
if (f->grav.error_angle > min_tilt_error) {
|
if (f->grav.error_angle > min_tilt_error) {
|
||||||
// Correct 180° over 5 seconds, when moving.
|
// Correct 180° over 5 seconds, when moving.
|
||||||
float max_radians = M_PI * dt / 5;
|
float max_radians = (float)M_PI * (float)dt / 5;
|
||||||
// Correct 180° over 60 seconds, when stationary.
|
// Correct 180° over 60 seconds, when stationary.
|
||||||
float min_radians = M_PI * dt / 60;
|
float min_radians = (float)M_PI * (float)dt / 60;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We're treating 0.5 * gyro_length as a unitless scale factor.
|
* We're treating 0.5 * gyro_length as a unitless scale factor.
|
||||||
* Tested in a headset, 0.5 felt nice.
|
* Tested in a headset, 0.5 felt nice.
|
||||||
*/
|
*/
|
||||||
float correction_radians = 0.5 * gyro_length * max_radians;
|
float correction_radians = 0.5f * gyro_length * max_radians;
|
||||||
// Clamp to the range [min_radians, max_radians]
|
// Clamp to the range [min_radians, max_radians]
|
||||||
correction_radians = fmaxf(min_radians, correction_radians);
|
correction_radians = fmaxf(min_radians, correction_radians);
|
||||||
correction_radians = fminf(max_radians, correction_radians);
|
correction_radians = fminf(max_radians, correction_radians);
|
||||||
|
@ -221,7 +221,7 @@ m_imu_3dof_update(struct m_imu_3dof *f,
|
||||||
uint64_t diff = timestamp_ns - f->last.timestamp_ns;
|
uint64_t diff = timestamp_ns - f->last.timestamp_ns;
|
||||||
double dt = (double)diff / DUR_1S_IN_NS;
|
double dt = (double)diff / DUR_1S_IN_NS;
|
||||||
|
|
||||||
f->last.delta_ms = dt * 1000.0;
|
f->last.delta_ms = dt * 1000.0f;
|
||||||
f->last.timestamp_ns = timestamp_ns;
|
f->last.timestamp_ns = timestamp_ns;
|
||||||
|
|
||||||
m_ff_vec3_f32_push(f->word_accel_ff, &world_accel, timestamp_ns);
|
m_ff_vec3_f32_push(f->word_accel_ff, &world_accel, timestamp_ns);
|
||||||
|
@ -240,7 +240,7 @@ m_imu_3dof_update(struct m_imu_3dof *f,
|
||||||
gyro_biased.z / gyro_biased_length,
|
gyro_biased.z / gyro_biased_length,
|
||||||
};
|
};
|
||||||
|
|
||||||
float rot_angle = gyro_biased_length * dt;
|
float rot_angle = gyro_biased_length * (float)dt;
|
||||||
|
|
||||||
struct xrt_quat delta_orient;
|
struct xrt_quat delta_orient;
|
||||||
math_quat_from_angle_vector(rot_angle, &rot_axis, &delta_orient);
|
math_quat_from_angle_vector(rot_angle, &rot_axis, &delta_orient);
|
||||||
|
|
|
@ -131,8 +131,8 @@ math_compute_fovs(double w_total,
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
fov->angle_left = -theta_1;
|
fov->angle_left = (float)-theta_1;
|
||||||
fov->angle_right = theta_2;
|
fov->angle_right = (float)theta_2;
|
||||||
|
|
||||||
double phi_1 = 0;
|
double phi_1 = 0;
|
||||||
double phi_2 = 0;
|
double phi_2 = 0;
|
||||||
|
@ -153,8 +153,8 @@ math_compute_fovs(double w_total,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* phi_1 is "down" so we record this as negative. */
|
/* phi_1 is "down" so we record this as negative. */
|
||||||
fov->angle_down = phi_1 * -1.0;
|
fov->angle_down = (float)(-phi_1);
|
||||||
fov->angle_up = phi_2;
|
fov->angle_up = (float)phi_2;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,7 +55,7 @@ do_orientation(const struct xrt_space_relation *rel,
|
||||||
if (valid_orientation) {
|
if (valid_orientation) {
|
||||||
math_quat_integrate_velocity(&rel->pose.orientation, // Old orientation
|
math_quat_integrate_velocity(&rel->pose.orientation, // Old orientation
|
||||||
&accum, // Angular velocity
|
&accum, // Angular velocity
|
||||||
delta_s, // Delta in seconds
|
(float)delta_s, // Delta in seconds
|
||||||
&out_rel->pose.orientation); // Result
|
&out_rel->pose.orientation); // Result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ do_position(const struct xrt_space_relation *rel,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (valid_position) {
|
if (valid_position) {
|
||||||
out_rel->pose.position = m_vec3_add(rel->pose.position, m_vec3_mul_scalar(accum, delta_s));
|
out_rel->pose.position = m_vec3_add(rel->pose.position, m_vec3_mul_scalar(accum, (float)delta_s));
|
||||||
}
|
}
|
||||||
|
|
||||||
// We use the new linear velocity with the acceleration integrated.
|
// We use the new linear velocity with the acceleration integrated.
|
||||||
|
|
Loading…
Reference in a new issue