UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

94 lines (93 loc) 2.19 kB
"use strict"; const easeI = function(power) { return function(t) { return Math.pow(t, power); }; }; const easeO = function(power) { return function(t) { return 1 - Math.abs(Math.pow(t - 1, power)); }; }; const easeIO = function(power) { return function(t) { return t < 0.5 ? easeI(power)(t * 2) / 2 : easeO(power)(t * 2 - 1) / 2 + 0.5; }; }; export const EASING_NAMES = [ "easeI2", "easeO2", "easeIO2", "easeI3", "easeO3", "easeIO3", "easeI4", "easeO4", "easeIO4", "easeSinI", "easeSinO", "easeSinIO", "easeElasticI", "easeElasticO", "easeElasticIO" ]; export const easeI2 = easeI(2); export const easeO2 = easeO(2); export const easeIO2 = easeIO(2); export const easeI3 = easeI(3); export const easeO3 = easeO(3); export const easeIO3 = easeIO(3); export const easeI4 = easeI(4); export const easeO4 = easeO(4); export const easeIO4 = easeIO(4); export function easeSinI(t) { return 1 + Math.sin(Math.PI / 2 * t - Math.PI / 2); } export function easeSinO(t) { return Math.sin(Math.PI / 2 * t); } export function easeSinIO(t) { return (1 + Math.sin(Math.PI * t - Math.PI / 2)) / 2; } export function easeElasticI(t) { return t == 0 ? 0 : (0.04 - 0.04 / t) * Math.sin(25 * t) + 1; } export function easeElasticO(t) { return t == 1 ? 1 : 0.04 * t / --t * Math.sin(25 * t); } export function easeElasticIO(t) { return t == 0.5 ? 0 : (t -= 0.5) < 0 ? (0.02 + 0.01 / t) * Math.sin(50 * t) : (0.02 - 0.01 / t) * Math.sin(50 * t) + 1; } export const Easing = { // linear: ease_io(1), // ease_i: function (t: number, power: number) { // return ease_i(power)(t); // }, // ease_o: function (t: number, power: number) { // return ease_o(power)(t); // }, // ease_io: function (t: number, power: number) { // return ease_io(power)(t); // }, easeI2, easeO2, easeIO2, easeI3, easeO3, easeIO3, easeI4, easeO4, easeIO4, // easeInQuart: EaseIn(4), // easeOutQuart: EaseOut(4), // easeInOutQuart: EaseInOut(4), // easeInQuint: EaseIn(5), // easeOutQuint: EaseOut(5), // easeInOutQuint: EaseInOut(5) easeSinI, easeSinO, easeSinIO, easeElasticI, easeElasticO, easeElasticIO };