ZoomUtil.js 582 B

123456789101112131415161718192021222324
  1. import {
  2. log10
  3. } from '../../util/Math';
  4. /**
  5. * Get step size for given range and number of steps.
  6. *
  7. * @param {Object} range - Range.
  8. * @param {number} range.min - Range minimum.
  9. * @param {number} range.max - Range maximum.
  10. */
  11. export function getStepSize(range, steps) {
  12. var minLinearRange = log10(range.min),
  13. maxLinearRange = log10(range.max);
  14. var absoluteLinearRange = Math.abs(minLinearRange) + Math.abs(maxLinearRange);
  15. return absoluteLinearRange / steps;
  16. }
  17. export function cap(range, scale) {
  18. return Math.max(range.min, Math.min(range.max, scale));
  19. }