/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 - 2 0 1 9 . Ġdata 2 viz Ġs Ãł rl . Ċ Ġ* Ċ Ġ* Ġ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* Ġ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* Ġ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* Ġ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġio . data 2 viz . interpolate Ċ Ċ import Ġio . data 2 viz . math . HALF PI _ ANGLE Ċ import Ġkotlin . math . cos Ċ import Ġkotlin . math . pow Ċ import Ġkotlin . math . sqrt Ċ Ċ // ĠTODO Ġshould Ġbe Ġinterpol ators Ċ // ĠTODO Ġ: Ġshould Ġalso Ġuse ĠPercent Ċ public Ġfun Ġquad ( x : Double ): ĠDouble Ġ= Ġx Ġ* Ġx Ċ public Ġfun Ġcubic In ( x : Double ): ĠDouble Ġ= Ġx Ġ* Ġx Ġ* Ġx Ċ public Ġfun Ġcubic Out ( t : Double ): ĠDouble Ġ= Ġ( t - 1 )*( t - 1 )*( t - 1 ) Ġ+ Ġ 1 Ċ public Ġfun Ġcubic InOut ( t : Double ): ĠDouble Ġ= Ġ Ġ( if ( t Ġ<= Ġ. 5 ) Ġ( 8 * t * t * t ) Ġelse Ġ(( 2 * t - 2 )*( 2 * t - 2 )*( 2 * t - 2 )+ 2 ))/ 2 ĊĊ Ċ public Ġfun Ġsin ( x : Double ): ĠDouble Ġ= Ġ 1 Ġ- Ġcos ( x Ġ* ĠHAL F PI _ ANGLE . rad ) Ċ public Ġfun Ġpoly ( e : Double ): Ġ( Double ) Ġ-> ĠDouble Ġ= Ġ{ Ġt : Double Ġ-> Ġt . pow ( e )} ĊĊ Ċ public Ġfun Ġcircle In ( t : Double ): ĠDouble Ġ= Ġ 1 Ġ- Ġsqrt ( 1 Ġ- Ġ( t Ġ* Ġt ). coerce At Most ( 1 . 0 )) Ċ public Ġfun Ġcircle Out ( t : Double ): ĠDouble Ġ= Ġsqrt ( 1 Ġ- Ġ( t - 1 )*( t - 1 )); Ċ