001// Copyright (c) FIRST and other WPILib contributors. 002// Open Source Software; you can modify and/or share it under the terms of 003// the WPILib BSD license file in the root directory of this project. 004 005package edu.wpi.first.wpilibj.util; 006 007import edu.wpi.first.math.MathUtil; 008import java.util.Objects; 009 010/** 011 * Represents colors. 012 * 013 * <p>Limited to 12 bits of precision. 014 */ 015@SuppressWarnings("MemberName") 016public class Color { 017 /** Red component (0-1). */ 018 public final double red; 019 020 /** Green component (0-1). */ 021 public final double green; 022 023 /** Blue component (0-1). */ 024 public final double blue; 025 026 private String m_name; 027 028 /** Constructs a default color (black). */ 029 public Color() { 030 red = 0.0; 031 green = 0.0; 032 blue = 0.0; 033 } 034 035 /** 036 * Constructs a Color from doubles. 037 * 038 * @param red Red value (0-1) 039 * @param green Green value (0-1) 040 * @param blue Blue value (0-1) 041 */ 042 public Color(double red, double green, double blue) { 043 this.red = roundAndClamp(red); 044 this.green = roundAndClamp(green); 045 this.blue = roundAndClamp(blue); 046 this.m_name = null; 047 } 048 049 /** 050 * Constructs a Color from ints. 051 * 052 * @param red Red value (0-255) 053 * @param green Green value (0-255) 054 * @param blue Blue value (0-255) 055 */ 056 public Color(int red, int green, int blue) { 057 this(red / 255.0, green / 255.0, blue / 255.0); 058 } 059 060 /** 061 * Constructs a Color from a Color8Bit. 062 * 063 * @param color The color 064 */ 065 public Color(Color8Bit color) { 066 this(color.red / 255.0, color.green / 255.0, color.blue / 255.0); 067 } 068 069 /** 070 * Constructs a Color from doubles. 071 * 072 * @param red Red value (0-1) 073 * @param green Green value (0-1) 074 * @param blue Blue value (0-1) 075 */ 076 private Color(double red, double green, double blue, String name) { 077 this.red = roundAndClamp(red); 078 this.green = roundAndClamp(green); 079 this.blue = roundAndClamp(blue); 080 this.m_name = name; 081 } 082 083 /** 084 * Constructs a Color from a hex string. 085 * 086 * @param hexString a string of the format <code>#RRGGBB</code> 087 * @throws IllegalArgumentException if the hex string is invalid. 088 */ 089 public Color(String hexString) { 090 if (hexString.length() != 7 || !hexString.startsWith("#")) { 091 throw new IllegalArgumentException("Invalid hex string \"" + hexString + "\""); 092 } 093 094 this.red = Integer.valueOf(hexString.substring(1, 3), 16) / 255.0; 095 this.green = Integer.valueOf(hexString.substring(3, 5), 16) / 255.0; 096 this.blue = Integer.valueOf(hexString.substring(5, 7), 16) / 255.0; 097 } 098 099 /** 100 * Creates a Color from HSV values. 101 * 102 * @param h The h value [0-180) 103 * @param s The s value [0-255] 104 * @param v The v value [0-255] 105 * @return The color 106 */ 107 public static Color fromHSV(int h, int s, int v) { 108 // Loosely based on 109 // https://en.wikipedia.org/wiki/HSL_and_HSV#HSV_to_RGB 110 // The hue range is split into 60 degree regions where in each region there 111 // is one rgb component at a low value (m), one at a high value (v) and one 112 // that changes (X) from low to high (X+m) or high to low (v-X) 113 114 // Difference between highest and lowest value of any rgb component 115 final int chroma = (s * v) / 255; 116 117 // Because hue is 0-180 rather than 0-360 use 30 not 60 118 final int region = (h / 30) % 6; 119 120 // Remainder converted from 0-30 to 0-255 121 final int remainder = (int) Math.round((h % 30) * (255 / 30.0)); 122 123 // Value of the lowest rgb component 124 final int m = v - chroma; 125 126 // Goes from 0 to chroma as hue increases 127 final int X = (chroma * remainder) >> 8; 128 129 switch (region) { 130 case 0: 131 return new Color(v, X + m, m); 132 case 1: 133 return new Color(v - X, v, m); 134 case 2: 135 return new Color(m, v, X + m); 136 case 3: 137 return new Color(m, v - X, v); 138 case 4: 139 return new Color(X + m, m, v); 140 default: 141 return new Color(v, m, v - X); 142 } 143 } 144 145 @Override 146 public boolean equals(Object other) { 147 if (this == other) { 148 return true; 149 } 150 if (other == null || getClass() != other.getClass()) { 151 return false; 152 } 153 154 Color color = (Color) other; 155 return Double.compare(color.red, red) == 0 156 && Double.compare(color.green, green) == 0 157 && Double.compare(color.blue, blue) == 0; 158 } 159 160 @Override 161 public int hashCode() { 162 return Objects.hash(red, green, blue); 163 } 164 165 @Override 166 public String toString() { 167 if (m_name == null) { 168 // cache hex conversion 169 m_name = toHexString(); 170 } 171 return m_name; 172 } 173 174 /** 175 * Return this color represented as a hex string. 176 * 177 * @return a string of the format <code>#RRGGBB</code> 178 */ 179 public String toHexString() { 180 return String.format( 181 "#%02X%02X%02X", (int) (red * 255), (int) (green * 255), (int) (blue * 255)); 182 } 183 184 private static double roundAndClamp(double value) { 185 return MathUtil.clamp(Math.ceil(value * (1 << 12)) / (1 << 12), 0.0, 1.0); 186 } 187 188 /* 189 * FIRST Colors 190 */ 191 192 /** 0x1560BD. */ 193 public static final Color kDenim = new Color(0.0823529412, 0.376470589, 0.7411764706, "kDenim"); 194 195 /** 0x0066B3. */ 196 public static final Color kFirstBlue = new Color(0.0, 0.4, 0.7019607844, "kFirstBlue"); 197 198 /** 0xED1C24. */ 199 public static final Color kFirstRed = 200 new Color(0.9294117648, 0.1098039216, 0.1411764706, "kFirstRed"); 201 202 /* 203 * Standard Colors 204 */ 205 206 /** 0xF0F8FF. */ 207 public static final Color kAliceBlue = new Color(0.9411765f, 0.972549f, 1.0f, "kAliceBlue"); 208 209 /** 0xFAEBD7. */ 210 public static final Color kAntiqueWhite = 211 new Color(0.98039216f, 0.92156863f, 0.84313726f, "kAntiqueWhite"); 212 213 /** 0x00FFFF. */ 214 public static final Color kAqua = new Color(0.0f, 1.0f, 1.0f, "kAqua"); 215 216 /** 0x7FFFD4. */ 217 public static final Color kAquamarine = new Color(0.49803922f, 1.0f, 0.83137256f, "kAquamarine"); 218 219 /** 0xF0FFFF. */ 220 public static final Color kAzure = new Color(0.9411765f, 1.0f, 1.0f, "kAzure"); 221 222 /** 0xF5F5DC. */ 223 public static final Color kBeige = new Color(0.9607843f, 0.9607843f, 0.8627451f, "kBeige"); 224 225 /** 0xFFE4C4. */ 226 public static final Color kBisque = new Color(1.0f, 0.89411765f, 0.76862746f, "kBisque"); 227 228 /** 0x000000. */ 229 public static final Color kBlack = new Color(0.0f, 0.0f, 0.0f, "kBlack"); 230 231 /** 0xFFEBCD. */ 232 public static final Color kBlanchedAlmond = 233 new Color(1.0f, 0.92156863f, 0.8039216f, "kBlanchedAlmond"); 234 235 /** 0x0000FF. */ 236 public static final Color kBlue = new Color(0.0f, 0.0f, 1.0f, "kBlue"); 237 238 /** 0x8A2BE2. */ 239 public static final Color kBlueViolet = 240 new Color(0.5411765f, 0.16862746f, 0.8862745f, "kBlueViolet"); 241 242 /** 0xA52A2A. */ 243 public static final Color kBrown = new Color(0.64705884f, 0.16470589f, 0.16470589f, "kBrown"); 244 245 /** 0xDEB887. */ 246 public static final Color kBurlywood = 247 new Color(0.87058824f, 0.72156864f, 0.5294118f, "kBurlywood"); 248 249 /** 0x5F9EA0. */ 250 public static final Color kCadetBlue = 251 new Color(0.37254903f, 0.61960787f, 0.627451f, "kCadetBlue"); 252 253 /** 0x7FFF00. */ 254 public static final Color kChartreuse = new Color(0.49803922f, 1.0f, 0.0f, "kChartreuse"); 255 256 /** 0xD2691E. */ 257 public static final Color kChocolate = 258 new Color(0.8235294f, 0.4117647f, 0.11764706f, "kChocolate"); 259 260 /** 0xFF7F50. */ 261 public static final Color kCoral = new Color(1.0f, 0.49803922f, 0.3137255f, "kCoral"); 262 263 /** 0x6495ED. */ 264 public static final Color kCornflowerBlue = 265 new Color(0.39215687f, 0.58431375f, 0.92941177f, "kCornflowerBlue"); 266 267 /** 0xFFF8DC. */ 268 public static final Color kCornsilk = new Color(1.0f, 0.972549f, 0.8627451f, "kCornsilk"); 269 270 /** 0xDC143C. */ 271 public static final Color kCrimson = new Color(0.8627451f, 0.078431375f, 0.23529412f, "kCrimson"); 272 273 /** 0x00FFFF. */ 274 public static final Color kCyan = new Color(0.0f, 1.0f, 1.0f, "kCyan"); 275 276 /** 0x00008B. */ 277 public static final Color kDarkBlue = new Color(0.0f, 0.0f, 0.54509807f, "kDarkBlue"); 278 279 /** 0x008B8B. */ 280 public static final Color kDarkCyan = new Color(0.0f, 0.54509807f, 0.54509807f, "kDarkCyan"); 281 282 /** 0xB8860B. */ 283 public static final Color kDarkGoldenrod = 284 new Color(0.72156864f, 0.5254902f, 0.043137256f, "kDarkGoldenrod"); 285 286 /** 0xA9A9A9. */ 287 public static final Color kDarkGray = new Color(0.6627451f, 0.6627451f, 0.6627451f, "kDarkGray"); 288 289 /** 0x006400. */ 290 public static final Color kDarkGreen = new Color(0.0f, 0.39215687f, 0.0f, "kDarkGreen"); 291 292 /** 0xBDB76B. */ 293 public static final Color kDarkKhaki = 294 new Color(0.7411765f, 0.7176471f, 0.41960785f, "kDarkKhaki"); 295 296 /** 0x8B008B. */ 297 public static final Color kDarkMagenta = 298 new Color(0.54509807f, 0.0f, 0.54509807f, "kDarkMagenta"); 299 300 /** 0x556B2F. */ 301 public static final Color kDarkOliveGreen = 302 new Color(0.33333334f, 0.41960785f, 0.18431373f, "kDarkOliveGreen"); 303 304 /** 0xFF8C00. */ 305 public static final Color kDarkOrange = new Color(1.0f, 0.54901963f, 0.0f, "kDarkOrange"); 306 307 /** 0x9932CC. */ 308 public static final Color kDarkOrchid = new Color(0.6f, 0.19607843f, 0.8f, "kDarkOrchid"); 309 310 /** 0x8B0000. */ 311 public static final Color kDarkRed = new Color(0.54509807f, 0.0f, 0.0f, "kDarkRed"); 312 313 /** 0xE9967A. */ 314 public static final Color kDarkSalmon = 315 new Color(0.9137255f, 0.5882353f, 0.47843137f, "kDarkSalmon"); 316 317 /** 0x8FBC8F. */ 318 public static final Color kDarkSeaGreen = 319 new Color(0.56078434f, 0.7372549f, 0.56078434f, "kDarkSeaGreen"); 320 321 /** 0x483D8B. */ 322 public static final Color kDarkSlateBlue = 323 new Color(0.28235295f, 0.23921569f, 0.54509807f, "kDarkSlateBlue"); 324 325 /** 0x2F4F4F. */ 326 public static final Color kDarkSlateGray = 327 new Color(0.18431373f, 0.30980393f, 0.30980393f, "kDarkSlateGray"); 328 329 /** 0x00CED1. */ 330 public static final Color kDarkTurquoise = 331 new Color(0.0f, 0.80784315f, 0.81960785f, "kDarkTurquoise"); 332 333 /** 0x9400D3. */ 334 public static final Color kDarkViolet = new Color(0.5803922f, 0.0f, 0.827451f, "kDarkViolet"); 335 336 /** 0xFF1493. */ 337 public static final Color kDeepPink = new Color(1.0f, 0.078431375f, 0.5764706f, "kDeepPink"); 338 339 /** 0x00BFFF. */ 340 public static final Color kDeepSkyBlue = new Color(0.0f, 0.7490196f, 1.0f, "kDeepSkyBlue"); 341 342 /** 0x696969. */ 343 public static final Color kDimGray = new Color(0.4117647f, 0.4117647f, 0.4117647f, "kDimGray"); 344 345 /** 0x1E90FF. */ 346 public static final Color kDodgerBlue = new Color(0.11764706f, 0.5647059f, 1.0f, "kDodgerBlue"); 347 348 /** 0xB22222. */ 349 public static final Color kFirebrick = 350 new Color(0.69803923f, 0.13333334f, 0.13333334f, "kFirebrick"); 351 352 /** 0xFFFAF0. */ 353 public static final Color kFloralWhite = new Color(1.0f, 0.98039216f, 0.9411765f, "kFloralWhite"); 354 355 /** 0x228B22. */ 356 public static final Color kForestGreen = 357 new Color(0.13333334f, 0.54509807f, 0.13333334f, "kForestGreen"); 358 359 /** 0xFF00FF. */ 360 public static final Color kFuchsia = new Color(1.0f, 0.0f, 1.0f, "kFuchsia"); 361 362 /** 0xDCDCDC. */ 363 public static final Color kGainsboro = 364 new Color(0.8627451f, 0.8627451f, 0.8627451f, "kGainsboro"); 365 366 /** 0xF8F8FF. */ 367 public static final Color kGhostWhite = new Color(0.972549f, 0.972549f, 1.0f, "kGhostWhite"); 368 369 /** 0xFFD700. */ 370 public static final Color kGold = new Color(1.0f, 0.84313726f, 0.0f, "kGold"); 371 372 /** 0xDAA520. */ 373 public static final Color kGoldenrod = 374 new Color(0.85490197f, 0.64705884f, 0.1254902f, "kGoldenrod"); 375 376 /** 0x808080. */ 377 public static final Color kGray = new Color(0.5019608f, 0.5019608f, 0.5019608f, "kGray"); 378 379 /** 0x008000. */ 380 public static final Color kGreen = new Color(0.0f, 0.5019608f, 0.0f, "kGreen"); 381 382 /** 0xADFF2F. */ 383 public static final Color kGreenYellow = new Color(0.6784314f, 1.0f, 0.18431373f, "kGreenYellow"); 384 385 /** 0xF0FFF0. */ 386 public static final Color kHoneydew = new Color(0.9411765f, 1.0f, 0.9411765f, "kHoneydew"); 387 388 /** 0xFF69B4. */ 389 public static final Color kHotPink = new Color(1.0f, 0.4117647f, 0.7058824f, "kHotPink"); 390 391 /** 0xCD5C5C. */ 392 public static final Color kIndianRed = 393 new Color(0.8039216f, 0.36078432f, 0.36078432f, "kIndianRed"); 394 395 /** 0x4B0082. */ 396 public static final Color kIndigo = new Color(0.29411766f, 0.0f, 0.50980395f, "kIndigo"); 397 398 /** 0xFFFFF0. */ 399 public static final Color kIvory = new Color(1.0f, 1.0f, 0.9411765f, "kIvory"); 400 401 /** 0xF0E68C. */ 402 public static final Color kKhaki = new Color(0.9411765f, 0.9019608f, 0.54901963f, "kKhaki"); 403 404 /** 0xE6E6FA. */ 405 public static final Color kLavender = new Color(0.9019608f, 0.9019608f, 0.98039216f, "kLavender"); 406 407 /** 0xFFF0F5. */ 408 public static final Color kLavenderBlush = 409 new Color(1.0f, 0.9411765f, 0.9607843f, "kLavenderBlush"); 410 411 /** 0x7CFC00. */ 412 public static final Color kLawnGreen = new Color(0.4862745f, 0.9882353f, 0.0f, "kLawnGreen"); 413 414 /** 0xFFFACD. */ 415 public static final Color kLemonChiffon = 416 new Color(1.0f, 0.98039216f, 0.8039216f, "kLemonChiffon"); 417 418 /** 0xADD8E6. */ 419 public static final Color kLightBlue = 420 new Color(0.6784314f, 0.84705883f, 0.9019608f, "kLightBlue"); 421 422 /** 0xF08080. */ 423 public static final Color kLightCoral = 424 new Color(0.9411765f, 0.5019608f, 0.5019608f, "kLightCoral"); 425 426 /** 0xE0FFFF. */ 427 public static final Color kLightCyan = new Color(0.8784314f, 1.0f, 1.0f, "kLightCyan"); 428 429 /** 0xFAFAD2. */ 430 public static final Color kLightGoldenrodYellow = 431 new Color(0.98039216f, 0.98039216f, 0.8235294f, "kLightGoldenrodYellow"); 432 433 /** 0xD3D3D3. */ 434 public static final Color kLightGray = new Color(0.827451f, 0.827451f, 0.827451f, "kLightGray"); 435 436 /** 0x90EE90. */ 437 public static final Color kLightGreen = 438 new Color(0.5647059f, 0.93333334f, 0.5647059f, "kLightGreen"); 439 440 /** 0xFFB6C1. */ 441 public static final Color kLightPink = new Color(1.0f, 0.7137255f, 0.75686276f, "kLightPink"); 442 443 /** 0xFFA07A. */ 444 public static final Color kLightSalmon = new Color(1.0f, 0.627451f, 0.47843137f, "kLightSalmon"); 445 446 /** 0x20B2AA. */ 447 public static final Color kLightSeaGreen = 448 new Color(0.1254902f, 0.69803923f, 0.6666667f, "kLightSeaGreen"); 449 450 /** 0x87CEFA. */ 451 public static final Color kLightSkyBlue = 452 new Color(0.5294118f, 0.80784315f, 0.98039216f, "kLightSkyBlue"); 453 454 /** 0x778899. */ 455 public static final Color kLightSlateGray = 456 new Color(0.46666667f, 0.53333336f, 0.6f, "kLightSlateGray"); 457 458 /** 0xB0C4DE. */ 459 public static final Color kLightSteelBlue = 460 new Color(0.6901961f, 0.76862746f, 0.87058824f, "kLightSteelBlue"); 461 462 /** 0xFFFFE0. */ 463 public static final Color kLightYellow = new Color(1.0f, 1.0f, 0.8784314f, "kLightYellow"); 464 465 /** 0x00FF00. */ 466 public static final Color kLime = new Color(0.0f, 1.0f, 0.0f, "kLime"); 467 468 /** 0x32CD32. */ 469 public static final Color kLimeGreen = 470 new Color(0.19607843f, 0.8039216f, 0.19607843f, "kLimeGreen"); 471 472 /** 0xFAF0E6. */ 473 public static final Color kLinen = new Color(0.98039216f, 0.9411765f, 0.9019608f, "kLinen"); 474 475 /** 0xFF00FF. */ 476 public static final Color kMagenta = new Color(1.0f, 0.0f, 1.0f, "kMagenta"); 477 478 /** 0x800000. */ 479 public static final Color kMaroon = new Color(0.5019608f, 0.0f, 0.0f, "kMaroon"); 480 481 /** 0x66CDAA. */ 482 public static final Color kMediumAquamarine = 483 new Color(0.4f, 0.8039216f, 0.6666667f, "kMediumAquamarine"); 484 485 /** 0x0000CD. */ 486 public static final Color kMediumBlue = new Color(0.0f, 0.0f, 0.8039216f, "kMediumBlue"); 487 488 /** 0xBA55D3. */ 489 public static final Color kMediumOrchid = 490 new Color(0.7294118f, 0.33333334f, 0.827451f, "kMediumOrchid"); 491 492 /** 0x9370DB. */ 493 public static final Color kMediumPurple = 494 new Color(0.5764706f, 0.4392157f, 0.85882354f, "kMediumPurple"); 495 496 /** 0x3CB371. */ 497 public static final Color kMediumSeaGreen = 498 new Color(0.23529412f, 0.7019608f, 0.44313726f, "kMediumSeaGreen"); 499 500 /** 0x7B68EE. */ 501 public static final Color kMediumSlateBlue = 502 new Color(0.48235294f, 0.40784314f, 0.93333334f, "kMediumSlateBlue"); 503 504 /** 0x00FA9A. */ 505 public static final Color kMediumSpringGreen = 506 new Color(0.0f, 0.98039216f, 0.6039216f, "kMediumSpringGreen"); 507 508 /** 0x48D1CC. */ 509 public static final Color kMediumTurquoise = 510 new Color(0.28235295f, 0.81960785f, 0.8f, "kMediumTurquoise"); 511 512 /** 0xC71585. */ 513 public static final Color kMediumVioletRed = 514 new Color(0.78039217f, 0.08235294f, 0.52156866f, "kMediumVioletRed"); 515 516 /** 0x191970. */ 517 public static final Color kMidnightBlue = 518 new Color(0.09803922f, 0.09803922f, 0.4392157f, "kMidnightBlue"); 519 520 /** 0xF5FFFA. */ 521 public static final Color kMintcream = new Color(0.9607843f, 1.0f, 0.98039216f, "kMintcream"); 522 523 /** 0xFFE4E1. */ 524 public static final Color kMistyRose = new Color(1.0f, 0.89411765f, 0.88235295f, "kMistyRose"); 525 526 /** 0xFFE4B5. */ 527 public static final Color kMoccasin = new Color(1.0f, 0.89411765f, 0.70980394f, "kMoccasin"); 528 529 /** 0xFFDEAD. */ 530 public static final Color kNavajoWhite = new Color(1.0f, 0.87058824f, 0.6784314f, "kNavajoWhite"); 531 532 /** 0x000080. */ 533 public static final Color kNavy = new Color(0.0f, 0.0f, 0.5019608f, "kNavy"); 534 535 /** 0xFDF5E6. */ 536 public static final Color kOldLace = new Color(0.99215686f, 0.9607843f, 0.9019608f, "kOldLace"); 537 538 /** 0x808000. */ 539 public static final Color kOlive = new Color(0.5019608f, 0.5019608f, 0.0f, "kOlive"); 540 541 /** 0x6B8E23. */ 542 public static final Color kOliveDrab = 543 new Color(0.41960785f, 0.5568628f, 0.13725491f, "kOliveDrab"); 544 545 /** 0xFFA500. */ 546 public static final Color kOrange = new Color(1.0f, 0.64705884f, 0.0f, "kOrange"); 547 548 /** 0xFF4500. */ 549 public static final Color kOrangeRed = new Color(1.0f, 0.27058825f, 0.0f, "kOrangeRed"); 550 551 /** 0xDA70D6. */ 552 public static final Color kOrchid = new Color(0.85490197f, 0.4392157f, 0.8392157f, "kOrchid"); 553 554 /** 0xEEE8AA. */ 555 public static final Color kPaleGoldenrod = 556 new Color(0.93333334f, 0.9098039f, 0.6666667f, "kPaleGoldenrod"); 557 558 /** 0x98FB98. */ 559 public static final Color kPaleGreen = 560 new Color(0.59607846f, 0.9843137f, 0.59607846f, "kPaleGreen"); 561 562 /** 0xAFEEEE. */ 563 public static final Color kPaleTurquoise = 564 new Color(0.6862745f, 0.93333334f, 0.93333334f, "kPaleTurquoise"); 565 566 /** 0xDB7093. */ 567 public static final Color kPaleVioletRed = 568 new Color(0.85882354f, 0.4392157f, 0.5764706f, "kPaleVioletRed"); 569 570 /** 0xFFEFD5. */ 571 public static final Color kPapayaWhip = new Color(1.0f, 0.9372549f, 0.8352941f, "kPapayaWhip"); 572 573 /** 0xFFDAB9. */ 574 public static final Color kPeachPuff = new Color(1.0f, 0.85490197f, 0.7254902f, "kPeachPuff"); 575 576 /** 0xCD853F. */ 577 public static final Color kPeru = new Color(0.8039216f, 0.52156866f, 0.24705882f, "kPeru"); 578 579 /** 0xFFC0CB. */ 580 public static final Color kPink = new Color(1.0f, 0.7529412f, 0.79607844f, "kPink"); 581 582 /** 0xDDA0DD. */ 583 public static final Color kPlum = new Color(0.8666667f, 0.627451f, 0.8666667f, "kPlum"); 584 585 /** 0xB0E0E6. */ 586 public static final Color kPowderBlue = 587 new Color(0.6901961f, 0.8784314f, 0.9019608f, "kPowderBlue"); 588 589 /** 0x800080. */ 590 public static final Color kPurple = new Color(0.5019608f, 0.0f, 0.5019608f, "kPurple"); 591 592 /** 0xFF0000. */ 593 public static final Color kRed = new Color(1.0f, 0.0f, 0.0f, "kRed"); 594 595 /** 0xBC8F8F. */ 596 public static final Color kRosyBrown = 597 new Color(0.7372549f, 0.56078434f, 0.56078434f, "kRosyBrown"); 598 599 /** 0x4169E1. */ 600 public static final Color kRoyalBlue = 601 new Color(0.25490198f, 0.4117647f, 0.88235295f, "kRoyalBlue"); 602 603 /** 0x8B4513. */ 604 public static final Color kSaddleBrown = 605 new Color(0.54509807f, 0.27058825f, 0.07450981f, "kSaddleBrown"); 606 607 /** 0xFA8072. */ 608 public static final Color kSalmon = new Color(0.98039216f, 0.5019608f, 0.44705883f, "kSalmon"); 609 610 /** 0xF4A460. */ 611 public static final Color kSandyBrown = 612 new Color(0.95686275f, 0.6431373f, 0.3764706f, "kSandyBrown"); 613 614 /** 0x2E8B57. */ 615 public static final Color kSeaGreen = 616 new Color(0.18039216f, 0.54509807f, 0.34117648f, "kSeaGreen"); 617 618 /** 0xFFF5EE. */ 619 public static final Color kSeashell = new Color(1.0f, 0.9607843f, 0.93333334f, "kSeashell"); 620 621 /** 0xA0522D. */ 622 public static final Color kSienna = new Color(0.627451f, 0.32156864f, 0.1764706f, "kSienna"); 623 624 /** 0xC0C0C0. */ 625 public static final Color kSilver = new Color(0.7529412f, 0.7529412f, 0.7529412f, "kSilver"); 626 627 /** 0x87CEEB. */ 628 public static final Color kSkyBlue = new Color(0.5294118f, 0.80784315f, 0.92156863f, "kSkyBlue"); 629 630 /** 0x6A5ACD. */ 631 public static final Color kSlateBlue = 632 new Color(0.41568628f, 0.3529412f, 0.8039216f, "kSlateBlue"); 633 634 /** 0x708090. */ 635 public static final Color kSlateGray = 636 new Color(0.4392157f, 0.5019608f, 0.5647059f, "kSlateGray"); 637 638 /** 0xFFFAFA. */ 639 public static final Color kSnow = new Color(1.0f, 0.98039216f, 0.98039216f, "kSnow"); 640 641 /** 0x00FF7F. */ 642 public static final Color kSpringGreen = new Color(0.0f, 1.0f, 0.49803922f, "kSpringGreen"); 643 644 /** 0x4682B4. */ 645 public static final Color kSteelBlue = 646 new Color(0.27450982f, 0.50980395f, 0.7058824f, "kSteelBlue"); 647 648 /** 0xD2B48C. */ 649 public static final Color kTan = new Color(0.8235294f, 0.7058824f, 0.54901963f, "kTan"); 650 651 /** 0x008080. */ 652 public static final Color kTeal = new Color(0.0f, 0.5019608f, 0.5019608f, "kTeal"); 653 654 /** 0xD8BFD8. */ 655 public static final Color kThistle = new Color(0.84705883f, 0.7490196f, 0.84705883f, "kThistle"); 656 657 /** 0xFF6347. */ 658 public static final Color kTomato = new Color(1.0f, 0.3882353f, 0.2784314f, "kTomato"); 659 660 /** 0x40E0D0. */ 661 public static final Color kTurquoise = 662 new Color(0.2509804f, 0.8784314f, 0.8156863f, "kTurquoise"); 663 664 /** 0xEE82EE. */ 665 public static final Color kViolet = new Color(0.93333334f, 0.50980395f, 0.93333334f, "kViolet"); 666 667 /** 0xF5DEB3. */ 668 public static final Color kWheat = new Color(0.9607843f, 0.87058824f, 0.7019608f, "kWheat"); 669 670 /** 0xFFFFFF. */ 671 public static final Color kWhite = new Color(1.0f, 1.0f, 1.0f, "kWhite"); 672 673 /** 0xF5F5F5. */ 674 public static final Color kWhiteSmoke = 675 new Color(0.9607843f, 0.9607843f, 0.9607843f, "kWhiteSmoke"); 676 677 /** 0xFFFF00. */ 678 public static final Color kYellow = new Color(1.0f, 1.0f, 0.0f, "kYellow"); 679 680 /** 0x9ACD32. */ 681 public static final Color kYellowGreen = 682 new Color(0.6039216f, 0.8039216f, 0.19607843f, "kYellowGreen"); 683}