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