package Ġio . github . ken ney code . fun renderer . renderer Ċ Ċ import Ġio . github . ken ney code . fun renderer . common . Keys Ċ import Ġio . github . ken ney code . fun renderer . common . Size Ċ import Ġio . github . ken ney code . fun renderer . parameter . Float Array Parameter Ċ Ċ /** Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ ĠCode d Ġby Ġk enn ey Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . github . com / ken ney code Ċ Ġ* Ċ Ġ**/ Ċ Ċ class ĠC rop Renderer Ġ: ĠSimple Renderer () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġupdate ( data : ĠMutable Map < String , ĠAny >): ĠMutable Map < String , ĠAny > Ġ{ ĊĠĠĠĠĠĠĠ Ġdata [ Keys . INPUT _ SIZE ]?. let Ġ{ Ġit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput Size Ġ= Ġit Ġas ĠSize ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput Ratio Ġ= Ġinput Size . width . toFloat () Ġ/ Ġinput Size . height ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata [ Keys . C ROP _ RATIO ]?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcrop Ratio Ġ= Ġit Ġas ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Attribute ( Float Array Parameter (" a _ texture Coordinate ", ĠgetC ropped Tex Coords ( input Ratio , Ġcrop Ratio ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġdata ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetC ropped Tex Coords ( input Ratio : ĠFloat , Ġcrop Ratio : ĠFloat ): ĠFloat Array Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġleft Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġvar Ġtop Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġvar Ġright Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġvar Ġbottom Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġif Ġ( input Ratio Ġ< Ġcrop Ratio ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġleft Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġright Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Ġ= Ġ( 1 Ġ- Ġinput Ratio Ġ/ Ġcrop Ratio ) Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop Ġ= Ġbottom Ġ+ Ġinput Ratio Ġ/ Ġcrop Ratio ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġleft Ġ= Ġ( 1 Ġ- Ġcrop Ratio Ġ/ Ġinput Ratio ) Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġright Ġ= Ġleft Ġ+ Ġcrop Ratio Ġ/ Ġinput Ratio ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfloat ArrayOf ( left , Ġbottom , Ġleft , Ġtop , Ġright , Ġtop , Ġleft , Ġbottom , Ġright , Ġtop , Ġright , Ġbottom ) ĊĠĠĠ Ġ} Ċ Ċ }