package Ġcom . vl ad 1 m 1 r . lem nis cate . base Ċ Ċ import Ġcom . vl ad 1 m 1 r . lem nis cate . base . models . Draw State Ċ import Ġcom . vl ad 1 m 1 r . lem nis cate . base . models . Points Ċ import Ġcom . vl ad 1 m 1 r . lem nis cate . base . models . View Size Ċ import Ġcom . vl ad 1 m 1 r . lem nis cate . base . settings . Animation Settings Ċ import Ġcom . vl ad 1 m 1 r . lem nis cate . base . settings . Curve Settings Ċ import Ġkotlin . math . PI Ċ Ċ interface ĠI Base Curve Presenter Ġ{ ĊĊĠĠĠ Ġval Ġview : I Base Curve View ĊĠĠĠ Ġvar Ġcurve Settings : ĠCurve Settings ĊĠĠĠ Ġval Ġview Size : ĠView Size ĊĠĠĠ Ġvar Ġanimation Settings : ĠAnimation Settings ĊĠĠĠ Ġval Ġdraw State : ĠDraw State ĊĠĠĠ Ġval Ġpoints : ĠPoints ĊĊĠĠĠ Ġfun Ġrecreate Points () ĊĠĠĠ Ġfun Ġupdate Starting Point On Curve ( point : ĠInt ) Ċ } Ċ Ċ interface ĠI Base Curve View Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġshould Ġreturn Ġvalues Ġof Ġx Ġfor Ġt âĪ Ī [ 0 , Ġupper Ġlimit Ġof Ġget T () Ġfunction ]. ĊĠĠĠĠ Ġ* ĠWe Ġshould Ġuse Ġparame tric Ġrepresentation Ġof Ġcurve Ġfor Ġx . ĊĠĠĠĠ Ġ* ĠCurve Ġshould Ġbe Ġclosed Ġand Ġperiodic Ġon Ġinterval Ġthat Ġreturns Ġget T (). ĊĠĠĠĠ Ġ* ĠResult ing Ġvalue Ġshould Ġsatisfy Ġx âĪ Ī [- view Size . getWidth ()/ 2 , Ġview Size . getWidth ()/ 2 ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Graph X ( t : ĠFloat ): ĠFloat ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġshould Ġreturn Ġvalues Ġof Ġy Ġfor Ġt âĪ Ī [ 0 , Ġupper Ġlimit Ġof Ġget T () Ġfunction ]. ĊĠĠĠĠ Ġ* ĠWe Ġshould Ġuse Ġparame tric Ġrepresentation Ġof Ġcurve Ġfor Ġy . ĊĠĠĠĠ Ġ* ĠCurve Ġshould Ġbe Ġclosed Ġand Ġperiodic Ġon Ġinterval Ġthat Ġreturns Ġget T (). ĊĠĠĠĠ Ġ* ĠResult ing Ġvalue Ġshould Ġsatisfy Ġy âĪ Ī [- view Size . getHeight ()/ 2 , Ġview Size . getHeight ()/ 2 ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Graph Y ( t : ĠFloat ): ĠFloat ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġi ĠâĪ Ī Ġ[ 0 , Ġm Precision ) ĊĠĠĠĠ Ġ* Ġ@ return Ġfunction Ġis Ġputting Ġi âĪ Ī [ 0 , Ġcurve Settings . get Precision ()) Ġpoints Ġbetween Ġ[ 0 , Ġ 2 ÏĢ ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget T ( i : ĠInt , Ġprecision : ĠInt ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġi Ġ* Ġ 2 f Ġ* ĠPI . toFloat () Ġ/ Ġprecision ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinvalidate Progress View () ĊĊĠĠĠ Ġfun Ġrequest Progress View Layout () Ċ } ĊĊ