exponentialFilter static method

double exponentialFilter(
  1. double newValue,
  2. double previousValue,
  3. double filterFactor,
  4. bool isCircular,
)

Implementation

static double exponentialFilter(double newValue, double previousValue,
    double filterFactor, bool isCircular) {
  double newValueP = newValue;
  if (isCircular) {
    if ((newValueP - previousValue).abs() > 180) {
      if (previousValue < 180 && newValue > 180) {
        newValueP -= 360;
      } else if (previousValue > 180 && newValueP < 180) {
        newValueP += 360;
      }
    }
  }
  final filteredValue =
      (newValueP * filterFactor) + (previousValue * (1.0 - filterFactor));
  return filteredValue;
}