call method
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();
}