package Ġme . ore . swing . ext . util Ċ Ċ import Ġjava . awt .* ĊĊ Ċ /** Ċ Ġ* ĠConfiguration Ġwhich Ġcan Ġbe Ġ[ applied ][ apply To ] Ġto Ġany Ġ[ Graphics ] Ġobject ; Ċ Ġ* Ġsome Ġproperties Ġwill Ġbe Ġapplied Ġonly Ġif Ġtarget Ġobject Ġis Ġ[ Graphics 2 D ] Ċ Ġ* Ċ Ġ* Ġ@ param Ġcolor ĠIf Ġis Ġnot Ġ` null `, Ġthen Ġwill Ġbe Ġpassed Ġto Ġ[ Graphics . setColor ] Ċ Ġ* Ġ@ param Ġbackground Ġ__( for Ġ[ Graphics 2 D ]) __ Ġif Ġis Ġnot Ġ` null `, Ġthen Ġwill Ġbe Ġpassed Ġto Ġ[ Graphics 2 D . setBackground ] Ċ Ġ* Ġ@ param Ġstroke Ġ__( for Ġ[ Graphics 2 D ]) __ Ġif Ġis Ġnot Ġ` null `, Ġthen Ġwill Ġbe Ġpassed Ġto Ġ[ Graphics 2 D . set Stroke ] Ċ Ġ* Ġ@ param Ġpaint Ġ__( for Ġ[ Graphics 2 D ]) __ Ġif Ġis Ġnot Ġ` null `, Ġthen Ġwill Ġbe Ġpassed Ġto Ġ[ Graphics 2 D . set Paint ] Ċ Ġ* Ġ@ param Ġfont ĠIf Ġis Ġnot Ġ` null `, Ġthen Ġwill Ġbe Ġpassed Ġto Ġ[ Graphics . setFont ] Ċ Ġ* Ġ@ param Ġpaint Mode ĠIf Ġis Ġ` true `, Ġthen Ġ[ Graphics . set Paint Mode ] Ġwill Ġbe Ġcalled Ċ Ġ* Ġ@ param Ġxor Mode Color ĠIf Ġis Ġnot Ġ` null `, Ġthen Ġwill Ġbe Ġpassed Ġto Ġ[ Graphics . set XOR Mode ] Ċ Ġ* Ġ@ param Ġcomposite Ġ__( for Ġ[ Graphics 2 D ]) __ Ġif Ġis Ġnot Ġ` null `, Ġthen Ġwill Ġbe Ġpassed Ġto Ġ[ Graphics 2 D . set Composite ] Ċ Ġ* Ġ@ param Ġclip Rect ĠIf Ġis Ġnot Ġ` null `, Ġthen Ġits Ġ[ x ][ Rectangle . x ], Ġ[ y ][ Rectangle . y ], Ġ[ width ][ Rectangle . width ], Ġ[ height ][ Rectangle . height ] Ġwill Ġbe Ġpassed Ġto Ġ[ Graphics . clip Rect ] Ċ Ġ* Ġ@ param Ġclip ĠIf Ġis Ġnot Ġ` null `, Ġthen Ġwill Ġbe Ġpassed Ġto Ġ[ Graphics . set Clip ] Ċ Ġ* Ġ@ param Ġrendering Hints Ġ__( for Ġ[ Graphics 2 D ]) __ Ġif Ġis Ġnot Ġ` null `, Ġthen Ġwill Ġbe Ġpassed Ġto Ġ[ Graphics 2 D . set Rendering Hints ] Ċ Ġ*/ Ċ open Ġclass ĠO re Graphics 2 D Config ( ĊĠĠĠ Ġcolor : ĠColor ? Ġ= Ġnull , ĊĠĠĠ Ġopen Ġvar Ġbackground : ĠColor ? Ġ= Ġnull , ĊĠĠĠ Ġopen Ġvar Ġstroke : ĠSt roke ? Ġ= Ġnull , ĊĠĠĠ Ġopen Ġvar Ġpaint : ĠPaint ? Ġ= Ġnull , ĊĠĠĠ Ġfont : ĠFont ? Ġ= Ġnull , ĊĠĠĠ Ġpaint Mode : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġxor Mode Color : ĠColor ? Ġ= Ġnull , ĊĠĠĠ Ġopen Ġvar Ġcomposite : ĠComposite ? Ġ= Ġnull , ĊĠĠĠ Ġclip Rect : ĠRectangle ? Ġ= Ġnull , ĊĠĠĠ Ġclip : ĠShape ? Ġ= Ġnull , ĊĠĠĠ Ġopen Ġvar Ġrendering Hints : ĠMap < out ĠAny ?, ĠAny ?> ? Ġ= Ġnull Ċ ): ĠO re Graphics Config ( color , Ġfont , Ġpaint Mode , Ġxor Mode Color , Ġclip Rect , Ġclip ) Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠApply Ġcurrent Ġconfig Ġto Ġ[ target ] Ġin Ġthis Ġorder : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ 1 . ĠIf Ġ[ color ] Ġis Ġnot Ġ` null `, Ġit Ġis Ġset Ġto Ġ` target `. [ color ][ Graphics . setColor ]; ĊĠĠĠĠ Ġ* Ġ 1 . ĠIf Ġ[ font ] Ġis Ġnot Ġ` null `, Ġit Ġis Ġset Ġto Ġ` target `. [ font ][ Graphics . setFont ]; ĊĠĠĠĠ Ġ* Ġ 1 . ĠIf Ġ[ paint Mode ] Ġis Ġ` true `, Ġ` target `. [ set Paint Mode ][ Graphics . set Paint Mode ] Ġis Ġcalled ; ĊĠĠĠĠ Ġ* Ġ 1 . ĠIf Ġ[ xor Mode Color ] Ġis Ġnot Ġ` null `, Ġit Ġis Ġpassed Ġto Ġ` target `. [ set XOR Mode ][ Graphics . set XOR Mode ]; ĊĠĠĠĠ Ġ* Ġ 1 . ĠIf Ġ[ clip Rect ] Ġis Ġnot Ġ` null `, Ġits Ġ[ x ][ Rectangle . x ], Ġ[ y ][ Rectangle . y ], Ġ[ width ][ Rectangle . width ], Ġ[ height ][ Rectangle . height ] Ġproperties ĊĠĠĠĠ Ġ* Ġare Ġpassed Ġto Ġ` Ġtarget `. [ clip Rect ][ Graphics . clip Rect ] ĊĠĠĠĠ Ġ* Ġ 1 . ĠIf Ġ[ clip ] Ġis Ġnot Ġ` null `, Ġit Ġis Ġpassed Ġto Ġ` target `. [ set Clip ][ Graphics . set Clip ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġ` target ` Ġis Ġan Ġobject Ġof Ġclass Ġ[ Graphics 2 D ], Ġthen Ġadditional Ġactions Ġare Ġapplied : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ 1 . ĠIf Ġ[ background ] Ġis Ġnot Ġ` null `, Ġit Ġis Ġset Ġto Ġ` target `. [ background ][ Graphics 2 D . setBackground ] ĊĠĠĠĠ Ġ* Ġ 1 . ĠIf Ġ[ background ] Ġis Ġnot Ġ` null `, Ġit Ġis Ġset Ġto Ġ` target `. [ stroke ][ Graphics 2 D . set Stroke ] ĊĠĠĠĠ Ġ* Ġ 1 . ĠIf Ġ[ background ] Ġis Ġnot Ġ` null `, Ġit Ġis Ġset Ġto Ġ` target `. [ paint ][ Graphics 2 D . set Paint ] ĊĠĠĠĠ Ġ* Ġ 1 . ĠIf Ġ[ background ] Ġis Ġnot Ġ` null `, Ġit Ġis Ġset Ġto Ġ` target `. [ composite ][ Graphics 2 D . set Composite ] ĊĠĠĠĠ Ġ* Ġ 1 . ĠIf Ġ[ background ] Ġis Ġnot Ġ` null `, Ġit Ġis Ġpassed Ġto Ġ` target `. [ Graphics 2 D . set Rendering Hints ] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġtarget ĠGraphics Ġto Ġwhich Ġthe Ġcurrent Ġconfiguration Ġshould Ġbe Ġapplied ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġapply To ( target : ĠGraphics ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . apply To ( target ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( target Ġis ĠGraphics 2 D ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . background ?. let Ġ{ Ġtarget . background Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . stroke ?. let Ġ{ Ġtarget . stroke Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . paint ?. let Ġ{ Ġtarget . paint Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . composite ?. let Ġ{ Ġtarget . composite Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . rendering Hints ?. let Ġ{ Ġtarget . set Rendering Hints ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Suppress (" D uplicated Code ") ĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠO re Graphics 2 D Config ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ(! super . equals ( other )) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif Ġ( background Ġ!= Ġother . background ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( stroke Ġ!= Ġother . stroke ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( paint Ġ!= Ġother . paint ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( composite Ġ!= Ġother . composite ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( rendering Hints Ġ!= Ġother . rendering Hints ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġsuper . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( background ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( stroke ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( paint ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( composite ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( rendering Hints ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ