package Ġorg . jetbrains . sk ia . paragraph Ċ Ċ import Ġorg . jetbrains . sk ia . Point Ċ Ċ class ĠShadow ( val Ġcolor : ĠInt , Ġval Ġoffset X : ĠFloat , Ġval Ġoffset Y : ĠFloat , Ġval Ġblur Sigma : ĠDouble ) Ġ{ ĊĊĠĠĠ Ġconstructor ( color : ĠInt , Ġoffset : ĠPoint , Ġblur Sigma : ĠDouble ) Ġ: Ġthis ( color , Ġoffset . x , Ġoffset . y , Ġblur Sigma ) ĊĊĠĠĠ Ġval Ġoffset : ĠPoint ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠPoint ( offset X , Ġoffset Y ) ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ=== Ġthis ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠShadow ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( color Ġ!= Ġother . color ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( offset X . compareTo ( other . offset X ) Ġ!= Ġ 0 ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( offset Y . compareTo ( other . offset Y ) Ġ!= Ġ 0 ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġblur Sigma . compareTo ( other . blur Sigma ) Ġ== Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠPR IME Ġ= Ġ 5 9 ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġresult Ġ* ĠPR IME Ġ+ Ġcolor ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġresult Ġ* ĠPR IME Ġ+ Ġoffset X . to Bits () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġresult Ġ* ĠPR IME Ġ+ Ġoffset Y . to Bits () ĊĠĠĠĠĠĠĠ Ġval Ġblur Sigma Ġ= Ġblur Sigma . to Bits () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġresult Ġ* ĠPR IME Ġ+ Ġ( blur Sigma Ġ ush r Ġ 3 2 Ġxor Ġblur Sigma ). toInt () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Shadow (_ color =$ color , Ġ_ offset X =$ offset X , Ġ_ offset Y =$ offset Y , Ġ_ blur Sigma =$ blur Sigma )" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Color (_ color : ĠInt ): ĠShadow Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( color Ġ== Ġ_ color ) Ġthis Ġelse ĠShadow (_ color , Ġoffset X , Ġoffset Y , Ġblur Sigma ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Offset X (_ offset X : ĠFloat ): ĠShadow Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( offset X Ġ== Ġ_ offset X ) Ġthis Ġelse ĠShadow ( color , Ġ_ offset X , Ġoffset Y , Ġblur Sigma ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Offset Y (_ offset Y : ĠFloat ): ĠShadow Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( offset Y Ġ== Ġ_ offset Y ) Ġthis Ġelse ĠShadow ( color , Ġoffset X , Ġ_ offset Y , Ġblur Sigma ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Blur Sigma (_ blur Sigma : ĠDouble ): ĠShadow Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( blur Sigma Ġ== Ġ_ blur Sigma ) Ġthis Ġelse ĠShadow ( color , Ġoffset X , Ġoffset Y , Ġ_ blur Sigma ) ĊĠĠĠ Ġ} Ċ }