call method

  1. @override
double call(
  1. double value
)
override

Maps a domain value to a range value.

Implementation

@override
double call(double value) {
  if (value <= 0) return _range[0];

  final d0 = _domain[0];
  final d1 = _domain[1];
  final r0 = _range[0];
  final r1 = _range[1];

  final ld0 = _log(d0);
  final ld1 = _log(d1);
  final lv = _log(value);

  double t = normalize(lv, ld0, ld1);

  if (_clamp) {
    t = t.clamp(0.0, 1.0);
  }

  return interpolateNumber(r0, r1)(t).toDouble();
}