/src/gosu/Color.java

http://jgosu.googlecode.com/ · Java · 107 lines · 69 code · 38 blank · 0 comment · 0 complexity · 5e790e445a0df71c1b43e4bb48346a50 MD5 · raw file

  1. package gosu;
  2. import java.awt.color.*;
  3. public class Color {
  4. public static Color none = new Color(0x00000000);
  5. public static Color black = new Color(java.awt.Color.black);
  6. public static Color gray = new Color(java.awt.Color.gray);
  7. public static Color white = new Color(java.awt.Color.white);
  8. public static Color red = new Color(java.awt.Color.red);
  9. public static Color green = new Color(java.awt.Color.green);
  10. public static Color blue = new Color(java.awt.Color.blue);
  11. public static Color yellow = new Color(java.awt.Color.yellow);
  12. public static Color fuschia = new Color(0xffff00ff);
  13. public static Color cyan = new Color(java.awt.Color.cyan);
  14. private java.awt.Color _color;
  15. public Color(java.awt.Color color) {
  16. _color = color;
  17. }
  18. public Color(int argb) {
  19. _color = new java.awt.Color(argb, true);
  20. }
  21. public Color(int r, int g, int b) {
  22. _color = new java.awt.Color(r, g, b);
  23. }
  24. public Color(int a, int r, int g, int b) {
  25. _color = new java.awt.Color(r, g, b, a);
  26. }
  27. public int alpha() { return _color.getAlpha(); }
  28. public int red() { return _color.getRed(); }
  29. public int green() { return _color.getGreen(); }
  30. public int blue() { return _color.getBlue(); }
  31. public void setAlpha(int alpha) {
  32. _color = new java.awt.Color(_color.getRed(), _color.getGreen(), _color.getBlue(), alpha);
  33. }
  34. public void setRed(int red) {
  35. _color = new java.awt.Color(red, _color.getGreen(), _color.getBlue(), _color.getAlpha());
  36. }
  37. public void setGreen(int green) {
  38. _color = new java.awt.Color(_color.getRed(), green, _color.getBlue(), _color.getAlpha());
  39. }
  40. public void setBlue(int blue) {
  41. _color = new java.awt.Color(_color.getRed(), _color.getGreen(), blue, _color.getAlpha());
  42. }
  43. public double hue() { return toHSV()[0] * 360.0; }
  44. public double saturation() { return toHSV()[1]; }
  45. public double value() { return toHSV()[2]; }
  46. public void setHue(float hue) {
  47. float hsb[] = toHSV();
  48. _color = java.awt.Color.getHSBColor(hue / 360.0f, hsb[1], hsb[2]);
  49. }
  50. public void setSaturation(float saturation) {
  51. float hsb[] = toHSV();
  52. _color = java.awt.Color.getHSBColor(hsb[0], saturation, hsb[2]);
  53. }
  54. public void setValue(float value) {
  55. float hsb[] = toHSV();
  56. _color = java.awt.Color.getHSBColor(hsb[0], hsb[1], value);
  57. }
  58. public java.awt.Color getAWTColor() { return _color; }
  59. public static Color fromHSV(float h, float s, float v) {
  60. return fromAHSV(255, h, s, v);
  61. }
  62. public static Color fromAHSV(int alpha, float h, float s, float v) {
  63. java.awt.Color c = java.awt.Color.getHSBColor(h/360.0f, s, v);
  64. return new Color(alpha, c.getRed(), c.getGreen(), c.getBlue());
  65. }
  66. private float[] toHSV() {
  67. return java.awt.Color.RGBtoHSB(_color.getRed(), _color.getGreen(), _color.getBlue(), null);
  68. }
  69. }