Modify Simulate::InjectNoise to set target of exponential decay to value from key_ctrl if a valid key is provided as input.
PiperOrigin-RevId: 813819040 Change-Id: I79508039b17fb3484b71ae0d19614c32adacfa10
This commit is contained in:
committed by
Copybara-Service
parent
edbdb5195c
commit
401bf431b8
@@ -2917,7 +2917,7 @@ void Simulate::AddToHistory() {
|
||||
}
|
||||
|
||||
// inject Brownian noise
|
||||
void Simulate::InjectNoise() {
|
||||
void Simulate::InjectNoise(int key) {
|
||||
// no noise, return
|
||||
if (ctrl_noise_std <= 0) {
|
||||
return;
|
||||
@@ -2936,6 +2936,11 @@ void Simulate::InjectNoise() {
|
||||
halfrange = 0.5 * (top - bottom); // scales noise
|
||||
}
|
||||
|
||||
// overwrite midpoint with keyframe, if given
|
||||
if (key >= 0) {
|
||||
midpoint = m_->key_ctrl[key*m_->nu+i];
|
||||
}
|
||||
|
||||
// exponential convergence to midpoint at ctrl_noise_rate
|
||||
d_->ctrl[i] = rate * d_->ctrl[i] + (1-rate) * midpoint;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user