{-# LANGUAGE CPP #-}
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE ViewPatterns #-}
module Data.Array.Accelerate.Data.Colour.RGBA (
Colour,
RGBA(..),
pattern RGBA_,
rgba, rgba8,
clamp,
blend,
luminance,
opacity, opaque, transparent,
packRGBA, packABGR, unpackRGBA, unpackABGR,
packRGBA8, packABGR8, unpackRGBA8, unpackABGR8,
) where
import Data.Array.Accelerate as A hiding ( clamp )
import Data.Array.Accelerate.Sugar.Elt
import Data.Primitive.Vec
import Data.Array.Accelerate.Data.Colour.Names
import Data.Array.Accelerate.Data.Colour.Internal.Pack ( word8OfFloat )
import Data.Typeable
import GHC.TypeLits ( )
import Prelude as P
type Colour = RGBA Float
rgba :: Exp Float
-> Exp Float
-> Exp Float
-> Exp Float
-> Exp Colour
rgba r g b a
= clamp
$ RGBA_ r g b a
rgba8
:: Exp Word8
-> Exp Word8
-> Exp Word8
-> Exp Word8
-> Exp Colour
rgba8 r g b a
= RGBA_ (A.fromIntegral r / 255 :: Exp Float)
(A.fromIntegral g / 255)
(A.fromIntegral b / 255)
(A.fromIntegral a / 255)
clamp :: Exp Colour -> Exp Colour
clamp = lift1 (fmap c :: RGBA (Exp Float) -> RGBA (Exp Float))
where
c x = 0 `A.max` x `A.min` 1
blend :: Exp Float
-> Exp Float
-> Exp Colour
-> Exp Colour
-> Exp Colour
blend m1 m2 (RGBA_ r1 g1 b1 a1) (RGBA_ r2 g2 b2 a2) =
let
m12 = m1 + m2
m1' = m1 / m12
m2' = m2 / m12
r1s = r1 * r1; r2s = r2 * r2
g1s = g1 * g1; g2s = g2 * g2
b1s = b1 * b1; b2s = b2 * b2
in
rgba (sqrt (m1' * r1s + m2' * r2s))
(sqrt (m1' * g1s + m2' * g2s))
(sqrt (m1' * b1s + m2' * b2s))
((m1 * a1 + m2 * a2) / m12)
luminance :: Exp Colour -> Exp Float
luminance (RGBA_ r g b _) = 0.299*r + 0.587*g + 0.114*b
opacity :: Exp Float -> Exp Colour -> Exp Colour
opacity a (RGBA_ r g b _) = RGBA_ r g b (0 `A.max` a `A.min` 1)
transparent :: Exp Colour -> Exp Colour
transparent = opacity 0
opaque :: Exp Colour -> Exp Colour
opaque = opacity 1
packRGBA :: Exp Colour -> Exp Word32
packRGBA (RGBA_ r g b a)
= bitcast
$ RGBA_ (word8OfFloat r) (word8OfFloat g) (word8OfFloat b) (word8OfFloat a)
packABGR :: Exp Colour -> Exp Word32
packABGR (RGBA_ r g b a)
= bitcast
$ RGBA_ (word8OfFloat a) (word8OfFloat b) (word8OfFloat g) (word8OfFloat r)
packRGBA8 :: Exp (RGBA Word8) -> Exp Word32
packRGBA8 = bitcast
packABGR8 :: Exp (RGBA Word8) -> Exp Word32
packABGR8 (RGBA_ r g b a)
= bitcast
$ RGBA_ a b g r
unpackRGBA :: Exp Word32 -> Exp Colour
unpackRGBA w =
let RGBA_ r g b a = bitcast w
in rgba8 r g b a
unpackABGR :: Exp Word32 -> Exp Colour
unpackABGR w =
let RGBA_ a b g r = bitcast w
in rgba8 r g b a
unpackRGBA8 :: Exp Word32 -> Exp (RGBA Word8)
unpackRGBA8 = bitcast
unpackABGR8 :: Exp Word32 -> Exp (RGBA Word8)
unpackABGR8 w =
let RGBA_ a b g r = bitcast w
in RGBA_ r g b a
data RGBA a = RGBA a a a a
deriving (Show, P.Eq, Functor, Typeable, Generic)
pattern RGBA_ :: (Elt (RGBA a), Elt a, VecElt a, EltR (RGBA a) ~ Vec4 a) => Exp a -> Exp a -> Exp a -> Exp a -> Exp (RGBA a)
pattern RGBA_ r g b a = V4 r g b a
{-# COMPLETE RGBA_ #-}
instance Elt (RGBA Float) where
type EltR (RGBA Float) = Vec4 Float
eltR = eltR @(Vec4 Float)
tagsR = tagsR @(Vec4 Float)
toElt (Vec4 r g b a) = RGBA r g b a
fromElt (RGBA r g b a) = Vec4 r g b a
instance Elt (RGBA Word8) where
type EltR (RGBA Word8) = Vec4 Word8
eltR = eltR @(Vec4 Word8)
tagsR = tagsR @(Vec4 Word8)
toElt (Vec4 r g b a) = RGBA r g b a
fromElt (RGBA r g b a) = Vec4 r g b a
instance Lift Exp (RGBA Float) where
type Plain (RGBA Float) = RGBA Float
lift = constant
instance Lift Exp (RGBA Word8) where
type Plain (RGBA Word8) = RGBA Word8
lift = constant
instance Lift Exp (RGBA (Exp Float)) where
type Plain (RGBA (Exp Float)) = RGBA Float
lift (RGBA r g b a) = RGBA_ r g b a
instance Lift Exp (RGBA (Exp Word8)) where
type Plain (RGBA (Exp Word8)) = RGBA Word8
lift (RGBA r g b a) = RGBA_ r g b a
instance Unlift Exp (RGBA (Exp Float)) where
unlift (RGBA_ r g b a) = RGBA r g b a
instance Unlift Exp (RGBA (Exp Word8)) where
unlift (RGBA_ r g b a) = RGBA r g b a
instance P.Num a => P.Num (RGBA a) where
(+) (RGBA r1 g1 b1 _) (RGBA r2 g2 b2 _)
= RGBA (r1 + r2) (g1 + g2) (b1 + b2) 1
(-) (RGBA r1 g1 b1 _) (RGBA r2 g2 b2 _)
= RGBA (r1 - r2) (g1 - g2) (b1 - b2) 1
(*) (RGBA r1 g1 b1 _) (RGBA r2 g2 b2 _)
= RGBA (r1 * r2) (g1 * g2) (b1 * b2) 1
abs (RGBA r1 g1 b1 _)
= RGBA (abs r1) (abs g1) (abs b1) 1
signum (RGBA r1 g1 b1 _)
= RGBA (signum r1) (signum g1) (signum b1) 1
fromInteger i
= let f = P.fromInteger i
in RGBA f f f 1
instance (P.Num a, P.Fractional a) => P.Fractional (RGBA a) where
(/) (RGBA r1 g1 b1 _) (RGBA r2 g2 b2 _)
= RGBA (r1/r2) (g1/g2) (b1/b2) 1
recip (RGBA r1 g1 b1 _)
= RGBA (recip r1) (recip g1) (recip b1) 1
fromRational r
= let f = P.fromRational r
in RGBA f f f 1
instance (A.Num a, Unlift Exp (RGBA (Exp a)), Plain (RGBA (Exp a)) ~ RGBA a)
=> P.Num (Exp (RGBA a)) where
(+) = lift2 ((+) :: RGBA (Exp a) -> RGBA (Exp a) -> RGBA (Exp a))
(-) = lift2 ((-) :: RGBA (Exp a) -> RGBA (Exp a) -> RGBA (Exp a))
(*) = lift2 ((*) :: RGBA (Exp a) -> RGBA (Exp a) -> RGBA (Exp a))
abs = lift1 (abs :: RGBA (Exp a) -> RGBA (Exp a))
signum = lift1 (signum :: RGBA (Exp a) -> RGBA (Exp a))
fromInteger i = let f = P.fromInteger i
a = P.fromInteger 1 :: Exp a
in lift $ RGBA f f f a
instance (A.Fractional a, Unlift Exp (RGBA (Exp a)), Plain (RGBA (Exp a)) ~ RGBA a)
=> P.Fractional (Exp (RGBA a)) where
(/) = lift2 ((/) :: RGBA (Exp a) -> RGBA (Exp a) -> RGBA (Exp a))
recip = lift1 (recip :: RGBA (Exp a) -> RGBA (Exp a))
fromRational r = let f = P.fromRational r
a = P.fromRational 1 :: Exp a
in lift $ RGBA f f f a
instance NamedColour (RGBA Word8) where
antiqueWhite = RGBA 250 235 215 255
azure = RGBA 240 255 255 255
bisque = RGBA 255 228 196 255
blanchedAlmond = RGBA 255 235 205 255
cornsilk = RGBA 255 248 220 255
eggshell = RGBA 252 230 201 255
floralWhite = RGBA 255 250 240 255
gainsboro = RGBA 220 220 220 255
ghostWhite = RGBA 248 248 255 255
honeydew = RGBA 240 255 240 255
ivory = RGBA 255 255 240 255
lavender = RGBA 230 230 250 255
lavenderBlush = RGBA 255 240 245 255
lemonChiffon = RGBA 255 250 205 255
linen = RGBA 250 240 230 255
mintCream = RGBA 245 255 250 255
mistyRose = RGBA 255 228 225 255
moccasin = RGBA 255 228 181 255
navajoWhite = RGBA 255 222 173 255
oldLace = RGBA 253 245 230 255
papayaWhip = RGBA 255 239 213 255
peachPuff = RGBA 255 218 185 255
seashell = RGBA 255 245 238 255
snow = RGBA 255 250 250 255
thistle = RGBA 216 191 216 255
titaniumWhite = RGBA 252 255 240 255
wheat = RGBA 245 222 179 255
white = RGBA 255 255 255 255
whiteSmoke = RGBA 245 245 245 255
zincWhite = RGBA 253 248 255 255
coldGrey = RGBA 128 138 135 255
dimGrey = RGBA 105 105 105 255
grey = RGBA 192 192 192 255
lightGrey = RGBA 211 211 211 255
slateGrey = RGBA 112 128 144 255
slateGreyDark = RGBA 47 79 79 255
slateGreyLight = RGBA 119 136 153 255
warmGrey = RGBA 128 128 105 255
black = RGBA 0 0 0 255
ivoryBlack = RGBA 41 36 33 255
lampBlack = RGBA 46 71 59 255
alizarinCrimson = RGBA 227 38 54 255
brick = RGBA 156 102 31 255
cadmiumRedDeep = RGBA 227 23 13 255
coral = RGBA 255 127 80 255
coralLight = RGBA 240 128 128 255
deepPink = RGBA 255 20 147 255
englishRed = RGBA 212 61 26 255
firebrick = RGBA 178 34 34 255
geraniumLake = RGBA 227 18 48 255
hotPink = RGBA 255 105 180 255
indianRed = RGBA 176 23 31 255
lightSalmon = RGBA 255 160 122 255
madderLakeDeep = RGBA 227 46 48 255
maroon = RGBA 176 48 96 255
pink = RGBA 255 192 203 255
pinkLight = RGBA 255 182 193 255
raspberry = RGBA 135 38 87 255
red = RGBA 255 0 0 255
roseMadder = RGBA 227 54 56 255
salmon = RGBA 250 128 114 255
tomato = RGBA 255 99 71 255
venetianRed = RGBA 212 26 31 255
beige = RGBA 163 148 128 255
brown = RGBA 128 42 42 255
brownMadder = RGBA 219 41 41 255
brownOchre = RGBA 135 66 31 255
burlywood = RGBA 222 184 135 255
burntSienna = RGBA 138 54 15 255
burntUmber = RGBA 138 51 36 255
chocolate = RGBA 210 105 30 255
deepOchre = RGBA 115 61 26 255
flesh = RGBA 255 125 64 255
fleshOchre = RGBA 255 87 33 255
goldOchre = RGBA 199 120 38 255
greenishUmber = RGBA 255 61 13 255
khaki = RGBA 240 230 140 255
khakiDark = RGBA 189 183 107 255
lightBeige = RGBA 245 245 220 255
peru = RGBA 205 133 63 255
rosyBrown = RGBA 188 143 143 255
rawSienna = RGBA 199 97 20 255
rawUmber = RGBA 115 74 18 255
sepia = RGBA 94 38 18 255
sienna = RGBA 160 82 45 255
saddleBrown = RGBA 139 69 19 255
sandyBrown = RGBA 244 164 96 255
tan = RGBA 210 180 140 255
vanDykeBrown = RGBA 94 38 5 255
cadmiumOrange = RGBA 255 97 3 255
cadmiumRedLight = RGBA 255 3 13 255
carrot = RGBA 237 145 33 255
darkOrange = RGBA 255 140 0 255
marsOrange = RGBA 150 69 20 255
marsYellow = RGBA 227 112 26 255
orange = RGBA 255 128 0 255
orangeRed = RGBA 255 69 0 255
yellowOchre = RGBA 227 130 23 255
aureolineYellow = RGBA 255 168 36 255
banana = RGBA 227 207 87 255
cadmiumLemon = RGBA 255 227 3 255
cadmiumYellow = RGBA 255 153 18 255
gold = RGBA 255 215 0 255
goldenrod = RGBA 218 165 32 255
goldenrodDark = RGBA 184 134 11 255
goldenrodLight = RGBA 250 250 210 255
goldenrodPale = RGBA 238 232 170 255
lightGoldenrod = RGBA 238 221 130 255
melon = RGBA 227 168 105 255
naplesYellowDeep = RGBA 255 168 18 255
yellow = RGBA 255 255 0 255
yellowLight = RGBA 255 255 224 255
chartreuse = RGBA 127 255 0 255
chromeoxideGreen = RGBA 102 128 20 255
cinnabarGreen = RGBA 97 179 41 255
cobaltGreen = RGBA 61 145 64 255
emeraldGreen = RGBA 0 201 87 255
forestGreen = RGBA 34 139 34 255
green = RGBA 0 255 0 255
greenDark = RGBA 0 100 0 255
greenPale = RGBA 152 251 152 255
greenYellow = RGBA 173 255 47 255
lawnGreen = RGBA 124 252 0 255
limeGreen = RGBA 50 205 50 255
mint = RGBA 189 252 201 255
olive = RGBA 59 94 43 255
oliveDrab = RGBA 107 142 35 255
oliveGreenDark = RGBA 85 107 47 255
permanentGreen = RGBA 10 201 43 255
sapGreen = RGBA 48 128 20 255
seaGreen = RGBA 46 139 87 255
seaGreenDark = RGBA 143 188 143 255
seaGreenMedium = RGBA 60 179 113 255
seaGreenLight = RGBA 32 178 170 255
springGreen = RGBA 0 255 127 255
springGreenMedium = RGBA 0 250 154 255
terreVerte = RGBA 56 94 15 255
viridianLight = RGBA 110 255 112 255
yellowGreen = RGBA 154 205 50 255
aquamarine = RGBA 127 255 212 255
aquamarineMedium = RGBA 102 205 170 255
cyan = RGBA 0 255 255 255
cyanWhite = RGBA 224 255 255 255
turquoise = RGBA 64 224 208 255
turquoiseDark = RGBA 0 206 209 255
turquoiseMedium = RGBA 72 209 204 255
turquoisePale = RGBA 175 238 238 255
aliceBlue = RGBA 240 248 255 255
blue = RGBA 0 0 255 255
blueLight = RGBA 173 216 230 255
blueMedium = RGBA 0 0 205 255
cadet = RGBA 95 158 160 255
cobalt = RGBA 61 89 171 255
cornflower = RGBA 100 149 237 255
cerulean = RGBA 5 184 204 255
dodgerBlue = RGBA 30 144 255 255
indigo = RGBA 8 46 84 255
manganeseBlue = RGBA 3 168 158 255
midnightBlue = RGBA 25 25 112 255
navy = RGBA 0 0 128 255
peacock = RGBA 51 161 201 255
powderBlue = RGBA 176 224 230 255
royalBlue = RGBA 65 105 225 255
slateBlue = RGBA 106 90 205 255
slateBlueDark = RGBA 72 61 139 255
slateBlueLight = RGBA 132 112 255 255
slateBlueMedium = RGBA 123 104 238 255
skyBlue = RGBA 135 206 235 255
skyBlueDeep = RGBA 0 191 255 255
skyBlueLight = RGBA 135 206 250 255
steelBlue = RGBA 70 130 180 255
steelBlueLight = RGBA 176 196 222 255
turquoiseBlue = RGBA 0 199 140 255
ultramarine = RGBA 18 10 143 255
blueViolet = RGBA 138 43 226 255
cobaltVioletDeep = RGBA 145 33 158 255
magenta = RGBA 255 0 255 255
orchid = RGBA 218 112 214 255
orchidDark = RGBA 153 50 204 255
orchidMedium = RGBA 186 85 211 255
permanentViolet = RGBA 219 38 69 255
plum = RGBA 221 160 221 255
purple = RGBA 160 32 240 255
purpleMedium = RGBA 147 112 219 255
ultramarineViolet = RGBA 92 36 110 255
violet = RGBA 143 94 153 255
violetDark = RGBA 148 0 211 255
violetRed = RGBA 208 32 144 255
violetRedMedium = RGBA 199 21 133 255
violetRedPale = RGBA 219 112 147 255
instance NamedColour (RGBA Float) where
antiqueWhite = RGBA 0.9804 0.9216 0.8431 1.0000
azure = RGBA 0.9412 1.0000 1.0000 1.0000
bisque = RGBA 1.0000 0.8941 0.7686 1.0000
blanchedAlmond = RGBA 1.0000 0.9216 0.8039 1.0000
cornsilk = RGBA 1.0000 0.9725 0.8627 1.0000
eggshell = RGBA 0.9900 0.9000 0.7900 1.0000
floralWhite = RGBA 1.0000 0.9804 0.9412 1.0000
gainsboro = RGBA 0.8627 0.8627 0.8627 1.0000
ghostWhite = RGBA 0.9725 0.9725 1.0000 1.0000
honeydew = RGBA 0.9412 1.0000 0.9412 1.0000
ivory = RGBA 1.0000 1.0000 0.9412 1.0000
lavender = RGBA 0.9020 0.9020 0.9804 1.0000
lavenderBlush = RGBA 1.0000 0.9412 0.9608 1.0000
lemonChiffon = RGBA 1.0000 0.9804 0.8039 1.0000
linen = RGBA 0.9804 0.9412 0.9020 1.0000
mintCream = RGBA 0.9608 1.0000 0.9804 1.0000
mistyRose = RGBA 1.0000 0.8941 0.8824 1.0000
moccasin = RGBA 1.0000 0.8941 0.7098 1.0000
navajoWhite = RGBA 1.0000 0.8706 0.6784 1.0000
oldLace = RGBA 0.9922 0.9608 0.9020 1.0000
papayaWhip = RGBA 1.0000 0.9373 0.8353 1.0000
peachPuff = RGBA 1.0000 0.8549 0.7255 1.0000
seashell = RGBA 1.0000 0.9608 0.9333 1.0000
snow = RGBA 1.0000 0.9804 0.9804 1.0000
thistle = RGBA 0.8471 0.7490 0.8471 1.0000
titaniumWhite = RGBA 0.9900 1.0000 0.9400 1.0000
wheat = RGBA 0.9608 0.8706 0.7020 1.0000
white = RGBA 1.0000 1.0000 1.0000 1.0000
whiteSmoke = RGBA 0.9608 0.9608 0.9608 1.0000
zincWhite = RGBA 0.9900 0.9700 1.0000 1.0000
coldGrey = RGBA 0.5000 0.5400 0.5300 1.0000
dimGrey = RGBA 0.4118 0.4118 0.4118 1.0000
grey = RGBA 0.7529 0.7529 0.7529 1.0000
lightGrey = RGBA 0.8275 0.8275 0.8275 1.0000
slateGrey = RGBA 0.4392 0.5020 0.5647 1.0000
slateGreyDark = RGBA 0.1843 0.3098 0.3098 1.0000
slateGreyLight = RGBA 0.4667 0.5333 0.6000 1.0000
warmGrey = RGBA 0.5000 0.5000 0.4100 1.0000
black = RGBA 0.0000 0.0000 0.0000 1.0000
ivoryBlack = RGBA 0.1600 0.1400 0.1300 1.0000
lampBlack = RGBA 0.1800 0.2800 0.2300 1.0000
alizarinCrimson = RGBA 0.8900 0.1500 0.2100 1.0000
brick = RGBA 0.6100 0.4000 0.1200 1.0000
cadmiumRedDeep = RGBA 0.8900 0.0900 0.0500 1.0000
coral = RGBA 1.0000 0.4980 0.3137 1.0000
coralLight = RGBA 0.9412 0.5020 0.5020 1.0000
deepPink = RGBA 1.0000 0.0784 0.5765 1.0000
englishRed = RGBA 0.8300 0.2400 0.1000 1.0000
firebrick = RGBA 0.6980 0.1333 0.1333 1.0000
geraniumLake = RGBA 0.8900 0.0700 0.1900 1.0000
hotPink = RGBA 1.0000 0.4118 0.7059 1.0000
indianRed = RGBA 0.6900 0.0900 0.1200 1.0000
lightSalmon = RGBA 1.0000 0.6275 0.4784 1.0000
madderLakeDeep = RGBA 0.8900 0.1800 0.1900 1.0000
maroon = RGBA 0.6902 0.1882 0.3765 1.0000
pink = RGBA 1.0000 0.7529 0.7961 1.0000
pinkLight = RGBA 1.0000 0.7137 0.7569 1.0000
raspberry = RGBA 0.5300 0.1500 0.3400 1.0000
red = RGBA 1.0000 0.0000 0.0000 1.0000
roseMadder = RGBA 0.8900 0.2100 0.2200 1.0000
salmon = RGBA 0.9804 0.5020 0.4471 1.0000
tomato = RGBA 1.0000 0.3882 0.2784 1.0000
venetianRed = RGBA 0.8300 0.1000 0.1200 1.0000
beige = RGBA 0.6400 0.5800 0.5000 1.0000
brown = RGBA 0.5000 0.1647 0.1647 1.0000
brownMadder = RGBA 0.8600 0.1600 0.1600 1.0000
brownOchre = RGBA 0.5300 0.2600 0.1200 1.0000
burlywood = RGBA 0.8706 0.7216 0.5294 1.0000
burntSienna = RGBA 0.5400 0.2100 0.0600 1.0000
burntUmber = RGBA 0.5400 0.2000 0.1400 1.0000
chocolate = RGBA 0.8235 0.4118 0.1176 1.0000
deepOchre = RGBA 0.4500 0.2400 0.1000 1.0000
flesh = RGBA 1.0000 0.4900 0.2500 1.0000
fleshOchre = RGBA 1.0000 0.3400 0.1300 1.0000
goldOchre = RGBA 0.7800 0.4700 0.1500 1.0000
greenishUmber = RGBA 1.0000 0.2400 0.0500 1.0000
khaki = RGBA 0.9412 0.9020 0.5490 1.0000
khakiDark = RGBA 0.7412 0.7176 0.4196 1.0000
lightBeige = RGBA 0.9608 0.9608 0.8627 1.0000
peru = RGBA 0.8039 0.5216 0.2471 1.0000
rosyBrown = RGBA 0.7373 0.5608 0.5608 1.0000
rawSienna = RGBA 0.7800 0.3800 0.0800 1.0000
rawUmber = RGBA 0.4500 0.2900 0.0700 1.0000
sepia = RGBA 0.3700 0.1500 0.0700 1.0000
sienna = RGBA 0.6275 0.3216 0.1765 1.0000
saddleBrown = RGBA 0.5451 0.2706 0.0745 1.0000
sandyBrown = RGBA 0.9569 0.6431 0.3765 1.0000
tan = RGBA 0.8235 0.7059 0.5490 1.0000
vanDykeBrown = RGBA 0.3700 0.1500 0.0200 1.0000
cadmiumOrange = RGBA 1.0000 0.3800 0.0100 1.0000
cadmiumRedLight = RGBA 1.0000 0.0100 0.0500 1.0000
carrot = RGBA 0.9300 0.5700 0.1300 1.0000
darkOrange = RGBA 1.0000 0.5490 0.0000 1.0000
marsOrange = RGBA 0.5900 0.2700 0.0800 1.0000
marsYellow = RGBA 0.8900 0.4400 0.1000 1.0000
orange = RGBA 1.0000 0.5000 0.0000 1.0000
orangeRed = RGBA 1.0000 0.2706 0.0000 1.0000
yellowOchre = RGBA 0.8900 0.5100 0.0900 1.0000
aureolineYellow = RGBA 1.0000 0.6600 0.1400 1.0000
banana = RGBA 0.8900 0.8100 0.3400 1.0000
cadmiumLemon = RGBA 1.0000 0.8900 0.0100 1.0000
cadmiumYellow = RGBA 1.0000 0.6000 0.0700 1.0000
gold = RGBA 1.0000 0.8431 0.0000 1.0000
goldenrod = RGBA 0.8549 0.6471 0.1255 1.0000
goldenrodDark = RGBA 0.7216 0.5255 0.0431 1.0000
goldenrodLight = RGBA 0.9804 0.9804 0.8235 1.0000
goldenrodPale = RGBA 0.9333 0.9098 0.6667 1.0000
lightGoldenrod = RGBA 0.9333 0.8667 0.5098 1.0000
melon = RGBA 0.8900 0.6600 0.4100 1.0000
naplesYellowDeep = RGBA 1.0000 0.6600 0.0700 1.0000
yellow = RGBA 1.0000 1.0000 0.0000 1.0000
yellowLight = RGBA 1.0000 1.0000 0.8784 1.0000
chartreuse = RGBA 0.4980 1.0000 0.0000 1.0000
chromeoxideGreen = RGBA 0.4000 0.5000 0.0800 1.0000
cinnabarGreen = RGBA 0.3800 0.7000 0.1600 1.0000
cobaltGreen = RGBA 0.2400 0.5700 0.2500 1.0000
emeraldGreen = RGBA 0.0000 0.7900 0.3400 1.0000
forestGreen = RGBA 0.1333 0.5451 0.1333 1.0000
green = RGBA 0.0000 1.0000 0.0000 1.0000
greenDark = RGBA 0.0000 0.3922 0.0000 1.0000
greenPale = RGBA 0.5961 0.9843 0.5961 1.0000
greenYellow = RGBA 0.6784 1.0000 0.1843 1.0000
lawnGreen = RGBA 0.4863 0.9882 0.0000 1.0000
limeGreen = RGBA 0.1961 0.8039 0.1961 1.0000
mint = RGBA 0.7400 0.9900 0.7900 1.0000
olive = RGBA 0.2300 0.3700 0.1700 1.0000
oliveDrab = RGBA 0.4196 0.5569 0.1373 1.0000
oliveGreenDark = RGBA 0.3333 0.4196 0.1843 1.0000
permanentGreen = RGBA 0.0400 0.7900 0.1700 1.0000
sapGreen = RGBA 0.1900 0.5000 0.0800 1.0000
seaGreen = RGBA 0.1804 0.5451 0.3412 1.0000
seaGreenDark = RGBA 0.5608 0.7373 0.5608 1.0000
seaGreenMedium = RGBA 0.2353 0.7020 0.4431 1.0000
seaGreenLight = RGBA 0.1255 0.6980 0.6667 1.0000
springGreen = RGBA 0.0000 1.0000 0.4980 1.0000
springGreenMedium = RGBA 0.0000 0.9804 0.6039 1.0000
terreVerte = RGBA 0.2200 0.3700 0.0600 1.0000
viridianLight = RGBA 0.4300 1.0000 0.4400 1.0000
yellowGreen = RGBA 0.6039 0.8039 0.1961 1.0000
aquamarine = RGBA 0.4980 1.0000 0.8314 1.0000
aquamarineMedium = RGBA 0.4000 0.8039 0.6667 1.0000
cyan = RGBA 0.0000 1.0000 1.0000 1.0000
cyanWhite = RGBA 0.8784 1.0000 1.0000 1.0000
turquoise = RGBA 0.2510 0.8784 0.8157 1.0000
turquoiseDark = RGBA 0.0000 0.8078 0.8196 1.0000
turquoiseMedium = RGBA 0.2824 0.8196 0.8000 1.0000
turquoisePale = RGBA 0.6863 0.9333 0.9333 1.0000
aliceBlue = RGBA 0.9412 0.9725 1.0000 1.0000
blue = RGBA 0.0000 0.0000 1.0000 1.0000
blueLight = RGBA 0.6784 0.8471 0.9020 1.0000
blueMedium = RGBA 0.0000 0.0000 0.8039 1.0000
cadet = RGBA 0.3725 0.6196 0.6275 1.0000
cobalt = RGBA 0.2400 0.3500 0.6700 1.0000
cornflower = RGBA 0.3922 0.5843 0.9294 1.0000
cerulean = RGBA 0.0200 0.7200 0.8000 1.0000
dodgerBlue = RGBA 0.1176 0.5647 1.0000 1.0000
indigo = RGBA 0.0300 0.1800 0.3300 1.0000
manganeseBlue = RGBA 0.0100 0.6600 0.6200 1.0000
midnightBlue = RGBA 0.0980 0.0980 0.4392 1.0000
navy = RGBA 0.0000 0.0000 0.5020 1.0000
peacock = RGBA 0.2000 0.6300 0.7900 1.0000
powderBlue = RGBA 0.6902 0.8784 0.9020 1.0000
royalBlue = RGBA 0.2549 0.4118 0.8824 1.0000
slateBlue = RGBA 0.4157 0.3529 0.8039 1.0000
slateBlueDark = RGBA 0.2824 0.2392 0.5451 1.0000
slateBlueLight = RGBA 0.5176 0.4392 1.0000 1.0000
slateBlueMedium = RGBA 0.4824 0.4078 0.9333 1.0000
skyBlue = RGBA 0.5294 0.8078 0.9216 1.0000
skyBlueDeep = RGBA 0.0000 0.7490 1.0000 1.0000
skyBlueLight = RGBA 0.5294 0.8078 0.9804 1.0000
steelBlue = RGBA 0.2745 0.5098 0.7059 1.0000
steelBlueLight = RGBA 0.6902 0.7686 0.8706 1.0000
turquoiseBlue = RGBA 0.0000 0.7800 0.5500 1.0000
ultramarine = RGBA 0.0700 0.0400 0.5600 1.0000
blueViolet = RGBA 0.5412 0.1686 0.8863 1.0000
cobaltVioletDeep = RGBA 0.5700 0.1300 0.6200 1.0000
magenta = RGBA 1.0000 0.0000 1.0000 1.0000
orchid = RGBA 0.8549 0.4392 0.8392 1.0000
orchidDark = RGBA 0.6000 0.1961 0.8000 1.0000
orchidMedium = RGBA 0.7294 0.3333 0.8275 1.0000
permanentViolet = RGBA 0.8600 0.1500 0.2700 1.0000
plum = RGBA 0.8667 0.6275 0.8667 1.0000
purple = RGBA 0.6275 0.1255 0.9412 1.0000
purpleMedium = RGBA 0.5765 0.4392 0.8588 1.0000
ultramarineViolet = RGBA 0.3600 0.1400 0.4300 1.0000
violet = RGBA 0.5600 0.3700 0.6000 1.0000
violetDark = RGBA 0.5804 0.0000 0.8275 1.0000
violetRed = RGBA 0.8157 0.1255 0.5647 1.0000
violetRedMedium = RGBA 0.7804 0.0824 0.5216 1.0000
violetRedPale = RGBA 0.8588 0.4392 0.5765 1.0000