|
|
@@ -53,10 +53,11 @@ func (c *Color) SetHex(value uint) *Color {
|
|
|
}
|
|
|
|
|
|
// SetName sets the color RGB components from the
|
|
|
-// specified HTML color name
|
|
|
+// specified standard web color name
|
|
|
func (c *Color) SetName(name string) *Color {
|
|
|
|
|
|
- return c.SetHex(colorKeywords[name])
|
|
|
+ *c = colorNames[name]
|
|
|
+ return c
|
|
|
}
|
|
|
|
|
|
func (c *Color) Add(other *Color) *Color {
|
|
|
@@ -112,165 +113,176 @@ func (c *Color) Equals(other *Color) bool {
|
|
|
return (c.R == other.R) && (c.G == other.G) && (c.B == other.B)
|
|
|
}
|
|
|
|
|
|
-func (c *Color) Clone() *Color {
|
|
|
+// IsColor returns true if the specified name is a standard web color name
|
|
|
+func IsColor(name string) bool {
|
|
|
+
|
|
|
+ _, ok := colorNames[name]
|
|
|
+ return ok
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+// ColorName returns a Color with the specified standard web color name.
|
|
|
+func ColorName(name string) Color {
|
|
|
|
|
|
- return NewColor(c.R, c.G, c.B)
|
|
|
+ return colorNames[name]
|
|
|
}
|
|
|
|
|
|
-//
|
|
|
-// ColorToValue returns the integer value of the color with
|
|
|
-// the specified name. If name not found returns 0.
|
|
|
-//
|
|
|
-func ColorUint(name string) uint {
|
|
|
+// Color4Name returns a Color4 with the specified standard web color name
|
|
|
+// and specified alpha channel.
|
|
|
+func Color4Name(name string, alpha float32) Color4 {
|
|
|
|
|
|
- return colorKeywords[name]
|
|
|
+ c := colorNames[name]
|
|
|
+ return Color4{c.R, c.G, c.B, alpha}
|
|
|
}
|
|
|
|
|
|
-var colorKeywords = map[string]uint{
|
|
|
- "aliceblue": 0xF0F8FF,
|
|
|
- "antiquewhite": 0xFAEBD7,
|
|
|
- "aqua": 0x00FFFF,
|
|
|
- "aquamarine": 0x7FFFD4,
|
|
|
- "azure": 0xF0FFFF,
|
|
|
- "beige": 0xF5F5DC,
|
|
|
- "bisque": 0xFFE4C4,
|
|
|
- "black": 0x000000,
|
|
|
- "blanchedalmond": 0xFFEBCD,
|
|
|
- "blue": 0x0000FF,
|
|
|
- "blueviolet": 0x8A2BE2,
|
|
|
- "brown": 0xA52A2A,
|
|
|
- "burlywood": 0xDEB887,
|
|
|
- "cadetblue": 0x5F9EA0,
|
|
|
- "chartreuse": 0x7FFF00,
|
|
|
- "chocolate": 0xD2691E,
|
|
|
- "coral": 0xFF7F50,
|
|
|
- "cornflowerblue": 0x6495ED,
|
|
|
- "cornsilk": 0xFFF8DC,
|
|
|
- "crimson": 0xDC143C,
|
|
|
- "cyan": 0x00FFFF,
|
|
|
- "darkblue": 0x00008B,
|
|
|
- "darkcyan": 0x008B8B,
|
|
|
- "darkgoldenrod": 0xB8860B,
|
|
|
- "darkgray": 0xA9A9A9,
|
|
|
- "darkgreen": 0x006400,
|
|
|
- "darkgrey": 0xA9A9A9,
|
|
|
- "darkkhaki": 0xBDB76B,
|
|
|
- "darkmagenta": 0x8B008B,
|
|
|
- "darkolivegreen": 0x556B2F,
|
|
|
- "darkorange": 0xFF8C00,
|
|
|
- "darkorchid": 0x9932CC,
|
|
|
- "darkred": 0x8B0000,
|
|
|
- "darksalmon": 0xE9967A,
|
|
|
- "darkseagreen": 0x8FBC8F,
|
|
|
- "darkslateblue": 0x483D8B,
|
|
|
- "darkslategray": 0x2F4F4F,
|
|
|
- "darkslategrey": 0x2F4F4F,
|
|
|
- "darkturquoise": 0x00CED1,
|
|
|
- "darkviolet": 0x9400D3,
|
|
|
- "deeppink": 0xFF1493,
|
|
|
- "deepskyblue": 0x00BFFF,
|
|
|
- "dimgray": 0x696969,
|
|
|
- "dimgrey": 0x696969,
|
|
|
- "dodgerblue": 0x1E90FF,
|
|
|
- "firebrick": 0xB22222,
|
|
|
- "floralwhite": 0xFFFAF0,
|
|
|
- "forestgreen": 0x228B22,
|
|
|
- "fuchsia": 0xFF00FF,
|
|
|
- "gainsboro": 0xDCDCDC,
|
|
|
- "ghostwhite": 0xF8F8FF,
|
|
|
- "gold": 0xFFD700,
|
|
|
- "goldenrod": 0xDAA520,
|
|
|
- "gray": 0x808080,
|
|
|
- "green": 0x008000,
|
|
|
- "greenyellow": 0xADFF2F,
|
|
|
- "grey": 0x808080,
|
|
|
- "honeydew": 0xF0FFF0,
|
|
|
- "hotpink": 0xFF69B4,
|
|
|
- "indianred": 0xCD5C5C,
|
|
|
- "indigo": 0x4B0082,
|
|
|
- "ivory": 0xFFFFF0,
|
|
|
- "khaki": 0xF0E68C,
|
|
|
- "lavender": 0xE6E6FA,
|
|
|
- "lavenderblush": 0xFFF0F5,
|
|
|
- "lawngreen": 0x7CFC00,
|
|
|
- "lemonchiffon": 0xFFFACD,
|
|
|
- "lightblue": 0xADD8E6,
|
|
|
- "lightcoral": 0xF08080,
|
|
|
- "lightcyan": 0xE0FFFF,
|
|
|
- "lightgoldenrodyellow": 0xFAFAD2,
|
|
|
- "lightgray": 0xD3D3D3,
|
|
|
- "lightgreen": 0x90EE90,
|
|
|
- "lightgrey": 0xD3D3D3,
|
|
|
- "lightpink": 0xFFB6C1,
|
|
|
- "lightsalmon": 0xFFA07A,
|
|
|
- "lightseagreen": 0x20B2AA,
|
|
|
- "lightskyblue": 0x87CEFA,
|
|
|
- "lightslategray": 0x778899,
|
|
|
- "lightslategrey": 0x778899,
|
|
|
- "lightsteelblue": 0xB0C4DE,
|
|
|
- "lightyellow": 0xFFFFE0,
|
|
|
- "lime": 0x00FF00,
|
|
|
- "limegreen": 0x32CD32,
|
|
|
- "linen": 0xFAF0E6,
|
|
|
- "magenta": 0xFF00FF,
|
|
|
- "maroon": 0x800000,
|
|
|
- "mediumaquamarine": 0x66CDAA,
|
|
|
- "mediumblue": 0x0000CD,
|
|
|
- "mediumorchid": 0xBA55D3,
|
|
|
- "mediumpurple": 0x9370DB,
|
|
|
- "mediumseagreen": 0x3CB371,
|
|
|
- "mediumslateblue": 0x7B68EE,
|
|
|
- "mediumspringgreen": 0x00FA9A,
|
|
|
- "mediumturquoise": 0x48D1CC,
|
|
|
- "mediumvioletred": 0xC71585,
|
|
|
- "midnightblue": 0x191970,
|
|
|
- "mintcream": 0xF5FFFA,
|
|
|
- "mistyrose": 0xFFE4E1,
|
|
|
- "moccasin": 0xFFE4B5,
|
|
|
- "navajowhite": 0xFFDEAD,
|
|
|
- "navy": 0x000080,
|
|
|
- "oldlace": 0xFDF5E6,
|
|
|
- "olive": 0x808000,
|
|
|
- "olivedrab": 0x6B8E23,
|
|
|
- "orange": 0xFFA500,
|
|
|
- "orangered": 0xFF4500,
|
|
|
- "orchid": 0xDA70D6,
|
|
|
- "palegoldenrod": 0xEEE8AA,
|
|
|
- "palegreen": 0x98FB98,
|
|
|
- "paleturquoise": 0xAFEEEE,
|
|
|
- "palevioletred": 0xDB7093,
|
|
|
- "papayawhip": 0xFFEFD5,
|
|
|
- "peachpuff": 0xFFDAB9,
|
|
|
- "peru": 0xCD853F,
|
|
|
- "pink": 0xFFC0CB,
|
|
|
- "plum": 0xDDA0DD,
|
|
|
- "powderblue": 0xB0E0E6,
|
|
|
- "purple": 0x800080,
|
|
|
- "red": 0xFF0000,
|
|
|
- "rosybrown": 0xBC8F8F,
|
|
|
- "royalblue": 0x4169E1,
|
|
|
- "saddlebrown": 0x8B4513,
|
|
|
- "salmon": 0xFA8072,
|
|
|
- "sandybrown": 0xF4A460,
|
|
|
- "seagreen": 0x2E8B57,
|
|
|
- "seashell": 0xFFF5EE,
|
|
|
- "sienna": 0xA0522D,
|
|
|
- "silver": 0xC0C0C0,
|
|
|
- "skyblue": 0x87CEEB,
|
|
|
- "slateblue": 0x6A5ACD,
|
|
|
- "slategrey": 0x708090,
|
|
|
- "snow": 0xFFFAFA,
|
|
|
- "springgreen": 0x00FF7F,
|
|
|
- "steelblue": 0x4682B4,
|
|
|
- "tan": 0xD2B48C,
|
|
|
- "teal": 0x008080,
|
|
|
- "thistle": 0xD8BFD8,
|
|
|
- "tomato": 0xFF6347,
|
|
|
- "turquoise": 0x40E0D0,
|
|
|
- "violet": 0xEE82EE,
|
|
|
- "wheat": 0xF5DEB3,
|
|
|
- "white": 0xFFFFFF,
|
|
|
- "whitesmoke": 0xF5F5F5,
|
|
|
- "yellow": 0xFFFF00,
|
|
|
- "yellowgreen": 0x9ACD32,
|
|
|
+// colorNames maps standard web color names to a Vector3 with
|
|
|
+// the color's RGB component values
|
|
|
+var colorNames = map[string]Color{
|
|
|
+ "aliceblue": Color{0.941, 0.973, 1.000},
|
|
|
+ "antiquewhite": Color{0.980, 0.922, 0.843},
|
|
|
+ "aqua": Color{0.000, 1.000, 1.000},
|
|
|
+ "aquamarine": Color{0.498, 1.000, 0.831},
|
|
|
+ "azure": Color{0.941, 1.000, 1.000},
|
|
|
+ "beige": Color{0.961, 0.961, 0.863},
|
|
|
+ "bisque": Color{1.000, 0.894, 0.769},
|
|
|
+ "black": Color{0.000, 0.000, 0.000},
|
|
|
+ "blanchedalmond": Color{1.000, 0.922, 0.804},
|
|
|
+ "blue": Color{0.000, 0.000, 1.000},
|
|
|
+ "blueviolet": Color{0.541, 0.169, 0.886},
|
|
|
+ "brown": Color{0.647, 0.165, 0.165},
|
|
|
+ "burlywood": Color{0.871, 0.722, 0.529},
|
|
|
+ "cadetblue": Color{0.373, 0.620, 0.627},
|
|
|
+ "chartreuse": Color{0.498, 1.000, 0.000},
|
|
|
+ "chocolate": Color{0.824, 0.412, 0.118},
|
|
|
+ "coral": Color{1.000, 0.498, 0.314},
|
|
|
+ "cornflowerblue": Color{0.392, 0.584, 0.929},
|
|
|
+ "cornsilk": Color{1.000, 0.973, 0.863},
|
|
|
+ "crimson": Color{0.863, 0.078, 0.235},
|
|
|
+ "cyan": Color{0.000, 1.000, 1.000},
|
|
|
+ "darkblue": Color{0.000, 0.000, 0.545},
|
|
|
+ "darkcyan": Color{0.000, 0.545, 0.545},
|
|
|
+ "darkgoldenrod": Color{0.722, 0.525, 0.043},
|
|
|
+ "darkgray": Color{0.663, 0.663, 0.663},
|
|
|
+ "darkgreen": Color{0.000, 0.392, 0.000},
|
|
|
+ "darkgrey": Color{0.663, 0.663, 0.663},
|
|
|
+ "darkkhaki": Color{0.741, 0.718, 0.420},
|
|
|
+ "darkmagenta": Color{0.545, 0.000, 0.545},
|
|
|
+ "darkolivegreen": Color{0.333, 0.420, 0.184},
|
|
|
+ "darkorange": Color{1.000, 0.549, 0.000},
|
|
|
+ "darkorchid": Color{0.600, 0.196, 0.800},
|
|
|
+ "darkred": Color{0.545, 0.000, 0.000},
|
|
|
+ "darksalmon": Color{0.914, 0.588, 0.478},
|
|
|
+ "darkseagreen": Color{0.561, 0.737, 0.561},
|
|
|
+ "darkslateblue": Color{0.282, 0.239, 0.545},
|
|
|
+ "darkslategray": Color{0.184, 0.310, 0.310},
|
|
|
+ "darkslategrey": Color{0.184, 0.310, 0.310},
|
|
|
+ "darkturquoise": Color{0.000, 0.808, 0.820},
|
|
|
+ "darkviolet": Color{0.580, 0.000, 0.827},
|
|
|
+ "deeppink": Color{1.000, 0.078, 0.576},
|
|
|
+ "deepskyblue": Color{0.000, 0.749, 1.000},
|
|
|
+ "dimgray": Color{0.412, 0.412, 0.412},
|
|
|
+ "dimgrey": Color{0.412, 0.412, 0.412},
|
|
|
+ "dodgerblue": Color{0.118, 0.565, 1.000},
|
|
|
+ "firebrick": Color{0.698, 0.133, 0.133},
|
|
|
+ "floralwhite": Color{1.000, 0.980, 0.941},
|
|
|
+ "forestgreen": Color{0.133, 0.545, 0.133},
|
|
|
+ "fuchsia": Color{1.000, 0.000, 1.000},
|
|
|
+ "gainsboro": Color{0.863, 0.863, 0.863},
|
|
|
+ "ghostwhite": Color{0.973, 0.973, 1.000},
|
|
|
+ "gold": Color{1.000, 0.843, 0.000},
|
|
|
+ "goldenrod": Color{0.855, 0.647, 0.125},
|
|
|
+ "gray": Color{0.502, 0.502, 0.502},
|
|
|
+ "green": Color{0.000, 0.502, 0.000},
|
|
|
+ "greenyellow": Color{0.678, 1.000, 0.184},
|
|
|
+ "grey": Color{0.502, 0.502, 0.502},
|
|
|
+ "honeydew": Color{0.941, 1.000, 0.941},
|
|
|
+ "hotpink": Color{1.000, 0.412, 0.706},
|
|
|
+ "indianred": Color{0.804, 0.361, 0.361},
|
|
|
+ "indigo": Color{0.294, 0.000, 0.510},
|
|
|
+ "ivory": Color{1.000, 1.000, 0.941},
|
|
|
+ "khaki": Color{0.941, 0.902, 0.549},
|
|
|
+ "lavender": Color{0.902, 0.902, 0.980},
|
|
|
+ "lavenderblush": Color{1.000, 0.941, 0.961},
|
|
|
+ "lawngreen": Color{0.486, 0.988, 0.000},
|
|
|
+ "lemonchiffon": Color{1.000, 0.980, 0.804},
|
|
|
+ "lightblue": Color{0.678, 0.847, 0.902},
|
|
|
+ "lightcoral": Color{0.941, 0.502, 0.502},
|
|
|
+ "lightcyan": Color{0.878, 1.000, 1.000},
|
|
|
+ "lightgoldenrodyellow": Color{0.980, 0.980, 0.824},
|
|
|
+ "lightgray": Color{0.827, 0.827, 0.827},
|
|
|
+ "lightgreen": Color{0.565, 0.933, 0.565},
|
|
|
+ "lightgrey": Color{0.827, 0.827, 0.827},
|
|
|
+ "lightpink": Color{1.000, 0.714, 0.757},
|
|
|
+ "lightsalmon": Color{1.000, 0.627, 0.478},
|
|
|
+ "lightseagreen": Color{0.125, 0.698, 0.667},
|
|
|
+ "lightskyblue": Color{0.529, 0.808, 0.980},
|
|
|
+ "lightslategray": Color{0.467, 0.533, 0.600},
|
|
|
+ "lightslategrey": Color{0.467, 0.533, 0.600},
|
|
|
+ "lightsteelblue": Color{0.690, 0.769, 0.871},
|
|
|
+ "lightyellow": Color{1.000, 1.000, 0.878},
|
|
|
+ "lime": Color{0.000, 1.000, 0.000},
|
|
|
+ "limegreen": Color{0.196, 0.804, 0.196},
|
|
|
+ "linen": Color{0.980, 0.941, 0.902},
|
|
|
+ "magenta": Color{1.000, 0.000, 1.000},
|
|
|
+ "maroon": Color{0.502, 0.000, 0.000},
|
|
|
+ "mediumaquamarine": Color{0.400, 0.804, 0.667},
|
|
|
+ "mediumblue": Color{0.000, 0.000, 0.804},
|
|
|
+ "mediumorchid": Color{0.729, 0.333, 0.827},
|
|
|
+ "mediumpurple": Color{0.576, 0.439, 0.859},
|
|
|
+ "mediumseagreen": Color{0.235, 0.702, 0.443},
|
|
|
+ "mediumslateblue": Color{0.482, 0.408, 0.933},
|
|
|
+ "mediumspringgreen": Color{0.000, 0.980, 0.604},
|
|
|
+ "mediumturquoise": Color{0.282, 0.820, 0.800},
|
|
|
+ "mediumvioletred": Color{0.780, 0.082, 0.522},
|
|
|
+ "midnightblue": Color{0.098, 0.098, 0.439},
|
|
|
+ "mintcream": Color{0.961, 1.000, 0.980},
|
|
|
+ "mistyrose": Color{1.000, 0.894, 0.882},
|
|
|
+ "moccasin": Color{1.000, 0.894, 0.710},
|
|
|
+ "navajowhite": Color{1.000, 0.871, 0.678},
|
|
|
+ "navy": Color{0.000, 0.000, 0.502},
|
|
|
+ "oldlace": Color{0.992, 0.961, 0.902},
|
|
|
+ "olive": Color{0.502, 0.502, 0.000},
|
|
|
+ "olivedrab": Color{0.420, 0.557, 0.137},
|
|
|
+ "orange": Color{1.000, 0.647, 0.000},
|
|
|
+ "orangered": Color{1.000, 0.271, 0.000},
|
|
|
+ "orchid": Color{0.855, 0.439, 0.839},
|
|
|
+ "palegoldenrod": Color{0.933, 0.910, 0.667},
|
|
|
+ "palegreen": Color{0.596, 0.984, 0.596},
|
|
|
+ "paleturquoise": Color{0.686, 0.933, 0.933},
|
|
|
+ "palevioletred": Color{0.859, 0.439, 0.576},
|
|
|
+ "papayawhip": Color{1.000, 0.937, 0.835},
|
|
|
+ "peachpuff": Color{1.000, 0.855, 0.725},
|
|
|
+ "peru": Color{0.804, 0.522, 0.247},
|
|
|
+ "pink": Color{1.000, 0.753, 0.796},
|
|
|
+ "plum": Color{0.867, 0.627, 0.867},
|
|
|
+ "powderblue": Color{0.690, 0.878, 0.902},
|
|
|
+ "purple": Color{0.502, 0.000, 0.502},
|
|
|
+ "red": Color{1.000, 0.000, 0.000},
|
|
|
+ "rosybrown": Color{0.737, 0.561, 0.561},
|
|
|
+ "royalblue": Color{0.255, 0.412, 0.882},
|
|
|
+ "saddlebrown": Color{0.545, 0.271, 0.075},
|
|
|
+ "salmon": Color{0.980, 0.502, 0.447},
|
|
|
+ "sandybrown": Color{0.957, 0.643, 0.376},
|
|
|
+ "seagreen": Color{0.180, 0.545, 0.341},
|
|
|
+ "seashell": Color{1.000, 0.961, 0.933},
|
|
|
+ "sienna": Color{0.627, 0.322, 0.176},
|
|
|
+ "silver": Color{0.753, 0.753, 0.753},
|
|
|
+ "skyblue": Color{0.529, 0.808, 0.922},
|
|
|
+ "slateblue": Color{0.416, 0.353, 0.804},
|
|
|
+ "slategray": Color{0.439, 0.502, 0.565},
|
|
|
+ "slategrey": Color{0.439, 0.502, 0.565},
|
|
|
+ "snow": Color{1.000, 0.980, 0.980},
|
|
|
+ "springgreen": Color{0.000, 1.000, 0.498},
|
|
|
+ "steelblue": Color{0.275, 0.510, 0.706},
|
|
|
+ "tan": Color{0.824, 0.706, 0.549},
|
|
|
+ "teal": Color{0.000, 0.502, 0.502},
|
|
|
+ "thistle": Color{0.847, 0.749, 0.847},
|
|
|
+ "tomato": Color{1.000, 0.388, 0.278},
|
|
|
+ "turquoise": Color{0.251, 0.878, 0.816},
|
|
|
+ "violet": Color{0.933, 0.510, 0.933},
|
|
|
+ "wheat": Color{0.961, 0.871, 0.702},
|
|
|
+ "white": Color{1.000, 1.000, 1.000},
|
|
|
+ "whitesmoke": Color{0.961, 0.961, 0.961},
|
|
|
+ "yellow": Color{1.000, 1.000, 0.000},
|
|
|
+ "yellowgreen": Color{0.604, 0.804, 0.196},
|
|
|
}
|