1 ! Copyright (C) 2013 John Benediktsson
2 ! See http://factorcode.org/license.txt for BSD license
4 USING: accessors colors kernel math math.order ;
20 : normalized ( a b c quot: ( a b c -- a' b' c' ) -- a' b' c' )
21 [ 3dup min min ] dip over
24 [ [ + ] curry tri@ ] tri* ; inline
26 :: ryb>rgb ( r! y! b! -- r g b )
42 my swap / [ * ] curry tri@
45 :: rgb>ryb ( r! g! b! -- r y b )
61 mg swap / [ * ] curry tri@
68 [ red>> ] [ yellow>> ] [ blue>> ] tri
69 [ ryb>rgb ] normalized
70 ] [ alpha>> ] bi <rgba> ;
72 GENERIC: >ryba ( color -- ryba )
74 M: object >ryba >rgba >ryba ;
76 M: ryba >ryba ; inline
79 >rgba-components [ [ rgb>ryb ] normalized ] [ <ryba> ] bi* ;