package Ġio . github . adv ancer man . tod d . util Ċ Ċ import Ġcom . badlogic . gdx . math . Math Utils Ċ import Ġcom . badlogic . gdx . math . Rectangle Ċ import Ġcom . badlogic . gdx . math . Vector 2 Ċ Ċ fun ĠVector 2 . mirror If ( ĊĠĠĠ Ġshould Mirror : ĠBoolean , ĊĠĠĠ Ġorigin X : ĠFloat Ġ= Ġ 0 f , ĊĠĠĠ Ġadd X If Mir rored : ĠFloat Ġ= Ġ 0 f Ċ ): ĠVector 2 Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ(! should Mirror ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġsub ( origin X , Ġ 0 f ). scl (- 1 f , Ġ 1 f ). add ( origin X Ġ+ Ġadd X If Mir rored , Ġ 0 f ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠRectangle . scale ( origin X : ĠFloat , Ġorigin Y : ĠFloat , Ġscale X : ĠFloat , Ġscale Y : ĠFloat ) Ġ= ĊĠĠĠ Ġset Position ( x Ġ- Ġorigin X , Ġy Ġ- Ġorigin Y ) ĊĠĠĠĠĠĠĠ Ġ. set ( x Ġ* Ġscale X , Ġy Ġ* Ġscale Y , Ġwidth Ġ* Ġscale X , Ġheight Ġ* Ġscale Y ) ĊĠĠĠĠĠĠĠ Ġ. setPosition ( x Ġ+ Ġorigin X , Ġy Ġ+ Ġorigin Y ) !! ĊĊ Ċ fun ĠRectangle . translate ( tr X : ĠFloat , Ġtr Y : ĠFloat ) Ġ= ĊĠĠĠ Ġset Position ( x Ġ+ Ġtr X , Ġy Ġ+ Ġtr Y ) !! Ċ Ċ fun ĠRectangle . translate ( v : ĠVector 2 ) Ġ= ĊĠĠĠ Ġtranslate ( v . x , Ġv . y ) Ċ Ċ fun ĠRectangle . rotate ( angle : ĠFloat ) Ġ= ĊĠĠĠ Ġrotate Rad ( angle Ġ* ĠMath Utils . degrees To Radians ) Ċ Ċ fun ĠRectangle . rotate Rad ( angle Rad : ĠFloat ) Ġ= ĊĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠVector 2 ( x , Ġy ), ĊĠĠĠĠĠĠĠ ĠVector 2 ( x Ġ+ Ġwidth , Ġy ), ĊĠĠĠĠĠĠĠ ĠVector 2 ( x , Ġy Ġ+ Ġheight ), ĊĠĠĠĠĠĠĠ ĠVector 2 ( x Ġ+ Ġwidth , Ġy Ġ+ Ġheight ) ĊĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . rotate Rad ( angle Rad ) Ġ} ĊĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġthis . set ( it [ 0 ]. x , Ġit [ 0 ]. y , Ġ 0 f , Ġ 0 f ) Ġ} ĊĠĠĠĠĠĠĠ Ġ. fold ( this ) Ġ{ Ġr , Ġv Ġ-> Ġr . merge ( v ) Ġ} Ċ Ċ fun ĠRectangle . rotate Around ( origin X : ĠFloat , Ġorigin Y : ĠFloat , Ġangle : ĠFloat ) Ġ= ĊĠĠĠ Ġrotate Around Rad ( origin X , Ġorigin Y , Ġangle Ġ* ĠMath Utils . degrees To Radians ) Ċ Ċ fun ĠRectangle . rotate Around Rad ( origin X : ĠFloat , Ġorigin Y : ĠFloat , Ġangle Rad : ĠFloat ) Ġ= ĊĠĠĠ Ġset Position ( x Ġ- Ġorigin X , Ġy Ġ- Ġorigin Y ). rotate Rad ( angle Rad ). setPosition ( x Ġ+ Ġorigin X , Ġy Ġ+ Ġorigin Y ) !! Ċ Ċ fun ĠRectangle . rotate Around ( origin : ĠVector 2 , Ġangle : ĠFloat ) Ġ= ĊĠĠĠ Ġrotate Around ( origin . x , Ġorigin . y , Ġangle ) Ċ Ċ fun ĠRectangle . rotate Around Rad ( origin : ĠVector 2 , Ġangle Rad : ĠFloat ) Ġ= ĊĠĠĠ Ġrotate Around Rad ( origin . x , Ġorigin . y , Ġangle Rad ) Ċ Ċ fun Ġ< K , ĠV > ĠMutable Map < K , ĠV >. put All ( var arg Ġpairs : ĠPair < K , ĠV >) Ġ= Ġput All ( pairs ) Ċ Ċ inline Ġfun ĠFloat Array . mutate ( f : Ġ( Float ) Ġ-> ĠFloat ) Ġ= ĊĠĠĠ Ġapply Ġ{ ĠforEach Indexed Ġ{ Ġi , Ġx Ġ-> Ġthis [ i ] Ġ= Ġf ( x ) Ġ} Ġ} Ċ Ċ fun Ġ< T > ĠMutable Collection < T >. synchronized Flush () Ġ= Ġsynchronized ( this ) Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= Ġto List () ĊĠĠĠ Ġclear () ĊĠĠĠ Ġresult Ċ } Ċ Ċ fun ĠByteArray . content Equals ( offset : ĠInt , Ġlength : ĠInt , Ġother : ĠByteArray ) Ġ= Ġas List () ĊĠĠĠ Ġ. sub List ( offset , Ġoffset Ġ+ Ġlength ) ĊĠĠĠ Ġ. toByteArray () ĊĠĠĠ Ġ. content Equals ( other ) Ċ Ċ inline Ġfun Ġ< T > ĠMutable Iterable < T >. remove While ( predicate : Ġ( T ) Ġ-> ĠBoolean ): ĠList < T > Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= Ġmutable ListOf < T >() ĊĠĠĠ Ġval Ġiterator Ġ= Ġiterator () ĊĠĠĠ Ġwhile Ġ( iterator . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= Ġiterator . next () ĊĠĠĠĠĠĠĠ Ġif Ġ(! predicate ( element )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġiterator . remove () ĊĠĠĠĠĠĠĠ Ġresult . add ( element ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ fun ĠThread . with ExceptionHandler ( handler : ĠThread . Un caught ExceptionHandler ): ĠThread Ġ{ ĊĠĠĠ Ġval Ġprevious Handler Ġ= Ġun caught ExceptionHandler ĊĠĠĠ Ġun caught ExceptionHandler Ġ= Ġprevious Handler ?. let Ġ{ ĊĠĠĠĠĠĠĠ ĠThread . Un caught ExceptionHandler Ġ{ Ġthread , Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . unc a ught Exception ( thread , Ġthrowable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . unc a ught Exception ( thread , Ġthrowable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġ?: Ġhandler ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ