aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCrozet Sébastien <developer@crozet.re>2021-02-03 18:19:47 +0100
committerCrozet Sébastien <developer@crozet.re>2021-02-03 18:19:47 +0100
commit822f0d81bf2fbcb3a7f0733ce9bf24569a591bf7 (patch)
treeb78400ef1501d40ed80d61b5b784efb655d930f9
parentcf77d17d9e6c425b1899c03db8e07f265259791b (diff)
downloadrapier-822f0d81bf2fbcb3a7f0733ce9bf24569a591bf7.tar.gz
rapier-822f0d81bf2fbcb3a7f0733ce9bf24569a591bf7.tar.bz2
rapier-822f0d81bf2fbcb3a7f0733ce9bf24569a591bf7.zip
Minor cleanup.
-rw-r--r--src/dynamics/solver/constraint_regularization.rs22
1 files changed, 4 insertions, 18 deletions
diff --git a/src/dynamics/solver/constraint_regularization.rs b/src/dynamics/solver/constraint_regularization.rs
index 4c67145..086e4a0 100644
--- a/src/dynamics/solver/constraint_regularization.rs
+++ b/src/dynamics/solver/constraint_regularization.rs
@@ -1,32 +1,18 @@
use crate::math::Real;
use na::RealField;
-pub struct SpringRegularization {
- pub angular_frequency: Real,
- pub damping: Real,
-}
+pub struct SpringRegularization {}
impl Default for SpringRegularization {
fn default() -> Self {
- SpringRegularization {
- angular_frequency: 30.0 * Real::two_pi(),
- damping: 1.0,
- }
+ SpringRegularization {}
}
}
impl SpringRegularization {
pub fn erp_cfm_impulse_scale(&self, dt: Real) -> (Real, Real, Real) {
- let freq_dt = self.angular_frequency * dt;
- let erp = self.angular_frequency / (freq_dt + self.damping * 2.0);
- let extra = 1.0 / (freq_dt * (freq_dt + self.damping * 2.0));
- let cfm = 1.0 / (1.0 + extra);
- let impulse_scale = extra * cfm;
-
- let kd = 1.0;
- let kp = 10.0;
- let erp = 0.2 / dt; // kp / (dt * kp + kd);
- let cfm = 1.0e-5 / dt; // 1.0 / (dt * kp + kd);
+ let erp = 0.2 / dt;
+ let cfm = 1.0e-5 / dt;
let impulse_scale = 0.9;
(erp, cfm, impulse_scale)