package Ġde . ham m werk . material . color . util Ċ Ċ import Ġde . ham m werk . material . color . color spaces . Lab Color Ċ import Ġde . ham m werk . material . color . color spaces . L ch Color Ċ import Ġde . ham m werk . material . color . color spaces . X yz Color Ċ import Ġkotlin . math . abs Ċ import Ġkotlin . math . atan 2 Ċ import Ġkotlin . math . pow Ċ import Ġkotlin . math . sqrt Ċ Ċ fun ĠLab Color . to L ch Color () Ġ= ĠL ch Color ( ĊĠĠĠ Ġlight ness Ġ= Ġlight ness , ĊĠĠĠ Ġchrom a Ġ= Ġsqrt ( a . pow ( 2 ) Ġ+ Ġb . pow ( 2 )), ĊĠĠĠ Ġhue Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠ 1 E - 4 Ġ> Ġabs ( b ) Ġ&& Ġ 1 E - 4 Ġ> Ġabs ( a ) Ġ-> Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ( atan 2 ( b , Ġa ). to Degrees () Ġ+ Ġ 3 6 0 . 0 ) Ġ% Ġ 3 6 0 . 0 ĊĠĠĠ Ġ}, ĊĠĠĠ Ġalpha Ġ= Ġalpha Ċ ) Ċ Ċ fun ĠLab Color . to X yz Color () Ġ= ĠX yz Color ( ĊĠĠĠ Ġx Ġ= Ġ. 9 5 0 4 7 Ġ* Ġf Inv (( light ness Ġ+ Ġ 1 6 . 0 ) Ġ/ Ġ 1 1 6 . 0 Ġ+ Ġa Ġ/ Ġ 5 0 0 . 0 ), ĊĠĠĠ Ġy Ġ= Ġ 1 Ġ* Ġf Inv (( light ness Ġ+ Ġ 1 6 . 0 ) Ġ/ Ġ 1 1 6 . 0 ), ĊĠĠĠ Ġz Ġ= Ġ 1 . 0 8 8 8 3 Ġ* Ġf Inv (( light ness Ġ+ Ġ 1 6 . 0 ) Ġ/ Ġ 1 1 6 . 0 Ġ- Ġb Ġ/ Ġ 2 0 0 . 0 ), ĊĠĠĠ Ġalpha Ġ= Ġalpha Ċ ) Ċ Ċ private Ġfun Ġf Inv ( value : ĠDouble ): ĠDouble Ġ{ ĊĠĠĠ Ġval Ġdelta Ġ= Ġ 6 . 0 Ġ/ Ġ 2 9 . 0 ĊĠĠĠ Ġreturn Ġif Ġ( value Ġ> Ġdelta ) Ġvalue . pow ( 3 ) Ġelse Ġ 3 . 0 Ġ* Ġdelta . pow ( 2 ) Ġ* Ġ( value Ġ- Ġ 4 . 0 Ġ/ Ġ 2 9 . 0 ) Ċ } Ċ