aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics/solver/velocity_constraint.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/dynamics/solver/velocity_constraint.rs')
-rw-r--r--src/dynamics/solver/velocity_constraint.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/dynamics/solver/velocity_constraint.rs b/src/dynamics/solver/velocity_constraint.rs
index e15f2d8..90c574c 100644
--- a/src/dynamics/solver/velocity_constraint.rs
+++ b/src/dynamics/solver/velocity_constraint.rs
@@ -385,7 +385,13 @@ where
let relative_linvel = linvel1 - linvel2;
let mut tangent_relative_linvel =
relative_linvel - force_dir1 * (force_dir1.dot(&relative_linvel));
- let tangent_linvel_norm = tangent_relative_linvel.normalize_mut();
+
+ let tangent_linvel_norm = {
+ let _disable_fe_except =
+ crate::utils::DisableFloatingPointExceptionsFlags::disable_floating_point_exceptions();
+ tangent_relative_linvel.normalize_mut()
+ };
+
let threshold: N::Element = na::convert(1.0e-4);
let use_fallback = tangent_linvel_norm.simd_lt(N::splat(threshold));
let tangent_fallback = force_dir1.orthonormal_vector();