2017-10-11 19:56:17 +03:00
|
|
|
const Velocity = require('velocity-vector');
|
2015-11-27 18:37:40 +03:00
|
|
|
|
|
|
|
// courtesy of https://github.com/julianshapiro/velocity/issues/283
|
|
|
|
// We only use easeOutBounce (easeInBounce is just sort of nonsensical)
|
|
|
|
function bounce( p ) {
|
2017-10-11 19:56:17 +03:00
|
|
|
let pow2,
|
2015-11-27 18:37:40 +03:00
|
|
|
bounce = 4;
|
|
|
|
|
2017-01-20 17:22:27 +03:00
|
|
|
while ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {
|
|
|
|
// just sets pow2
|
|
|
|
}
|
2015-11-27 18:37:40 +03:00
|
|
|
return 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 );
|
|
|
|
}
|
|
|
|
|
|
|
|
Velocity.Easings.easeOutBounce = function(p) {
|
|
|
|
return 1 - bounce(1 - p);
|
2017-01-20 17:22:27 +03:00
|
|
|
};
|