From 36999a28683ade4b8f726df991e20c7d22bc5f81 Mon Sep 17 00:00:00 2001 From: Dmitri Molchanov Date: Tue, 10 Jul 2018 23:59:18 -0700 Subject: [PATCH 1/2] Add Javadoc graphs for each interpolator Update gradle & build tools Remove unused/unnecessary constructors Remove unused dependencies --- EaseAnimation/Demo/build.gradle | 18 +- .../EaseInterpolatorLib/build.gradle | 9 +- .../docs/images/EaseBackInInterpolator.png | Bin 0 -> 10746 bytes .../docs/images/EaseBackInOutInterpolator.png | Bin 0 -> 11400 bytes .../docs/images/EaseBackOutInterpolator.png | Bin 0 -> 10875 bytes .../docs/images/EaseBounceInInterpolator.png | Bin 0 -> 11470 bytes .../images/EaseBounceInOutInterpolator.png | Bin 0 -> 11998 bytes .../docs/images/EaseBounceOutInterpolator.png | Bin 0 -> 11708 bytes .../docs/images/EaseBreathInterpolator.png | Bin 0 -> 11888 bytes .../images/EaseCircularInInterpolator.png | Bin 0 -> 10638 bytes .../images/EaseCircularInOutInterpolator.png | Bin 0 -> 11002 bytes .../images/EaseCircularOutInterpolator.png | Bin 0 -> 10784 bytes .../docs/images/EaseCubicInInterpolator.png | Bin 0 -> 10522 bytes .../images/EaseCubicInOutInterpolator.png | Bin 0 -> 10827 bytes .../docs/images/EaseCubicOutInterpolator.png | Bin 0 -> 10600 bytes .../docs/images/EaseElasticInInterpolator.png | Bin 0 -> 10479 bytes .../images/EaseElasticInOutInterpolator.png | Bin 0 -> 10975 bytes .../images/EaseElasticOutInterpolator.png | Bin 0 -> 10504 bytes .../images/EaseExponentialInInterpolator.png | Bin 0 -> 10093 bytes .../EaseExponentialInOutInterpolator.png | Bin 0 -> 10465 bytes .../images/EaseExponentialOutInterpolator.png | Bin 0 -> 10250 bytes .../docs/images/EaseQuadInInterpolator.png | Bin 0 -> 10539 bytes .../docs/images/EaseQuadInOutInterpolator.png | Bin 0 -> 10948 bytes .../docs/images/EaseQuadOutInterpolator.png | Bin 0 -> 10772 bytes .../docs/images/EaseQuartInInterpolator.png | Bin 0 -> 10262 bytes .../images/EaseQuartInOutInterpolator.png | Bin 0 -> 10466 bytes .../docs/images/EaseQuartOutInterpolator.png | Bin 0 -> 10390 bytes .../docs/images/EaseQuintInInterpolator.png | Bin 0 -> 10055 bytes .../images/EaseQuintInOutInterpolator.png | Bin 0 -> 10358 bytes .../docs/images/EaseQuintOutInterpolator.png | Bin 0 -> 10195 bytes .../docs/images/EaseSineInInterpolator.png | Bin 0 -> 10384 bytes .../docs/images/EaseSineInOutInterpolator.png | Bin 0 -> 10803 bytes .../docs/images/EaseSineOutInterpolator.png | Bin 0 -> 10637 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../com/easeinterpolator/ApplicationTest.java | 13 - .../EaseBackInInterpolator.java | 13 +- .../EaseBackInOutInterpolator.java | 23 +- .../EaseBackOutInterpolator.java | 13 +- .../EaseBounceInInterpolator.java | 28 +-- .../EaseBounceInOutInterpolator.java | 27 +- .../EaseBounceOutInterpolator.java | 26 +- .../EaseBreathInterpolator.java | 19 +- .../EaseCircularInInterpolator.java | 13 +- .../EaseCircularInOutInterpolator.java | 19 +- .../EaseCircularOutInterpolator.java | 13 +- .../EaseCubicInInterpolator.java | 13 +- .../EaseCubicInOutInterpolator.java | 19 +- .../EaseCubicOutInterpolator.java | 13 +- .../EaseElasticInInterpolator.java | 65 +++-- .../EaseElasticInOutInterpolator.java | 71 +++--- .../EaseElasticOutInterpolator.java | 66 +++-- .../EaseExponentialInInterpolator.java | 13 +- .../EaseExponentialInOutInterpolator.java | 32 +-- .../EaseExponentialOutInterpolator.java | 13 +- .../EaseQuadInInterpolator.java | 13 +- .../EaseQuadInOutInterpolator.java | 19 +- .../EaseQuadOutInterpolator.java | 13 +- .../EaseQuartInInterpolator.java | 13 +- .../EaseQuartInOutInterpolator.java | 19 +- .../EaseQuartOutInterpolator.java | 13 +- .../EaseQuintInInterpolator.java | 13 +- .../EaseQuintInOutInterpolator.java | 19 +- .../EaseQuintOutInterpolator.java | 13 +- .../EaseSineInInterpolator.java | 13 +- .../EaseSineInOutInterpolator.java | 13 +- .../EaseSineOutInterpolator.java | 13 +- .../InterpolatorGraphingTest.java | 237 ++++++++++++++++++ EaseAnimation/build.gradle | 4 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- 69 files changed, 504 insertions(+), 454 deletions(-) create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseBackInInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseBackInOutInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseBackOutInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseBounceInInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseBounceInOutInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseBounceOutInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseBreathInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseCircularInInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseCircularInOutInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseCircularOutInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseCubicInInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseCubicInOutInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseCubicOutInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseElasticInInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseElasticInOutInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseElasticOutInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseExponentialInInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseExponentialInOutInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseExponentialOutInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuadInInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuadInOutInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuadOutInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuartInInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuartInOutInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuartOutInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuintInInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuintInOutInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuintOutInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseSineInInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseSineInOutInterpolator.png create mode 100644 EaseAnimation/EaseInterpolatorLib/docs/images/EaseSineOutInterpolator.png delete mode 100644 EaseAnimation/EaseInterpolatorLib/src/androidTest/java/cimi/com/easeinterpolator/ApplicationTest.java create mode 100644 EaseAnimation/EaseInterpolatorLib/src/test/java/cimi/com/easeinterpolator/InterpolatorGraphingTest.java diff --git a/EaseAnimation/Demo/build.gradle b/EaseAnimation/Demo/build.gradle index fd22e1b..166ff96 100644 --- a/EaseAnimation/Demo/build.gradle +++ b/EaseAnimation/Demo/build.gradle @@ -1,13 +1,13 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 22 - buildToolsVersion "23.0.0 rc2" + compileSdkVersion 27 + buildToolsVersion "27.0.3" defaultConfig { applicationId "cimi.com.easedemo" minSdkVersion 15 - targetSdkVersion 22 + targetSdkVersion 27 versionCode 1 versionName "1.0" } @@ -17,17 +17,9 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } - sourceSets { - main { - jniLibs.srcDirs = ['libs'] - } - } } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - // compile fileTree(dir: 'libs', include: ['*.so']) - compile 'com.android.support:appcompat-v7:22.2.0' - compile files('libs/ease-interpolator-1.0.jar') - compile project(':EaseInterpolatorLib') + implementation 'com.android.support:appcompat-v7:27.1.1' + implementation project(':EaseInterpolatorLib') } \ No newline at end of file diff --git a/EaseAnimation/EaseInterpolatorLib/build.gradle b/EaseAnimation/EaseInterpolatorLib/build.gradle index 9402890..0fb6d79 100644 --- a/EaseAnimation/EaseInterpolatorLib/build.gradle +++ b/EaseAnimation/EaseInterpolatorLib/build.gradle @@ -1,12 +1,12 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 22 - buildToolsVersion "23.0.0 rc2" + compileSdkVersion 27 + buildToolsVersion "27.0.3" defaultConfig { minSdkVersion 15 - targetSdkVersion 22 + targetSdkVersion 27 versionCode 1 versionName "1.0" } @@ -19,6 +19,5 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:appcompat-v7:22.2.0' + testImplementation 'junit:junit:4.12' } diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseBackInInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseBackInInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..45b9bc070ae434fabcdc2508498e2dbd0f7d6c7a GIT binary patch literal 10746 zcmb_iWk8f&(_R$>L4hR%L~0QMNeNL>T0k0hX{4n=KpF&5x}>DL8>CA@NkK}G5NSl| z?(Zz+^L+8^{r1=H+50|c&YU^d%v>`*veIHVFm7Q$Adnm4PlV+mkju&t$R%s^%V5OJ z>*o{%Lf0TJETCvVycidtfbS4Jx9zqtR68_M888;G=pDbB%n>)5syzd#lOMX2n2@`{DPrC zAdfx47jK;Z^dWXKB_$$npzuKTU#TF+$vkgToap_n=`JOdMxs3+J9#SttvE-o)W zzpJzJU?HcVxVV@}qiXtPwUFWa_;^0MrPu*uDQRgYTH5C(CVlKu$7U2b6}G?O=H~e| z>a&%W6OFyS@*4!fk>n38DR_B#w`^A&YxxgWULQ!*N@{4t9WiOc)RmQkXOtOkmTq%A zH8nPH;5L#O(7H3W@b&B07-1rpqt|HIZT@UR2i!wj8zmSgOqGoH2-3xuUwYxso z*V{WS6WomvM9z=pw>0}D#=*g1ZN%T--`5vIrJNS#k82th9(2S6MUX*0X2NV9-p*^cXEfV&~hU6FDw{aSd5ojj88Oq=?l8`ap=nV5wv)(Ov_Ze z9oHSDI`ah^)*T-??Xu~&>D*GGb}3r0;J2D=E;Sj{b5+4p@i?NSc-Bag|`MEog7sp*M<-u&cYfBS`+SzG@ZP;S4Kd_Y;x8 zipzWn%Wa`F^1NwBTU%S7E3mTbyp9NZ-?XyHrwfVDx;#};iF!I-ZO82BWjEVN9FpUh zURtUYZ)9w&I(`7%X38h_Q_aoInZ<66yJg5aup=7h}tlwy|qgg8>-hbtxX-iFchF}IOjsw%xN%5Y}5n|uU$m79{wAK7Z98JUP#Q*CX^4W;Z&#bW^zS23cS zrp@76>l(0p9>`-sKUuEAj)K1L-?O^eI5`mr1Wj>~GDB6)(r9IhD>pm)ol;f~j?%h1 z*JsZt`bB%)+X`U559sOXZBSD)b|+|><$HC~)6#r~^o)vfUq6%?4*63S|STmj$=%V(M4Ngop8rjur>~!up8l3B8j6mRuTh;|_Zx%P_(MsFLb{2u z@gyyBQ8~{wLy4FiH?d6V&*;22rUu-coie%zuHj8YH;Ah5a*U%wFMlk|3% z&F!?aqJ20*A>jH!nPKlcYE@Ie6`quo6suYJ$R-=62%@(cn7FXYrTfAX626LR8GXbZ zT$y&)crip7x7x$$3*d2JC0z6|-iq(Aum|k9$7*a5v@peLa)Pn3u_P_$Y+Ze!f`IMm zwoqEJfPCUpLj<0LNX9bdBBvfTPuCM$fPBO2_libw3Hmm&=;kOl$j!?RibjT{4o%M|WCdx-B9i;_C}?ebQ!F zOAt9?Ttl47{^-EL0n((s{?s~z!_iTn;-WqyjJu=qT*7K2;@*6Y6wu!!->t8s>J<0NM%PvnU z(q#b<-upFjKfh^ht(b?o*008|lghZKAh>uB*F*xM<#t#)g5Kc(-!sy?iz;@ z>8ek@Uik9=+;MA9-sj~V8y!`bm1SXPZ$4&+K;BDxf@=+IMlA5Q!^S-HxDNyoT+n-K z>+8VZp2ZM5TsLmq*uDh$xN|VB&@Ii;McG(>bHZu4wnZ#SIXJ){r`0#H^`5rTul2)@ ziL^LWX&^YUm!62Mo<0{(9im$Lp@=7<%EcQ8%8Jzn9&NV?8{hIp<>y~qGx@E48HVzi zQU!{yLL6S1_AxN_8TSzHtk$;RQx|<=;ns(D=sjTcLZJhN3^zM7)m$UrPzXM|{fsCA zt)9S9MBrDS^^gv!;PB`tr*)SXNs697enob48j9(vvh-txn(Ay~rDQg)lv+1EaWYnS z5ExAb=c4=OKJ{Yv=*1$duBsu%6gzu6$5T`TzLBC!VyPnc_f%Na<3F~%A$j?)u|I>a zTU!6{{vNI=e|-KniU_}`!Pg|S9{^uZwXWomY+hR}-qH#z_4IIZJku-ftb;-XJiUWY zcjDvcN=n=_VNg$aezerLTk@|imu`G|w0*PY@90gJQ2Lfu|88Tom6zv=41c^+8t%mS zy}+q#mJ~|Ka$+&}+%tc#WIHid^0?TG-a%(XvU&`~v%~6(li&%txw78ZfQKd-&10CBn8V)lxmr05X3zNW) z??U5iRmFwA^xv5(#q!3>pMvIogi`f4@R^j}}21!)j8I;Y{G`^{&Ua z5m%s>IsA|ZJo(C%qcnm~%XzSw1qNKxmyQleaq*&&MNCZ0q!_?sz%N2%*@P0L_WpL#)25xapO4!&Y$7} zjp}bhLr=ucj#fCumZCyIk*krhE;`y>7s8E*Lcjkj8nODmmtwq*9 z5z9Q@S(#{>n9!D+%~LDKBIUZnd_6`h*MS@YDGOfC$MQvWiz?k|%5xhZqUOGhWo_%3 zlQ+A)&&I}e?E;Ey@j2O7bU2RJy0hP<4fz@blbFytjlC{rzF@pGwKd$bf|l z;xlq`a#B-;kLCJ4pkb3yoB;&&uyjwY;gqG{wI)B=T!WJDTwGj0tpH7xl)@cdb#w$1 z=5|)6YHMqg3fkM+j7&_{9cvdC7vVX!ws=11StsXTs-L;PkX3I4-GsibcQIXkyWxJV z>^8gCBQHd##dBR8Ae{3c3~9?$d!W;JF7l>y<~lVWlMPeV715_e=eP8m%=S?GE-tI~ zS5N4TLq{_eQEN!6lNGK=!!Aa6V#b95C8v|g($ zs&(_iamF&ER_yIb}h@%lnX3yV+kY%MYhuKqO=HCYF{ncRkqb$7Ff3mxUT zS0!e87wR_GAO4;Fc_$<4%bP?;9?2K;8S~C>-#Sou;}qk<;SF5ZDYAV_uP~a?1aSB9 zrPPHYVSS^&@i6P$^o)Q9n))l?Wufj5q>ma3t`^wrm)TwDji4);d!_vJ zu9Z_5ESfrl!F5kYke5vHK_H{`7HM!Fnmo3Sz+5gbzY)$|&PvL_&Rk~uj584?#CPqwEf)d%vrSLc{@*Os(FjbX9X z3X8Yz>HET>pj)NiO-V^f&C9FP)6=uFC3yMo-%q;x;>C;M;o%xh3n!=Q0b`9Z=5uJU z_0JvE$x7=s?D7n7A)6Q)Qg(H%;|j90vXYCp;))|CCN>_Pu*4@IP+_vOEL7M4&v7cel_4Hg`ABzhDLW&Tw5c+# zUp!?3pD9Ny74+|WDqLLCD25!r?b?Or-EWtqiO=y(zc^ReHTGf9`JPi%enkdl8Li_Y z!;~|*2lkr_n8+1In`d-E7INZWq8R88VaAn_mCo1Cp9|IJ;LFMK%hc~@wB98Gk>!aq zn{AgUPfUyU%RGl2Ru#Clq`QoCzPd!%KSmL79f3oSVP%~2?N=7}GFD{xV;Z-pdFJKi zCGlUq?4E-tI5C$?0%n@d=+Rbr{TQI6nwveJVq;?;Phh+4{3+?iK?2FE z#0PZr4DT&r8}>YaXsAEhEC>w^bz6@aXJ==Bu9{37{`+YL}1XSlznZlJ>tVHa0 z*Yu4rHpyN1wDk30-1i&xo_$4&TB%!x5C%z&`mO}*&nG52BE{yzr4 z)YfeWG5DbR#qf|Ge-o!Tx8tY68eRx|TI_vWY?X`SBJ90<57QT`4Fg*Dd4B%6rluw! z4#v#2l$Fu<%?u6adQ!xIMkOUA04v!adV-tUn`0~|+DE@>5!gaP!x>Z(;x3&0p_K-z5{{0mQgf;#Ya6yB&YR8X~i z2Uid7%@XV5b1mjedb**3L2qxbpc^+U>x;QA(psyqZ?aN=1uHKvr#b;kMGv-e{2`Zn z_PZbAP`i>0Z>dl=qHml&tNJi|$<_j_c`vqszx= z#T$nmOaSwL3W7i@tD@+wU1ykJWJjrESzB9MXJ_Z`uEXY3lNYv^mzPLXx%n8E&3teT zi|G-dT=pT5)v1G0cP#@(kmhpl4ytWep-*dAKD<4^`^uFR;wY%fb@8!F70eSm4T)mzW3Gy%fQ-=uiLI+jygDX%ssz*Y|TZoYOS)r?`fC z7b82VV_N`T2pv_}x@m|}EO&8Xc>I+t(i4 zJ4eU2%>{?fHuG1Pu=M|~2>~f=9fQ^*t`DiZ8bSa3=Z-3xGx_YJ0hc>mq6eolW45+4 z2ryP%DO*Ma`V}cw&&6FTK9L?(Pd_5Ds^x&3F#k4T-`5$cQ_&y84X%L%7yp5yB2~q9 zuE|=ZDEvgduW~za!`M9*P<+5u4Ikgy8vNbCsl<%46Q1vNbR&!je#UtP+nu;Wc+3LUkb6-_ilp&xe^xG{S zt=0E>`&X5|Y-Hm(#Uy05c+^H{Bxkw=*+1Cv*pbytB9X&1fFm2UlamEpL^z#Cv~xZP z?7kCL?T6)9$e-*P$)%*DOAOb&GYG1B-RtGh<+nZMEPI`V;LLMnG75UyrHz!AJexsj z813kYahWhZKO$5gT*Ve|w{5z}VZuE?RU``iV@~7w@7)=q&M$fgxPDU6KR#s;($S6A zD$~aWR+@MWrD6uBF8;WSZfs6x-)3qn+zGTm{UzR$i^C%TX{$(XssHZ1LJ;txI6$@G zO>2F-5S2?nJU~nh9|?TnzOu)mGaaJ(n=E0V6$5Bh@AkWaE$n+AFcmTUr!=UB&NXeS zAv+@PesW<>c(rc^&hQQp!+ABCvZ0Cb&~uVR`DLv#)d08bxJbqYsfU+`So{{_iN*9hvRxZzRsfxwlvU2*N}x zMQ-%mpDX9AwU)e8d|8;t{a=`kgCwc^N%|A1c0>|g89J8~^4~HgxaVUvfr~x$_}`&$ z0jFtv{ju!}(XnFxeD5G#MC43Ux+5SBA8hUPr>qy%J9UolHy_*ZQD8^Xe0+#fJe-;+ zY>TLJ`+<26Te7rTw^;`M3VksBpQJ&@3`Wcx`O(}p7n|CtsRZn!%>)LaW1GZd^7@)X zt)rDlEoaSrzp?SQwc~ZSZv3&M3@z6qyXE78`oosvy&vO8hfWZjD{k8b$5VvIa|ir} zJZi)`zZ8yF>SfT-pdU$S85u=9O>8`qn+hHDWP$tJfHVK;`8w0b-3Y9@RsrNZ`yDT~ z3Fk%uA39S+)v^n3cRp@?S7W@aGI%6W&L9<`J~&~vv?(6>2v7mDN;tcZCE#i|`)k-N zSL?Rd`}oUWu`28FMC&ork`Rzihyv#j9u<{^+$3-ii0%^iacC7!!&s^g>+1Jf%6fmb zo*1Hyp@BqhkywydPx2p<1kz%IXgVwsP?sPa;4q_)4x4HDz4aYwd4Cd{t;^l6$73c1 zg#-mY(%&bK>uL1`N1u-;)o1!ZO-#&dWHBF9C9|`K6``L4uiMM1j;E$OtGJHPr)b2| z%{~vsZj)yl(#O#YThr$w&#Vcm8XKgj-SGFjb-n)@$le~~frqcD6Jp?JPB@_E* zTUlNLI%N<5E4|m_TXTYia+HnDjoukDPu6M1Qk^yPf3HNaJFzZAY{%P*#}IuAkv9=U ztqjC^2S9?v!rjd`TNX_|UWw_z*9>d6;XG?}?8H#GQm3ke+k-!B|DyPtreq)^hvLyKLoAOM^OT2Y7i0Gia8f&z~9^8$sy^o zzP%{5963|K;RZZS-eyMtZ=JUq>ZiC9q@wEi)b*bgzi|yxSORyrnT|`EhNG8dJ;FTUe1uygNk*9exgJExKp_% zUJ`kM%`c3I?Qi~E%>hQ)i<0ZGl5I?$CTretWv1NfOSA*=bJ7(8P6uIIZSvRCuS0m4 z$-{N(*>O*0YBb}U+bqyS&w#s@sBJNMfD-KE0YYeP?c5pAv zA?l6Qwzi*g(ts0tH}WfU*3_+myug8Tw(f>^w(Hseirwo&i5D7 zyZ1yOl5b7I&N3*$hF^YuJO0KG$ZshcC*je}Z0D>%E2VA!ur!}%!bA%Z%4@-#xZAB% ze;V^h-i71Fxau<7qP}#nv#NKsU^e>GpHMbiTiZY2F^wlAULsaC9SA)(uyewwLWC$>78g3+SE?QbMQvkm}GN{Ei5^Uxr@|4D&gT{RO!j6DX6Lb zVB=_UFMi}BZ^mYgdY3`;!zc=g=zLO#EPfsU7@{dZJh)GkoTR0ntiu zQS~^F0043F3IwL76&P@!XSFOK(pfnQ#AjzEB4luQTFyYm0jK2@q%oeAg+Q2iRtY*; z__TnAd}r#UzIGZr1S5qwi4`c2busV`vDafHdvo%RJF-e}VpW%s1nh}kP>{4JGDx&S zN0u8-CJY9tGKizhFaJ9V09069T%1@C8M0S~jxH)DMnUFBtrI65id5f;{|2*v42I!* z{W}tX?x}e-g@76YAK%idy|J-zSL~yd`1+TNs=B&Vq-U!6xB`oP|Gx0Msj;Jh!CjDu zY?K4G-)?ENheXWi#(>QkO$K5eJEj-k`ASFe}69Lj&C8f0Z zg!k`*-40#djEsx`#W0lf-&rwX(5yxDZ{9zdXUc|)jg?i;5%h8VvfbO?*E+OO6#;DF zC!G+&_Kw}|s}RT)zyGC+YfxrG(mp22R(&)!H`!DKWb2>-i~RQOJDIcsyv{o-pdJBy z`1OzTDgplftrq%_c8g7VF9=K>yN7wg%;1}ym36UW9~>VY1tjaKnNcd9CReF%f+itL zEv*Do#PyG~Ds8hiD?bHx^H7vDG+dTOA4%MVsq_Eq?f!4yUV{4lFWXLrMvm9*-QDE3 zZs}~~MTN6_qha0tilz&P-}Iqu+{D|bt`WZ*;TIFC)SMeDoq^9mr+Jr9dm|C_1Ef|& zMn-0&r~5*sTz50(RmAJxgBCBYMo`-C9~h7;#+lgjS;hTv2XE@rm$rL4@HK%X(D-xr zDO2OTKwH_J?$JtXG2i{o--FgKUR-vEsMH#zIBv}M)Vb_W?+STgwb3vFxkp=rG}K)f zxAc;=fWGiSZyK^M3rYqR#WvQ_nFOq=W6SygLMv+b3Vb6s)u~K1uc@hNEeDXCpkwT0 z<0hJoBOh|7CTH~s?&pBMw!)4h@oFL2oY(Irnbs6$G<{?>9*5+@4F?7XTkN>JEt~B7 zsB5%c2svqT22|eYtOZ(rNz_ZJvibGy0M180JvUb(S4)@k{rmU+{(jI5;dgBQqo%Ea z)q6!l#pRlXy#lL=CJ+^F_y%1U+t}6h2(-fhK7vL%Hu!<}B_isa{QP`ixT*{{+l1K|H0`OiBG{?S~B!|A$RJw8@#7jzrhbO`zwgwda|x^CuZ9d^hlDk=tF1!IX+ z$YEq-BJ?uo+yMfBE$KCic4F>W>(dg*tmw$%jl$1p9|F5pa|KDau dqPNG`kgHYd1;2zBL6amzTtr$pU+|g7e*xi_e-{7% literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseBackInOutInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseBackInOutInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..89eae7577f98dc5085b1137de5f057f5afb0603c GIT binary patch literal 11400 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 literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseBounceInInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseBounceInInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..5651ba486337fd5adc63dd583934c80304dc48d5 GIT binary patch literal 11470 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 T^$M8$MU#_KmdulQ?(@F@frKDI literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseBounceInOutInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseBounceInOutInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..f6e4a5bccab2fe4766b76d4d0e1b6f998ab77639 GIT binary patch literal 11998 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 U-HFx)!{8Y5GRo5Vl8;~iFV$FR7XSbN literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseBounceOutInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseBounceOutInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..fbd2bc5d3f2b3d57492f4c2609665bb5b4a482c9 GIT binary patch literal 11708 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 literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseCircularInInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseCircularInInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..e55685c816eec71081161147f31713b32acc73bb GIT binary patch literal 10638 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 A-~a#s literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseCircularInOutInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseCircularInOutInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..28e6879e0d12f2c223371eb2cf06f1cfe599845b GIT binary patch literal 11002 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 LD2nHbKK1-RPq}7J literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseCircularOutInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseCircularOutInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..d7d268a66f068af96db798180459f6bd4c214ece GIT binary patch literal 10784 zcmb_?bx;&gyEiJzDk`irl8X|8Qqr+fq985cl2RflC0&aMk|GU)z>0`SE{(LLq%=rN zcX!{jl)f|HH*@FC`wzqJo_ON-~iO193$xtg}zBu+CUQ&Vp}D zJpYVfVKGfS6c>4H*E1LGt3-$>nOHcun{k~TdOah9$JET~9dw?5rZ2`kPS0=2gZ&pj zrC!Q&+gfQ{>A(aU?l-N*ZHzRj+;eUo#0rm}V&~Ir-qU)+n9X=e`Jsw3@lHKoA4g%* zH&O9Vx8NwYcMdm{5rcJuTkW-i3@fN{K*7rfIP?q_7L6$QUmSvk^%?>`;nRXoFl;QW zd+y*LFMRL^3dsFGFVfH~(qh%-#=`pj*u4v_Ehi;4Jv+N=XJ#?i!)5QAmUf4m>DmRX z>)wk4#f}eg<&~7ObWtL0*(jHNJ{}(1CO9J_<9EvmSsHxE9rK-a6VHm4wl)Hi#?{%` zmwI|}+q_d#Q`#H*Ya=W{{e`ymzE7yhsHnn1Sy)*Q0!X~+plQ*eIIpouV!aZ$ z-x2MM?JtkjH#9s#_!SiuEtDRVeEtlhqZ6Bt5wve*d-r_?{YXZ}z|gQ>no`hCUbsF{ zDWSEsbu_JSam&dIAA0tO8sSj9bhyfkISFe|JnAs(0AcM#5poV|27;!}e@{VOPONH6*h*VXPXCJ#?xpc{kpYHTg@7 z=A?u!k_ifrbdXn3EJwJ8C%P$=q3aq?RsTYf{z0X{3 z88nDBIfsQmbWMVnn>#EhC@3n5MKMt8S8XtZ!Is|7_vZ@*GGAwxX1-&gLDNkKoli&KfsO+D{S&zF>V-D~HwIPR+2MAT*77?NsSDS{)okpON=lG{LhV(vee%g1&Us(a}*Ep7QC_J>*AqoJRo0sUIO?{f%{X z0FOA~H03QV3Nswbimg03B_WfvtgLdxT0LnklNi}Quw=ozPeHiyr|g`))V4|e9nl$n zL6?2ON`fKQYb(;;n=S2b%iEoM$W`=i%laCLfq(m2K!Al{cG*DnIE!5l9#gM8jCFOH>skKvGNT1Y0kVqjr zA|gTsdcn4?I2@Adm&q$vaK4l7AuWrDdkfrdlOJMS^gP`qmjjlaRsmE!3bkK)tEJDb zEmi4HJSM^(P^T@7tVsy_{>Ci^$Z0WDyP;5ALk_q?=|Qerx6yYM9XIBSUyb>&>@E&f zP$M^KzvPgUliy-y4j!CZ-c;3gwjOUFTXWOozqIUCKV}S}+ni_>2s8k|3dbXibwCp^ z$g+e(^pJ~QSJHa8_=SXug9`5tO1t}RDH5}aTK`d^I9Q)k&sR`XytbTpQ_g-j0fkf( zEgxbo{a`ENj^$+@Az?TBn;r3|%9o@}vK>nQ;zj(TLvd@^L(Ute-FOtdG`8`!jM8;; zjLbBhk8c}oDoy-~CMdm6#-e93tDg~&@s^qqV<5V2%zGc-3cr8lfn8Dn(`X3Kw1Xz0 z&7MBJS7MqE74C@5&qq*&AA|>(Z`QGnYl4^n(|880!&_fnU0v*#Ps&-|*#pizyhPT{ zH}S$7DK}=V5PIS5OHM0|JhcAOD8+p?X66@xLZY;soSZjrR`H9&@F5z-4$734if#@m zp6@^VvTfsNKd0Q@-i9G55XtY}U7os&lYmpHf%3mmUggB(OBh?3y#6v-&)t~A!%v1oZsjaLD)&<9}X>Int)nw}N0)icarBCfvI_=ZM@ z_r}M^mqon&j6HRKbz>vB@Ux;(&lkfwL z_h)|8j1gi*@xLpW-yGupG2%Yr}Jcz+NNzDsi@ zg1;&z6O${BMS-?CCO6rrl-a)79AO>s3#fkd8@vrH!**xRVMpAyB}OV8ESKUzB-=!)}h_-AR>lP7fr=7iD@INTwf;(sv1ghmAg!DirWZ1~RY&p{N6 zFAMDmP*q~+5A$cCo>*`>aNK;D7l-!W_Li5Ir(vd%IS7&<-G{N4hA_g4TnGG#4_cw@0;+G6$|%V#};sy@8qxsM^v4_2uEg zl9&LOgNd4YzkGB@=>hW39DD(VaCHggL5jHh5)GLlSFR(^+`g80MwEs*Qz|{>YoF_c zl531YoMp{m^IY=Gaww0ZT>s)T?a0QI=zc`(9Aj5*h#fbj1-i+C6`jmIUN~mZQQGA1 zFzT0b(E6f*2y&omqZ!`eyMk3kyE5wMv(A2C*yX&MM*w#9Kj}-Pz5%3Up%+#4^ zM|D;TU0)7^<;q=cV6--2=IpqM{<`~Eo@XHe*S1(!X{&3uhIQf2L1pH!+M3)(#tTAd z>(fA@fDRnPu@;#`FTF^rO=AJ4q;m|KjO@WysRQ-qtxW{UCU7IQM*DruaOplKju$gL zGW4RMdBG)dl%n_D@3~2+=;zRX=xo^6*!iSAmmIPm_GB7}3E#*$GM}-+S>?}wh9H`! z<;(ZfuZ_uloqO$O)ETtpziC9tSu$bC9lEco1$h~Y3jl%fT~=KZS<-o=9kpjOf0HES zgc!>_l-+*oCnP*o>{r6UMgbFdzxzaALgfX--*kQM3pIV(t-}3ZHYf_OjGu~Y6C5uL zs{&gi2%41l+L>d5N%XTs+`R%W_@>ktH^%Oai`&_5@3s~*n>M$-c$ODh#jBCWK1lHj zR$TCgzqqKo&n&UP3ODin+$AXNh&ZmY(MO+l675%I*A{b8t6r_2XRAX>`hWRsIe!r8 zy{)r*qnGG}B<9A--g`Tr@>P}i?OUyT6^9YwV_MI(Tp?x~WVaXUW+QsXV;W)<#6oIq z-X5t@#7UnkH9}1F%TE=D#=eaFweN_c-!F{PpSUlG`u53pt*AaZM5>NGm?`Sw!RMVD{w1k_`*s+jMdt()vcq| zgtUmjj$Pz04^vCh1gj|+Rqsv;4K(}bp#UTvsOTHO$Y+qozZ9EF2)7mowka$xC-l^I za~6zWojsxs8bnm2t)iQ`E@CN|z+X->FtoG#O)}<|**Z6zLyoG^<~(3m(OsWt5P@i9 z2*QPP`dVSf3oud&Pm%X*J^FYk4)A*@&14Cmf||_7E^CW*?G-K0k7nu-`N=D<68OxT z%y`v5#Wa7k2A#$|OacP@)WDOFciox>cVxBfy-!#y20(_A043 zTDOFne4%YZuTT^~4R#|LJ9go%Lhn#Lux^dni>THBEl%||VuvXIIiEvd`2?g4lPai9 z1e6wa7w$ZIo@b^R<|vuZ7lGbV$X>}!*F3#1ihb;=SFg|X+8l$J|GEkPuuTk4p|dab zXt_<*i3lxztR&vk^XF^7sgFwF?_p4U>F`IrXNtc&tp@S?%;&| zw1<7#G#;wsr;UWlvFLD?)lqse#VZXaD-_S_1!{uld{ThB{sO5r4vmP47@Q+}r9u*@ zEtT{2>SiF(p``9X=^v|5^%q$wC={2hZQiN@%$@8ZTD)#46jz;ieSmT-(mH#hfMw-c zj&UBtksKj}I-d>JoNmeY4gsv?{8}M^n!=}`Og2}ytf|40Gcar)wv0?gM`7IQ)qo1* zN8d&z2X45USeNFSm#VLUVM=^> zjd+NMo^_av@-#76iH2wD7M{i2TaMizwb9r=wPL6pxtH?8Bzh%4OOI+xy@yN~BkeD$jc|>;iWA{{k`5lv;+7FnU8$SZTu6?>JbS=_G7=+%a7D? zR^odr0ysKxYhd3gmID%=Ih4W*bcizujHyEDpQ%)^${ZkYN>l1Nn%29U=hOu(2aZ+! z2@=kiTtYJbM{dSQyV51iH>=VA+Qc8~UZSJTLCTDA=mtwI^}RgWrf6rQT<7Kmo|;QX zFkutPQv7+4vIAc_T~CixG2WfX<=8zHs*SE1u9Ndp?XOF>M>nALFz6>o?j@oxap2 zLi346E3&_^YkW?iL_j<>p*g>bkUO)2a4noI5Z-O2VLnmgBmEwnJ-}m`*z1|hzKEQ0 ze0iX!BY>2PKN~io(I=UF|LXQO?LBgqlTGg&tp+vP&JE6UMy_3Zpj$bibmrepoAC;L zpUi43aSTOxnE34;`Dw>*_3JMv`K_eq0ICxZ- zu^XyqraO|Yt*uwV0UOh2)9PPMXht~mJ_`VrhM+Cyss#CX{g`4N13kT>k`js9a$mls zjEu~*je&u|ixOX25;f~~Z)G#(}Ys5x(DR@TnW4#54l4^iwmZ%i9pYzY_76}~=NMM^AosTnr=S-W21;EHK;z+a!$%&o`QALaeKvjjjB(9$f{AHI zn<&y9lCIU=d(9QW=Lg~W_6ctKSl7HWGT7BuAr-0P8#|mF95HYgswJXPCayOgRIyiF z{H9Ct>!VBl5S;-y3D)B5RaKQ0dg$~O z+TuZbiXaRF7o^a|*CAQ#gMySjqmN#vU;sA!$X%B!yuPEe^Q)1XvT{dvmSM*T9UWbn z!BuMEzW#obz2uaXl&~;jbXRXr&$JbPg+QPeo2zfSVS9in%4+}3IUVu>XJ$)@8%Gk| zR3IfMuWM{nUV$VeBuwn8@%kK;BazS;5iDJod z3-(3}i$DEZ$%087V$I7DioA@k10x#BCjMsRXsg(K#eTl^1+_CPBPO%Mq!WZg({#BY zNpTCW?$>xJi=$CBQ{D#Bv?DuC!*^zV*U)2&bJjNG1;}UgtAOtSj!S2lL}wxZ9`GL9WEm+#Mi#fXOT|sglGd)m^L7kA#7wm%jX^fDrIrmbf%rUQKlvI55(A?hBhm zP7f*wyS&Mkk?gZzXFVn2i3f}VX@o5oTuf`0ilX$uB!w8_p5(%!qAu!dN0vTm1)+)} zwoUDI%Im}5$}3q#{i*Qhym#BHf-X&~Oav_*8U+yckQ7O5BndQ%{DWdD@YleN9`cec z0kyeWe4Vgh?@Pi?BI@`YQFX#ts~w8ag$r-#e-}ai@_Ig^^K5+AsvM`x`LrgBa2|%) zPx60%l~3_Jm&MxHqa%L#6dAF#73_LDwObXgAV7@XL9`sh0x%xcdDdQa+z>~~Ha)gi zQtHTj@u5BO5LVl5?$O4kt1QJ|9apiS|LmD{Tr$<3{B_A>^X87|i9)g^p;CG1Z(6E5 zqHyN)srFNXP3jWs{l$^S+TSMGGUSM*PV`fx2i$G(Gj6-c4<#hCxbeq2YUXaY+3cM7 zKv`z(IiU4@W{pndggKM)Md=aWHnqi&ZusD~EyoG4nu#Cep_8hTWy5mW2m4olNFJ6a zhngix$)W@4y_=gZ<6&-&K?^}Co!zvDYUBIgR+at2lL?Sh7H}(A2d%Mjr(sb{9>uBMcf5ba=Lo#`v6|xFcE*>}8vK1N zVo;jP*4Q8iIC=E5W?eWHs z0fuISCDHn2Z13DLe#S*_e|NIkQ}4o&w9b38h(bTMP0dbDHs4JxC@26g0Q#<=AK2N^ z(VZY^H#EQ7fo-eu+?VeK`SFgW+vS0Q(D3?rQ@KZvzI^@a!6J`9bocZa<3K?qXz1DE zyJpa3T`F=!rRx>(-@U!+PoD6aoz(;{9?K5Jo##Q9=ieAcpzI#ZdB(c#gEeCQD~|B7 z_-0|{X=!PI9_!wT6>o?TmA|zsXjjASm&Ir8R>m8hch+k;Xwd;NF-V?YiAIxK)CeWr zGM7fjy^*!~LM*IY!eE)R0nA%A`~2h~>#?BKGwt2uHgZfzw8`&}qyF zI<7xj{c7s(@1GDKk3ex<9s%z!7g@?PXB-ymmZ?WR(VPmGF3B=q!^FfS@~g74a6vT|~&c|WVGFX7@+UiD<5llC~U7xXcIMZZ{O zBy+{jhQh_Yo?2m@wqGvEnkliDjWvMd)d7lUb;IrRN?umFe}Rv zC`eaae3KTqlJ@*Im1nO{5W490-D)bx>XMtSv+!U9ry>4O5R=(@lF_wSZbwG>h8JIl zB4b_R$zwEn@$N-X2_5-p4T4QS+u-x?0W$F;Gde5&{r>F_TAa!BxHj;$L&=;6amVBa zaQ?p$IWcim>ozV@C7t;8Kbv*R z8mp4cuPGd@!Gfk;#5HZOg`+OXV?5H)#pPT`4NyuR`vf?w46*WJ5O@^~(lAl(1uiIQ zkAmY6hmw3kGUqoT3eH2ncotMS>(_L;t(|3}C6E2eJ$GhF6Hhr!rO#V|s6*j^-jw)r zR;bTzd(JqB4w#*wTXnc|L+PM^Wg|)Z#W8R9+>^o6glcuQQ`?*F@Mlbamkxypr04&p zBer^MjKs+NEXIXBXMp-_*@S#d@b7l$8)-R*afJaGsvW)AvTTsUyOBb%08AJs^BMvt zR=%ypWstt`7GvdSFwo8phxBewFi2N+h5RGN3-`6jW-J?YJ|~#k{X;>lB;HG=2x@w% z)7{aK4y=gADht6!e|>7W7yrjez|#-+e{b2*B1JumJf~0Y==2Yb&2c!waAPX+hC&YM ze-4eFFzg`Hx1t89K96ya&Cg($smLju4KPZ(hsjdrZkD@V6w}mYD!Y2+R5>~?tp@u# zM`AXME3cjM>@|ErlVx+Or80u+FD!iHEo)ebcSnCTRIt0ju#dd^`n6cAGdz^+cvr%B z9GNivM2vt1pv3JF0up(s)y*qD_yE%&jp=#hZk#Zg5W!i&`u96&_X0E7XmR=>Tc5ua zVb`U71e-%{?8_cQ5Y(-g4K~MiBXTey=j1?HcY(T`${1m}W0xcDj;q*Z5Tj%z7UQUf zEAI}N#>hbn7G-z+2})0vf{;@2_)GIKQc}_y@R%wqd*}9T=aq4pnyk6GIZ*EOWf{s@ zSS*c>esNe_pX+@{e7R!N96F!EX6wU$i|gd>G>T!igtqRMmRKV-P#8%_yj|XwVqK) zA7RuKvo6fc%mlBN`QoG$Og$hig`PdMt8$|Fyu7^hbou@;Q*A}XpswroleDJdyU&x5xVl%PGV zuE>66yu^8D6i+NnPEM}0kk{wVD$quj_Fz$)1ql{bCmX0Cawnl4>T_!|U3bD~mPUR; zwMDR*A~n?f&DB0qGxe}5&0>lI2npeX^;&veRfcI8qfB$#yY7UU42fs7){QUfAT|z@cJ6c>SRlmru1s4qlJ)^Ye|VhE`Xz1&3`4LGT${cf-L8Lduw#E%d>^ zDiabD^HW^i65Co?>;msXzSE8KPo;A1Lltiv>50Ja114<+1-uo`NlL>_q$Be&JkIUJ z+wJ(6OMCy!<(xcOU_&xg!7j$~oqceQ=eHo^aVE4*5KB(4)b}aNLjKq_&M}rZT_U9y zI|gueGNcf-UG)Z}R^1#YyKD$`rnoFipDPIMNSvIXOE}ayGH%zhE>i7#VmEUPEu-_7e)d^*mjdgREuS{@>%IDSUG22@k`O zuXHLb1$T9+hCmLypWkl@ovcH`Rwu`mr}8JUPrmsI3PEEnE8Q83`*kO>H(@G|M^L-Z*d!*5qETY!3WPeEk;QYg9@XyXT2w%dne4f6*oU7sNeUt&D zCqg7#|9(P4@~9@JrH?e?Y9g_TLhc+17%%<&DW^YO_QMZu6Za{WKOj3&)Q>RO?%aVC z5wzeAhoZ;v(eaRj`YjN7(S`3tp#trV36XX_Mg)IQWdDq&LI^m(J};i1VhhpPc`I7yAC)yYCuztQ~cAVO(5X zPGlK>49}aEI3CeNb4KDQssCm=QxFppGP>qaApt7trT!z6I)9PzKXdn(W}|D@ZKDt7 z4tAG$u&@H|Q3%*vhTflt`dr;AK8J;6bJ!~4;NWPVTUuJm&c0ishlQ0M2)R;W{vY{v z*a9h-)w&_7^ZYp@507diT~tiWxWEN0EJyGE$8^?&x4p2b0D(}{`Z~tH&39)deE)9u z>QzvRuIU5d<_m2XkeiFN2#KcY{kktjwgxq0mB>2n{mno9{NPiV#Y>BTl0kr zU*hyEq16qyczE*AX#cbCB0{b3OLv#+p9(#D_AH1Lrg6!ak2=o;;lz98%9Uly(3H>m zV>X5H62W1((ECls&z{{U-&kH=4hbP-AD*0KMBEMuT_pk4))xnNFaVL9m>An3>MpIr zJ~5Je+xN0$WD=M+_(+ZNiU{46e{O6Xblr>1K_!!~mM+haz394Q?=)EAysYPo;id`i&aa<)T0=$1JvDxQML&I_o5@2%Ls3x_TYK+;K)5(K zGC`Z|ssBVWx+HVOEM*e$aG`t3N*I)JF-d5&_Ob!-k9pXrQy=xU_g{@#OF%3SR$fi1 ztFI46`mI{m+|pHP{qDQ_*b*)Ne8LiTzbPpp!IMtF%be_wQ=c?M5}8#GVxTtCm7AOU z+T(_llx8|0vzMxvc``v}ILRwZ%Ua{u6s;1ch@c=2US7uiLW_|LZU*>6twTb-iBC*SN0WdusCM&s{!8KtOO_Q9)LdfPhe+ zfZ&7!5g~Z;Eb!+P0m1c2MOi6r*Wsn)Ff9tVnw2hWnbSg_*X^w&twGW8&1jucK@W>| zQC--RnDS+(x+gJnDr8a`m)z*dsHN7-$WEE|nRuE!l)XeL?0bnQ=M!<-$Dbb}1d<(v zwpuav!!*1fP;WCNQpOG~mR2-Gf3rpt%_lDK1LhRmxwt=j92*_rL==-5U?Mn$dvY&h9o60702 zwKCySZIGOttn5~nn#$}}_UqR#R*AjlPM+UmwR%Rj(ILF{R15?U-DI!-%1vm_D<`6$ zpvcY5Eun$IU=u!AFGa=HRGGl(nSV+xRC^7$$-OTHk&zR=D3x_x8ZIxt@2)XcIpNLO z&P1Om-o3a&8{PWzT0jlV86k*|F8se7iB)pxCK?t>ZR>`DBx1yDu>*0T~2JM^CS+pfFTvo8p>Q zQGx#bPbnX^HHvMCan=pfeYuN+MR1^EX=!Q0=GuI3 z_Ik?hXtjf8ub0F`kKFZZ5z?N>Hp+Nz!_Z5kvt21X`pf5=TE2geVfWc-H#RNqN)lli z3}+BuSaX%QdJFcnxDnYNhuB-b?Y3Hk!0c`=4w}err|vv>@E|cE0f^(Uy=qd8+FqLq zZ&RXU;nAYPOg06gWuGHds@*s9K9RYZx=ofSpqujaT=uuu5`}Er_Dim!hGQ^~ zuDHJQC&h9RbBht&xfFEIJs~;6V= zR^Q-YdvroV0xy(=AL~28&7BbAK9rW0_Vdr3K3RpVS!O)79)N3F0!w#wqVq zByQ&9OTUF}&>P!LQhUWhs2K>DG-ZVu=TAyFQtMbCi)vt+noyxvh|s9mG&o$jTvtRy zr03KrTWs!PO?3DEzNZuajT@@V+!S$geyF~Nt+vk2*x=sY-u3o6u_A$zhAz&Ywzjsn z%{vi8ckkZ)9dBIkNo%kr>5PFGmRRbpGdkO(GRh;#`z**e%kw^6x9XIZu+9lw$z3Wpd!ei!_RX;TSkB4hO7lNY)|VO@>}L!W|JRd$O-jwPHW zco;87GXvLPU(-BKN+)bL_3eE84)9vZ{Z$zS7#$rQ7YE1NfIC?}>)(Yybmj3!yphey z$jIpHY^tvSH(|5C}8RJ^P4x$v+#tp5)v}dQ#YSrWi5w)C)_>Nx;=CK(EN?AFV!hSc93y{o4L*Osc=} z#u4{^iPKF@O$%8Yrh%l47smSyZE6g-J>&_cJRjOZHMF!?28oG@m&A#`iuV+4Y;NWz zrfKG;LSH;gRBA?#xlBN)Cu(YHelD^3uOP7A^&Zn%e`E~}4NWR8>k#W28q#0<3Zh?6 z-fwSfg>)WE^_}B2QU73gNJYi1_(!&n(klYaOFSH3pY3XTDp)gjyZ&b*&n_3pSq4=`m2nz6f)Wz-85z?6j!?PAArDvI6KLMa9A~|D&8XfJ*0z?bl^yM^y+e_iEc{$L zOF`<=Vvg#1W(pC8TigA^^t5TY@&u{mJ`<%D{Ug;f6HXI%_xrI@%dP;vIrR!n&CGI_ zgr!GW3SL`oF7(6E-hSx2SZ1UVUHThKt$X*F!aj)QckpcKc)Tg{B|^IOUn+07i9<>g(;LDDm+x-Q2!;w>iXy?%Ai%*;f*vQZ9Xmea)~Mno`mjZaKSPKXy7)xAaC=z=2m0HjWa zbMfE4&B-G#p8H9FJltzPT8AukPLhpH{vw4B*G)Jt)N_BkSga~Y-e`NDrCnj<29L3L zzUNFtt)FB`M;ZOFkwe5hEX9i}A;_W9pqju{7i7%1I^ut^)~KR-9TwI&Jrl6MfZA}L5e5~^r@@0=Zp-q^uq&|I?;)era|8)5X$P$rAgViM=d|!MXNj*vyzN_uIs2bR1yHJ@^=kr|bCeokMNNpFQQOwlXtM{bRZpLayxZDSO6Dy|;hRzWwo7 z8Hl5p&;b1!qf&v{XZ>;cyLg@o7WYdt$fKP z7B#(D083Qo8iB&yqD*E!Mv$b1ii60R;^C73S;F$3zI2S(642z_M$#KI!4l@0f z?_SpE%ab96b4IU#pC9e)#hV?~b(x&5cQj;!h-eSJpgXB{3Tw3*%C)uq;7Lr%WxOH- z?`G;_ME_0EF#{5P_ujCS)ww~_6J*TyJ_2=HtiSViR4>V4yk@szt)G;W1d(0W$9Y$| zx#`#{qpnBq^Q|)Tf_^?G=?@Qql#%_z_r{hb^U=F~@$dC!E_0uTo;pW`lfU2u+N4}A z@Ja2}V-mwE)h8`RRS~ypXNX@Bz4QfS<#gd8bu0U5Xt+t?AJj3?JWa<3)WqKLb*J|_ zS@1p!7tE?3LA>m!Vc~!F>aHKx#bZ_%|4hvU2w>G;A;ZR7U>veUm$-0Fd;k3J_0DXA z@iWd=HY0SJ}xP=wa) znRg^|;!f6TECVI+YdqKX0Qt&_>Ampu8IE2Oe$iN3azaQb&WB^q>xAcigrTLa(G zJlyB6t?;u+mb`@F=>fn64;SjjE1b<% z!q?NXv$(hzv|RUN5wr-mb#o^tL3%vfz|^x2j{|)8yVFM81p?^0p>zxkYKn>)gU!v& zfDblRgvYQ(+t|3MFfJxWP*9Lr`pCx!qxfI;E?v{>M+<~;u%+B80+&m^hR%2^3>xMN?8wpLb;_tS+XyW1F zVPy2aW_f)_)~{m8cV}ldC6lGhR>FI~sL(Ha+PloR;x(}I z&b>alwG$OH#QdV73qfz}>ibEWgdOL8w8!yKd!E{f8}*mep7%^bCot+)DYOesJxVs+_`(Xs8X;+?cjs+i#kJ`U>@o484 z96pBU8ul-QzKme;l5A{fXz1urDQBGA*w`5LvALXHNJ>INC*dhFyS10U#ZUy&3H4_+*3~ z%l+zh*OM9^XX(3mum4)y#Z}BY!H=wX#BO>Vvq>9IN*6jVvJ`!%AwKqCs>xCMqG7X- z4qsl^Mc@O0gATnD!>~bfla>!3GhPt^*)I)G%LNu+K7MvXrP)DdiO+TUjZlEhF>?q_ z0xzNk^?>)!@YAP($1#*Tbi0#H+cJQ5ikSr;vmPo>24eR=zgh40h?V-Q7kki7U$ygB z|3|WHe#hURAaUSMZM1DDvLB7&kCpkWEJ17B$-r>h1m0wdW65?};oXn7S8pB%B?sNt z^F~hF@7~M?^x{9Ych`;ieu8+wWsi>L=*yV&QjlX9m9)A0mn19#j+i4y^D`jYffr-4 zeiY+{7ZHG0G<-f$9%{3wcHzjHZNadA&h&M{yXhJ5^rlMO`K&pJzwMtW2W7@#K~XJ0o#(Mcw}P`Y5hjWj+Ogk1S_^%dUKFc{@{PYgsZ@QW}0kra$}#$X@}rtuRb z#LY1YKB*%^BAF7f>8!auwhia4mIJa+zhr78`19uvK@ov&+5LMoSdSfVhf3o?Rb7+VHV4Qf5-_& z@efpJVJMV5I6As;Lzf))$_z*vIp0OmQ|$=9DrOjiC} zDKSPQ{aUpOTJ-`QnZ1KUKLG5hU%x($Z&jpnaB+z_|9;nwR8m)8SzMGk*je~on#1&1 zYT4p)B{>n4B(ttgoQFrl>GqadFqx4;>UJA|Ns82?FTb z6&tagiQL{t4cG^(3r3HLUvedPcWcZ#`>pF(IL!S>jf^B0m6oWE0tFWY{qnIUoG?(G zg;TT<;=1$FbJgCq z_I5D($;l!mC53ZZSy_dJg&7r9=H{}Ch`4zpjsTI|U%-c5?__OZ)lC$xPZ}FjfALZLSo{geYGh=yaQ(JFj;fhug(n= zK2lxc8XC2T(76=4>VnuCdoS*x{a|2ZWG`Ft&-@kw>t$MRe(38VWJYSR2dI;`iP4|< zS~+Uuau(gKtmbXK*Aut5w@N*x`Yb<%lX9Be~O%^t5@D=z=cj~Rf%bEs3zVEz65 zJ=DuX#gBWlRGplh$oCQs<*@#qyMoRw?O5UN7ORodEoN#gcu0)SAp$Hm*DXT$ppe`fhdh#&%%ij2HK&6lxDA@%P^+dtQHkI7m*LDbex9^Ux%+% z4uHaRSYSpfTuS#auFug$>x_IzeRH{V$1mGw^y(2i$c46rwx-YFxbDm9I~4y^tyO6Y zf{u$*_Aan_XX<|#xu0*sAlU2rBaF;Ap>9V+cskw}huCcYt*YJASspyIqb$n;rmpo_FVJEajd(2V_rc=2$ zkiC1Q;aRpAPd3+Idqn4p)tIfYL^@5SlQOosAIaFl5mLIqC{#&x3LP1db!3whFp=w= zH&a9t-&UUin%j)uG;m zCH6`<90y>u^k{%Sp4~({M{V-JjN=D|9~&9F9v)`-3f0iJXLTo zcAGnJJzP5qcKx!{-seB+~ObnEj8Tiaoe*@gRqjj5eH_&^@shadn4pS@^&%_wIw3fmk*g7bbu-C z?d4bbG0m zO=vy=2ruxB2o!Ghy$#+yNPjj-;ukIoUH~5k?P}6n9m8z(C3;`$h9*7Un zm7deR1qa2vOR)J0eYd2|TS}1Da1#f4)6Bh@5SzsX?V2n6qk|)!rjWxAz*h7-?SkzY z$?ge5hdughmK!lYSEMVc-9+V8N__RH{;y^PH4z&d3mS@V&CRp3v+8PUdBLDp2q$h7 zP{px?54CW(*8bor8PzF}Xu8T7WJMm*^foFA4EF_9;W;_i+1bxxR_5j`A3gf@<3~i{ zA`*$j4Y_)4$3MXg4OQiFH1yk){Md%I&L~rmn~%MtWPeNfrJg7-Fi=ZVvu|^4ZSBwA z)){PNQPIkHorm+(^@7wIBVFBrzCJ%(H%`e9D<`3OKrDuC=y~+C78eOLZ}2V3a6PU? z8La)8R9;@*!+G#wj974&etRQTb}Ue+Uv60fk_hRLu8yIEPyfxa{@K_OI5SK ziJjh+ZRYa33A*Pq@Fe1cR4Rv13vM1mh_qEJU!ML0#k+Ql1Lbx4R262b17rY>f)s|d zImJus;)93-J?~cjg0M9NPf0}jC0dP~`P@}b{3n#{r&cZ(RS+54Inb0m!b@}0-=wqO zW$*XNjAtEovx5O6(CE!$B43GWY?s?)R%R#|_U3rMo)2BQ+~xiiuVos8)i#JvW7F!T z$9}ryyRoh>1P1=H`_t=5M751No?LE|RBg6dY#z=TaOjX$CkCk_3RsZYgY4ywlWJ<%eI5Z8K)Vs;3qy zafpti8FY8+JAeh}_oSZ09C3A-!><@#I))y9$7R7fX5_t8OJ(PkhyC#(ndL|cB9cb^PNn;Gi_hxm zEySIPtI9t+ASd~r5;eKY;nF^UHI6hZT3%n5z=?>N&YGKhrhP{YUrN!m!_KR|ldIeW z9Uu4)XY}_4_aww$4Lc_yI=8|m!jr$p9R{w z1ZSy{71a}h>Db6E%LvNFL*#t@Pk!H<)w7fde<(f}L?&*IJz1x`{?|@ADB~tA7UV*H znOB442_xHe)#@9-9SA`YMC(@^AG3?$|KbDkP|WvnT)r$eIssA|N#jt5Qo^SN^j1Cg zH5InlC=!?GK&IJsyla%0R%7^erNSpz^xrQmMc-cmIu<}y&^~13%iL>NjF8CV$YUuR z^0Nftg}vCR6fdHC<=9s$xl8)FCrwHZNq=TCn96_uI^pa2@#NWwJ(L5$Go!F^zJ~{H zbSTohcF;Q_kje_{+4cKewj11g!340PmU9P5vd|0EXV$LP3MrMW*fAcTg`XBMA#++u_YbI%Bh8&sbT^(!$0 zKjINPc=I>vgDfvTx0cA0YkzB+SiSmbhn+GH0E!KNwA-8O`gl=zL*^NU7HhqJ-O`Ik zn>kx{RZ8?Dk}ZtFj7BD-MA-kXt8o*dwA|K&n^z{IPNj6UEbsV!uZ-pq`_~d_Fpqe) z^o$4P_jLRbV?S%EG-u5cw!&e$e0~TxXbY~&4qBEH7I_Rtf`yeki0Mnk&u+NdT1f1n z4=>rJOO@7hb;*l;66+y|#8^PpZ2+FvkVqnKsY*+onmeC*d68z1j^ftHOz z&)m4g1u%e6mMBt!=zK5FrwXa`nlYEXJ~lDLtdJaRz3kTOc1eTJ`h<*WF54J(XgM zmWgwcC#+De7vp>reFn5fwoTC8jE5Sdts!J&lg%ax=JxjXPoBWDtSBidSy@?w?B-n^ z5&hH9f<%J_Q7<;1ISm^v@uZ#+(0I5$=~m<3MuBPZlb7<#oTN}vR@GE}t@mj@qXwy} zdIxj)pZCZwkdkI+WaKPPO-+Hr%WxC&g?bU>4W~#drL!vBJsQDQeR2X>+#>zn@vUEV zvVx=fgra)N{Qp6lc83ah+HZkUdW_Y(71=+Bk_AS9YQSED0?z(h+QSoIj1M&sKWx%Z zzW;GBR2{s+*Cn~Xs5^3=(?#P(Us@cf7~2%rd6YC7;=-*PB_>OlZ>-8%pUA+DIH3LK zw2ai;(h-4L?jC&BAuf-zqSA5GV&=woY5zwP&({_AJcctbs=xLs0>h>k?zNLr%ZQmO zJngi@=<^9ZQK^&D4i59D7Es36u2d{4(Y1QN3GqjAM}R2~ft}^SVi>Wi+z3K~AbYj< zV!=ez%S3X4p5x%2QFah+yc&3cUURVd+qa7p6mH=s2tG?e1yuR}bApOu0Ec?7WUrH4 zxL|H>p7)0+J3ISeE$qMCQfed!We6W>^&`#B%tX$0r-Nb;jBKN#qD;%@LIn8uO290F zP5pg@&UQY7r1$<(j=o{_6i!c12RCtK zWMpaz5R+6dkB*b-tBjKcsJH2plCttQ_gM8|6ydIy!#O&zlf{iy{I+ z#y)?_#TmeqSdoO>`<$`}L*-+byD+FqQO{%Y8%>eUwV7#(NNK;xQgEv%@|Tf;K@vF9 zy-P<+%M2$qWBv21_;Itgyz6{VW?P$59u;)|Qmnn0O>@Z?y9{l5QOA}^ggRG3jOV?a zqM|s?AYM=164BOZkF90J=Ln}o-TU_w%wVRQshbPnGLi@ScjWvTQif>K2SAxBF~%xk zhAnyjbx@otq_d<)0&xTd1fnA&nNudnC(~f(Nl6(cJcpKD>vv|Zu=#vDmlEUH1P+B7&EfmkCqrFni%jJ5!^2ARwSE{I@6#bQA&C4NS`)>ISW*mjKx~u3rxd z4+pMMRVHOhc?~`=FaVkvaHpZw+R-ukt^fbp6}kV{n{{cgCHE&uNg2eL&VYk+-0?Lz zq3~Zi~n}Z?~b4B|H{QbJn`-?*fW+<2$MWDNF5+dpeUy%TPXd|_kRF+ C^G(43 literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseCubicInOutInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseCubicInOutInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..e92fcd4f2cfc655b6fd4c94b756b46c6357534c3 GIT binary patch literal 10827 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 literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseCubicOutInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseCubicOutInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..73cf348b3c6199b677677591ba78c42d633aa97c GIT binary patch literal 10600 zcmb_ibySq!)`mj?yIx($XRg(j_R}jWp6o z_rL((8A|V6_gm{*>%0DeaNhSlXP+Ixrxc!9|LTSXfvDk0fDFv9PdJv9QkA z;9-LibC1z+EUa7Xk6;fJ9r_odb`=y5(OX+?;nbVSdt*PpxHjAQ zWA;|9QJU#jLC;VB5Eos1M#p46P^YAB-j7ef`s>XAUd|v4a;}oew@^7S??v_{EbD{D1)I zXhgv;Fgz@*mw0FXA1_(h2~k}EE6`L;BqSv<(9=&=`;a|OxBA_~sur7>8IU#{9C6oD z>fPSn9_$QOJxvwv6{-Z52M-^9$KAcI$=2H{au6946SH&0+uK_}KmhG}K;fNLRyOo3 z`w{^`^+BXXK}lYolDU$&culX4+t9#3NnHBV`H>2p=$p3n6B7w$<^~3nyF&F0S9O1x z2>~%?pu{UY;>(r8s}+tLw*>_?c;i2P8r@y0$o%r9p`qbj$#hFpC)_0+R`_(@&dI_e zLufi%uU0>}d~b7LeciT*`EIE;I~0b*3RHxaI&RE~o0olF{NY8EL(q|Z4gVgM90F0q zQff2ZBJP#-^{ZlZR$^kc@tHd^MEDI=*Y8@;hytB5T#dCg%gf8_NOalgR_Q3-+a3>K z3uU%_6BZV>Hr;AuXqc3gL`q6(XJ_};?gjMfN|>$6s+HRGuWBEBeEb?q-1F!4&$4M2 z5^l!X*x2Ntw^zpJGK4AyKd@eKX@3&R1QB*c7Zw+*tKaphe){z3>iTRad1t}QW^#<{ zy9!Bj)rSvXXX~yC<*Wjg-N;v3B~(-Bu`d}~G3$$c=pia%PC6+;65H>9xN7o4$+sgu zz~BGN2;0WZM#I!-<>=(JG->50OSij3e@fP)M=M_kJxH-1H0G1S+Wd`P*2 zE6#9D5BZ~SyD#%9eEbX+?|me11S>1+!napve_b#MXo(VJ{2e3g(mxZdj}umCa6|1u zv_uy@b60Qgb?&^U)nVL58CoStRBXS=q4H}(@e%=09rb?pu=wujKx^+OhIV19>^kKv zjfwa{7uJ8~8p$VH#mUvKT<00tyV-Zs z3JMBRQ=gBNyGZy`23@Zq5+{lM0VOT6o$at6abdiEFd3>-?z$&X6Z|7AolpE(kjUo# z-foR3B9rEEhGr4etxzcU9DRhoP`cFkM163_Zo^Iv{pzLG7?FT*{dve$y>Yz?sV+ZU ztUfG=RKT-5_1fB6Kl;^S9ja$d5x<1Gy|3L1ei1ul5n95vRd0?Mw-nN}XuKLG-K`}b zHR!T7B{RR^tAOm7B!3&iuM$$XCJ|NMJ=7+m>3DfuPi~{gc&71MT@zb{sfC5V&G%m@ zV?}c`*uPk-=_3sdjhR%K%R7TyB{>awd5Ghnr#jO`o)Ae~Y6?XO36H@K2L^g?va>lk z!%DwD`T3T358YMjWqsJBMhRg&@4I7B8oZNNhQim026H$;{j#++?TnYI?qaxz`#;}-6+HG1% z8`8}l*k0J28{+2@-gj}yE*T+inw#(N@ObjGkoxF0 zIBhMajQIQeH}HgpgfLhTK0xH9~6x$7rj6A&Cwt1HBiIL~$HUac87z<{Ut4gx8 zj^?3`9Z`7`yGeFuC-(|nRhysN-cBA%5TnlAqhIyBrVN~<-met7R;NAox>rZc=Szrh zRrS%`d@(+b_;6=r_W~B7E(@e)+gLHlENtlV4FTJ|9k?1oUw^`b+7&Niih+UQ_U+pf z1m!FTbE%nMQd7GHU1mA-y}C`!y}mgVe!Y{^GIFrLwLv)Mcm1w@tbiSd?T+$wyUqEZ ziQ2L*JYUr7IeM1j+ey4QqRqz1Vt0NiP#$b9XcWmSE0b=jJhsR|gLw8P))k_=X$C|h z0l?w~t?EpcYrF_zgD2#3W|C+!|C`$Jphr)p*b%vI>of92%tNthw+i&kUaBg{R0dVN zbCpFG$3+=bP07p-#MvQNBXylP-qP+hKh;Q#q%AT}!yB*Xb%lI6c(bx%jnWCe9^@e~ zSmvY>(pV7$^)*5w&7FlZ-SN)Q$itYH*15U3pduAdJ0n}COW?mlcpe2Qr1wJ<4NX_# z3TZdbJFhk0)on~nevdmfG4Z*?G&Hi!()Sn2|4Cj%hZ{_GaFg!w)#QcO}&7? zL|)gQDh~iSGeH$=$)#mvQc5~@DEVL9Tz_I;^gLU&%YXl3*odDNRd__iq#b~2YyH?l z*iHb53b=~mZJRjhnONQr{tG2b<@iz3Afg^_d1#_X=qRf+q4s`c6jW6H*}b3pvj9G4 zF<}sDkPvad%nbDgpUfBjYmj3M;Gu5%z-<^g3c%&{hse2c2{9d=7#2>uYYtosWoegEv zdN;e#6vizjVk$tC7$pFg3aLBC*dt%k|JaRiCnbKJ2QbH6U^%tx_5;KFaPK?qFFC7Q zTU#4>>&}Xag|h3gF)=;aH9!`@)QQ^XJ}|5Jj^p`7ZGQ(r@KzvRMole@$9?r{PPtHz z@y5JeNx!|KqXgoG+JhU{+038K3@0>Ne57HI-KQLX&yz~1I}ywhVSWiBrNDgt!vT9y zsyml7Ls)9(PF-;0MKX5n_Z5=+oqid2S?UcWj)E7Y7|u^1HNx(qNu>ZO!jdPV%6T5n z>3we-XHLN3ciK!7i18_e6@PAXkuWF^q37r4=R!3IK(Fex5OjMnJqbUrHjN>U_Ql1; ztWJ%`wKTy=XkJ!U8EqG5XQ2*y;O_5dRkg*E#zAD)2Pmsn}bv3}PJeFVk&U7ZVe^>My;QN_w)P%a<=V1p7GL{9MP~C>g=#R_LgX z2!LMkaxn}$+)2RRZIB)b2jW$l(U605=_MY77UW5oyvdUglScg)vnWk`LqkJ#b@hw* z_!1Hls4M5OusXds?%pjZDniY)#|Kc0Oo@&7Ey`JmgXJ>28i+4MklqYdPdE4cct1p=QGl_8pb?(6P%K zn`oV`R=0`1gN-`T7wE3xeL<+N3bF##Z0UeY%=pw2d0$ySZ@8&^qate;HyX9W;4HJJ zjY4haOSrzsEUwlKQSTj=>YXNOxxsj2b*;U9qua~zLtD(ybY#w%AdzbXi}N*;ZnrH= z=33R3V%kFmKq4irsxPMO^=3xK&?vE>aqDa_yb@lp;XOb&&_h`}XPZYaXv~73N=$5e z{9xsM{<&&}-dTC|4>60`FAcg|Cz!Q(rT3axx32|y5`N68^G;LtQiTaI`pe(bln-X$ zy~?;CG&!i8h5g-}{SuRTE9zw{ELfbZyYKhCz3;}g#^1Cbc0O=I*@_dMNJ4!v+rLmk zsEcbf-Qvn;w)o1jUCmEnKDAac#Qb(2_&*FMkSSUaJ#QfL@56p(W9nK%0v!Z7bg-aW zkP>;gy|uG)=AMR>1|tp=zM9VTDUASeh~r{Wnjs1 zhc%g6&}M0Pe>I3>GwFgk{L1YU44CJq-aapT?$(#*PBR}o+_D0guBmtuLb!^8Nz~G# z5ut8Bk{*XLv@{x9x!Kheb+z20zM-}KwX3M2U&(4nYlzBt{`~^^;TO8{Nc}vMoOjBZ zPECw55p`ykiO*AnEj1pDI$+H%|M2f1^IkR_**TmZTTD_pf`z$+F6)Xb&t|S*6>7L#{$OmXdd@pV%hOu-+B#B zb7m0ILKE=nz0*P-tg%U*wMV&*dcJ98j?~DBw{_~kyS?z}d7-kC2^Z$QbKZezybR2< zC~=)Rzp~-M)K_KdP`R7=Ywx+!hm{b$He2$d^EFk4qDap`=(!xnk+dI1=2yz-oBN~J zGU}o&Rl+(Q>D!hGgx1W9mo^W#4MfC|Z!7hA*y*@mZ9TgHt(e~Zx~{Uu>eN6|Ljp2z zNyxkIsr%tY{_;AgW+wBId~Ar0d zP+5X#*0b8bN$mTEqf1)(6X|^WQJkmGKU`{#;Xynr$zmp&)P@&aMyM2|GLCzv9hu;E zthMQ@A#E5uws|CE{>@%@MzJginy9qn=>w5!&8*v*8wl3CCFixRM?vwU#U*;StN~U= znn5RuAneS9&#rAo+P`t#zGct6TnD{62ks-9aq%TvFMW z8Rm)i3M$=_mQbHsxY5G7q+vtZ!@QX9F?_|&QLctW?MQ>&HCt{27qOjOH-)q+b+7m` zAM4&MCk=Sz_2T&5*5qK4@r#7CPmqtoKPceOAE3lOFt4w*&esrZQlIY9)CE!x_ub)Q zFY+6wo)8y*y}KAsu#FD37E?a**o`rAmy}SR=K~jA@9k^#S0=eyKGPl!IenhT+jnEX zaccy1(MlyOw|Izqw?_`_;y%Xbq^Ht~Yll&IijI|W4CX(Qjsyb!9n7Cvgj2!eEGT=TDbpkatL;S_x^OrjdHMLaf`kB{q|VNAYcy+ zn}~g!Q1k0spRduWz#%46E^zAEW%=aGoCBPnkg1BGMQV*L|B{19<~Cg7$>a1?y)KDU zDOb}H26i{|YYRyi^RXpNd^W2V8G$|zy`2G}9M3+2B3{qsZh7t!VJ7k9j|oh3=Eye| z(rvE^RwZbG#Am2QTW7l$1{p{a_*_O8e7HRKhZ(B z{Hq$O*tl=&_zFycC-zCYe}lr3l32crcm})P`((7fwUpT^F#!Z~-D@a_bKqZATIAH! zt&NR>R-^Y32oz{$h`M$6^?h7r>+I~zDJ?6zXB(UG8z{!v&3Wh9!vZ6X2g~P7Og1uB z)G$#9r0gZLRt02lX_?tL`6V+G^dZzun?XLOSL=`3du3^CF<98%)diD~gk;dBKOBxq zc31K4)3~-L_2@`Vg_|I2R7+QeJK5Q7g8cJwI%4Hlb$&iCyd*zAKQ$E}VD@u&KFh75 zPuTV!_?LuNgGewQI_9D0;80jts5;cc!%9zIJ-!0Vn6l#I;^K;wO)l2Z)^W8C)D1VqOd zM@L6NHU~GB zOGMV5F8}@p(i;%#NBaNBBrPpHF+H6+jyF9$O?F`4OAg0y}vxa>iKOezHX_A-eB_1mQRe zWWM8 z?c|jga1|23$G(;lm^1`yUe4Ga9C zK&)#_$HYcV_wHl_$Z1Tc>Z;KBXFWgv+Qi#1>~S=e z4RI{r(!fBp-=28j>9SUOADt7Igvo@&v%VU9FNf$?K@Sxe2vRz>ku9@k>(6@U0Av5X zw}R1vu43Qd>ZTI(U&DQza|)pWfo=m-j)&F(U>>XH{bY@e^o~i*BpqP0zlN>W6U$SZ zQZnfJ+7@U}w8L<_s&VTznfz5Ui}|3{KlY-2j|de>7cSJ1u7q#l3fuD@IWP>F6(q*D z+_d#b{-27E0c%(7E6D%Y3?5s2&!PO|y=g7>c~?NyXE20o90L6+h~7$Hy?T&MOp zRQw^SXS{vxq7BbNgBn1lz@F(uTH>*}_EMjpeiq~Zpqlrs{~Es-I3=fkUw*WQQbM63 z6hPvA3~7gd#&e23&z|^ot!s+!&oo(vVyeB@gv6h@dSiU<;+pJrjW5)?0hiDJFHvn;C$$~cx2N0Sp<>Qw~P&R{SB zh6FaK(YEYxyH$5GuNXN_Ou4GnP!tcNtlp`2Xr8h2aI-WRU60ksAyWswj{{1WBcT~} zW(DPN?EHRe&w$kKuLn-iJNZ+5U9%6TNzs1|`)TQcv?VG$Chg@>EaVc$%IUC}c64QM zk`(X&hCGA-8AW6VTFvxqNsXkSalV$`VW|U*$KwQPVLjJMkz3Zrx!fe7eBw7ieYHmL z@ib15y173)7Q786)_0F|@PTbBA~*8Rar7~ej)UeA0)cy(l8K$&4KyJ8EC&V#6hzzL zHy|0h5bfXii!`QXzc$-19vQjnN`NOTH+OD9K`+40-d+_Yr8ntT<28Puy)RI;!Bpj~ zF;CNQq`F@8)$Y6sN=8G{k>)6F>EYRGRp{?h@#4T+V z!M_m_V){kqlxbjy(S3%-j6~L*}{Dh+C91Jt;bXayKys_rf`>t3(mahQt0GPvPg) z)YJfL+agn^)HM#06J^&lHAC$efpKk-5ih4(V|<3Y763DY{$tz7T=D*Bz!Ina!{4mulAQBhO@$*HN#+}zwb zIxyr4$1;mU*66-zs7Y&l^O4?E?qiy{S`{OpA-MtXpYihYLZhAGlw)XgDT_59<+W?q z=JJ~jnc3L#RatWU)2^YcV1?*|sqdqe?oO@!e5%J7S5r;BzwF_%yP1+dUmwiqhHBK= z->wy5m>TiL)6>&bNJ&tO$2$T7-BROlWi73}l94^OJ9jp=Dh^zLx+iXF5$gWJl-wRo zDg{nVn4%RpWFa=%)lESmc>PU@{nBu@p2YL#&#U&EJ*{pf;3#@D>69g(3khT zH|7969TWs98tU!cnoW-JhCs#)E0fu$vPLK}T3@2uAi3q1E95od%5!vPb zI7-;>WPVQ${xFT@>x_^n*YtmRDO(OIbvl)?HvZGo85pjE5HhIbV`qAB`oc#c>GF;O zvh!?A+0)LYWbZ#6Zx+O3CeE#69eLu(m_P77B^w2eK;Ef)*2EqOd~#EJ4?@ zoOgpsM?zyk!X=R%2am|er#DVyzmI%GUj@(mGXVpSu*-_imzOvNWCDQ8j<@HYmZNV1hvm4>3DqV72?|1)D*TT`<*RAR*A-$C(Z033;GX=z1>B71jA=K?FsFHnnN zm>47k9Fb#VW50eqgKPAczkg30z_??L1CA3rxXwGJt*(yO257K^3=V1r8B}>^O{cKO zUcPn`NDP$VXqld#elEZFHwi=_s->{6VUcV}My-$}%4P!%FY z_Av|h@sr~aBJ%$ajPYW3?7PRUB`zVM((Qonx4nIQSV?_^o={PtBCj)5fwbu=>Yoe8 zxDH(@PuH2ZFv1vK;_=r<{WmIey+Cn;i2@o7c!DU9(?Q2I0A??JMieRY{uFI{KgK0} z6Pqp|v+&RLIt7_A^^PuTp@9Cjud)Ck4ii8SZW3lYA@ks6&=LD<=CMKdgW$Mtm$}4b zD8SYavpul$^;sV$X03>IA=6WI-7f!pLqCB|+Wm$;(+R3u8ITLs0o8#($H!nkh;zOj zuAg>+v8P*f;B2AEon_+zjY*8_&{S-tsW9!fN#!F?~yy%b2i3Q0x-(0f&^IEbhNBXcB1p9~! zz=1+ZJ1glRqG7fRO-vhzSsH^mnHxC%Q6u5wK)VAE+aQbVYr34L9 z-Es<+!o?)KSBG>KI}7`$Of6)mz4r7(Kz*p$%%&%fNQ+Hr*6v?l1BeEN;Bxoqkc6-| zAHcTy<6mls1p_D#zo)a=?a z7t4t^05_e|LeEQ&s=w}Gwx~G{4bL`PD2qwY4|hR1eozZ=J~;9Nj4?`Tou5?(__O); zZU0$}3uOJn96+QU2{s;$p?>W z|D6()kl+kMMQzl@nQT$jAX{fDMYg5zw!UDWVb7NyeNl8gwjA@?;-y8pqfAk6K zFcAGKx=#okpqCEhSU{gncb&fW6rF;7PQbkL>mit<3q22l_cdXCZOtoJk7DUThgVib zMMXjaY-rQ53@V!3c`d)iZLwsPy~J&Y01N9TBv~#-9N8`?+D^M45PBU?)&B3xXe%GtRTl$1i&zhLU>6nDr4Q^9#MD!uCy zy2qk`hzzPpuo4+C@b$;#TEpDLf z383WX;^DdZ(1*e|=!5U)haQ*fE$Kgl!U;6GxS!KjbrZIt3S}P8TTP_TlsRqr-c9eI zc&9Y~s_W-Z#8?%MiLEqSl|gPpYb*7Q8;Mw<%~BLU*elQ-pKIsm&8|K~rqV{QSx1Cy ze+OsnK?SM$By`Lk-)XtSn>0N+?3BU%BCaA8W#y#AL@!8ka&o~~bZXUgrY~M_v9rq! zSI~iNgolRcV4bpXF@3vt!xK7 z&cX;>pkS#djfNx_ZvZRQ7w)XoQco7F+R=)L#H58ZfVxBlC`>L!nB-un+$AE)fN*SX z%z2RcV(plfzP^6l0w^=z!uh{{|E^DR2UJLLY2f-8s3%QL=RoC^NB~VGSKHX!q!P4i zdX_Dz%p2i%3;(}%&+h+vhtG^_e?3_QZfhHO793WCgKKcPPrAm^ZFj(J4;KV=!Wl3y z1L6RJ4etMe=is~>%ngp0VR(V_=#5M_b7SLWlrs$TUX!Ga&00^o#&c6sPwfBY&LE8_ l^uKbA@c2UF%jO>kxDD`{D|~EqIACI|M`E(D4AFnw{|5tiZsPy| literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseElasticInInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseElasticInInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..c827ebe23f3acfea90a3df7fbfdbf84493778cac GIT binary patch literal 10479 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 literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseElasticInOutInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseElasticInOutInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..3f605245df23af6a833833ae3d32f8f99cf3b0e1 GIT binary patch literal 10975 zcmd6NWn7eBxArI?2!bGzN(<5@p`_rD(nu>9gft>U!zj{-w3HIk455U?5DFsQj3|wS zFh~vEXAcb2i-|(f#Nl&SmB3VaA$KC0TSL#VoD;SqnAi}BX#X#^MDHHg^j0=HW_XQ7u zq~H%3kdRRpJU|H`kS7Eu{uhHX`RT&~z?`J_m>s8DVoFL%o<4or?h%5}D{L`Z-PpJi zr?ps*2Z5HKa#Rxa zkts(!b$)SikLfm=kcP;lB=6Ok?t%hd)!tPLvw8T$XJX5s$tl71ipM`Fsi-E%?zOc( z9{ccgOtrA_1)b46j|6?^S?OKID|)R%eSPVCj{{x7ekaupE?M3~i7UH^i;3lSTA7+c z**3wRW%o@ml!Dc5a7#-iN#@o(bBbMt?osPfKa+k;o=B9iG@GzdytfE)RAo9z+ zcPi73d3$H957vVDlcr|p=H?a_MvyLxsW$>9JI2Pwg6+pwwv=z)jHxyyF@f)u4&=@{ ziRqDtRfXi0b|y<7w2O`^wqhEnOsZU$WmT85r1zBAx<$#R%Z@&;c;lLzn+r`wM_Bh4G_%;++I}3A zd$yLzV!b}b!4ksXqMByS+ZlYtVC8{Uv7{TubmHlqFxHhpsb6@~n9Q?UnO#1}mA1CBn(Q1SzK^N) zc6HTXQ)gvm#i&ZSZYY)w^2`Z#--sr9JKd=`XPER5s;{BJD4D^XCG}Ksswsk{Na~KN z1USv@PwGh$r;Yhq(fa$hA7#buY%I2F_mtU|6R>a}iAtE9zn{`3?Yfh@J&-DbP=46+ zs@i>xb5jRhnZ;j>8Q~sRS1pUq~Q7FPZMGTTQs?$x9dpiC~amNdML&DR9qbmjg$lVY?99eQfF>#R6EVj z?K$WfZ3>U#k)33$D~D#2T#8Fd(uFJ6I?i-4?e$a1>=X z-W$e!{)A#LzmybxBEiIMdL}L|uJoPLZbYSR`T6-w9Cs?6I8H4GUZ^{p9ZTAgB#G$M z?(Xg;t4f>3z%RO!an~*Rg~|AiV_hkjQMPnTvwL)uFKh<+HM`pOStn{^B1~HTtF=@6 zS(gSsla)IlxG~>0@*UsFok1e9b&No)5EG5_Tze_3xx{BwL>U#M=Ip!-SHm zOL3|V@!hIN_-c2x=p#xav*qR)_)O4is(#kI*PAK@JEq7uxwvAeSBoostNgBxeSP-; z9eX)m{y8fVw{3vc@O{$G-QB7Ims{?t@y6!aFNkAB1YGTV{QU5?;LRS*xTD@X^ARix zeIzU&na`MPQop?H$!6`XLI!15&8NQg=B4x$D<)`$jXb|aTQIckHrrK~g;%>_lPf*Q zk>CF2LvVt0e1Q46C*)aP)(d(`PA;k~cV4>Z17D~-J^faRb#!#T)5pvEGUcl;)g%-} z#wZXH5}Jl`^fnEcm}truL&n7^fh7Q-#9~Hto}}JwI=%y^7dG+5PV_}>7+&U6UO47w zzH45IcG0{%{1T5`;9!amep-6=eTiU^NM}=1Q(If~LHDOm&_IHEDk=Y|)5*;V4BEJ4 zBqSs)ZE_Od^Ovr)ZhA^>g(1Efa#Ok~OSQ@XNot>SUnga1f@2s=4b0%J@C2g`O z1ab*MKtx0|I56P&__2b#ylhg@;QY65-?X*0?aGj;sj0cS%90~JJv{>hEf!}WkQ_!? zxkry4l@l~JHrfwYW-O?ys3=-zFZB2KySTWl(BMF>2Z!*-t*@_t{wxn0H7}m}@gq@% zZI(^$rRP@&B>X$`tN8fl=H~e1WIZ@g+KbRoH;JSRqIMT0T)XDh{8dJWhCJ~h5UrEQ zVLKcem{c>+^84O2OVxGrX=iraE>a@Ez<+bjv0 z!_^*CWLg2(AMtXy>t<&yxB7pq=-j&HM2Lu}g@)Pgy)62hKWT2WwsTeFqn`)#BUcS@};Lt!t1$x))UwR_mGe zVI%Bn9@WbPcL};1#%{Om-Y?42R!a0RE^s@{^uDTDFmUK*6wD@N!YYJwE2m~w(>=<0 zX~3(n#2JjtLTSxO9ktOrzjX@vFD@n-LPxu{M)gPlM0>XeEunuI>||{y>$Bv>5m_t zqS1O1NQym|7zuVFW$Cia56t)|fyup@@*AZwtoe3XgPkcSfwSe@C{lK^(HqL8dY&0- zbcMZ4l>Y`k6MG3_+(X%^})Fl5w8#@W>5VdDGN|ExRY*8}l?= z?5k$*x-XM)i$X@2MwF(Q{MlIE!Yn<0)cm_-odlps~ z%KH{|8bv;Jy=-9U`}8U^Ij()EB)U%TT?&Nk-p{s<4gd@clJ3AW&SMo=`i{GNcah=r zPmTeB$>D;ObXHsRayFgr)aXD*pM(+zULe7PthaC9=I8T>in^GZ;vRkUs)qh*{(6#C z|9gDa>J+iG&;g4q*oRi2^i9f!hK55^3!U0}16MG||KUbNGpdq&up+{T&Mz2QEF9UH#ypFZ4mGgKT)*`VzA|MZ&F;M= zok!Fi7-}R`wmk=z^L6rdx@KBRkW@^u22JCc~$7XoW3L5b^Og%YJb_C04xdVNWY4Fyo$>^dls7 zSj*wT<<`tHuhEe$BXL(uuF>N8DYnoD4h$S+cVari<+W>V^LnJXALXsfliBsu0TXU& zd7URhXVBUjY^1C6h}NvtCn2u4Wnjn(U(c&Jm0basu`>8EUvE5>;UdduhIb)5bef}s z$UALp@I}>=pbb>zi`&NMWH_6HlHV9W2px)Le6Q0*qQoAegRCvO=LuV~@YXXUyl)zY zlFBKGvUzLe$FZv>q>oL{u4k*m)Os?SaRuX7m3kifcPiA*b31st*KtIBD=0Vf-|${- zaC^=IjEszl%cV&9JoK_MWI4Ib?837I_e|jpx0Qrgs2+M%2q-LS5m%7wQM!=Z_o^Qu z-T<&v*hraRin?>(0qShO<1zC&R~kaqF!x42B7WPJds9!qk`nc7YW`_8ms!z^R8b>g znp*%giX8Fl%`(;{x7J?-q)=nuXa(FY&tsbwDh-+NzZl<`!p!vxIRwGBwe+Nz*?*xU zH80ofNz^sfbiPY}Um>QY7X2>@fBgHIavz@S1LXH}&w}%Q;bR4j7wuQo={=Sg#8m?f zf8SfOTf*$e>;%tn7X5-}Q`ySvu>H2s0abq)Io)3vr{Z)5&pB#qSn0Biz!Btr3^bTW z48JXI=Fe{Wjjhis`uANPv$&mI3Z*U7F)E|&V1 z>ES3v-R4FdWM;vSgSvU^kG4CkRf&|MA&N>uFCDS;Z>vOf1Un6S{O z6#!P)h*0O=T#i*cdP&fiN>H5eI&fTdrp+_ft685k>uWw7P!4J0q8wg3WZ?KrdFjjYw50wy!f5v>u>x0F*Gi?1* zf(F=|)wJAQzKRx$jj-g*Xj-xf3J>-q*$NZ%gc*57V+-gyUa}UQVuZuEQ8d~jh!j)n>TM- zTXWH2?O7A^jV3nm?SrO6&Br;YsH+?0>%!o6cD!6%)}=cbx@$>VWn3y<(Yl0FI*9^Mds?Ty*UB?BUIddjDCMIXcxKIz8J;)m;eX!NpLx%oE z-+~0~hsqxeA5D%c4(CO8Sy@&H3loYL5*c6Og?f z=Y6i^L0CSZH7ShGdtKkF_r~Ei%T?6WKuHQQK|n=G`SRdFKQ-*2J53>ggpTl_hiaNiAtLRl>N>QMP&{nNRi5!Gp`c^k}Hk;Jh&YpP*^UGDdSfJHpP0^Y+`Iaeo0bL$Zzd1*| z;Gf2^_;xho=T@r=eD$q=b}?X{PIN1FoGzjJ&k+AsKZVkI2hb=8F={t>#ylq5`KtZ_K zl#`qLA_IehZ(piFv2u8;>R~{!lfc2jF*7qm*YwX(kcqvvr(+SmdiAP^2%B@&qlwQS zpW&M&gkOtmpB9I3w4W8-Pu5=o9I33*T?t3)0&-YQA&#;@?DeZxAnBtKldTD-h!i|5f5(Bk zldWw`jRTmJ!E04hK|$gB!4ItDbq1^hza<|kweDYpAMD_trEl8X-``i4+JZhmOkxHo z&n-EUg8--OMP^*(3UaGG^}>E5Bcl*3qzzDt`JaqU{OZ-B1RU$D7#SN25I_Z$2Xq1w zxMPkG6BnC!_YY3lk_EXPw_M7IfBuYjh3{mR&Y;1VgU26F{M^cU@0W2ONk%BOFX&Ja zG@>AN2pb@eO&u?CzkAk(YH#czv$37eAIvJ9jV@(fINafBZkb(2v@Ug2 z{{upHsy~>yN{dfmY2IP#Nh^S8`wXo;!}kX&t%@Bg_dsxsvPS;p9ai;D1_uWV z3JThY41(Ju*(6Zkk@VbjaCdiia|0E;PSms4uU}irJWTKhhIy+c*FvJXgYR%rYVq&< zAq_qK{XZNlXfIp<#dDwJ(tlUu!NN8R4aU&`64|%FAtB-M#em#G%K#U`;;i)2 zOxZwdEMLCv9H`j^KPHt4W}7A0l1&gaP~u}}{+YarjWTDt$)vn@^;I$#Iy*YdEi3|5 z#vChvp4~k>))a((qmi~CBAzNie`$|}BpJ&-`TYqRta|3xR#yX;XlZG|{Z!vXZ*MQA zu=58ZJ9}nkh5%ep%E;*H#WqgNE-bv)=N?zR1dt_42r;1cCrI5rPe%AJ5UBzb=J!g< zXz1yU_h;V*gKNI1=1Y9hu>qarKvPNy*ob&}pk}K}0V_#3fhZ2(-fRzaJE`{Wf24B@ zQ7gmJsG|s2p2xd}uU7K<+stu`_9}fk|K`n&V?L@y#po&O@@QlnYivh`&x=_1Xm&qF zT~MdOtBy09h7j))brt>I$EK;=;t%4x-t@=NgQ-gI2r2#J4Urderi}<|AipKlvOMlc z!|6T8xD0Ar@!fGhS$j0^J$7{)H z*VV?{S2NwIjv>R|Lb^8etH31dv5f~^Q{~Ys2lCixZV|wPkO`vh7z1O#54zkVS3`9Y%IK&*cp#mnr8BVY$H5Irv1cg@`8XA$rc@#n~kUtf@ z)Ld1&5wWOMyD_O#HnrOWii$AacX9RrF{LHP&x;2`8#0>{V?1%f4>~L?ZvUDnA=7~S zWlfC~pzmM5>T7F1BPc_V$lU~2V#6(i!||a7pir_nUBG?CZ8vR#1ho`XT9GkM&K3A| zlFj!1QvP0&-X%`*z%8l5M>#CSKK7Wvw(*g$n#q=yEFSo-+1Q(#q72*Ax324gyQ$2q ztbAQWrL?GMY)p(FfoLhoYrBKK;wMW`!|#_%1+EOKZ_n4C3lNeNj91~-C4bOf{ldDD z)BqA66xcgdvbs;EuyjGGmxK7BR$g(z@J5SZ2$2`az zQkP`+L2E!oQKoUft-{ECiNrd#m7JQ$fpND{;x9Hw<36wjVRr zput7qxkxQhCG~xx(={F2tI)eoGd#?vNI*hAVRrX!N?xAI@P>OevuxIt)${uYtBZ}I zLsp-w4UBhN_X7@WJKGPoEhnVCcBiEG3-glqc6;HQKQ>0Tb`DlM-eZd4J5Wj`N_Cze zwLj+%z8&n=E?&A+bhpU&KyszgWq+Ju^u!aGmZs)Yg8mr-xd5i#-97mJk8oYf_CfO! zLBUSc2=8RTyTLT6>iMWdA$@lR{V&sB#O3Dv%GTfQrVr8dJSV-Y)8gp%UAavr7sVpGmL-V!W0b1ST4*uKFI?# z@(G}kKPD%$cfhp=ppxUgOBYhR(Hb?6g*M#Q<}*O8&32QCP{0C|g>^=yhm22Agi|mN z5eTUk8|F(&N`f>TTyqo@kN|uoOn$#R|GE|y;71h;igNSq%9B~E++HGwCu~Q39IpZF zo|M8mXy^;OJF#(FE?Z1QQa;5I{~25ySzfToSEqQST<|vb?&cZ&(jAW5sB{o+)#Y zICM0?(&~Lb%&y0lRIb$%_j}w4nJGTk>TNusl~r|5b6>tA7dEEK2h7J@L*N&);%|2Fh`mrLf#&8%lWs266YI4CTE|eao0(s7=Mg#E zZ_*YOgBN?Sx>h^8v_jk89w4+7ijJ=XRGNKkEETW!NLf(P#9ED@6Q`nnPTTV2!JfniS91g+X-es zdhf~dugF?2th_9#ls*`!$r@l41w~yDKvw;hO}eop*!M8_DeB_N>Hc4O3jf6XDlU$l zle49%>Fqb0LgQ*ew|{?kh^=>E@4q6oeE&cB<w z@sbwyDo=^8ZhU+kkRh1KKn=Et)mZ#J8c^UK!Q35@L>_7BQBy$*O3GkvkVqZs6;$0W zQd6^YacOT<8y5z4%{uw3gUTFmV9?f5xPKA+yKsTrY^40r#MsAYn7Z)U#Kgo!&<3V_ zw`@>b!?y=7ckec6sgf0|b3jxdUP8Wj{ygt07g_qlNIofWkr_=l{*OXc6D|Of?CfmN z0|JNkmVkC2W?2YC5sxewl|DE(J4-e$EF{#2Lgh4qeNUMrcj{?sVlVeGxjsHVpg}6E zv3Gdb_MLuRq9SNJOTYHQ!O^j(yj-77q5SPz#;~i{iXHdH;%II1x=4L}eXBH`uBM@( zm0b{aV#-=S`{5}LCJ$G~!~_nSzH|)&`JI`Q>js-XIXgZsGPFGpgTY>dMlp9f zmJo;bl;DsMkn`r$2p315S`Oi>=?W3x;|u#l3M7RS+D8UW14&Eo>yiZA(6uVU2!f6r z{L=DrcCHP;v)kHK1m1j9KRADlYnEzdWkpB9bz!I?Gn4Ib(Kix)qRmh@?4kl(TW=gd zX|&>j1DQOD^5;ki$GI;&1{Ee1ju|N_9~L*FP*%@C8=2|iNHt~?sADRT62T2Ek1#=A z-7#EkhDudjGvEO2cpw>=dO~h zP0f#-L}Z^k60(*=xCLGfy~@*V%dM;wn=FC%ERf!E)hKeL+R8yypGy^c%530g0gU03 zy;z__z5e|95z@it_GV5A#N9I^WCb+QXL3O!opDmkA|a?(oXJHMxv&2;FgKr0QwaM6 z?=Lj5u%Llb^NnXM`J*BYRe!pWi?W4XJT!=yjBjku*fKbD=1vjPwqSZgoX89!}AigVBaq8 z+}xbn$IW$~hYkBZ!=;YX)6?gLJAV8K3JvWV9lgFA(%jsfpPyg9PD@Xpl9WUx;E-8b zI=H;eUcveO`}Z|>W@cuxby{26sy;J8EK}C1`1treBDKfm?jz?ipF_wRCnk)ntg`dx z_LnPj($o3vrew{{(+`*&%kLGbyb z;Ir{sLbxyF%#9!Lovp>eh=_=QfB+$vEh7_?UXc_wYiDJk^y^kk%@ z4h{|x$!5n7EN$m|SSdssDx0{-*!7}fV)Oza307@Khx<6Z<FoM)InWl-ZMq-z^*5(m3zK1W`w2&X*}* z8IH6GCO+Tej`ou1!+9Mx^VbB8jg51kvzXmucrEC-G*scX9~>MkEiJ8A_6)kibE_ee z*LrGlvO&MIqr*t#+Riz$4FfMT*B$lnyj7q8VKSbEhK7ucj4s$i{ap-IGB#COG#^ONJ5dj%*l%3xxa{Puo}-6Y{hw&#B5G)EzIN?e{`DXd*IlwwyDN3| zIb8C&=fxX^LPA2;GVE=h>h~-yqQdsqd^bM)@Usb847bzPX_raW$BCphyy%jbGQdWe z%6oOTe^TM~>(@cP9941&>7DnS))Hqlg*tkANOzd*gd55}XQX7Mra}a*;6e;|0Nl5H zLD;zH=6tk(2_UD;`$o0cM`qm)P&7&MMg;oNnP z{frli>xjkG{zhL8Mfv5?$}owEhRO}vplX24*!3$oX+{%^=gTdm^hgy2=1BJpym*9z z0du0!+G)|5y3y3(wK!UNytg@@yAndL;J!2F^RdFx)HF3dUbN@e%&CJZ=uBNH#Pp$82X=@wPUKxlL zcH2{3l5u3AzI=w|9fYhurXR8eeQaWql9+f_zItWN&cE1x4frFATja;DQCvZb1+X)`Il(bt4j~7i%Gc1mCyH1FFdO4BXOI*DLT~XP=Xh z#PPp-cq8~o;j>bn2~J!2_S$3Hik+rSZOo_C7_7J5I6Ts1yK ze^Q^;V9+T3!EOl4O$9c5ow8?2BS90^Z=3;#Tl#mL^l_osUpxFc4$csC-!;U*i<-Nqyr%w}o-WgYuI@D20;fT`1*m8x& z$Hx%}#2WqVlj(&DljHHIfwg8X3}49?@_N8cqtZgGn(+NhkB_!1ePZmjy}3Ff zmxoJvZ{0#@@$vDI)BXqct~)Dng2lcPWhBmzDPr5`t#yQ+I6Idd$n4y1YTid9zVcfH zj0ni{hv>WkWDO#o&mmA6kUxlcf@I>qlsKSM5Cbeg9*DnQUS1b{Zf@jIQBeutaL9!y zkYQn6mi8a(Sh^2nGN>JqanP-PDzgpLueADw7QXZZW~Jlx#3w(DwZU-|oo z1P2>=#Kpz6qu`#ZH#DJSn)hM89OgtcB$8^?2({-B4?J4tUod77PZ8W;65Ak>8=@ai zz!A|X{(jX9h~WSIClUx6BlO+>?N4LrT&q7ukGj-*C-2&IcDBziQmhpd+#`{+M$_ZV z@eMI^+oT3H*j9pav*DllLg&JtWhEXUiQAzKNI3(Om4#lcL%cE%x5kUo z#SvzDJA!63k--b!Pm7<`33oc!TV#vBzuq!pDJmTpuwiP_ub7U*p3MRR!h+V8LyTEc zSu{p0;XCZ_7O4xu^Amr3JpJou$a#9%f&#lZX^Yw8JH9$)_-P`!z_LU=eQl676i2Tm zvidp0)gQ<2IJ&%?gXv11@E>H08De`$6hHdj6KA)lapEHlj7xp+5(~jqY&f|B?21p? zcUtk$NPk!A$tnvWy;G!JeQi2skCVR+a2L_uzBgZ5Zcc4x?=z@^k>Z%Nip}r3{J%Aq~wHFH_WlA%2DL1+5jq($vEcbqi zS9eu~N|Su-$CW>)fK|-j4#}E?ujK>fA>KWw{0C1ctm>Tz)rjKon5IW>F7Mm-JQSFR zs=7^Vs#NJ!wF4XC?c#afHfEu^5-~E%=9*LG3Q~BedD)1MfxV=-ndFEFaObyDfHx-* z;vRGHFJ+!Fg-ddjh>cP@G)NBlmg?DSjg3ZO`lh@Jg z)#C}%{GR)zZsdUzvfzQkz9#PpcYv9UF|8OiN6@Xyd32g&%i|;u9U;A1ImlT4;D)}v zbw-ochm++x>!IGQ@w?NRf7IHS2+Bt0?YK2x_TU2@abqCUJcIaWuD=gA{@CiHeDx&D zCd*l-x_a(Y6}=(d-@oDoDbMS9g!qg5mT=U3>16v$?YoB^v+6H7iiz&tZT+^>bPOAEQ7M zA>QTigS)>oNT1Q&c;-5HckyGO%75kA%{6!41ba~Y@1q;3i}Ck6l^=OJ zcDf_&#}COc)(QlZR2Rcu@<{!<4nsFpkJDG)cUtPE@qgL==#fo@DbcUW*AlvOkxy?(Y}D{}hlE!<+9#nIa3}R8ak_w@ZO{YbefGS^&rk3CjC}E-Xi3?V ze5C(acg5~nc;p|4BkTWZIjKO`eq2fYS`Bik*3fKy;M#Px#66@a+7qG`BtF%&fDNhI zVOp(@o2;M9Gu@~#=ZSe4@wvF!IQH|cKqkf77a#{KecyTFAOl#TujIRUYIh=@#WS@F z_Xdn5Y0RMg7Z64O9#S+sza;!wrbtkshT?#Je`_YiZ({}$PJpq=GY}_ZyLh|K;mPID zhjWWzFu~?5%QNTI9%?Bk$o$&O+>;qT+--&Djlsn$&RZq2Nyk>#BcxS9-PGKrIa?I- zDw(KL9`dK>LBKX%=JJ;<`)p?W+6C^!U-5+zJ2NPuyLBzbJAU}}cu=}zNMV#s&Ft9u zIFh2n%!0hz+e|(rt+CxJ+Ifd*IVImibnmSLPxc*}G9XHQL^n?XKnkP}t?2`cq;xKK zV|V+EdhfvRh!*9Fza&|5a(MOl=ks*LWh8dpf4~g6>TNS7?YQP_!1j!Sk0Jwgx^$9uFGk1n?zsnu}Wh zd}0?~K()Ch)E2^d`y6jmXK@G#Oo#2Mo!!-|SMzdnV}x8t@nNCa(#TLhbq}uE2iB}3 zj%tY3QZp1H<8$^($Wx;SA_w#t*mL<#86(;aVR8hz9j5iEs#(c>yt_yXFB$LPUgt8- zTzT)lk)t9iP4?h=#cO7Mlo#WrHNM>AIop zrrNK^6cFi~i0(PdWjkl3irCz~^o4odnj$0D%s};7m)UuWwPDnl#mr{iLk-6LBr$(TURS&MZ`4U7t;bKAao{ zQ|;vlUZSHx@U8yHp|kBm-deaTX?&0<|0c!ZOmcUN&JGC5m6)hI}EenW7089OvMlhBgy7s2rJYs-a5 zuUI+3_idc2wYlk(Oygg*5%VUG0{7m#An6Y95rvO9r?1R&6sETA#05b>H)Sd7#xb)= z2Y-#J_Hy~z$>xHTwR6W3J$2W$sOkE&OKsP$A1_y1bPv~Gl@;QJy`inuE=8u4mW(MK z)qJB$sXZ#5$to*tr`|$Mx$acnI;O+FmPyU;Fu7ZN^$p5$(PIADrz*L3-`<9{dBsvU z@GkCL3KS#rP82GYuiUfSokt1rtnOEBk4_wwDLU2f>xLcY4NVX>hFCIEh0&`PX0D6P zz1Q9s)ni+syC8X+)LEtFVhKqPVIMnf;YPYa>6xedTN5Ah8!Mjh9mp4`4No0>D#9Hx zw>r8C3y6b`t!S%c<=)zA^@~3zM#y-1%Jda*^O}VZu8Q^=Y4<7zPCVP%84eo1o%N(L zmztG%lgnu6X%)$ouecvVt)x&*8ItOTFm>dM9sZ3enw8Occfo!#8NVcHS6*d88XKC z2!5T5UJYE#I4~X3UvB3OCP*0ODI=|oQPL=F2S)_=AA)Qn<)a5=$uFMfF}yRqZjY zy>jLd5+V@Qs;bG*p9REYcL$w|l-B)>DmWW^SG#voN!z~HNJ0IJ3#pSQ>F;C>q-C)| zSOSoQRFSZ;QLQoMtK^1Gm(50HV%0koo4#m8GW?b!0&oph^Mh(UC?cwev z@~CB^B35)D?0s%ck{54x9_=ETMJWtY%Z;7YegaLAyCR(t=|@E-Et4+b-cPFa!<=QY zKOGa*4!peeat5Z7pWvP=;UH}dWVm^6zw6OjG0R3f!K+pnuVRe zD-jU&cl;O&^`j3s&d9(1yn}b;IISC-^HEzn9+d@qL$BlU(})iXd*LK}QKuP%LjJvi z*3WBCk|Oc)dkMNWhbkK*vX?YQT596I0ussvIOaO5F{~mNN|Nijpw>FHq3Ge^&ScFK z8f8Rca92Lm^4UF=k3)WYxkkT>9CSAL>Pbpg#j^{S6lFf(h01n$xrR;1vU%K;r!XD3 zDvI!URQ+z0O%4;xQ*8YrqJzlErnT4bqU?{J3YMm3fE@k9$32Obg*^(AqMK45$81a&V=$bB(jQu?&v9&t+G0CJ}^en|1f`LP``>j_~B%up)D!+eA`lWBbDOq(ev&l!zQ5P06+}$q(iBi?=_=?9dyi^`Rb(u0y}v^_C||m; z8avcOc2_1cfV{X5_Z0G6-(rnUi$o#bwI~i|EkdL(!jqT6#{bwzL&~~F{dZXw1?f&> z2{TkPs#5>xNoRPUGb#WdfxH^X*ZpK%DU9HnT~4dc%tn2?P2(axbA=YV%oInYvelMW z)JuVU^9(40VO>g|AV|&K=|rcdX#E$ZLVR%HzTa9PcUq?X`1sgWkm5EvDZYWu7zg|m zqb*$Iw({H1N&9n9NJ8i6s{{h8@AmSXRNH9be0ZfcpV%?kat`F+xS#^}Rg{3Hha~3T z+f)K&st7vQD{cjyP@*W>G*3T!(p;A**{nHDomm+1WMh#K^cV&>Uel+ z0;H2&)2E}?(d85~{#S~+SKC%=Pw_IRuaZj9*M0c@pId{mT0R}isZUPHB9_ncN z-tq1w)Q%Xof4lJxu$lLfV@ZJF_2|+a+S*F#t)#1aI5>L5bNBA9W97cCn_IbAZI5Q% zdo@okqR_FA1bAs8H_#<3+;nVvAG8sTbc&t~ej&Wd0|r3V1KPS;P~c0+q8W;W#c;9F zEfX41|CUJJ<5>li^V)>p(DLkTf4*4=Ij0BWgPKW8XmQVY687(|4N+W8cZRyLqUrJ6 zrgKI{2C;^xpYx9kf7oMCmFo$MdP={5piez*1-LKqWrlNs1_uTyAVB89tZ=Sdug_sx zCqNR?S;!xL@7>w|9*vcV&c_ocEXy$wosbTM>i4EcHaurNO7+HDblHqn<3$DV7D$Z$ zIU>pO_EmIO_7FjLMbP>Od@r0~Tom)r979#kIzWo}`r+vbk3iUvdrt(TUENs1-y@w!!(DWDHF(Me(eDDKbS_%(8LorVtMZ-- zwEzI{;ipGRo?**Qa8HmL`~x#@-URL$FNS#xaH7Q+fJB$fe;QiAIGa}daY4+xs)zY3 z`|`_|FP)s6z)Xvko&9)aOsrjBfS=#t+{1{e%db|B@MC>#EWG?NY|41)%PJ&P4(5xC z4!u1+Y7ZXZvf7N-zV`O^Hl~E?&E!9Byn=3hoXAjzN?cr=>-O#LLq9)1xBV?#Rz(#R zJ20U#zI>t;$-<{vq3#13(j;VL8T;M_3q!@7U+R{|zWcPr-XjwjDM8ME^}xxMZNHtElr-%B z>KL_u{n57qAK?)ktmhiWmX@-mP=nMtOD--haS4eqb9moTR|I2T=|D?5!*2?1Ry`O8 zRuRvOM7g>Og2w4ePO_Qsvz3S8aE$>YUHka>?vHYek# z$Q9TorJntZllChpxKT7&tr3i%1$ydBfbG~+^M|_IR3&0?a)3qIYuz^Pnc~C94j4)| zf*xd;{~R!DW%p{>fn-BkUbn7)RiMflHFc*P@kT%l@#yZ;-xC{&cRgg$e>&XIIku{TyMR2pXm_T!YbP-w^|vO7&GJ$s zS6fa$WTq?hoVS^@|m~RAe3V~sTJR^iPLZxmke{|J)Bi^t{^>Wy`!^; zzOB9zro$z3UVZ#OVF83lRrREMb|F-MI`lN6tiP2idohOQ`rpqSVD=O}7prn|lL^^J z@i3R&VGER>S_{e-@A#ZX*#Z!`Z%+>-|B12YETRI161mIA7`*woR1qC z6ToO`m%Qh~jX%={s5xs@2b}}a$!Ng~!c97stQ>gy*Eyyt(D#z(Y=oX7O@+`HZDAD0 zqz07!9BH+zu*~^iR}wJfAHq$aneTe7ffceB}IBzt<9XZB8*vf^>&> zzoO*(_k=f0^E_IMbFeWi7l6vUPJG2g*tl9)S&tzVUyyQ>2QdaHU}ot6zm2GU{r2-e z*7lox6iC%T%e;Z)G#c;ueM)N^U@JLf8AM=k(|X0R-WcG!B1%sm8uy2xbM&J7o?Hpb zcjE{!cmVZdUbSMH^yK;r_Jd3J0Grm2#tX)naIf`hB@)}BGqQ^mrf^2Q|B#puy@cV@7x`O`-e|O;oO>DsXAB_%5CrTk= z2(=QNdsNDBg51Y6;M@Axq)(nRWfA@2|7TvL<^Ogu{siCqRj+JpY&h82t-)#q7`$E= zc7^EvtUPcQ!eIKM`bwNx#O&p2pub!Zmf#SaJJ0x=JCWK z*mb%bG+y`SHtfI>&cJWP4aR8p(6J2l91wZB4#9d1XnhH5VPUmPdM2Aae*D-0i7Xyo z!Y5;kx`&E+LyCoU=W-m!ojakiu{nV^qaq@HC4k{w`TuG!DfYv*>re!-aP0o}GV1tn z8w8)Eq$I$Yn;A}(G6@L@rH;$)YZDjrvz*4A!ITfgN)=`0dL~yj92}fAbw;t>`H2Zy zTbe2_Xv1z1lFn5agrKyvG_XnJZJ<+RGd9r>VnlLOIP^KoD!;!CfFv8klmSfxyK zbo6vHAraQa3Xy?<7 zNa&bTIvIzre}E3<9jm8LFs+y7#})Y8&&_wHTy%Gk_` zjc(_yh5l^a(uq}^^B3#)NYSJ$q?1mM>zNAQJ3h!Guur_w07wSh0XbCeS|H@6pM{ap z#LsUpw|q^&2$nzRu~(b4cpK0?kdlPmdCnp3@<97L? zTl4ep6oZY9@sCQa2@-GW&09eaR&+cfDvE`fSw>!7`00c%!ArC-fyIoXj@^`%gN*?0 zwd(l)wXL}S+nIPZG3sFa`tne**hTbS9)J%!+a54_FvVMWbSXVOT@nYJae%EnI0U_< z_hgIH1sd3d(y!x#SpVi+xW literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseExponentialInInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseExponentialInInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..324c7bd60625857644b4dbe3d89afb7552604a98 GIT binary patch literal 10093 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 B9J>Gj literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseExponentialOutInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseExponentialOutInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..c45f5b3cea4012814c01e2f592d8706256bc12b9 GIT binary patch literal 10250 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

xE>)kPC)Qa z(qc81O99KDrh9(g!!)nYo>|)D17HuDm6nvn>W3di%f$k&%Fb- zY_RTGp7kxB1?wd!!Eho7%aM(Hqk$1NR;5V2Urhs}eI8t3!Lg_PIf=V0s{>X#?nnW_ zNod_E_Fi5$Q2~i_rw4&fUI>NB9XL>GP{fI6SjXv&0cTqmnr!rxC2$9Uv;JrSl3M-q z6hf7j+h*enh8%`Fh~^X4Z=|CM>D~8;3)+u4Hh-6)H@2S4|52oZOQTNOR zBu20tb1=y~@CXrHpYzYooVFOY$9^*b-0jsTU@0>4$PY±y_lZ+ta<<*RFv8W>9C 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 VL!SEn%YZPRlAM}sp0tVI{{p$_B8&h4 literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuadInOutInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuadInOutInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..8d8e6f4dd023c4fd277612289a3bead2174f1ff5 GIT binary patch literal 10948 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�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 literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuadOutInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuadOutInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..5237670953a82682452699fbccde417877c72501 GIT binary patch literal 10772 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 literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuartInOutInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuartInOutInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..8c29b15bcad01c9866dbc7c89e9b05f373af07a8 GIT binary patch literal 10466 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

yEjqkYSDjPWoY< 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 literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuintInInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuintInInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..8442beb4823825cbc9188e1cdc10e048a6dde7c3 GIT binary patch literal 10055 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 Qfb(O?%cw}_OB(zBA5NWWPyhe` literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuintInOutInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuintInOutInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..da64d3e17547bb3d8be9b03139c584391a1367b4 GIT binary patch literal 10358 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 F{{WBI34;It literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuintOutInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseQuintOutInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..03074f9f1fb37137c6c5e660b8afe9aabf8c2ec3 GIT binary patch literal 10195 zcmb_?by$?$*DfH+C@78yD3XJS2uOG7Pzn-)bP0mM5F*{7qjXBAfP~WB@DeKBog&@c zb@ovDd#~@D@6p`lTSKNWiX!n%JUYEJ5fet*Wukv{)CF3(;=#Itt0XSPYy&C%}e?qS1B9e5=y zQLO!H&aLkfYO}a{?~A3pCr;=}*O@Z9ivPrBMCPg(CP!mS3kN&<JR^Ha-$Hi$a&=ye%-4dY1MRQ{e zhG1i3--+wZ#Xaok=#Wg3m8az4Dap=W?ffeH_3KyDob+^K{6(esWXzBTDzRXEPW$c5 z)Rvi!q>lFX@kG_jm>6!?p%{-aJeJ!N#K{l~5*>jqrc1+R?Ja#)w!EbJS9HGj4-9Z< zAQKW2R=b;;n({wht-g+3AEl6?E{p``%*7k^BxFD!5X>wr6+4p=si~+8LUbZux{s;}N&E|aH!QK`R zu}?riz)xQ?*Q2liOBEFrW8-w*@aX7=SKn@v-J-9$H6Y>@FdAWM{7uh7qy49aPBsnEiN{>FiQ4%5W>)|pTciWZkAk7G3l#JwjyR)jZVXpL} z+kG|{_VLvRuS~=vRZqx7nYJ^()8YQe(V^9hWclIlTnK|keLNo@UsP07yE`ebwRAcT z4ooB`-WXhvAJ~agSvO1=GG4T@4yg{>9`vz7u|2uxeP zdlEWrk7C*AFnOm29Auj&(aEZ+(v@Yo1_$GeX6Z zew%ZPii%S1Yx_q3<}IS}4jkg5AuLvXSVTklSvAD>XtQIYc#u-?TX9%a6g>wYsnoiP zI4wDDpGH`^B$8SxnpHw}sH4CC!4@kU+xP9?k`4?+hY#7Avt0!o`ZkmlD;45XRO)nO zG*;r>>^@`g*ruNum$2u@n>eRaNjEJ+kr^Pt9A*oE~pFC2U?0 z)l-c;QAW3!&~V(*p@&6AM&^b%ZO$vzTqovx)?h-{KvyK&SZ231PBAmkt%h7G31~

_FPTHPHT$@nHkKWosnzi+SKtX|2(xnJ~h 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 literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseSineInInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseSineInInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..4fbec21d1e48cec99c7edef71141b2102286ad4e GIT binary patch literal 10384 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 literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/docs/images/EaseSineOutInterpolator.png b/EaseAnimation/EaseInterpolatorLib/docs/images/EaseSineOutInterpolator.png new file mode 100644 index 0000000000000000000000000000000000000000..486a607b64cfd020b1ca6374af7f8211a5938b5c GIT binary patch literal 10637 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 literal 0 HcmV?d00001 diff --git a/EaseAnimation/EaseInterpolatorLib/gradle/wrapper/gradle-wrapper.properties b/EaseAnimation/EaseInterpolatorLib/gradle/wrapper/gradle-wrapper.properties index 85615b8..159be78 100644 --- a/EaseAnimation/EaseInterpolatorLib/gradle/wrapper/gradle-wrapper.properties +++ b/EaseAnimation/EaseInterpolatorLib/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip diff --git a/EaseAnimation/EaseInterpolatorLib/src/androidTest/java/cimi/com/easeinterpolator/ApplicationTest.java b/EaseAnimation/EaseInterpolatorLib/src/androidTest/java/cimi/com/easeinterpolator/ApplicationTest.java deleted file mode 100644 index 746c659..0000000 --- a/EaseAnimation/EaseInterpolatorLib/src/androidTest/java/cimi/com/easeinterpolator/ApplicationTest.java +++ /dev/null @@ -1,13 +0,0 @@ -package cimi.com.easeinterpolator; - -import android.app.Application; -import android.test.ApplicationTestCase; - -/** - * Testing Fundamentals - */ -public class ApplicationTest extends ApplicationTestCase { - public ApplicationTest() { - super(Application.class); - } -} \ No newline at end of file diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBackInInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBackInInterpolator.java index daaca0e..223ef8d 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBackInInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBackInInterpolator.java @@ -1,20 +1,15 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/2. + * */ public class EaseBackInInterpolator implements Interpolator { - public EaseBackInInterpolator() {} - - public EaseBackInInterpolator(Context context, AttributeSet attrs) {} - - public float getInterpolation(float input) { - return input * input * ((1.70158f + 1) * input - 1.70158f); - } + public float getInterpolation(float input) { + return input * input * ((1.70158f + 1) * input - 1.70158f); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBackInOutInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBackInOutInterpolator.java index f90b973..3ad0f06 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBackInOutInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBackInOutInterpolator.java @@ -1,27 +1,20 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/2. + * */ public class EaseBackInOutInterpolator implements Interpolator { - public EaseBackInOutInterpolator() {} - - public EaseBackInOutInterpolator(Context context, AttributeSet attrs) {} - - public float getInterpolation(float input) { - float s = 1.70158f; - if((input *= 2) < 1) { - return 0.5f * (input * input * (((s *= (1.525f)) + 1) * input - s)); - } - - return 0.5f * ((input -= 2) * input * (((s *= (1.525f)) + 1) * input + s) + 2); - - } + public float getInterpolation(float input) { + float s = 1.70158f; + if ((input *= 2) < 1) { + return 0.5f * (input * input * (((s *= (1.525f)) + 1) * input - s)); + } + return 0.5f * ((input -= 2) * input * (((s *= (1.525f)) + 1) * input + s) + 2); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBackOutInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBackOutInterpolator.java index 7f646a8..5b04569 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBackOutInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBackOutInterpolator.java @@ -1,20 +1,15 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/2. + * */ public class EaseBackOutInterpolator implements Interpolator { - public EaseBackOutInterpolator() {} - - public EaseBackOutInterpolator(Context context, AttributeSet attrs) {} - - public float getInterpolation(float input) { - return ((input = input - 1) * input * ((1.70158f + 1) * input + 1.70158f) + 1); - } + public float getInterpolation(float input) { + return ((input = input - 1) * input * ((1.70158f + 1) * input + 1.70158f) + 1); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBounceInInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBounceInInterpolator.java index d43b76e..f7d53b3 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBounceInInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBounceInInterpolator.java @@ -1,28 +1,22 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/2. + * */ public class EaseBounceInInterpolator implements Interpolator { - - public EaseBounceInInterpolator() {} - - public EaseBounceInInterpolator(Context context, AttributeSet attrs) {} - public float getInterpolation(float input) { - input = 1 - input; - if (input < (1 / 2.75)) - return 1 - (7.5625f * input * input); - else if (input < (2 / 2.75)) - return 1 - (7.5625f * (input -= (1.5f / 2.75f)) * input + 0.75f); - else if (input < (2.5 / 2.75)) - return 1 - (7.5625f * (input -= (2.25f / 2.75f)) * input + 0.9375f); - else - return 1 - (7.5625f * (input -= (2.625f / 2.75f)) * input + 0.984375f); - } + public float getInterpolation(float input) { + input = 1 - input; + if (input < (1 / 2.75)) { + return 1 - (7.5625f * input * input); + } else if (input < (2 / 2.75)) { + return 1 - (7.5625f * (input -= (1.5f / 2.75f)) * input + 0.75f); + } else if (input < (2.5 / 2.75)) { + return 1 - (7.5625f * (input -= (2.25f / 2.75f)) * input + 0.9375f); + } else { return 1 - (7.5625f * (input -= (2.625f / 2.75f)) * input + 0.984375f); } + } } \ No newline at end of file diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBounceInOutInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBounceInOutInterpolator.java index 27ceccb..b2f3183 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBounceInOutInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBounceInOutInterpolator.java @@ -1,45 +1,40 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/2. + * */ public class EaseBounceInOutInterpolator implements Interpolator { - public EaseBounceInOutInterpolator() { - } - - public EaseBounceInOutInterpolator(Context context, AttributeSet attrs) { - } - public float getInterpolation(float input) { if ((input) < 0.5f) { // EaseBounceInInterpolator input = input * 2; input = 1 - input; - if (input < (1 / 2.75)) + if (input < (1 / 2.75)) { return (1 - (7.5625f * input * input)) * 0.5f; - else if (input < (2 / 2.75)) + } else if (input < (2 / 2.75)) { return (1 - (7.5625f * (input -= (1.5f / 2.75f)) * input + 0.75f)) * 0.5f; - else if (input < (2.5 / 2.75)) + } else if (input < (2.5 / 2.75)) { return (1 - (7.5625f * (input -= (2.25f / 2.75f)) * input + 0.9375f)) * 0.5f; - else + } else { return (1 - (7.5625f * (input -= (2.625f / 2.75f)) * input + 0.984375f)) * 0.5f; + } } else { // EaseBounceOutInterpolator input = input * 2 - 1; - if (input < (1 / 2.75)) + if (input < (1 / 2.75)) { return ((7.5625f * input * input)) * 0.5f + 1 * 0.5f; - else if (input < (2 / 2.75)) + } else if (input < (2 / 2.75)) { return ((7.5625f * (input -= (1.5f / 2.75f)) * input + 0.75f)) * 0.5f + 1 * 0.5f; - else if (input < (2.5 / 2.75)) + } else if (input < (2.5 / 2.75)) { return ((7.5625f * (input -= (2.25f / 2.75f)) * input + 0.9375f)) * 0.5f + 1 * 0.5f; - else + } else { return ((7.5625f * (input -= (2.625f / 2.75f)) * input + 0.984375f)) * 0.5f + 1 * 0.5f; + } } } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBounceOutInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBounceOutInterpolator.java index ce87882..544b25e 100644 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBounceOutInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBounceOutInterpolator.java @@ -1,27 +1,21 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/2. + * */ public class EaseBounceOutInterpolator implements Interpolator { - - public EaseBounceOutInterpolator() {} - - public EaseBounceOutInterpolator(Context context, AttributeSet attrs) {} - public float getInterpolation(float input) { - if (input < (1 / 2.75)) - return (7.5625f * input * input); - else if (input < (2 / 2.75)) - return (7.5625f * (input -= (1.5f / 2.75f)) * input + 0.75f); - else if (input < (2.5 / 2.75)) - return (7.5625f * (input -= (2.25f / 2.75f)) * input + 0.9375f); - else - return (7.5625f * (input -= (2.625f / 2.75f)) * input + 0.984375f); - } + public float getInterpolation(float input) { + if (input < (1 / 2.75)) { + return (7.5625f * input * input); + } else if (input < (2 / 2.75)) { + return (7.5625f * (input -= (1.5f / 2.75f)) * input + 0.75f); + } else if (input < (2.5 / 2.75)) { + return (7.5625f * (input -= (2.25f / 2.75f)) * input + 0.9375f); + } else { return (7.5625f * (input -= (2.625f / 2.75f)) * input + 0.984375f); } + } } \ No newline at end of file diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBreathInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBreathInterpolator.java index 488ef27..6059e43 100644 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBreathInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseBreathInterpolator.java @@ -1,30 +1,19 @@ package cimi.com.easeinterpolator; -/** - * Created by cimi on 15/8/17. - */ - -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** - * Created by tracytheron on 15/8/1. + * Created by cimi on 15/8/17. + * */ public class EaseBreathInterpolator implements Interpolator { - public EaseBreathInterpolator() {} - - public EaseBreathInterpolator(Context context, AttributeSet attrs) {} - public float getInterpolation(float input) { - if(input < 0.333){ + if (input < 0.333) { return (float) (0.5f + 0.5f * Math.sin(input * 3.0f * Math.PI - Math.PI * 0.5f)); - }else{ + } else { return (float) Math.pow((0.5 * Math.sin(-3f * Math.PI * input * 0.5f + Math.PI) + 0.5f), 2); } - } - } \ No newline at end of file diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCircularInInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCircularInInterpolator.java index 1c2d31c..c65a926 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCircularInInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCircularInInterpolator.java @@ -1,20 +1,15 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/2. + * */ public class EaseCircularInInterpolator implements Interpolator { - - public EaseCircularInInterpolator() {} - - public EaseCircularInInterpolator(Context context, AttributeSet attrs) {} - public float getInterpolation(float input) { - return (float) (-1 * (Math.sqrt(1 - input * input) - 1.0f)); - } + public float getInterpolation(float input) { + return (float) (-1 * (Math.sqrt(1 - input * input) - 1.0f)); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCircularInOutInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCircularInOutInterpolator.java index b5faa49..8232630 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCircularInOutInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCircularInOutInterpolator.java @@ -1,24 +1,19 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/2. + * */ public class EaseCircularInOutInterpolator implements Interpolator { - - public EaseCircularInOutInterpolator() {} - - public EaseCircularInOutInterpolator(Context context, AttributeSet attrs) {} - public float getInterpolation(float input) { - if((input /= 0.5) < 1) { - return (float) (-1 * 0.5 * (Math.sqrt(1 - input * input) - 1)); - } + public float getInterpolation(float input) { + if ((input /= 0.5) < 1) { + return (float) (-1 * 0.5 * (Math.sqrt(1 - input * input) - 1)); + } - return (float) (0.5 * (Math.sqrt(1 - (input -= 2) * input) + 1)); - } + return (float) (0.5 * (Math.sqrt(1 - (input -= 2) * input) + 1)); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCircularOutInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCircularOutInterpolator.java index aa6015d..ae8ffb2 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCircularOutInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCircularOutInterpolator.java @@ -1,20 +1,15 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/2. + * */ public class EaseCircularOutInterpolator implements Interpolator { - - public EaseCircularOutInterpolator() {} - - public EaseCircularOutInterpolator(Context context, AttributeSet attrs) {} - public float getInterpolation(float input) { - return (float) (Math.sqrt(1 - (input - 1) * (input - 1))); - } + public float getInterpolation(float input) { + return (float) (Math.sqrt(1 - (input - 1) * (input - 1))); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCubicInInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCubicInInterpolator.java index ae29733..f4a586f 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCubicInInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCubicInInterpolator.java @@ -1,20 +1,15 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/2. + * */ public class EaseCubicInInterpolator implements Interpolator { - - public EaseCubicInInterpolator() {} - - public EaseCubicInInterpolator(Context context, AttributeSet attrs) {} - public float getInterpolation(float input) { - return input * input * input; - } + public float getInterpolation(float input) { + return input * input * input; + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCubicInOutInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCubicInOutInterpolator.java index 0070f29..c0fccd1 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCubicInOutInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCubicInOutInterpolator.java @@ -1,23 +1,18 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/2. + * */ public class EaseCubicInOutInterpolator implements Interpolator { - - public EaseCubicInOutInterpolator() {} - - public EaseCubicInOutInterpolator(Context context, AttributeSet attrs) {} - public float getInterpolation(float input) { - if((input /= 0.5f) < 1) { - return 0.5f * input * input * input; - } - return 0.5f * ((input -= 2) * input * input + 2); - } + public float getInterpolation(float input) { + if ((input /= 0.5f) < 1) { + return 0.5f * input * input * input; + } + return 0.5f * ((input -= 2) * input * input + 2); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCubicOutInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCubicOutInterpolator.java index a8b8b9d..b6f14e4 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCubicOutInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseCubicOutInterpolator.java @@ -1,20 +1,15 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/2. + * */ public class EaseCubicOutInterpolator implements Interpolator { - - public EaseCubicOutInterpolator() {} - - public EaseCubicOutInterpolator(Context context, AttributeSet attrs) {} - public float getInterpolation(float input) { - return (input - 1) * (input - 1) * (input - 1) + 1; - } + public float getInterpolation(float input) { + return (input - 1) * (input - 1) * (input - 1) + 1; + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseElasticInInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseElasticInInterpolator.java index 54f31db..58f09f6 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseElasticInInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseElasticInInterpolator.java @@ -1,52 +1,47 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/3. + * */ public class EaseElasticInInterpolator implements Interpolator { - private float mDuration; - - /** + private final float mDuration; + + /** + * * @param durationMillis Duration in milliseconds. The duration cannot be negative. - * * @throws IllegalArgumentException if the duration is < 0 - * */ - public EaseElasticInInterpolator(float durationMillis) { - if (durationMillis < 0) { + public EaseElasticInInterpolator(final float durationMillis) { + if (durationMillis < 0) { throw new IllegalArgumentException("Animation duration cannot be negative"); } - mDuration = durationMillis / 1000f; - } - - - public EaseElasticInInterpolator(Context context, AttributeSet attrs) {} + mDuration = durationMillis / 1000f; + } - public float getInterpolation(float input) { - float s; - float p = 0.0f; - float a = 0.0f; - if(input == 0) { - return 0; - } - if(input == 1) { - return 1; - } - if(p == 0) { - p = mDuration * 0.3f; - } - if(a == 0 || (1 > 0 && a < 1) || (1 < 0 /*&& a < -1*/)) { - a = 1; - s = p / 4; - } else { - s = (float) (p / MathConstants._2PI * Math.asin(1 / a)); - } - return (float) (-(a * Math.pow(2, 10 * (input -= 1)) * Math.sin((input * mDuration - s) * MathConstants._2PI / p)) + 0); - } + public float getInterpolation(float input) { + float s; + float p = 0.0f; + float a = 0.0f; + if (input == 0) { + return 0; + } + if (input == 1) { + return 1; + } + if (p == 0) { + p = mDuration * 0.3f; + } + if (a == 0 || (1 > 0 && a < 1) || (1 < 0 /*&& a < -1*/)) { + a = 1; + s = p / 4; + } else { + s = (float) (p / MathConstants._2PI * Math.asin(1 / a)); + } + return (float) (-(a * Math.pow(2, 10 * (input -= 1)) * Math.sin((input * mDuration - s) * MathConstants._2PI / p)) + 0); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseElasticInOutInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseElasticInOutInterpolator.java index 81f9729..f5fe1fd 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseElasticInOutInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseElasticInOutInterpolator.java @@ -1,55 +1,50 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/3. + * */ public class EaseElasticInOutInterpolator implements Interpolator { - - private float mDuration; - - /** + private final float mDuration; + + /** + * * @param durationMillis Duration in milliseconds. The duration cannot be negative. - * * @throws IllegalArgumentException if the duration is < 0 - * */ - public EaseElasticInOutInterpolator(float durationMillis) { - if (durationMillis < 0) { + public EaseElasticInOutInterpolator(final float durationMillis) { + if (durationMillis < 0) { throw new IllegalArgumentException("Animation duration cannot be negative"); } - mDuration = durationMillis / 1000f; - } - - public EaseElasticInOutInterpolator(Context context, AttributeSet attrs) {} + mDuration = durationMillis / 1000f; + } - public float getInterpolation(float input) { - float s; - float p = 0.0f; - float a = 0.0f; - if(input == 0) { - return 0; - } - if((input /= 0.5) == 2) { - return 1; - } - if(p == 0) { - p = mDuration * (0.3f * 1.5f); - } - if(a == 0 || (1 > 0 && a < 1) || (1 < 0 /*&& a < -1*/)) { - a = 1; - s = p / 4; - } else { - s = (float) (p / MathConstants._2PI * Math.asin(1 / a)); - } - if(input < 1) { - return (float) (-0.5 * (a * Math.pow(2, 10 * (input -= 1)) * Math.sin((input * mDuration - s) * MathConstants._2PI / p)) + 0); - } - return (float) (a * Math.pow(2, -10 * (input -= 1)) * Math.sin((input * mDuration - s) * MathConstants._2PI / p) * .5 + 1 + 0); - } + public float getInterpolation(float input) { + float s; + float p = 0.0f; + float a = 0.0f; + if (input == 0) { + return 0; + } + if ((input /= 0.5) == 2) { + return 1; + } + if (p == 0) { + p = mDuration * (0.3f * 1.5f); + } + if (a == 0 || (1 > 0 && a < 1) || (1 < 0 /*&& a < -1*/)) { + a = 1; + s = p / 4; + } else { + s = (float) (p / MathConstants._2PI * Math.asin(1 / a)); + } + if (input < 1) { + return (float) (-0.5 * (a * Math.pow(2, 10 * (input -= 1)) * Math.sin((input * mDuration - s) * MathConstants._2PI / p)) + 0); + } + return (float) (a * Math.pow(2, -10 * (input -= 1)) * Math.sin((input * mDuration - s) * MathConstants._2PI / p) * .5 + 1 + 0); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseElasticOutInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseElasticOutInterpolator.java index 39a49a6..9dd4a9a 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseElasticOutInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseElasticOutInterpolator.java @@ -1,53 +1,47 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; - /** * Created by cimi on 15/7/3. + * */ - public class EaseElasticOutInterpolator implements Interpolator { - private float mDuration; - - /** + private final float mDuration; + + /** + * * @param durationMillis Duration in milliseconds. The duration cannot be negative. - * * @throws IllegalArgumentException if the duration is < 0 - * */ - public EaseElasticOutInterpolator(float durationMillis) { - if (durationMillis < 0) { + public EaseElasticOutInterpolator(final float durationMillis) { + if (durationMillis < 0) { throw new IllegalArgumentException("Animation duration cannot be negative"); } - mDuration = durationMillis / 1000f; - } - - public EaseElasticOutInterpolator(Context context, AttributeSet attrs) {} + mDuration = durationMillis / 1000f; + } - public float getInterpolation(float input) { - float s; - float p = 0.0f; - float a = 0.0f; - if(input == 0) { - return 0; - } - if(input == 1) { - return 1; - } - if(p == 0) { - p = mDuration * 0.3f; - } - if(a == 0 || (1 > 0 && a < 1) || (1 < 0 /*&& a < -1*/)) { - a = 1; - s = p / 4; - } else { - s = (float) (p / MathConstants._2PI * Math.asin(1 / a)); - } - return (float) (a * Math.pow(2, -10 * input) * Math.sin((input * mDuration - s) * MathConstants._2PI / p) + 1 + 0); - } + public float getInterpolation(float input) { + float s; + float p = 0.0f; + float a = 0.0f; + if (input == 0) { + return 0; + } + if (input == 1) { + return 1; + } + if (p == 0) { + p = mDuration * 0.3f; + } + if (a == 0 || (1 > 0 && a < 1) || (1 < 0 /*&& a < -1*/)) { + a = 1; + s = p / 4; + } else { + s = (float) (p / MathConstants._2PI * Math.asin(1 / a)); + } + return (float) (a * Math.pow(2, -10 * input) * Math.sin((input * mDuration - s) * MathConstants._2PI / p) + 1 + 0); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseExponentialInInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseExponentialInInterpolator.java index 42b89d9..cd6ca2a 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseExponentialInInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseExponentialInInterpolator.java @@ -1,20 +1,15 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/3. + * */ public class EaseExponentialInInterpolator implements Interpolator { - - public EaseExponentialInInterpolator() {} - - public EaseExponentialInInterpolator(Context context, AttributeSet attrs) {} - public float getInterpolation(float input) { - return (float) ((input == 0) ? 0 : 1 * Math.pow(2, 10 * (input - 1)) - 0.001f); - } + public float getInterpolation(float input) { + return (float) ((input == 0) ? 0 : 1 * Math.pow(2, 10 * (input - 1)) - 0.001f); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseExponentialInOutInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseExponentialInOutInterpolator.java index eec76f1..19ec0af 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseExponentialInOutInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseExponentialInOutInterpolator.java @@ -1,30 +1,24 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/3. + * */ - public class EaseExponentialInOutInterpolator implements Interpolator { - - public EaseExponentialInOutInterpolator() {} - - public EaseExponentialInOutInterpolator(Context context, AttributeSet attrs) {} - public float getInterpolation(float input) { - if(input == 0) { - return 0; - } - if(input == 1) { - return 1; - } - if((input /= 0.5f) < 1) { - return (float) (0.5f * Math.pow(2, 10 * (input - 1))); - } - return (float) (0.5f * (-Math.pow(2, -10 * --input) + 2)); - } + public float getInterpolation(float input) { + if (input == 0) { + return 0; + } + if (input == 1) { + return 1; + } + if ((input /= 0.5f) < 1) { + return (float) (0.5f * Math.pow(2, 10 * (input - 1))); + } + return (float) (0.5f * (-Math.pow(2, -10 * --input) + 2)); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseExponentialOutInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseExponentialOutInterpolator.java index 9b01e7d..385611e 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseExponentialOutInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseExponentialOutInterpolator.java @@ -1,20 +1,15 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/3. + * */ public class EaseExponentialOutInterpolator implements Interpolator { - - public EaseExponentialOutInterpolator() {} - - public EaseExponentialOutInterpolator(Context context, AttributeSet attrs) {} - public float getInterpolation(float input) { - return (float) ((input == 1) ? 1 : (-Math.pow(2, -10 * input) + 1)); - } + public float getInterpolation(float input) { + return (float) ((input == 1) ? 1 : (-Math.pow(2, -10 * input) + 1)); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuadInInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuadInInterpolator.java index a1c8aca..bb9e8b2 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuadInInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuadInInterpolator.java @@ -1,20 +1,15 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/3. + * */ public class EaseQuadInInterpolator implements Interpolator { - public EaseQuadInInterpolator() {} - - public EaseQuadInInterpolator(Context context, AttributeSet attrs) {} - - public float getInterpolation(float input) { - return input * input; - } + public float getInterpolation(float input) { + return input * input; + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuadInOutInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuadInOutInterpolator.java index e4b86ae..89fb726 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuadInOutInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuadInOutInterpolator.java @@ -1,23 +1,18 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/3. + * */ public class EaseQuadInOutInterpolator implements Interpolator { - public EaseQuadInOutInterpolator() {} - - public EaseQuadInOutInterpolator(Context context, AttributeSet attrs) {} - - public float getInterpolation(float input) { - if((input /= 0.5f) < 1) { - return 0.5f * input * input; - } - return -0.5f * ((--input) * (input - 2) - 1); - } + public float getInterpolation(float input) { + if ((input /= 0.5f) < 1) { + return 0.5f * input * input; + } + return -0.5f * ((--input) * (input - 2) - 1); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuadOutInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuadOutInterpolator.java index 888270c..c43653e 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuadOutInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuadOutInterpolator.java @@ -1,20 +1,15 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/3. + * */ public class EaseQuadOutInterpolator implements Interpolator { - public EaseQuadOutInterpolator() {} - - public EaseQuadOutInterpolator(Context context, AttributeSet attrs) {} - - public float getInterpolation(float input) { - return -input * (input - 2); - } + public float getInterpolation(float input) { + return -input * (input - 2); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuartInInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuartInInterpolator.java index e6dc993..0503e7b 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuartInInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuartInInterpolator.java @@ -1,20 +1,15 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/3. + * */ public class EaseQuartInInterpolator implements Interpolator { - public EaseQuartInInterpolator() {} - - public EaseQuartInInterpolator(Context context, AttributeSet attrs) {} - - public float getInterpolation(float input) { - return input * input * input * input; - } + public float getInterpolation(float input) { + return input * input * input * input; + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuartInOutInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuartInOutInterpolator.java index 1bdaa50..c667eef 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuartInOutInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuartInOutInterpolator.java @@ -1,23 +1,18 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/3. + * */ public class EaseQuartInOutInterpolator implements Interpolator { - public EaseQuartInOutInterpolator() {} - - public EaseQuartInOutInterpolator(Context context, AttributeSet attrs) {} - - public float getInterpolation(float input) { - if((input /= 0.5f) < 1) { - return 0.5f * input * input * input * input; - } - return -0.5f * ((input -= 2) * input * input * input - 2); - } + public float getInterpolation(float input) { + if ((input /= 0.5f) < 1) { + return 0.5f * input * input * input * input; + } + return -0.5f * ((input -= 2) * input * input * input - 2); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuartOutInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuartOutInterpolator.java index 78153cd..77e74a8 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuartOutInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuartOutInterpolator.java @@ -1,20 +1,15 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/3. + * */ public class EaseQuartOutInterpolator implements Interpolator { - public EaseQuartOutInterpolator() {} - - public EaseQuartOutInterpolator(Context context, AttributeSet attrs) {} - - public float getInterpolation(float input) { - return 1 - (input - 1) * (input - 1) * (input - 1) * (input - 1); - } + public float getInterpolation(float input) { + return 1 - (input - 1) * (input - 1) * (input - 1) * (input - 1); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuintInInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuintInInterpolator.java index 58011b6..615334f 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuintInInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuintInInterpolator.java @@ -1,20 +1,15 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/3. + * */ public class EaseQuintInInterpolator implements Interpolator { - public EaseQuintInInterpolator() {} - - public EaseQuintInInterpolator(Context context, AttributeSet attrs) {} - - public float getInterpolation(float input) { - return input * input * input * input * input; - } + public float getInterpolation(float input) { + return input * input * input * input * input; + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuintInOutInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuintInOutInterpolator.java index b83c39c..57cb038 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuintInOutInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuintInOutInterpolator.java @@ -1,23 +1,18 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/3. + * */ public class EaseQuintInOutInterpolator implements Interpolator { - public EaseQuintInOutInterpolator() {} - - public EaseQuintInOutInterpolator(Context context, AttributeSet attrs) {} - - public float getInterpolation(float input) { - if((input /= 0.5f) < 1) { - return 0.5f * input * input * input * input * input; - } - return 0.5f * ((input -= 2) * input * input * input * input + 2); - } + public float getInterpolation(float input) { + if ((input /= 0.5f) < 1) { + return 0.5f * input * input * input * input * input; + } + return 0.5f * ((input -= 2) * input * input * input * input + 2); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuintOutInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuintOutInterpolator.java index 508028c..6bdf05d 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuintOutInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseQuintOutInterpolator.java @@ -1,20 +1,15 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/3. + * */ public class EaseQuintOutInterpolator implements Interpolator { - public EaseQuintOutInterpolator() {} - - public EaseQuintOutInterpolator(Context context, AttributeSet attrs) {} - - public float getInterpolation(float input) { - return (input - 1) * (input - 1) * (input - 1) * (input - 1) * (input - 1) + 1; - } + public float getInterpolation(float input) { + return (input - 1) * (input - 1) * (input - 1) * (input - 1) * (input - 1) + 1; + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseSineInInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseSineInInterpolator.java index a3c93c7..9792559 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseSineInInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseSineInInterpolator.java @@ -1,20 +1,15 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/3. + * */ public class EaseSineInInterpolator implements Interpolator { - public EaseSineInInterpolator() {} - - public EaseSineInInterpolator(Context context, AttributeSet attrs) {} - - public float getInterpolation(float input) { - return (float) (-1 * Math.cos(input * MathConstants._HALF_PI) + 1); - } + public float getInterpolation(float input) { + return (float) (-1 * Math.cos(input * MathConstants._HALF_PI) + 1); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseSineInOutInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseSineInOutInterpolator.java index fde8e4c..a9b17dc 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseSineInOutInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseSineInOutInterpolator.java @@ -1,20 +1,15 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/3. + * */ public class EaseSineInOutInterpolator implements Interpolator { - public EaseSineInOutInterpolator() {} - - public EaseSineInOutInterpolator(Context context, AttributeSet attrs) {} - - public float getInterpolation(float input) { - return (float) (-1 * 0.5f * (Math.cos(MathConstants.PI * input) - 1)); - } + public float getInterpolation(float input) { + return (float) (-1 * 0.5f * (Math.cos(MathConstants.PI * input) - 1)); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseSineOutInterpolator.java b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseSineOutInterpolator.java index 6e10c24..f822cc8 100755 --- a/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseSineOutInterpolator.java +++ b/EaseAnimation/EaseInterpolatorLib/src/main/java/cimi/com/easeinterpolator/EaseSineOutInterpolator.java @@ -1,20 +1,15 @@ package cimi.com.easeinterpolator; -import android.content.Context; -import android.util.AttributeSet; import android.view.animation.Interpolator; /** * Created by cimi on 15/7/3. + * */ public class EaseSineOutInterpolator implements Interpolator { - public EaseSineOutInterpolator() {} - - public EaseSineOutInterpolator(Context context, AttributeSet attrs) {} - - public float getInterpolation(float input) { - return (float) Math.sin(input * MathConstants._HALF_PI); - } + public float getInterpolation(float input) { + return (float) Math.sin(input * MathConstants._HALF_PI); + } } diff --git a/EaseAnimation/EaseInterpolatorLib/src/test/java/cimi/com/easeinterpolator/InterpolatorGraphingTest.java b/EaseAnimation/EaseInterpolatorLib/src/test/java/cimi/com/easeinterpolator/InterpolatorGraphingTest.java new file mode 100644 index 0000000..bc1367f --- /dev/null +++ b/EaseAnimation/EaseInterpolatorLib/src/test/java/cimi/com/easeinterpolator/InterpolatorGraphingTest.java @@ -0,0 +1,237 @@ +package cimi.com.easeinterpolator; + +import android.view.animation.Interpolator; +import org.junit.Before; +import org.junit.Test; + +public class InterpolatorGraphingTest { + + @Before + public void setUp() { + System.out.println("\n"); + } + + @Test + public void testEaseBackInInterpolator() { + final EaseBackInInterpolator interpolator = new EaseBackInInterpolator(); + System.out.println("EaseBackInInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseBackInOutInterpolator() { + final EaseBackInOutInterpolator interpolator = new EaseBackInOutInterpolator(); + System.out.println("EaseBackInOutInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseBackOutInterpolator() { + final EaseBackOutInterpolator interpolator = new EaseBackOutInterpolator(); + System.out.println("EaseBackOutInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseBounceInInterpolator() { + final EaseBounceInInterpolator interpolator = new EaseBounceInInterpolator(); + System.out.println("EaseBounceInInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseBounceInOutInterpolator() { + final EaseBounceInOutInterpolator interpolator = new EaseBounceInOutInterpolator(); + System.out.println("EaseBounceInOutInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseBounceOutInterpolator() { + final EaseBounceOutInterpolator interpolator = new EaseBounceOutInterpolator(); + System.out.println("EaseBounceOutInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseBreathInterpolator() { + final EaseBreathInterpolator interpolator = new EaseBreathInterpolator(); + System.out.println("EaseBreathInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseCircularInInterpolator() { + final EaseCircularInInterpolator interpolator = new EaseCircularInInterpolator(); + System.out.println("EaseCircularInInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseCircularInOutInterpolator() { + final EaseCircularInOutInterpolator interpolator = new EaseCircularInOutInterpolator(); + System.out.println("EaseCircularInOutInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseCircularOutInterpolator() { + final EaseCircularOutInterpolator interpolator = new EaseCircularOutInterpolator(); + System.out.println("EaseCircularOutInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseCubicInInterpolator() { + final EaseCubicInInterpolator interpolator = new EaseCubicInInterpolator(); + System.out.println("EaseCubicInInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseCubicInOutInterpolator() { + final EaseCubicInOutInterpolator interpolator = new EaseCubicInOutInterpolator(); + System.out.println("EaseCubicInOutInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseCubicOutInterpolator() { + final EaseCubicOutInterpolator interpolator = new EaseCubicOutInterpolator(); + System.out.println("EaseCubicOutInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseElasticInInterpolator() { + final EaseElasticInInterpolator interpolator = new EaseElasticInInterpolator(1000f); + System.out.println("EaseElasticInInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseElasticInOutInterpolator() { + final EaseElasticInOutInterpolator interpolator = new EaseElasticInOutInterpolator(1000f); + System.out.println("EaseElasticInOutInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseElasticOutInterpolator() { + final EaseElasticOutInterpolator interpolator = new EaseElasticOutInterpolator(1000f); + System.out.println("EaseElasticOutInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseExponentialInInterpolator() { + final EaseExponentialInInterpolator interpolator = new EaseExponentialInInterpolator(); + System.out.println("EaseExponentialInInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseExponentialInOutInterpolator() { + final EaseExponentialInOutInterpolator interpolator = new EaseExponentialInOutInterpolator(); + System.out.println("EaseExponentialInOutInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseExponentialOutInterpolator() { + final EaseExponentialOutInterpolator interpolator = new EaseExponentialOutInterpolator(); + System.out.println("EaseExponentialOutInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseQuadInInterpolator() { + final EaseQuadInInterpolator interpolator = new EaseQuadInInterpolator(); + System.out.println("EaseQuadInInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseQuadInOutInterpolator() { + final EaseQuadInOutInterpolator interpolator = new EaseQuadInOutInterpolator(); + System.out.println("EaseQuadInOutInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseQuadOutInterpolator() { + final EaseQuadOutInterpolator interpolator = new EaseQuadOutInterpolator(); + System.out.println("EaseQuadOutInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseQuartInInterpolator() { + final EaseQuartInInterpolator interpolator = new EaseQuartInInterpolator(); + System.out.println("EaseQuartInInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseQuartInOutInterpolator() { + final EaseQuartInOutInterpolator interpolator = new EaseQuartInOutInterpolator(); + System.out.println("EaseQuartInOutInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseQuartOutInterpolator() { + final EaseQuartOutInterpolator interpolator = new EaseQuartOutInterpolator(); + System.out.println("EaseQuartOutInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseQuintInInterpolator() { + final EaseQuintInInterpolator interpolator = new EaseQuintInInterpolator(); + System.out.println("EaseQuintInInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseQuintInOutInterpolator() { + final EaseQuintInOutInterpolator interpolator = new EaseQuintInOutInterpolator(); + System.out.println("EaseQuintInOutInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseQuintOutInterpolator() { + final EaseQuintOutInterpolator interpolator = new EaseQuintOutInterpolator(); + System.out.println("EaseQuintOutInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseSineInInterpolator() { + final EaseSineInInterpolator interpolator = new EaseSineInInterpolator(); + System.out.println("EaseSineInInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseSineInOutInterpolator() { + final EaseSineInOutInterpolator interpolator = new EaseSineInOutInterpolator(); + System.out.println("EaseSineInOutInterpolator"); + runInterpolator(interpolator); + } + + @Test + public void testEaseSineOutInterpolator() { + final EaseSineOutInterpolator interpolator = new EaseSineOutInterpolator(); + System.out.println("EaseSineOutInterpolator"); + runInterpolator(interpolator); + } + + private void runInterpolator(final Interpolator interpolator) { + System.out.println("t\tx"); + for (float t = 0.0f; t <= 1.01f; t += 0.02f) { + System.out.println(t + "\t" + interpolator.getInterpolation(t)); + } + } +} \ No newline at end of file diff --git a/EaseAnimation/build.gradle b/EaseAnimation/build.gradle index 9405f3f..c74f054 100644 --- a/EaseAnimation/build.gradle +++ b/EaseAnimation/build.gradle @@ -2,10 +2,11 @@ buildscript { repositories { + google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:1.2.3' + classpath 'com.android.tools.build:gradle:3.1.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -14,6 +15,7 @@ buildscript { allprojects { repositories { + google() jcenter() } } diff --git a/EaseAnimation/gradle/wrapper/gradle-wrapper.properties b/EaseAnimation/gradle/wrapper/gradle-wrapper.properties index 204f6de..8bc1554 100644 --- a/EaseAnimation/gradle/wrapper/gradle-wrapper.properties +++ b/EaseAnimation/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip From 6bf2f7f96e7a2e0081ae1d7a0e111fd9fb0b775c Mon Sep 17 00:00:00 2001 From: Dmitri Molchanov Date: Mon, 3 Jun 2019 11:47:40 -0700 Subject: [PATCH 2/2] Update AndroidManifest.xml Remove allowBackup flag --- .../EaseInterpolatorLib/src/main/AndroidManifest.xml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/EaseAnimation/EaseInterpolatorLib/src/main/AndroidManifest.xml b/EaseAnimation/EaseInterpolatorLib/src/main/AndroidManifest.xml index 1ce3d61..51fa900 100644 --- a/EaseAnimation/EaseInterpolatorLib/src/main/AndroidManifest.xml +++ b/EaseAnimation/EaseInterpolatorLib/src/main/AndroidManifest.xml @@ -1,8 +1,6 @@ - - - +