aboutsummaryrefslogtreecommitdiff
path: root/src/dynamics/solver/velocity_constraint.rs
diff options
context:
space:
mode:
authorTerence <terence@taraz>2021-06-01 20:41:38 -0400
committerTerence <terence@taraz>2021-06-01 20:41:38 -0400
commit94993901cdb75fad7b68080eaa0e9b546810a107 (patch)
tree793bbf995760e52943d6aca26205c37876380780 /src/dynamics/solver/velocity_constraint.rs
parent3bac79ecacdeaa18de19127b7a6c82cbfab29d14 (diff)
downloadrapier-94993901cdb75fad7b68080eaa0e9b546810a107.tar.gz
rapier-94993901cdb75fad7b68080eaa0e9b546810a107.tar.bz2
rapier-94993901cdb75fad7b68080eaa0e9b546810a107.zip
wip
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();