export function getLinearTicks()

in packages/charts/src/chart_types/xy_chart/utils/get_linear_ticks.ts [34:72]


export function getLinearTicks(start: number, stop: number, count: number, base: number = 2): number[] {
  let reverse,
    i = -1,
    n,
    ticks,
    step;

  stop = +stop;
  start = +start;
  count = +count;
  if (start === stop && count > 0) return [start];
  if ((reverse = stop < start)) {
    n = start;
    start = stop;
    stop = n;
  }
  if ((step = tickIncrement(start, stop, count, base)) === 0 || !isFinite(step)) return [];

  if (step > 0) {
    let r0 = Math.round(start / step),
      r1 = Math.round(stop / step);
    if (r0 * step < start) ++r0;
    if (r1 * step > stop) --r1;
    ticks = new Array((n = r1 - r0 + 1));
    while (++i < n) ticks[i] = (r0 + i) * step;
  } else {
    step = -step;
    let r0 = Math.round(start * step),
      r1 = Math.round(stop * step);
    if (r0 / step < start) ++r0;
    if (r1 / step > stop) --r1;
    ticks = new Array((n = r1 - r0 + 1));
    while (++i < n) ticks[i] = (r0 + i) / step;
  }

  if (reverse) ticks.reverse();

  return ticks;
}