]> gitweb.factorcode.org Git - factor.git/commitdiff
colors: change color class to a mixin.
authorJohn Benediktsson <mrjbq7@gmail.com>
Sun, 2 Jan 2022 01:45:39 +0000 (17:45 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sun, 2 Jan 2022 01:45:39 +0000 (17:45 -0800)
basis/colors/cmyk/cmyk.factor
basis/colors/colors.factor
basis/colors/gray/gray.factor
basis/colors/hsl/hsl.factor
basis/colors/hsv/hsv.factor
basis/colors/ryb/ryb.factor
basis/colors/yiq/yiq.factor
basis/colors/yuv/yuv.factor

index dc8e7dc4ba45c9a2329f819acf569c138f62883a..5215fade00591e3dc84c264a9e180990d765a33f 100644 (file)
@@ -6,7 +6,7 @@ math.order ;
 
 IN: colors.cmyk
 
-TUPLE: cmyka < color
+TUPLE: cmyka
 { cyan read-only }
 { magenta read-only }
 { yellow read-only }
@@ -15,6 +15,8 @@ TUPLE: cmyka < color
 
 C: <cmyka> cmyka
 
+INSTANCE: cmyka color
+
 M: cmyka >rgba
     [ [ cyan>> ] [ black>> ] bi + ]
     [ [ magenta>> ] [ black>> ] bi + ]
index 924f3a0989dc2d5945821eac45255f25d927b95c..7b55e97bcfa1526163bcab8d59d0170d7a0fc1b9 100644 (file)
@@ -6,10 +6,9 @@ io.encodings.utf8 io.files kernel lexer math math.functions
 math.parser sequences splitting vocabs.loader ;
 IN: colors
 
-! FIXME: replace with MIXIN: color INSTANCE: rgba color
-TUPLE: color ;
+MIXIN: color
 
-TUPLE: rgba < color
+TUPLE: rgba
 { red read-only }
 { green read-only }
 { blue read-only }
@@ -17,6 +16,8 @@ TUPLE: rgba < color
 
 C: <rgba> rgba
 
+INSTANCE: rgba color
+
 GENERIC: >rgba ( color -- rgba )
 
 M: rgba >rgba ; inline
@@ -80,7 +81,9 @@ ERROR: no-such-color name ;
 : parse-color ( str -- color )
     "#" ?head [ hex>rgba ] [ named-color ] if ;
 
-TUPLE: parsed-color < color string value ;
+TUPLE: parsed-color string value ;
+
+INSTANCE: parsed-color color
 
 M: parsed-color >rgba value>> >rgba ;
 
index 9b71b35837c8febada2cc1424e9d9755b389832a..a40f6c4292508a2ebefb045af8a4c95f2ae0771d 100644 (file)
@@ -3,10 +3,12 @@
 USING: accessors colors kernel math ;
 IN: colors.gray
 
-TUPLE: gray < color { gray read-only } { alpha read-only } ;
+TUPLE: gray { gray read-only } { alpha read-only } ;
 
 C: <gray> gray
 
+INSTANCE: gray color
+
 M: gray >rgba
     [ gray>> dup dup ] [ alpha>> ] bi <rgba> ; inline
 
index f61bc6e6a9149996d2c34ad6db1e85d9cb69787d..48d49a77df1dccfc1c0e9db707e4f5b3495b1424 100644 (file)
@@ -6,7 +6,7 @@ math.order ;
 
 IN: colors.hsl
 
-TUPLE: hsla < color
+TUPLE: hsla
 { hue read-only }
 { saturation read-only }
 { lightness read-only }
@@ -14,6 +14,8 @@ TUPLE: hsla < color
 
 C: <hsla> hsla
 
+INSTANCE: hsla color
+
 <PRIVATE
 
 : value ( p q t -- value )
index 1f2528e880bb38f8930f06fe59999d141fbb8be8..f8102bc6f8edae901492d824c16267b6343a0f8c 100644 (file)
@@ -7,7 +7,7 @@ IN: colors.hsv
 ! h [0,360)
 ! s [0,1]
 ! v [0,1]
-TUPLE: hsva < color
+TUPLE: hsva
 { hue read-only }
 { saturation read-only }
 { value read-only }
@@ -15,6 +15,8 @@ TUPLE: hsva < color
 
 C: <hsva> hsva
 
+INSTANCE: hsva color
+
 <PRIVATE
 
 : Hi ( hsv -- Hi ) hue>> 60 / floor 6 mod >integer ; inline
index e8a6137b6442bff5e72112ba34f55ef4c0ac5b7c..e38793dc64c58adeb41eee73116d3a2a248d285f 100644 (file)
@@ -5,7 +5,7 @@ USING: accessors colors kernel locals math math.order ;
 
 IN: colors.ryb
 
-TUPLE: ryba < color
+TUPLE: ryba
     { red read-only }
     { yellow read-only }
     { blue read-only }
@@ -13,6 +13,8 @@ TUPLE: ryba < color
 
 C: <ryba> ryba
 
+INSTANCE: ryba color
+
 <PRIVATE
 
 : normalized ( a b c quot: ( a b c -- a' b' c' ) -- a' b' c' )
index 2ab943baa77450381e602ed03285ee750333d9cb..004fd936a6db366a1a9a45f0ca2ce2f05b92e6cd 100644 (file)
@@ -6,7 +6,7 @@ math.order ;
 
 IN: colors.yiq
 
-TUPLE: yiqa < color
+TUPLE: yiqa
 { y read-only }
 { in-phase read-only }
 { quadrature read-only }
@@ -14,6 +14,8 @@ TUPLE: yiqa < color
 
 C: <yiqa> yiqa
 
+INSTANCE: yiqa color
+
 M: yiqa >rgba
     {
         [ y>> ] [ in-phase>> ] [ quadrature>> ] [ alpha>> ]
index 4c06eedde76ae6b3aa8acd82492fe62f73ecd7b9..08bc9f4e4ba069fd0758c0097ca3feb439d1735f 100644 (file)
@@ -6,7 +6,7 @@ math.order ;
 
 IN: colors.yuv
 
-TUPLE: yuva < color
+TUPLE: yuva
 { y read-only }
 { u read-only }
 { v read-only }
@@ -14,6 +14,8 @@ TUPLE: yuva < color
 
 C: <yuva> yuva
 
+INSTANCE: yuva color
+
 <PRIVATE
 
 CONSTANT: Wr 0.299