1 ! Copyright (C) 2013 John Benediktsson
2 ! See http://factorcode.org/license.txt for BSD license
4 USING: accessors colors combinators kernel math
30 { [ y>> ] [ u>> ] [ v>> ] [ alpha>> ] } cleave
35 Wb 1 Wb - * Umax Wg * / neg u *
36 Wr 1 Wr - * Vmax Wg * / neg v * + +
40 [ 0.0 1.0 clamp ] tri@
43 GENERIC: >yuva ( color -- yuva )
45 M: object >yuva >rgba >yuva ;
47 M: yuva >yuva ; inline
49 M:: rgba >yuva ( rgba -- yuva )
50 rgba >rgba-components :> ( r g b a )
51 Wr r * Wg g * Wb b * + + :> y
52 Umax 1 Wb - / b y - * :> u
53 Vmax 1 Wr - / r y - * :> v