package Ġcom . github . aj alt . col orm ath . internal Ċ Ċ import Ġcom . github . aj alt . col orm ath . Color Ċ import Ġcom . github . aj alt . col orm ath . Color Component Info Ċ import Ġcom . github . aj alt . col orm ath . Color Space Ċ import Ġcom . github . aj alt . col orm ath . I llum inant . D 6 5 Ċ import Ġcom . github . aj alt . col orm ath . White Point Color Space Ċ import Ġcom . github . aj alt . col orm ath . model . XYZ Color Space ĊĊ Ċ internal Ġinline Ġfun Ġ< T Ġ: ĠColor > ĠColor Space < T >. with Valid Comp s ( components : ĠFloat Array , Ġblock : Ġ( Float Array ) Ġ-> ĠT ): ĠT Ġ{ ĊĠĠĠ Ġval Ġsize Ġ= Ġthis . components . size ĊĠĠĠ Ġrequire ( components . size Ġin Ġ( size Ġ- Ġ 1 ) .. size ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" Invalid Ġcomponent Ġarray Ġlength : Ġ${ components . size }, Ġexpected Ġ${ size Ġ- Ġ 1 } Ġor Ġ$ size " ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġblock ( components ) Ċ } Ċ Ċ internal Ġinline Ġfun Ġ< T Ġ: ĠColor > ĠColor Space < T >. do Create ( ĊĠĠĠ Ġcomponents : ĠFloat Array , ĊĠĠĠ Ġinit : Ġ( Float , ĠFloat , ĠFloat , ĠFloat ) Ġ-> ĠT , Ċ ): ĠT Ġ{ ĊĠĠĠ Ġreturn Ġwith Valid Comp s ( components ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit ( components [ 0 ], Ġcomponents [ 1 ], Ġcomponents [ 2 ], Ġcomponents . getOrElse ( 3 ) Ġ{ Ġ 1 f Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġinline Ġfun Ġ< T Ġ: ĠColor > ĠWhite Point Color Space < T >. adapt To This ( color : ĠColor , Ġconvert : Ġ( Color ) Ġ-> ĠT ): ĠT Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ((( color . space Ġas ? ĠWhite Point Color Space <* >) ?. white Point Ġ?: ĠD 6 5 ) Ġ== Ġwhite Point ) Ġconvert ( color ) ĊĠĠĠ Ġelse Ġconvert ( color . to XYZ (). adapt To ( XYZ Color Space ( white Point ))) Ċ } Ċ Ċ internal Ġfun Ġcomponent InfoList ( var arg Ġc : ĠColor Component Info ) Ġ= ĠlistOf (* c , ĠColor Component Info (" alpha ", Ġfalse )) Ċ internal Ġfun Ġrect angular Component Info ( var arg Ġnames : ĠString ): ĠList < Color Component Info > Ġ{ ĊĠĠĠ Ġreturn Ġ( names . asList () Ġ+ Ġ" alpha "). map Ġ{ ĠColor Component Info ( it , Ġfalse ) Ġ} Ċ } Ċ Ċ internal Ġfun Ġrect angular Component Info ( name : ĠString ): ĠList < Color Component Info > Ġ{ ĊĠĠĠ Ġreturn Ġrect angular Component Info (* name . map Ġ{ Ġit . toString () Ġ}. to Typed Array ()) Ċ } Ċ Ċ internal Ġfun Ġpolar Component Info ( name : ĠString ) Ġ= Ġname . map Ġ{ ĊĠĠĠ ĠColor Component Info ( it . toString (), Ġit Ġ== Ġ' H ') Ċ } Ġ+ ĠColor Component Info (" alpha ", Ġfalse ) Ċ