diff --git a/extra/colors/colors.factor b/extra/colors/colors.factor index 911f3d0b59..f8de326b4d 100644 --- a/extra/colors/colors.factor +++ b/extra/colors/colors.factor @@ -1,7 +1,43 @@ ! Copyright (C) 2003, 2007 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. + +USING: kernel combinators sequences arrays + classes.tuple multi-methods accessors colors.hsv ; + IN: colors +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +TUPLE: color ; + +TUPLE: rgba < color red green blue alpha ; + +TUPLE: hsva < color hue saturation value alpha ; + +TUPLE: grey < color grey alpha ; + +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +GENERIC: >rgba ( object -- rgba ) + +METHOD: >rgba { rgba } ; + +METHOD: >rgba { hsva } + { [ hue>> ] [ saturation>> ] [ value>> ] [ alpha>> ] } cleave 4array + [ hsv>rgb ] [ peek ] bi suffix first4 rgba boa ; + +METHOD: >rgba { grey } [ grey>> dup dup ] [ alpha>> ] bi rgba boa ; + +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +USE: syntax + +M: color red>> >rgba red>> ; +M: color green>> >rgba green>> ; +M: color blue>> >rgba blue>> ; + +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + : black { 0.0 0.0 0.0 1.0 } ; : blue { 0.0 0.0 1.0 1.0 } ; : cyan { 0 0.941 0.941 1 } ;