diff options
| author | Sébastien Crozet <sebcrozet@dimforge.com> | 2024-05-25 11:05:00 +0200 |
|---|---|---|
| committer | Sébastien Crozet <sebastien@crozet.re> | 2024-05-25 12:00:15 +0200 |
| commit | fdd935dbf13d02b3b08a139baca8a96aa5a3247e (patch) | |
| tree | b7c3c9050578a8f952474a54defd7c004330ecb7 /src/dynamics/solver/contact_constraint | |
| parent | 62379de9ecc81fb42b7c2a0d2b8e3e1b02d63f38 (diff) | |
| download | rapier-fdd935dbf13d02b3b08a139baca8a96aa5a3247e.tar.gz rapier-fdd935dbf13d02b3b08a139baca8a96aa5a3247e.tar.bz2 rapier-fdd935dbf13d02b3b08a139baca8a96aa5a3247e.zip | |
feat: make the constraints regularization coefficients configurable with angular frequency instead of explicit ERP
Diffstat (limited to 'src/dynamics/solver/contact_constraint')
4 files changed, 8 insertions, 4 deletions
diff --git a/src/dynamics/solver/contact_constraint/one_body_constraint.rs b/src/dynamics/solver/contact_constraint/one_body_constraint.rs index 1243d11..cf9fe67 100644 --- a/src/dynamics/solver/contact_constraint/one_body_constraint.rs +++ b/src/dynamics/solver/contact_constraint/one_body_constraint.rs @@ -333,7 +333,8 @@ impl OneBodyConstraintBuilder { } } - constraint.cfm_factor = if is_fast_contact { 1.0 } else { cfm_factor }; + constraint.cfm_factor = cfm_factor; + // constraint.cfm_factor = if is_fast_contact { 1.0 } else { cfm_factor }; } } diff --git a/src/dynamics/solver/contact_constraint/one_body_constraint_simd.rs b/src/dynamics/solver/contact_constraint/one_body_constraint_simd.rs index 5710bc4..131702c 100644 --- a/src/dynamics/solver/contact_constraint/one_body_constraint_simd.rs +++ b/src/dynamics/solver/contact_constraint/one_body_constraint_simd.rs @@ -330,7 +330,8 @@ impl SimdOneBodyConstraintBuilder { } } - constraint.cfm_factor = SimdReal::splat(1.0).select(is_fast_contact, cfm_factor); + constraint.cfm_factor = cfm_factor; + // constraint.cfm_factor = SimdReal::splat(1.0).select(is_fast_contact, cfm_factor); } } diff --git a/src/dynamics/solver/contact_constraint/two_body_constraint.rs b/src/dynamics/solver/contact_constraint/two_body_constraint.rs index 1511d4f..e98305a 100644 --- a/src/dynamics/solver/contact_constraint/two_body_constraint.rs +++ b/src/dynamics/solver/contact_constraint/two_body_constraint.rs @@ -432,7 +432,8 @@ impl TwoBodyConstraintBuilder { } } - constraint.cfm_factor = if is_fast_contact { 1.0 } else { cfm_factor }; + constraint.cfm_factor = cfm_factor; + // constraint.cfm_factor = if is_fast_contact { 1.0 } else { cfm_factor }; } } diff --git a/src/dynamics/solver/contact_constraint/two_body_constraint_simd.rs b/src/dynamics/solver/contact_constraint/two_body_constraint_simd.rs index 4c4ef52..4af0d10 100644 --- a/src/dynamics/solver/contact_constraint/two_body_constraint_simd.rs +++ b/src/dynamics/solver/contact_constraint/two_body_constraint_simd.rs @@ -317,7 +317,8 @@ impl TwoBodyConstraintBuilderSimd { } } - constraint.cfm_factor = SimdReal::splat(1.0).select(is_fast_contact, cfm_factor); + constraint.cfm_factor = cfm_factor; + // constraint.cfm_factor = SimdReal::splat(1.0).select(is_fast_contact, cfm_factor); } } |
