package Ġcom . dark yen . pb 0 0 9 . present ations Ċ Ċ import Ġcom . badlogic . gdx . graphics . Color Ċ import Ġcom . badlogic . gdx . graphics . g 2 d . Texture Region Ċ import Ġcom . badlogic . gdx . math . Vector 2 Ċ Ċ /** Ċ Ġ* ĠDraw Ġfunction Ġthat Ġdraw s Ġ 4 Ġpixels Ġat Ġthe Ġsame Ġtime Ċ Ġ*/ Ċ type alias ĠDraw 4 Ġ= Ġ( x : Int , Ġy : Int , Ġcolor : Float ) Ġ-> ĠUnit Ċ /** Ċ Ġ* ĠDraw Ġfunction Ġthat Ġdraw s Ġ 8 Ġpixels Ġat Ġthe Ġsame Ġtime Ċ Ġ*/ Ċ type alias ĠDraw 8 Ġ= Ġ( x : Int , Ġy : Int , Ġcolor : Float ) Ġ-> ĠUnit Ċ Ċ fun Ġsign um ( n : Int ): Int Ġ{ ĊĠĠĠ Ġif Ġ( n Ġ< Ġ 0 ) Ġreturn Ġ- 1 ĊĠĠĠ Ġif Ġ( n Ġ> Ġ 0 ) Ġreturn Ġ 1 ĊĠĠĠ Ġreturn Ġ 0 Ċ } Ċ Ċ fun Ġsign um ( n : Float ): Float Ġ{ ĊĠĠĠ Ġif Ġ( n Ġ< Ġ 0 f ) Ġreturn Ġ- 1 f ĊĠĠĠ Ġif Ġ( n Ġ> Ġ 0 f ) Ġreturn Ġ 1 f ĊĠĠĠ Ġreturn Ġ 0 f Ċ } Ċ Ċ fun Ġceil ( f : Float ): Int Ġ{ ĊĠĠĠ Ġreturn ĠMath . ceil ( f . toDouble ()). toInt () Ċ } Ċ Ċ fun Ġround ( f : Float ): Int Ġ{ ĊĠĠĠ Ġreturn ĠMath . round ( f . toDouble ()). toInt () Ċ } Ċ Ċ fun Ġfloor ( f : Float ): Int Ġ{ ĊĠĠĠ Ġreturn ĠMath . floor ( f . toDouble ()). toInt () Ċ } Ċ Ċ fun Ġsqrt ( f : Int ): Float Ġ{ ĊĠĠĠ Ġreturn ĠMath . sqrt ( f . toDouble ()). toFloat () Ċ } Ċ Ċ fun Ġpow ( base : Float , Ġexponent : Float ): Float Ġ{ ĊĠĠĠ Ġreturn ĠMath . pow ( base . toDouble (), Ġexponent . toDouble ()). toFloat () Ċ } Ċ Ċ fun Ġpo 2 ( base : Float ): Float Ġ{ ĊĠĠĠ Ġreturn Ġbase Ġ* Ġbase Ċ } Ċ Ċ fun Ġpo 2 ( base : Int ): Int Ġ{ ĊĠĠĠ Ġreturn Ġbase Ġ* Ġbase Ċ } Ċ Ċ fun Ġsqrt ( f : Float ): Float Ġ{ ĊĠĠĠ Ġreturn ĠMath . sqrt ( f . toDouble ()). toFloat () Ċ } Ċ Ċ infix Ġfun ĠFloat . pos Mod ( f : Float ): Float Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= Ġthis Ġ% Ġf ĊĠĠĠ Ġif Ġ( result Ġ< Ġ 0 ) Ġreturn Ġresult Ġ+ Ġf ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ private Ġval Ġcolor _ TMP Ġ= ĠColor () Ċ /** Ċ Ġ* ĠAll Ġparameters Ġare Ġ 0 - 1 Ċ Ġ* Ċ Ġ* Ġhttps :// en . wikipedia . org / wiki / H SL _ and _ H SV # From _ H SV Ċ Ġ*/ Ċ fun Ġh sv ( hue : Float , Ġsat uration : Float Ġ= Ġ 1 f , Ġvalue : Float Ġ= Ġ 1 f , Ġalpha : Float Ġ= Ġ 1 f ): Float Ġ{ ĊĠĠĠ Ġval Ġc Ġ= Ġvalue Ġ* Ġsat uration ĊĠĠĠ Ġval Ġh Ġ= Ġ( if Ġ( hue Ġ< Ġ 0 ) Ġ( hue Ġ% Ġ 1 Ġ+ Ġ 1 ) Ġelse Ġ( hue Ġ% Ġ 1 )) Ġ* Ġ 6 ĊĠĠĠ Ġval Ġx Ġ= Ġc Ġ* Ġ( 1 Ġ- ĠMath . abs ( h Ġ% Ġ 2 Ġ- Ġ 1 )) ĊĊĠĠĠ Ġval Ġr : Float ĊĠĠĠ Ġval Ġg : Float ĊĠĠĠ Ġval Ġb : Float ĊĊĠĠĠ Ġif Ġ( h Ġ<= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġr Ġ= Ġc ĊĠĠĠĠĠĠĠ Ġg Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġ 0 f ĊĠĠĠ Ġ} Ġelse Ġif Ġ( h Ġ<= Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġr Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġg Ġ= Ġc ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġ 0 f ĊĠĠĠ Ġ} Ġelse Ġif Ġ( h Ġ<= Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġr Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġg Ġ= Ġc ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġx ĊĠĠĠ Ġ} Ġelse Ġif Ġ( h Ġ<= Ġ 4 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġr Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġg Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġc ĊĠĠĠ Ġ} Ġelse Ġif Ġ( h Ġ<= Ġ 5 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġr Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġg Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġc ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġr Ġ= Ġc ĊĠĠĠĠĠĠĠ Ġg Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġb Ġ= Ġx ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġm Ġ= Ġvalue Ġ- Ġc ĊĊĠĠĠ Ġreturn Ġcolor _ TMP . set ( r Ġ+ Ġm , Ġg Ġ+ Ġm , Ġb Ġ+ Ġm , Ġalpha ). toFloat Bits () Ċ } Ċ Ċ fun Ġrgb ( r : Float , Ġg : Float , Ġb : Float ): Float Ġ{ ĊĠĠĠ Ġreturn Ġcolor _ TMP . set ( r , Ġg , Ġb , Ġ 1 f ). toFloat Bits () Ċ } Ċ Ċ fun Ġwith Alpha ( color : Float , Ġnew Alpha : Float ): Float Ġ{ ĊĠĠĠ Ġval Ġbits Ġ= Ġjava . lang . Float . float To Raw Int Bits ( color ) Ġand Ġ( 2 5 5 Ġshl Ġ 2 4 ). inv () Ġor Ġ((( new Alpha Ġ* Ġ 2 5 5 ). toInt () Ġand Ġ 2 5 5 ) Ġshl Ġ 2 4 ) ĊĠĠĠ Ġreturn Ġjava . lang . Float . int Bits To Float ( bits ) Ċ } Ċ Ċ private Ġval Ġcreate Line Vertices _ Vertices Ġ= ĠFloat Array ( 5 * 4 ) Ċ private Ġval Ġcreate Line Vertices _ V 1 Ġ= ĠVector 2 () Ċ private Ġval Ġcreate Line Vertices _ V 2 Ġ= ĠVector 2 () Ċ private Ġval Ġcreate Line Vertices _ V 1 O Ġ= ĠVector 2 () Ċ private Ġval Ġcreate Line Vertices _ V 2 O Ġ= ĠVector 2 () Ċ fun Ġcreate Line Vertices ( x 1 : Float , Ġy 1 : Float , Ġx 2 : Float , Ġy 2 : Float , Ġregion : ĠTexture Region , Ġcolor : Float Ġ= ĠColor . WHITE . toFloat Bits (), Ġw 1 : Float Ġ= Ġ 1 f , Ġw 2 : Float Ġ= Ġw 1 ): Float Array Ġ{ ĊĠĠĠ Ġval Ġv 1 Ġ= Ġcreate Line Vertices _ V 1 . set ( x 1 , Ġy 1 ) ĊĠĠĠ Ġval Ġv 2 Ġ= Ġcreate Line Vertices _ V 2 . set ( x 2 , Ġy 2 ) ĊĊĠĠĠ Ġval Ġv 1 o Ġ= Ġcreate Line Vertices _ V 1 O . set ( v 1 ). sub ( v 2 ). rotate 9 0 ( 1 ). nor () ĊĠĠĠ Ġval Ġv 2 o Ġ= Ġcreate Line Vertices _ V 2 O . set ( v 1 o ) ĊĊĠĠĠ Ġv 1 o . scl ( w 1 ) ĊĠĠĠ Ġv 2 o . scl ( w 2 ) ĊĊĠĠĠ Ġval Ġvertices Ġ= Ġcreate Line Vertices _ Vertices ĊĠĠĠ Ġvertices [ 0 ] Ġ= Ġv 1 . x Ġ- Ġv 1 o . x ĊĠĠĠ Ġvertices [ 1 ] Ġ= Ġv 1 . y Ġ- Ġv 1 o . y ĊĠĠĠ Ġvertices [ 2 ] Ġ= Ġcolor ĊĠĠĠ Ġvertices [ 3 ] Ġ= Ġregion . u Ġ// TODO ĠUV ĠCoordinates Ġare Ġprobably Ġassigned Ġincorrectly , Ġbecause ĠI Ġdon 't Ġreally Ġcare Ġnow ĊĠĠĠ Ġvertices [ 4 ] Ġ= Ġregion . v ĊĊĠĠĠ Ġvertices [ 5 ] Ġ= Ġv 1 . x Ġ+ Ġv 1 o . x ĊĠĠĠ Ġvertices [ 6 ] Ġ= Ġv 1 . y Ġ+ Ġv 1 o . y ĊĠĠĠ Ġvertices [ 7 ] Ġ= Ġcolor ĊĠĠĠ Ġvertices [ 8 ] Ġ= Ġregion . u 2 ĊĠĠĠ Ġvertices [ 9 ] Ġ= Ġregion . v ĊĊĠĠĠ Ġvertices [ 1 0 ] Ġ= Ġv 2 . x Ġ+ Ġv 2 o . x ĊĠĠĠ Ġvertices [ 1 1 ] Ġ= Ġv 2 . y Ġ+ Ġv 2 o . y ĊĠĠĠ Ġvertices [ 1 2 ] Ġ= Ġcolor ĊĠĠĠ Ġvertices [ 1 3 ] Ġ= Ġregion . u 2 ĊĠĠĠ Ġvertices [ 1 4 ] Ġ= Ġregion . v 2 ĊĊĠĠĠ Ġvertices [ 1 5 ] Ġ= Ġv 2 . x Ġ- Ġv 2 o . x ĊĠĠĠ Ġvertices [ 1 6 ] Ġ= Ġv 2 . y Ġ- Ġv 2 o . y ĊĠĠĠ Ġvertices [ 1 7 ] Ġ= Ġcolor ĊĠĠĠ Ġvertices [ 1 8 ] Ġ= Ġregion . u ĊĠĠĠ Ġvertices [ 1 9 ] Ġ= Ġregion . v 2 ĊĊĠĠĠ Ġreturn Ġvertices Ċ }