/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠRoman ĠE liz ar ov . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ Ġ*/ Ċ Ċ package Ġpoly hed ra . js . util Ċ Ċ import Ġorg . kh ronos . webgl .* Ċ import Ġpoly hed ra . common . util .* Ċ import Ġpoly hed ra . js . glsl .* Ċ import Ġkotlin . math .* Ċ Ċ data Ġclass ĠColor ( ĊĠĠĠ Ġval Ġr : ĠFloat , ĊĠĠĠ Ġval Ġg : ĠFloat , ĊĠĠĠ Ġval Ġb : ĠFloat , ĊĠĠĠ Ġval Ġa : ĠFloat Ġ= Ġ 1 . 0 f Ċ ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġ" Color (${ r . fmt ( 3 )}, Ġ${ g . fmt ( 3 )}, Ġ${ b . fmt ( 3 )}, Ġ${ a . fmt ( 3 )}) " Ċ } Ċ Ċ fun Ġh sl Color ( h : ĠDouble , Ġs : ĠDouble , Ġl : ĠDouble , Ġa : ĠDouble Ġ= Ġ 1 . 0 ): ĠColor Ġ{ ĊĠĠĠ Ġval Ġc Ġ= Ġ( 1 Ġ- Ġ Ġ( 2 Ġ* Ġl Ġ- Ġ 1 ). absolute Value ) Ġ* Ġs Ġ// Ġchrom a ĊĠĠĠ Ġval Ġp Ġ= Ġfrac ( h ) Ġ* Ġ 6 ĊĠĠĠ Ġval Ġx Ġ= Ġc Ġ* Ġ( 1 Ġ- Ġabs (( p Ġmod Ġ 2 . 0 ) Ġ- Ġ 1 )) ĊĠĠĠ Ġval Ġm Ġ= Ġ( l Ġ- Ġc Ġ/ Ġ 2 ). toFloat () ĊĠĠĠ Ġval Ġcm Ġ= Ġ( c Ġ+ Ġm ). toFloat () ĊĠĠĠ Ġval Ġx m Ġ= Ġ( x Ġ+ Ġm ). toFloat () ĊĠĠĠ Ġval Ġaf Ġ= Ġa . toFloat () ĊĠĠĠ Ġreturn Ġwhen Ġ( p . toInt ()) Ġ{ ĊĠĠĠĠĠĠĠĠ 0 Ġ-> ĠColor ( cm , Ġx m , Ġm , Ġaf ) ĊĠĠĠĠĠĠĠĠ 1 Ġ-> ĠColor ( xm , Ġcm , Ġm , Ġaf ) ĊĠĠĠĠĠĠĠĠ 2 Ġ-> ĠColor ( m , Ġcm , Ġx m , Ġaf ) ĊĠĠĠĠĠĠĠĠ 3 Ġ-> ĠColor ( m , Ġx m , Ġcm , Ġaf ) ĊĠĠĠĠĠĠĠĠ 4 Ġ-> ĠColor ( xm , Ġm , Ġcm , Ġaf ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠColor ( cm , Ġm , Ġx m , Ġaf ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠColor . toFloat 3 2 Array 4 (): ĠFloat 3 2 Array Ġ= Ġfloat 3 2 Of ( r , Ġg , Ġb , Ġa ) Ċ Ċ fun ĠColor . to Rgb String () Ġ= ĊĠĠĠ Ġ" rgb (${ r . int Color }, ${ g . int Color }, ${ b . int Color })" Ċ Ċ private Ġval ĠFloat . int Color ĊĠĠĠ Ġget () Ġ= Ġ( this Ġ* Ġ 2 5 5 ). round ToInt ()