/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 0 5 - 2 0 2 1 ĠRad iance ĠK ir ill ĠGro uch nik ov . ĠAll ĠRights ĠReserved . Ċ Ġ* Ċ Ġ* ĠRedistribution Ġand Ġuse Ġin Ġsource Ġand Ġbinary Ġforms , Ġwith Ġor Ġwithout Ċ Ġ* Ġmodification , Ġare Ġpermitted Ġprovided Ġthat Ġthe Ġfollowing Ġconditions Ġare Ġmet : Ċ Ġ* Ċ Ġ* Ġ Ġo ĠRedistributions Ġof Ġsource Ġcode Ġmust Ġretain Ġthe Ġabove Ġcopyright Ġnotice , Ċ Ġ* ĠĠĠ Ġthis Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer . Ċ Ġ* Ċ Ġ* Ġ Ġo ĠRedistributions Ġin Ġbinary Ġform Ġmust Ġreproduce Ġthe Ġabove Ġcopyright Ġnotice , Ċ Ġ* ĠĠĠ Ġthis Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer Ġin Ġthe Ġdocumentation Ċ Ġ* ĠĠĠ Ġand / or Ġother Ġmaterials Ġprovided Ġwith Ġthe Ġdistribution . Ċ Ġ* Ċ Ġ* Ġ Ġo ĠNeither Ġthe Ġname Ġof Ġthe Ġcopyright Ġholder Ġnor Ġthe Ġnames Ġof Ċ Ġ* ĠĠĠ Ġits Ġcontributors Ġmay Ġbe Ġused Ġto Ġendorse Ġor Ġpromote Ġproducts Ġderived Ċ Ġ* ĠĠĠ Ġfrom Ġthis Ġsoftware Ġwithout Ġspecific Ġprior Ġwritten Ġpermission . Ċ Ġ* Ċ Ġ* ĠTHIS ĠSOFTWARE ĠIS ĠPROVIDED ĠBY ĠTHE ĠCOPYRIGHT ĠHOLDERS ĠAND ĠCONTRIBUTORS Ġ" AS ĠIS " Ċ Ġ* ĠAND ĠANY ĠEXPRESS ĠOR ĠIMPLIED ĠWARRANTIES , ĠINCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , Ċ Ġ* ĠTHE ĠIMPLIED ĠWARRANTIES ĠOF ĠMERCHANTABILITY ĠAND ĠFITNESS ĠFOR ĠA ĠPARTICULAR Ċ Ġ* ĠPURPOSE ĠARE ĠDISCLAIMED . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠCOPYRIGHT ĠOWNER ĠOR Ċ Ġ* ĠCONTRIBUTORS ĠBE ĠLIABLE ĠFOR ĠANY ĠDIRECT , ĠINDIRECT , ĠINCIDENTAL , ĠSPECIAL , Ċ Ġ* ĠEXEMPLARY , ĠOR ĠCONSEQUENTIAL ĠDAMAGES Ġ( INCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , Ċ Ġ* ĠPROCUREMENT ĠOF ĠSUBSTITUTE ĠGOODS ĠOR ĠSERVICES ; ĠLOSS ĠOF ĠUSE , ĠDATA , ĠOR ĠPROFITS ; Ċ Ġ* ĠOR ĠBUSINESS ĠINTERRUPTION ) ĠHOWEVER ĠCAUSED ĠAND ĠON ĠANY ĠTHEORY ĠOF ĠLIABILITY , Ċ Ġ* ĠWHETHER ĠIN ĠCONTRACT , ĠSTRICT ĠLIABILITY , ĠOR ĠTORT Ġ( INCLUDING ĠNEGLIGENCE Ċ Ġ* ĠOR ĠOTHERWISE ) ĠARISING ĠIN ĠANY ĠWAY ĠOUT ĠOF ĠTHE ĠUSE ĠOF ĠTHIS ĠSOFTWARE , Ċ Ġ* ĠEVEN ĠIF ĠADVISED ĠOF ĠTHE ĠPOSSIBILITY ĠOF ĠSUCH ĠDAMAGE . Ċ Ġ*/ Ċ @ file : Suppress (" NOTH ING _ TO _ INLINE ") Ċ Ċ package Ġorg . push ing pixels . rad iance . swing . k tx . awt Ċ Ċ import Ġjava . awt . Color Ċ Ċ /** Ċ Ġ* ĠReturns Ġthe Ġred Ġcomponent Ġof Ġthe Ġcolor . ĠThis Ġmethod Ġenables Ġthe Ġusage Ġof Ġdestruct uring Ċ Ġ* Ġdeclarations Ġsuch Ġas : Ċ Ġ* Ċ Ġ* Ġ``` Ċ Ġ* Ġval Ġ( red , Ġgreen , Ġblue , Ġalpha ) Ġ= Ġcolor Ċ Ġ* Ġ``` Ċ Ġ*/ Ċ public Ġinline Ġoperator Ġfun ĠColor . component 1 (): ĠInt Ġ= Ġthis . red Ċ Ċ /** Ċ Ġ* ĠReturns Ġthe Ġgreen Ġcomponent Ġof Ġthe Ġcolor . ĠThis Ġmethod Ġenables Ġthe Ġusage Ġof Ġdestruct uring Ċ Ġ* Ġdeclarations Ġsuch Ġas : Ċ Ġ* Ċ Ġ* Ġ``` Ċ Ġ* Ġval Ġ( red , Ġgreen , Ġblue , Ġalpha ) Ġ= Ġcolor Ċ Ġ* Ġ``` Ċ Ġ*/ Ċ public Ġinline Ġoperator Ġfun ĠColor . component 2 (): ĠInt Ġ= Ġthis . green Ċ Ċ /** Ċ Ġ* ĠReturns Ġthe Ġblue Ġcomponent Ġof Ġthe Ġcolor . ĠThis Ġmethod Ġenables Ġthe Ġusage Ġof Ġdestruct uring Ċ Ġ* Ġdeclarations Ġsuch Ġas : Ċ Ġ* Ċ Ġ* Ġ``` Ċ Ġ* Ġval Ġ( red , Ġgreen , Ġblue , Ġalpha ) Ġ= Ġcolor Ċ Ġ* Ġ``` Ċ Ġ*/ Ċ public Ġinline Ġoperator Ġfun ĠColor . component 3 (): ĠInt Ġ= Ġthis . blue Ċ Ċ /** Ċ Ġ* ĠReturns Ġthe Ġalpha Ġcomponent Ġof Ġthe Ġcolor . ĠThis Ġmethod Ġenables Ġthe Ġusage Ġof Ġdestruct uring Ċ Ġ* Ġdeclarations Ġsuch Ġas : Ċ Ġ* Ċ Ġ* Ġ``` Ċ Ġ* Ġval Ġ( red , Ġgreen , Ġblue , Ġalpha ) Ġ= Ġcolor Ċ Ġ* Ġ``` Ċ Ġ*/ Ċ public Ġinline Ġoperator Ġfun ĠColor . component 4 (): ĠInt Ġ= Ġthis . alpha Ċ Ċ /** Ċ Ġ* ĠReturns Ġthe Ġhue Ġof Ġthe Ġcolor . ĠThis Ġis Ġa Ġshortcut Ġfor Ġcalling Ġ[ Color . H SB to RGB ] Ġand Ċ Ġ* Ġreturning Ġthe Ġfirst Ġcomponent Ġof Ġthe Ġresult . Ċ Ġ*/ Ċ public Ġinline Ġfun ĠColor . hue (): ĠFloat Ġ= ĠColor . RGB to H SB ( this . red , Ġthis . green , Ġthis . blue , Ġnull )[ 0 ] Ċ Ċ /** Ċ Ġ* ĠReturns Ġthe Ġsat uration Ġof Ġthe Ġcolor . ĠThis Ġis Ġa Ġshortcut Ġfor Ġcalling Ġ[ Color . H SB to RGB ] Ġand Ċ Ġ* Ġreturning Ġthe Ġsecond Ġcomponent Ġof Ġthe Ġresult . Ċ Ġ*/ Ċ public Ġinline Ġfun ĠColor . sat uration (): ĠFloat Ġ= ĠColor . RGB to H SB ( this . red , Ġthis . green , Ġthis . blue , Ġnull )[ 1 ] Ċ Ċ /** Ċ Ġ* ĠReturns Ġthe Ġbrightness Ġof Ġthe Ġcolor . ĠThis Ġis Ġa Ġshortcut Ġfor Ġcalling Ġ[ Color . H SB to RGB ] Ġand Ċ Ġ* Ġreturning Ġthe Ġthird Ġcomponent Ġof Ġthe Ġresult . Ċ Ġ*/ Ċ public Ġinline Ġfun ĠColor . brightness (): ĠFloat Ġ= ĠColor . RGB to H SB ( this . red , Ġthis . green , Ġthis . blue , Ġnull )[ 2 ] Ċ Ċ /** Ċ Ġ* ĠReturns Ġa Ġderived Ġcolor Ġbased Ġon Ġthe Ġpassed Ġalpha . Ċ Ġ*/ Ċ public Ġinline Ġfun ĠColor . with Alpha ( alpha : ĠInt ): ĠColor Ġ{ ĊĠĠĠ Ġreturn ĠColor ( this . red , Ġthis . green , Ġthis . blue , Ġalpha ) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġa Ġderived Ġcolor Ġbased Ġon Ġthe Ġpassed Ġbrightness Ġfactor . Ċ Ġ* Ġ[ brightness Factor ] Ġshould Ġbe Ġin Ġ- 1 . 0 ... 1 . 0 Ġrange . ĠNegative Ġvalues Ġare Ġtreated Ġas Ġdar ken ing Ċ Ġ* Ġand Ġpositive Ġvalues Ġare Ġtreated Ġas Ġbright ening Ġ- Ġleaving Ġthe Ġhue Ġand Ġsat uration Ġint act . Ċ Ġ*/ Ċ public Ġinline Ġfun ĠColor . derive By Brightness ( brightness Factor : ĠDouble ): ĠColor Ġ{ ĊĠĠĠ Ġval Ġh sb Ġ= ĠColor . RGB to H SB ( this . red , Ġthis . green , Ġthis . blue , Ġnull ) ĊĊĠĠĠ Ġval Ġnew Brightness Ġ= Ġif Ġ( brightness Factor Ġ> Ġ 0 . 0 f ) Ġ{ ĊĠĠĠĠĠĠĠ Ġh sb [ 2 ] Ġ+ Ġ( 1 . 0 f Ġ- Ġh sb [ 2 ]) Ġ* Ġbrightness Factor ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġh sb [ 2 ] Ġ+ Ġh sb [ 2 ] Ġ* Ġbrightness Factor ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn ĠColor ( Color . H SB to RGB ( hs b [ 0 ], Ġh sb [ 1 ], Ġnew Brightness . toFloat ())) Ċ } Ċ