ticks method
Returns tick values for the scale.
Implementation
@override
List<double> ticks([int count = 10]) {
final d = _domain;
var u = d.first;
var v = d.last;
final r = v < u;
if (r) {
final temp = u;
u = v;
v = temp;
}
var i = _log(u).floor();
final j = _log(v).ceil();
final ticks = <double>[];
if (_base % 1 == 0) {
// Integer base
final k = _base.toInt();
if (j - i < count) {
for (; i <= j; ++i) {
for (int p = 1; p < k; ++p) {
final t = i < 0 ? p / _pow(-i.toDouble()) : p * _pow(i.toDouble());
if (t < u) continue;
if (t > v) break;
ticks.add(t);
}
}
} else {
for (; i <= j; ++i) {
ticks.add(_pow(i.toDouble()));
}
}
} else {
// Non-integer base
for (; i <= j; ++i) {
ticks.add(_pow(i.toDouble()));
}
}
return r ? ticks.reversed.toList() : ticks;
}