named_colr.c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include <grass/gis.h>
  2. #include <string.h>
  3. #include <stdio.h>
  4. static struct
  5. {
  6. const char *name;
  7. float r, g, b;
  8. } colors[] = {
  9. {"white", 1.00, 1.00, 1.00},
  10. {"black", 0.00, 0.00, 0.00},
  11. {"red", 1.00, 0.00, 0.00},
  12. {"green", 0.00, 1.00, 0.00},
  13. {"blue", 0.00, 0.00, 1.00},
  14. {"yellow", 1.00, 1.00, 0.00},
  15. {"magenta",1.00, 0.00, 1.00},
  16. {"cyan", 0.00, 1.00, 1.00},
  17. {"aqua", 0.00, 0.75, 0.75},
  18. {"grey", 0.75, 0.75, 0.75},
  19. {"gray", 0.75, 0.75, 0.75},
  20. {"orange", 1.00, 0.50, 0.00},
  21. {"brown", 0.75, 0.50, 0.25},
  22. {"purple", 0.50, 0.00, 1.00},
  23. {"violet", 0.50, 0.00, 1.00},
  24. {"indigo", 0.00, 0.50, 1.00},
  25. {"", 0.00, 0.00, 0.00} /* do not modify this line */
  26. };
  27. int G_color_values(const char *name, float *r, float *g, float *b)
  28. {
  29. int i;
  30. *r = *g = *b = 0.0;
  31. for (i = 0; colors[i].name[0]; i++)
  32. if (strcmp(name, colors[i].name) == 0) {
  33. *r = colors[i].r;
  34. *g = colors[i].g;
  35. *b = colors[i].b;
  36. return 1;
  37. }
  38. return -1;
  39. }
  40. const char *G_color_name(int n)
  41. {
  42. int i;
  43. if (n >= 0)
  44. for (i = 0; colors[i].name[0]; i++)
  45. if (i == n)
  46. return colors[i].name;
  47. return NULL;
  48. }