def adjustImpulse(self, impulse, reason): impulseSensitivity = self['impulseSensitivities'].get(reason, 0.0) noiseImpulseSensitivity = self['noiseSensitivities'].get(reason, 0.0) resultImpulse = impulse * impulseSensitivity impulseMinMax = self['impulseLimits'].get(reason, None) if impulseMinMax is not None: resultImpulse = mathUtils.clampVectorLength(impulseMinMax[0], impulseMinMax[1], resultImpulse) noiseMagnitude = impulse.length * noiseImpulseSensitivity noiseMinMax = self['noiseLimits'].get(reason, None) if noiseMinMax is not None: noiseMagnitude = mathUtils.clamp(noiseMinMax[0], noiseMinMax[1], noiseMagnitude) return (resultImpulse, noiseMagnitude)