/* Ċ Ġ* ĠK ommand o Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) ĠL an tern Power ed Ġ< https :// www . lan tern powered . org > Ċ Ġ* ĠCopyright Ġ( c ) Ġcontributors Ċ Ġ* Ċ Ġ* ĠThis Ġwork Ġis Ġlicensed Ġunder Ġthe Ġterms Ġof Ġthe ĠMIT ĠLicense Ġ( MIT ). ĠFor Ċ Ġ* Ġa Ġcopy , Ġsee Ġ' LICENSE . txt ' Ġor Ġ< https :// opensource . org / licenses / MIT >. Ċ Ġ*/ Ċ @ file : Suppress (" FunctionName ") Ċ Ċ package Ġorg . lan tern powered . kom mand o . color Ċ Ċ /** Ċ Ġ* ĠConstructs Ġa Ġnew Ġcolor Ġfrom Ġthe Ġrgba Ġvalues . ĠEach Ġcomponent Ġwithin Ġrange Ġ 0 . 0 f Ġ- Ġ 1 . 0 f Ġ( inclusive ). Ċ Ġ*/ Ċ fun ĠColor ( red : ĠFloat , Ġgreen : ĠFloat , Ġblue : ĠFloat , Ġalpha : ĠFloat Ġ= Ġ 1 . 0 f ): ĠColor Ġ{ ĊĠ Ġcheck Float Component ( red , Ġ" red ") ĊĠ Ġcheck Float Component ( green , Ġ" green ") ĊĠ Ġcheck Float Component ( blue , Ġ" blue ") ĊĠ Ġcheck Float Component ( alpha , Ġ" alpha ") ĊĠ Ġreturn ĠColor (( red Ġ* Ġ 2 5 5 ). toInt (), Ġ( green Ġ* Ġ 2 5 5 ). toInt (), Ġ( blue Ġ* Ġ 2 5 5 ). toInt (), Ġ( alpha Ġ* Ġ 2 5 5 ). toInt ()) Ċ } Ċ Ċ private Ġfun Ġcheck Float Component ( value : ĠFloat , Ġname : ĠString ) Ġ{ ĊĠ Ġcheck ( value Ġin Ġ 0 f .. 1 f ) Ġ{ Ġ" Expected Ġ$ name Ġcomponent Ġvalue Ġin Ġrange Ġ 0 . 0 f Ġ- Ġ 1 . 0 f , Ġbut Ġfound Ġ$ value ." Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠConstructs Ġa Ġnew Ġcolor Ġfrom Ġthe Ġrgba Ġvalues . ĠEach Ġcomponent Ġwithin Ġrange Ġ 0 Ġ- Ġ 2 5 5 Ġ( inclusive ). Ċ Ġ*/ Ċ fun ĠColor ( red : ĠInt , Ġgreen : ĠInt , Ġblue : ĠInt , Ġalpha : ĠInt Ġ= Ġ 2 5 5 ): ĠColor Ġ{ ĊĠ Ġcheck Component ( red , Ġ" red ") ĊĠ Ġcheck Component ( green , Ġ" green ") ĊĠ Ġcheck Component ( blue , Ġ" blue ") ĊĠ Ġcheck Component ( alpha , Ġ" alpha ") ĊĠ Ġreturn ĠColor ((( alpha Ġshl Ġ 2 4 ) Ġor Ġ( red Ġshl Ġ 1 6 ) Ġor Ġ( green Ġshl Ġ 8 ) Ġor Ġblue ). to UInt ()) Ċ } Ċ Ċ private Ġfun Ġcheck Component ( value : ĠInt , Ġname : ĠString ) Ġ{ ĊĠ Ġcheck ( value Ġin Ġ 0 .. 2 5 5 ) Ġ{ Ġ" Expected Ġ$ name Ġcomponent Ġvalue Ġin Ġrange Ġ 0 Ġ- Ġ 2 5 5 , Ġbut Ġfound Ġ$ value ." Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠConstructs Ġa Ġnew Ġcolor Ġfrom Ġthe Ġrgba Ġvalues . Ċ Ġ*/ Ċ fun ĠColor ( red : ĠU Byte , Ġgreen : ĠU Byte , Ġblue : ĠU Byte , Ġalpha : ĠU Byte Ġ= Ġ 2 5 5 u ): ĠColor ĊĠĠĠ Ġ= ĠColor ( red . toInt (), Ġgreen . toInt (), Ġblue . toInt (), Ġalpha . toInt ()) Ċ Ċ /** Ċ Ġ* ĠRepresents Ġa Ġcolor . Ċ Ġ* Ċ Ġ* Ġ@ property Ġrgba ĠThe ĠRGBA Ġvalue . Ċ Ġ*/ Ċ inline Ġclass ĠColor ( val Ġrgba : ĠUInt ) Ġ{ ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠThe ĠRGB Ġvalue . ĊĠĠ Ġ*/ ĊĠ Ġval Ġrgb : ĠUInt ĊĠĠĠ Ġget () Ġ= Ġthis . rgba Ġand Ġ 0 xffffff u ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠThe Ġalpha Ġcomponent . Ġ 0 Ġ- Ġ 2 5 5 ĊĠĠ Ġ*/ ĊĠ Ġval Ġalpha : ĠInt ĊĠĠĠ Ġget () Ġ= Ġ(( this . rgba Ġshr Ġ 2 4 ) Ġand Ġ 0 xff u ). toInt () ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠThe Ġred Ġcomponent . Ġ 0 Ġ- Ġ 2 5 5 ĊĠĠ Ġ*/ ĊĠ Ġval Ġred : ĠInt ĊĠĠĠ Ġget () Ġ= Ġ(( this . rgba Ġshr Ġ 1 6 ) Ġand Ġ 0 xff u ). toInt () ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠThe Ġgreen Ġcomponent . Ġ 0 Ġ- Ġ 2 5 5 ĊĠĠ Ġ*/ ĊĠ Ġval Ġgreen : ĠInt ĊĠĠĠ Ġget () Ġ= Ġ(( this . rgba Ġshr Ġ 8 ) Ġand Ġ 0 xff u ). toInt () ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠThe Ġblue Ġcomponent . Ġ 0 Ġ- Ġ 2 5 5 ĊĠĠ Ġ*/ ĊĠ Ġval Ġblue : ĠInt ĊĠĠĠ Ġget () Ġ= Ġ( this . rgba Ġand Ġ 0 xff u ). toInt () ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠConverts Ġthis Ġcolor Ġinto Ġa Ġsolid Ġcolor , Ġwith Ġthe Ġalpha Ġvalue Ġset Ġto Ġmaximum . ĊĠĠ Ġ*/ ĊĠ Ġfun Ġsolid (): ĠColor ĊĠĠĠĠĠ Ġ= ĠColor ( this . rgba Ġor Ġ 0 xff 0 0 0 0 0 0 u ) ĊĊĠ Ġoverride Ġfun ĠtoString (): ĠString ĊĠĠĠĠĠ Ġ= Ġif Ġ( this . alpha Ġ== Ġ 2 5 5 ) Ġ" Color ( red =$ red , Ġgreen =$ green , Ġblue =$ blue )" Ġelse Ġ" Color ( red =$ red , Ġgreen =$ green , Ġblue =$ blue , Ġalpha =$ alpha )" ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConstructs Ġa Ġnew Ġcolor Ġwith Ġthe Ġgiven Ġrgba Ġvalue . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġrgba ( rgba : ĠInt ) Ġ= ĠColor ( rgba . to UInt ()) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConstructs Ġa Ġnew Ġcolor Ġwith Ġthe Ġgiven Ġrgba Ġvalue . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġrgba ( rgba : ĠUInt ) Ġ= ĠColor ( rgba ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConstructs Ġa Ġnew Ġcolor Ġwith Ġthe Ġgiven Ġrgb Ġvalue . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġrgb ( rgb : ĠInt ) Ġ= ĠColor ( rgb . to UInt ()). solid () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConstructs Ġa Ġnew Ġcolor Ġwith Ġthe Ġgiven Ġrgb Ġvalue . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġrgb ( rgb : ĠUInt ) Ġ= ĠColor ( rgb ). solid () ĊĠ Ġ} Ċ } Ċ Ċ object ĠColors Ġ{ ĊĊĠ Ġval ĠWhite Ġ= ĠColor . rgb ( 0 xffffff ) ĊĊĠ Ġval ĠSilver Ġ= ĠColor . rgb ( 0 xc 0 c 0 c 0 ) ĊĊĠ Ġval ĠGray Ġ= ĠColor . rgb ( 0 x 8 0 8 0 8 0 ) ĊĊĠ Ġval ĠBlack Ġ= ĠColor . rgb ( 0 x 0 0 0 0 0 0 ) ĊĊĠ Ġval ĠRed Ġ= ĠColor . rgb ( 0 xff 0 0 0 0 ) ĊĊĠ Ġval ĠMar oon Ġ= ĠColor . rgb ( 0 x 8 0 0 0 0 0 ) ĊĊĠ Ġval ĠY ellow Ġ= ĠColor . rgb ( 0 xffff 0 0 ) ĊĊĠ Ġval ĠGold Ġ= ĠColor . rgb ( 0 xff d 7 0 0 ) ĊĊĠ Ġval ĠO range Ġ= ĠColor . rgb ( 0 xff a 5 0 0 ) ĊĊĠ Ġval ĠO live Ġ= ĠColor . rgb ( 0 x 8 0 8 0 0 0 ) ĊĊĠ Ġval ĠL ime Ġ= ĠColor . rgb ( 0 x 0 0 ff 0 0 ) ĊĊĠ Ġval ĠGreen Ġ= ĠColor . rgb ( 0 x 0 0 8 0 0 0 ) ĊĊĠ Ġval ĠC yan Ġ= ĠColor . rgb ( 0 x 0 0 0 0 ff ) ĊĊĠ Ġval ĠTeal Ġ= ĠColor . rgb ( 0 x 0 0 8 0 8 0 ) ĊĊĠ Ġval ĠBlue Ġ= ĠColor . rgb ( 0 x 0 0 0 0 ff ) ĊĊĠ Ġval ĠN avy Ġ= ĠColor . rgb ( 0 x 0 0 0 0 8 0 ) ĊĊĠ Ġval ĠV io let Ġ= ĠColor . rgb ( 0 xee 8 2 ee ) ĊĊĠ Ġval ĠM agenta Ġ= ĠColor . rgb ( 0 xff 0 0 ff ) ĊĊĠ Ġval ĠPur ple Ġ= ĠColor . rgb ( 0 x 8 0 0 0 8 0 ) ĊĊĠ Ġval ĠP ink Ġ= ĠColor . rgb ( 0 xff c 0 cb ) ĊĊĠ Ġval ĠBrown Ġ= ĠColor . rgb ( 0 x 8 b 4 5 1 3 ) Ċ } Ċ