[SIZE=2][COLOR=#0000ff][COLOR=blue][FONT=Courier New]Imports[/FONT][/COLOR][FONT=Courier New][COLOR=#000000] [COLOR=black]System[/COLOR].[COLOR=black]Drawing[/COLOR].[COLOR=black]Drawing2D[/COLOR][/COLOR][/FONT][/COLOR][/SIZE]
[COLOR=#0000ff][SIZE=2][COLOR=blue][FONT=Courier New]Public [/FONT][/COLOR][FONT=Courier New][COLOR=blue]Class[/COLOR][COLOR=#000000] [COLOR=black]Atom[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Public[/COLOR][COLOR=#000000] [COLOR=black]Node[/COLOR] [/COLOR][COLOR=blue]As[/COLOR][COLOR=#000000] [COLOR=black]GraphicsPath[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Private[/COLOR][COLOR=#000000] [COLOR=black]S[/COLOR] [/COLOR][COLOR=blue]As[/COLOR][COLOR=blue]String[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Private [/COLOR][COLOR=blue]Shared[/COLOR][COLOR=#000000] [COLOR=black]GeneralSymbols[/COLOR]() [/COLOR][COLOR=blue]As [/COLOR][COLOR=blue]String[/COLOR][COLOR=#000000] = {[/COLOR][COLOR=maroon]"A"[/COLOR][COLOR=#000000], [/COLOR][COLOR=maroon]"B"[/COLOR][COLOR=#000000], [/COLOR][COLOR=maroon]"C"[/COLOR][COLOR=#000000], [/COLOR][COLOR=maroon]"D"[/COLOR][COLOR=#000000]}[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Private [/COLOR][COLOR=blue]Const[/COLOR][COLOR=#000000] [COLOR=black]Size[/COLOR] [/COLOR][COLOR=blue]As [/COLOR][COLOR=blue]Single[/COLOR][COLOR=#000000] = 20[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Private[/COLOR][COLOR=#000000] [COLOR=black]SymbolIndex[/COLOR] [/COLOR][COLOR=blue]As [/COLOR][COLOR=blue]Integer[/COLOR][COLOR=#000000] = -1[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Private[/COLOR][COLOR=#000000] [COLOR=black]X[/COLOR] [/COLOR][COLOR=blue]As [/COLOR][COLOR=blue]Integer[/COLOR][COLOR=#000000], [COLOR=black]Y[/COLOR] [/COLOR][COLOR=blue]As [/COLOR][COLOR=blue]Integer[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Private[/COLOR][COLOR=#000000] [COLOR=black]SF[/COLOR] [/COLOR][COLOR=blue]As[/COLOR][COLOR=#000000] [COLOR=black]StringFormat[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Private[/COLOR][COLOR=#000000] [COLOR=black]_IsSelected[/COLOR] [/COLOR][COLOR=blue]As [/COLOR][COLOR=blue]Boolean[/COLOR][COLOR=#000000] = [/COLOR][COLOR=blue]False[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Sub [/COLOR][COLOR=blue]New[/COLOR][COLOR=#000000]([/COLOR][COLOR=blue]ByVal[/COLOR][COLOR=#000000] [COLOR=black]x[/COLOR] [/COLOR][COLOR=blue]As[/COLOR][COLOR=blue]Integer[/COLOR][COLOR=#000000], [/COLOR][COLOR=blue]ByVal[/COLOR][COLOR=#000000] [COLOR=black]y[/COLOR] [/COLOR][COLOR=blue]As[/COLOR][COLOR=blue]Integer[/COLOR][COLOR=#000000])[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Me[/COLOR][COLOR=#000000].new([COLOR=black]GeneralSymbols[/COLOR](0), [COLOR=black]x[/COLOR], [COLOR=black]y[/COLOR])[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]End[/COLOR][COLOR=blue]Sub[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Sub [/COLOR][COLOR=blue]New[/COLOR][COLOR=#000000]([/COLOR][COLOR=blue]ByVal[/COLOR][COLOR=#000000] [COLOR=black]Symbol[/COLOR] [/COLOR][COLOR=blue]As [/COLOR][COLOR=blue]String[/COLOR][COLOR=#000000], [/COLOR][COLOR=blue]ByVal[/COLOR][COLOR=#000000] [COLOR=black]x[/COLOR] [/COLOR][COLOR=blue]As [/COLOR][COLOR=blue]Integer[/COLOR][COLOR=#000000], [/COLOR][COLOR=blue]ByVal[/COLOR][COLOR=#000000] [COLOR=black]y[/COLOR] [/COLOR][COLOR=blue]As [/COLOR][COLOR=blue]Integer[/COLOR][COLOR=#000000])[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Me[/COLOR][COLOR=#000000].[COLOR=black]X[/COLOR] = [COLOR=black]x[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Me[/COLOR][COLOR=#000000].[COLOR=black]Y[/COLOR] = [COLOR=black]y[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Me[/COLOR][COLOR=#000000].[COLOR=black]S[/COLOR] = [COLOR=black]Symbol[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=#000000] [COLOR=black]Node[/COLOR] = [/COLOR][COLOR=blue]New[/COLOR][COLOR=#000000] [COLOR=black]GraphicsPath[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=#000000] [COLOR=black]SF[/COLOR] = [/COLOR][COLOR=blue]New[/COLOR][COLOR=#000000] [COLOR=black]StringFormat[/COLOR]()[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=#000000] [COLOR=black]SF[/COLOR].[COLOR=black]Alignment[/COLOR] = [COLOR=black]StringAlignment[/COLOR].[COLOR=black]Center[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=#000000] [COLOR=black]SF[/COLOR].[COLOR=black]LineAlignment[/COLOR] = [COLOR=black]StringAlignment[/COLOR].[COLOR=black]Center[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=#000000] [COLOR=black]UpdateGraphics[/COLOR]()[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]End[/COLOR][COLOR=blue]Sub[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Public [/COLOR][COLOR=blue]ReadOnly [/COLOR][COLOR=blue]Property[/COLOR][COLOR=#000000] [COLOR=black]GraphicsData[/COLOR]() [/COLOR][COLOR=blue]As[/COLOR][COLOR=#000000] [COLOR=black]GraphicsPath[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Get[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Return[/COLOR][COLOR=#000000] [COLOR=black]Node[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]End[/COLOR][COLOR=blue]Get[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]End[/COLOR][COLOR=blue]Property[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Private[/COLOR][COLOR=blue]Sub[/COLOR][COLOR=#000000] [COLOR=black]UpdateGraphics[/COLOR]()[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=#000000] [COLOR=black]Node[/COLOR].[COLOR=black]Reset[/COLOR]()[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=#000000] [COLOR=black]Node[/COLOR].[COLOR=black]AddEllipse[/COLOR]([COLOR=black]X[/COLOR] - [COLOR=black]Size[/COLOR] / 2, [COLOR=black]Y[/COLOR] - [COLOR=black]Size[/COLOR] / 2, [COLOR=black]Size[/COLOR], [COLOR=black]Size[/COLOR])[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]End[/COLOR][COLOR=blue]Sub[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Public[/COLOR][COLOR=blue]Sub[/COLOR][COLOR=#000000] [COLOR=black]Move[/COLOR]([/COLOR][COLOR=blue]ByVal[/COLOR][COLOR=#000000] [COLOR=black]x[/COLOR] [/COLOR][COLOR=blue]As[/COLOR][COLOR=blue]Integer[/COLOR][COLOR=#000000], [/COLOR][COLOR=blue]ByVal[/COLOR][COLOR=#000000] [COLOR=black]y[/COLOR] [/COLOR][COLOR=blue]As[/COLOR][COLOR=blue]Integer[/COLOR][COLOR=#000000])[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Me[/COLOR][COLOR=#000000].[COLOR=black]X[/COLOR] = [COLOR=black]x[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Me[/COLOR][COLOR=#000000].[COLOR=black]Y[/COLOR] = [COLOR=black]y[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=#000000] [COLOR=black]UpdateGraphics[/COLOR]()[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]End[/COLOR][COLOR=blue]Sub[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Public [/COLOR][COLOR=blue]Function[/COLOR][COLOR=#000000] [COLOR=black]ISaHit[/COLOR]([/COLOR][COLOR=blue]ByVal[/COLOR][COLOR=#000000] [COLOR=black]x[/COLOR] [/COLOR][COLOR=blue]As [/COLOR][COLOR=blue]Integer[/COLOR][COLOR=#000000], [/COLOR][COLOR=blue]ByVal[/COLOR][COLOR=#000000] [COLOR=black]y[/COLOR] [/COLOR][COLOR=blue]As [/COLOR][COLOR=blue]Integer[/COLOR][COLOR=#000000]) [/COLOR][COLOR=blue]As [/COLOR][COLOR=blue]Boolean[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Return[/COLOR][COLOR=#000000] [COLOR=black]Node[/COLOR].[COLOR=black]IsVisible[/COLOR]([COLOR=black]x[/COLOR], [COLOR=black]y[/COLOR])[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]End[/COLOR][COLOR=blue]Function[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Public[/COLOR][COLOR=blue]Property[/COLOR][COLOR=#000000] [COLOR=black]IsSelected[/COLOR]() [/COLOR][COLOR=blue]As[/COLOR][COLOR=blue]Boolean[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Get[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Return[/COLOR][COLOR=#000000] [COLOR=black]_IsSelected[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]End[/COLOR][COLOR=blue]Get[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Set[/COLOR][COLOR=#000000]([/COLOR][COLOR=blue]ByVal[/COLOR][COLOR=#000000] [COLOR=black]value[/COLOR] [/COLOR][COLOR=blue]As[/COLOR][COLOR=blue]Boolean[/COLOR][COLOR=#000000])[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=#000000][COLOR=black] _IsSelected[/COLOR] = [COLOR=black]value[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]If[/COLOR][COLOR=#000000] [COLOR=black]_IsSelected[/COLOR] [/COLOR][COLOR=blue]Then[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=#000000] [COLOR=black] MyBrush[/COLOR] = [COLOR=black]Brushes[/COLOR].[COLOR=black]Crimson[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=#000000] [COLOR=black] MyPen[/COLOR] = [COLOR=black]Pens[/COLOR].[COLOR=black]Crimson[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Else[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=#000000] [COLOR=black]MyBrush[/COLOR] = [COLOR=black]Brushes[/COLOR].[COLOR=black]Black[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=#000000] [COLOR=black]MyPen[/COLOR] = [COLOR=black]Pens[/COLOR].[COLOR=black]Black[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]End [/COLOR][COLOR=blue]If[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]End [/COLOR][COLOR=blue]Set[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]End[/COLOR][COLOR=blue]Property[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Public[/COLOR][COLOR=blue]Sub[/COLOR][COLOR=#000000] [COLOR=black]CycleSymbol[/COLOR]()[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=#000000] [COLOR=black]SymbolIndex[/COLOR] += 1[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=#000000] [COLOR=black]SymbolIndex[/COLOR] = [COLOR=black]SymbolIndex[/COLOR] [/COLOR][COLOR=blue]Mod[/COLOR][COLOR=#000000] [COLOR=black]GeneralSymbols[/COLOR].[COLOR=black]Length[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=#000000] [COLOR=black]S[/COLOR] = [COLOR=black]GeneralSymbols[/COLOR]([COLOR=black]SymbolIndex[/COLOR])[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]End[/COLOR][COLOR=blue]Sub[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Private[/COLOR][COLOR=#000000] [COLOR=black]MyBrush[/COLOR] [/COLOR][COLOR=blue]As[/COLOR][COLOR=#000000] [COLOR=black]Brush[/COLOR] = [COLOR=black]Brushes[/COLOR].[COLOR=black]Black[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Private[/COLOR][COLOR=#000000] [COLOR=black]MyPen[/COLOR] [/COLOR][COLOR=blue]As[/COLOR][COLOR=#000000] [COLOR=black]Pen[/COLOR] = [COLOR=black]Pens[/COLOR].[COLOR=black]Black[/COLOR][/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Private[/COLOR][COLOR=#000000] [COLOR=black]MyFont[/COLOR] [/COLOR][COLOR=blue]As[/COLOR][COLOR=#000000] [COLOR=black]Font[/COLOR] = [/COLOR][COLOR=blue]New[/COLOR][COLOR=#000000] [COLOR=black]Font[/COLOR]([/COLOR][COLOR=maroon]"Arial"[/COLOR][COLOR=#000000], 10S, [COLOR=black]FontStyle[/COLOR].[COLOR=black]Regular[/COLOR])[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]Public[/COLOR][COLOR=blue]Sub[/COLOR][COLOR=#000000] [COLOR=black]Paint[/COLOR]([/COLOR][COLOR=blue]ByVal[/COLOR][COLOR=#000000] [COLOR=black]G[/COLOR] [/COLOR][COLOR=blue]As[/COLOR][COLOR=#000000] [COLOR=black]Graphics[/COLOR])[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=#000000] [COLOR=black]G[/COLOR].[COLOR=black]DrawPath[/COLOR]([COLOR=black]MyPen[/COLOR], [COLOR=black]GraphicsData[/COLOR])[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=#000000] [COLOR=black]G[/COLOR].[COLOR=black]DrawString[/COLOR]([COLOR=black]S[/COLOR], [/COLOR][COLOR=blue]New[/COLOR][COLOR=#000000] [COLOR=black]Font[/COLOR]([/COLOR][COLOR=maroon]"Arial"[/COLOR][COLOR=#000000], 10S, [COLOR=black]FontStyle[/COLOR].[COLOR=black]Regular[/COLOR]), [COLOR=black]MyBrush[/COLOR], [COLOR=black]X[/COLOR], [COLOR=black]Y[/COLOR], [COLOR=black]SF[/COLOR])[/COLOR][/FONT][/SIZE]
[SIZE=2][FONT=Courier New][COLOR=blue]End[/COLOR][COLOR=blue]Sub[/COLOR][/FONT][/SIZE]
[SIZE=2][COLOR=blue][FONT=Courier New]End[/FONT][/COLOR][FONT=Courier New][COLOR=blue]Class[/COLOR][/FONT][/SIZE]
[/COLOR]