package Ġorg . river . ex ert ion . k ob old C ave . screen . node Line Ċ Ċ import Ġcom . badlogic . gdx . graphics .* Ċ import Ġcom . badlogic . gdx . graphics . g 2 d . Batch Ċ import Ġcom . badlogic . gdx . graphics . g 2 d . Bitmap Font Ċ import Ġk tx . app . K tx Screen Ċ import Ġk tx . graphics . use Ċ import Ġorg . river . ex ert ion .* Ċ import Ġorg . river . ex ert ion . k ob old C ave . node . node Mesh . IN ode Mesh . Companion . setBorder ing Ċ import Ġorg . river . ex ert ion . k ob old C ave . node . Node Ċ import Ġorg . river . ex ert ion . k ob old C ave . node . node Mesh . Node Line Ċ import Ġorg . river . ex ert ion . k ob old C ave . screen . Render Palette . Back Colors Ċ import Ġorg . river . ex ert ion . k ob old C ave . screen . Render Palette . Fore Colors Ċ Ċ class ĠDemo Node Line Border ing Screen ( private Ġval Ġbatch : ĠBatch , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġfont : ĠBitmap Font , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġcamera : ĠOr tho graphic Camera ) Ġ: ĠK tx Screen Ġ{ ĊĊĠĠĠ Ġval Ġh oriz Offset Ġ= ĠGame . init Viewport Width Ġ/ Ġ 1 1 ĊĠĠĠ Ġval Ġvert Offset Ġ= ĠGame . init Viewport Height Ġ/ Ġ 1 1 ĊĠĠĠ Ġval Ġlabel Vert Offset Ġ= ĠPoint ( 0 F , ĠGame . init Viewport Height Ġ/ Ġ 3 2 ) ĊĊĠĠĠ Ġval Ġref Nodes Cases Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠlistOf ( Node ( position Ġ= ĠPoint ( h oriz Offset , Ġvert Offset Ġ* Ġ 2 )), ĠNode ( position Ġ= ĠPoint ( h oriz Offset Ġ* Ġ 1 0 , Ġvert Offset Ġ* Ġ 3 ))) ĊĠĠĠĠĠĠĠ Ġ, ĠlistOf ( Node ( position Ġ= ĠPoint ( h oriz Offset Ġ* Ġ 4 , Ġvert Offset )), ĠNode ( position Ġ= ĠPoint ( h oriz Offset Ġ* Ġ 3 , Ġvert Offset Ġ* Ġ 1 0 ))) ĊĠĠĠĠĠĠĠ Ġ, ĠlistOf ( Node ( position Ġ= ĠPoint ( h oriz Offset , Ġvert Offset Ġ* Ġ 5 )), ĠNode ( position Ġ= ĠPoint ( h oriz Offset Ġ* Ġ 1 0 , Ġvert Offset Ġ* Ġ 6 ))) ĊĠĠĠĠĠĠĠ Ġ, ĠlistOf ( Node ( position Ġ= ĠPoint ( h oriz Offset Ġ* Ġ 6 , Ġvert Offset )), ĠNode ( position Ġ= ĠPoint ( h oriz Offset Ġ* Ġ 5 , Ġvert Offset Ġ* Ġ 1 0 ))) ĊĠĠĠĠĠĠĠ Ġ, ĠlistOf ( Node ( position Ġ= ĠPoint ( h oriz Offset , Ġvert Offset Ġ* Ġ 8 )), ĠNode ( position Ġ= ĠPoint ( h oriz Offset Ġ* Ġ 1 0 , Ġvert Offset Ġ* Ġ 9 ))) ĊĠĠĠĠĠĠĠ Ġ, ĠlistOf ( Node ( position Ġ= ĠPoint ( h oriz Offset Ġ* Ġ 9 , Ġvert Offset )), ĠNode ( position Ġ= ĠPoint ( h oriz Offset Ġ* Ġ 8 , Ġvert Offset Ġ* Ġ 1 0 ))) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġadj Line Noise Ġ= Ġ 9 0 ĊĊĠĠĠ Ġ// Ġbuild Ġno isy Ġthree - line ĊĠĠĠ Ġval Ġnode Line Cases Ġ= Ġref Nodes Cases . map Ġ{ Ġnodes Cases : ĠList < Node > Ġ-> ĊĠĠĠĠĠĠĠ ĠNode Line ( first Node Ġ= Ġnodes Cases [ 0 ], Ġlast Node Ġ= Ġnodes Cases [ 1 ], Ġline Noise Ġ= Ġadj Line Noise ) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNode Line ( first Node Ġ= Ġnodes Cases [ 0 ], Ġlast Node Ġ= Ġnodes Cases [ 1 ], Ġline Noise Ġ= Ġadj Line Noise ) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNode Line ( first Node Ġ= Ġnodes Cases [ 0 ], Ġlast Node Ġ= Ġnodes Cases [ 1 ], Ġline Noise Ġ= Ġadj Line Noise ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġborder ing Node Line Cases Ġ= Ġmutable ListOf ( ĊĠĠĠĠĠĠĠ ĠNode Line ( copy Node Line Ġ= Ġnode Line Cases [ 0 ]). apply Ġ{ Ġthis . setBorder ing ( node Line Cases [ 1 ] Ġ+ Ġnode Line Cases [ 5 ]) Ġ} ĊĠĠĠĠĠĠĠ Ġ, ĠNode Line ( copy Node Line Ġ= Ġnode Line Cases [ 1 ]). apply Ġ{ Ġthis . setBorder ing ( node Line Cases [ 2 ]) Ġ} ĊĠĠĠĠĠĠĠ Ġ, ĠNode Line ( copy Node Line Ġ= Ġnode Line Cases [ 2 ]). apply Ġ{ Ġthis . setBorder ing ( node Line Cases [ 3 ]) Ġ} ĊĠĠĠ Ġ). apply Ġlist @ Ġ{ Ġ-> ĊĠĠĠĠĠĠĠ Ġthis . add ( Node Line ( copy Node Line Ġ= Ġnode Line Cases [ 3 ]). apply Ġ{ Ġthis . setBorder ing ( this @ list [ 0 ] Ġ+ Ġnode Line Cases [ 4 ]) Ġ} Ġ) ĊĠĠĠĠĠĠĠ Ġthis . add ( Node Line ( copy Node Line Ġ= Ġnode Line Cases [ 4 ]). apply Ġ{ Ġthis . setBorder ing ( this @ list [ 1 ] Ġ+ Ġnode Line Cases [ 5 ]) Ġ} Ġ) ĊĠĠĠĠĠĠĠ Ġthis . add ( Node Line ( copy Node Line Ġ= Ġnode Line Cases [ 5 ]). apply Ġ{ Ġthis . setBorder ing ( this @ list [ 2 ] Ġ+ Ġnode Line Cases [ 0 ]) Ġ} Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġs dc Ġ= ĠShape Drawer Config ( batch ) ĊĠĠĠ Ġval Ġdrawer Ġ= Ġs dc . get Drawer () ĊĊĠĠĠ Ġoverride Ġfun Ġrender ( delta : ĠFloat ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġbatch . set Projection Matrix ( camera . combined ) ĊĠĠĠĠĠĠĠ Ġcamera . update () ĊĊĠĠĠĠĠĠĠ Ġbatch . use Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( 0 .. 5 ). forEach Indexed Ġ{ Ġnode Line Idx , Ġnode Line Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfont . draw Label ( it , Ġref Nodes Cases [ node Line Idx ][ 0 ]. position Ġ- Ġlabel Vert Offset , Ġ" Node Line ĠTest ĠCase Ġ$ node Line Idx ", ĠFore Colors [ node Line Idx Ġ% ĠFore Colors . size ]) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Line Cases [ node Line Idx ]. getLine List (). forEach Ġ{ Ġline Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( line Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer . line ( line . first , Ġline . second , Back Colors [ node Line Idx Ġ% ĠBack Colors . size ], Ġ 2 F Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Line Cases [ node Line Idx ]. nodes . forEach Indexed Ġ{ Ġindex , Ġlist Leaf Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer . filled Circle ( list Leaf . position , Ġ 2 F , ĠBack Colors [ node Line Idx Ġ% ĠBack Colors . size ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġborder ing Node Line Cases [ node Line Idx ]. getLine List (). forEach Ġ{ Ġline Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( line Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer . line ( line . first , Ġline . second , Fore Colors [ node Line Idx Ġ% ĠFore Colors . size ], Ġ 2 F Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġborder ing Node Line Cases [ node Line Idx ]. nodes . forEach Indexed Ġ{ Ġindex , Ġlist Leaf Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer . filled Circle ( list Leaf . position , Ġ 2 F , ĠFore Colors [ node Line Idx Ġ% ĠFore Colors . size ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput Handler . handle Input ( camera ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpause () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġresume () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġresize ( width : ĠInt , Ġheight : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcamera . viewport Width Ġ= Ġwidth . toFloat () ĊĠĠĠĠĠĠĠ Ġcamera . viewport Height Ġ= Ġheight . toFloat () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdispose () Ġ{ ĊĠĠĠĠĠĠĠ Ġs dc . dispose Shape Drawer Config () ĊĠĠĠ Ġ} Ċ }