package Ġgg . essential . element a . utils Ċ Ċ import Ġgg . essential . element a . components . UI Point Ċ import Ġgg . essential . universal . U Graphics Ċ import Ġgg . essential . universal . UM at rix Stack Ċ import Ġnet . minecraft . client . renderer . vertex . Default Vertex Formats Ċ import Ġorg . lwjgl . opengl . GL 1 1 Ċ import Ġjava . awt . Color Ċ import Ġkotlin . math . sqrt Ċ Ċ object ĠLine Utils Ġ{ ĊĠĠĠ Ġ@ Deprecated ( UM at rix Stack . Compat . DEPRECATED , ĠReplace With (" draw Line ( UM at rix Stack (), Ġx 1 , Ġy 1 , Ġx 2 , Ġy 2 , Ġcolor , Ġwidth ) ")) ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġdraw Line ( x 1 : ĠNumber , Ġy 1 : ĠNumber , Ġx 2 : ĠNumber , Ġy 2 : ĠNumber , Ġcolor : ĠColor , Ġwidth : ĠFloat ) Ġ= ĊĠĠĠĠĠĠĠ Ġdraw Line ( UM at rix Stack (), Ġx 1 , Ġy 1 , Ġx 2 , Ġy 2 , Ġcolor , Ġwidth ) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġdraw Line ( matrix Stack : ĠU Matrix Stack , Ġx 1 : ĠNumber , Ġy 1 : ĠNumber , Ġx 2 : ĠNumber , Ġy 2 : ĠNumber , Ġcolor : ĠColor , Ġwidth : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdraw Line Strip ( matrix Stack , ĠlistOf ( x 1 Ġto Ġy 1 , Ġx 2 Ġto Ġy 2 ), Ġcolor , Ġwidth ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġdraw Line Strip ( matrix Stack : ĠU Matrix Stack , Ġpoints : ĠList < Pair < Number , ĠNumber >>, Ġcolor : ĠColor , Ġwidth : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ ĠU Graphics . enable Blend () ĊĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠU Graphics . get From Tes sell ator () ĊĠĠĠĠĠĠĠ Ġbuffer . begin WithDefault Shader ( U Graphics . Draw Mode . TRI ANGLE _ STRIP , ĠDefault Vertex Formats . POSITION _ COLOR ); ĊĠĠĠĠĠĠĠ Ġpoints . forEach Indexed Ġ{ Ġindex , Ġcurr Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( x , Ġy ) Ġ= Ġcurr ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprev Ġ= Ġpoints . get OrNull ( index Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnext Ġ= Ġpoints . get OrNull ( index Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( dx , Ġdy ) Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprev Ġ== Ġnull Ġ-> Ġnext !!. sub ( curr ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ== Ġnull Ġ-> Ġcurr . sub ( prev ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnext . sub ( prev ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd Len Ġ= Ġsqrt ( dx Ġ* Ġdx Ġ+ Ġdy Ġ* Ġdy ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnx Ġ= Ġdx Ġ/ Ġd Len Ġ* Ġwidth Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġny Ġ= Ġdy Ġ/ Ġd Len Ġ* Ġwidth Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . pos ( matrix Stack , Ġx . toDouble () Ġ+ Ġny , Ġy . toDouble () Ġ- Ġnx , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. color ( color . red , Ġcolor . green , Ġcolor . blue , Ġcolor . alpha ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. end Vertex () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . pos ( matrix Stack , Ġx . toDouble () Ġ- Ġny , Ġy . toDouble () Ġ+ Ġnx , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. color ( color . red , Ġcolor . green , Ġcolor . blue , Ġcolor . alpha ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. end Vertex () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbuffer . draw Direct () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠPair < Number , ĠNumber >. sub ( other : ĠPair < Number , ĠNumber >): ĠPair < Double , ĠDouble > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( x 1 , Ġy 1 ) Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġval Ġ( x 2 , Ġy 2 ) Ġ= Ġother ĊĠĠĠĠĠĠĠ Ġreturn ĠPair ( x 1 . toDouble () Ġ- Ġx 2 . toDouble (), Ġy 1 . toDouble () Ġ- Ġy 2 . toDouble ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Deprecated ( UM at rix Stack . Compat . DEPRECATED , ĠReplace With (" draw Line ( UM at rix Stack (), Ġp 1 , Ġp 1 , Ġcolor , Ġwidth ) ")) ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġdraw Line ( p 1 : ĠUI Point , Ġp 2 : ĠUI Point , Ġcolor : ĠColor , Ġwidth : ĠFloat ) Ġ= ĊĠĠĠĠĠĠĠ Ġdraw Line ( UM at rix Stack (), Ġp 1 , Ġp 2 , Ġcolor , Ġwidth ) ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġdraw Line ( matrix Stack : ĠU Matrix Stack , Ġp 1 : ĠUI Point , Ġp 2 : ĠUI Point , Ġcolor : ĠColor , Ġwidth : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdraw Line ( matrix Stack , Ġp 1 . absolute X , Ġp 1 . absolute Y , Ġp 2 . absolute X , Ġp 2 . absolute Y , Ġcolor , Ġwidth ) ĊĠĠĠ Ġ} Ċ } Ċ