diff options
| author | Terence <terence@taraz> | 2021-06-01 20:41:38 -0400 |
|---|---|---|
| committer | Terence <terence@taraz> | 2021-06-01 20:41:38 -0400 |
| commit | 94993901cdb75fad7b68080eaa0e9b546810a107 (patch) | |
| tree | 793bbf995760e52943d6aca26205c37876380780 /src/dynamics/solver/velocity_constraint.rs | |
| parent | 3bac79ecacdeaa18de19127b7a6c82cbfab29d14 (diff) | |
| download | rapier-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.rs | 8 |
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(); |
