1 | import { bound } from './bound';
|
2 | export function rubberband(distance, dimension, constant) {
|
3 | return distance * dimension * constant / (dimension + constant * distance);
|
4 | }
|
5 | export function rubberbandIfOutOfBounds(position, min, max, dimension, constant = 0.15) {
|
6 | if (constant === 0) return bound(position, min, max);
|
7 | if (position < min) return -rubberband(min - position, dimension, constant) + min;
|
8 | if (position > max) return +rubberband(position - max, dimension, constant) + max;
|
9 | return position;
|
10 | } |
\ | No newline at end of file |