
module.exports = exports =
    Color = (r, g, b, a = 1.0) -> new Float32Array [r, g, b, a]

#   converts a color to "rgba(255,255,255,1)" style strings.
Color.toRgbaString = (color) ->
    return null if not color?
    convert = (index) -> Math.round color[index] * 255
    return "rgba(#{convert 0},#{convert 1},#{convert 2},#{color[3]})"

Color.aliceblue = Color 240/255, 248/255,255/255
Color.antiquewhite = Color 250/255, 235/255,215/255
Color.aqua = Color 0/255, 255/255,255/255
Color.aquamarine = Color 127/255, 255/255,212/255
Color.azure = Color 240/255, 255/255,255/255
Color.beige = Color 245/255, 245/255,220/255
Color.bisque = Color 255/255, 228/255,196/255
Color.black = Color 0/255, 0/255,0/255
Color.blanchedalmond = Color 255/255, 235/255,205/255
Color.blue = Color 0/255, 0/255,255/255
Color.blueviolet = Color 138/255, 43/255,226/255
Color.brown = Color 165/255, 42/255,42/255
Color.burlywood = Color 222/255, 184/255,135/255
Color.cadetblue = Color 95/255, 158/255,160/255
Color.chartreuse = Color 127/255, 255/255,0/255
Color.chocolate = Color 210/255, 105/255,30/255
Color.coral = Color 255/255, 127/255,80/255
Color.cornflowerblue = Color 100/255, 149/255,237/255
Color.cornsilk = Color 255/255, 248/255,220/255
Color.crimson = Color 220/255, 20/255,60/255
Color.cyan = Color 0/255, 255/255,255/255
Color.darkblue = Color 0/255, 0/255,139/255
Color.darkcyan = Color 0/255, 139/255,139/255
Color.darkgoldenrod = Color 184/255, 134/255,11/255
Color.darkgray = Color 169/255, 169/255,169/255
Color.darkgreen = Color 0/255, 100/255,0/255
Color.darkgrey = Color 169/255, 169/255,169/255
Color.darkkhaki = Color 189/255, 183/255,107/255
Color.darkmagenta = Color 139/255, 0/255,139/255
Color.darkolivegreen = Color 85/255, 107/255,47/255
Color.darkorange = Color 255/255, 140/255,0/255
Color.darkorchid = Color 153/255, 50/255,204/255
Color.darkred = Color 139/255, 0/255,0/255
Color.darksalmon = Color 233/255, 150/255,122/255
Color.darkseagreen = Color 143/255, 188/255,143/255
Color.darkslateblue = Color 72/255, 61/255,139/255
Color.darkslategray = Color 47/255, 79/255,79/255
Color.darkslategrey = Color 47/255, 79/255,79/255
Color.darkturquoise = Color 0/255, 206/255,209/255
Color.darkviolet = Color 148/255, 0/255,211/255
Color.deeppink = Color 255/255, 20/255,147/255
Color.deepskyblue = Color 0/255, 191/255,255/255
Color.dimgray = Color 105/255, 105/255,105/255
Color.dimgrey = Color 105/255, 105/255,105/255
Color.dodgerblue = Color 30/255, 144/255,255/255
Color.firebrick = Color 178/255, 34/255,34/255
Color.floralwhite = Color 255/255, 250/255,240/255
Color.forestgreen = Color 34/255, 139/255,34/255
Color.fuchsia = Color 255/255, 0/255,255/255
Color.gainsboro = Color 220/255, 220/255,220/255
Color.ghostwhite = Color 248/255, 248/255,255/255
Color.gold = Color 255/255, 215/255,0/255
Color.goldenrod = Color 218/255, 165/255,32/255
Color.gray = Color 128/255, 128/255,128/255
Color.green = Color 0/255, 128/255,0/255
Color.greenyellow = Color 173/255, 255/255,47/255
Color.grey = Color 128/255, 128/255,128/255
Color.honeydew = Color 240/255, 255/255,240/255
Color.hotpink = Color 255/255, 105/255,180/255
Color.indianred = Color 205/255, 92/255,92/255
Color.indigo = Color 75/255, 0/255,130/255
Color.ivory = Color 255/255, 255/255,240/255
Color.khaki = Color 240/255, 230/255,140/255
Color.lavender = Color 230/255, 230/255,250/255
Color.lavenderblush = Color 255/255, 240/255,245/255
Color.lawngreen = Color 124/255, 252/255,0/255
Color.lemonchiffon = Color 255/255, 250/255,205/255
Color.lightblue = Color 173/255, 216/255,230/255
Color.lightcoral = Color 240/255, 128/255,128/255
Color.lightcyan = Color 224/255, 255/255,255/255
Color.lightgoldenrodyellow = Color 250/255, 250/255,210/255
Color.lightgray = Color 211/255, 211/255,211/255
Color.lightgreen = Color 144/255, 238/255,144/255
Color.lightgrey = Color 211/255, 211/255,211/255
Color.lightpink = Color 255/255, 182/255,193/255
Color.lightsalmon = Color 255/255, 160/255,122/255
Color.lightseagreen = Color 32/255, 178/255,170/255
Color.lightskyblue = Color 135/255, 206/255,250/255
Color.lightslategray = Color 119/255, 136/255,153/255
Color.lightslategrey = Color 119/255, 136/255,153/255
Color.lightsteelblue = Color 176/255, 196/255,222/255
Color.lightyellow = Color 255/255, 255/255,224/255
Color.lime = Color 0/255, 255/255,0/255
Color.limegreen = Color 50/255, 205/255,50/255
Color.linen = Color 250/255, 240/255,230/255
Color.magenta = Color 255/255, 0/255,255/255
Color.maroon = Color 128/255, 0/255,0/255
Color.mediumaquamarine = Color 102/255, 205/255,170/255
Color.mediumblue = Color 0/255, 0/255,205/255
Color.mediumorchid = Color 186/255, 85/255,211/255
Color.mediumpurple = Color 147/255, 112/255,219/255
Color.mediumseagreen = Color 60/255, 179/255,113/255
Color.mediumslateblue = Color 123/255, 104/255,238/255
Color.mediumspringgreen = Color 0/255, 250/255,154/255
Color.mediumturquoise = Color 72/255, 209/255,204/255
Color.mediumvioletred = Color 199/255, 21/255,133/255
Color.midnightblue = Color 25/255, 25/255,112/255
Color.mintcream = Color 245/255, 255/255,250/255
Color.mistyrose = Color 255/255, 228/255,225/255
Color.moccasin = Color 255/255, 228/255,181/255
Color.navajowhite = Color 255/255, 222/255,173/255
Color.navy = Color 0/255, 0/255,128/255
Color.oldlace = Color 253/255, 245/255,230/255
Color.olive = Color 128/255, 128/255,0/255
Color.olivedrab = Color 107/255, 142/255,35/255
Color.orange = Color 255/255, 165/255,0/255
Color.orangered = Color 255/255, 69/255,0/255
Color.orchid = Color 218/255, 112/255,214/255
Color.palegoldenrod = Color 238/255, 232/255,170/255
Color.palegreen = Color 152/255, 251/255,152/255
Color.paleturquoise = Color 175/255, 238/255,238/255
Color.palevioletred = Color 219/255, 112/255,147/255
Color.papayawhip = Color 255/255, 239/255,213/255
Color.peachpuff = Color 255/255, 218/255,185/255
Color.peru = Color 205/255, 133/255,63/255
Color.pink = Color 255/255, 192/255,203/255
Color.plum = Color 221/255, 160/255,221/255
Color.powderblue = Color 176/255, 224/255,230/255
Color.purple = Color 128/255, 0/255,128/255
Color.red = Color 255/255, 0/255,0/255
Color.rosybrown = Color 188/255, 143/255,143/255
Color.royalblue = Color 65/255, 105/255,225/255
Color.saddlebrown = Color 139/255, 69/255,19/255
Color.salmon = Color 250/255, 128/255,114/255
Color.sandybrown = Color 244/255, 164/255,96/255
Color.seagreen = Color 46/255, 139/255,87/255
Color.seashell = Color 255/255, 245/255,238/255
Color.sienna = Color 160/255, 82/255,45/255
Color.silver = Color 192/255, 192/255,192/255
Color.skyblue = Color 135/255, 206/255,235/255
Color.slateblue = Color 106/255, 90/255,205/255
Color.slategray = Color 112/255, 128/255,144/255
Color.slategrey = Color 112/255, 128/255,144/255
Color.snow = Color 255/255, 250/255,250/255
Color.springgreen = Color 0/255, 255/255,127/255
Color.steelblue = Color 70/255, 130/255,180/255
Color.tan = Color 210/255, 180/255,140/255
Color.teal = Color 0/255, 128/255,128/255
Color.thistle = Color 216/255, 191/255,216/255
Color.tomato = Color 255/255, 99/255,71/255
Color.turquoise = Color 64/255, 224/255,208/255
Color.violet = Color 238/255, 130/255,238/255
Color.wheat = Color 245/255, 222/255,179/255
Color.white = Color 255/255, 255/255,255/255
Color.whitesmoke = Color 245/255, 245/255,245/255
Color.yellow = Color 255/255, 255/255,0/255
Color.yellowgreen = Color 154/255, 205/255,50/255

if typeof describe is 'function'
    assert = require 'assert'
    describe 'glass.ui.Color', ->
        it "toRgbaString(Color.white) should yield rgba(255,255,255,1)", ->
            assert.equal Color.toRgbaString(Color.white), 'rgba(255,255,255,1)'

