Deep RTS
ColorConverter.hpp
Go to the documentation of this file.
1//
2// Created by Per-Arne on 27.02.2017.
3//
4
5#ifndef WARC2SIM_COLORCONVERTER_H
6#define WARC2SIM_COLORCONVERTER_H
7
8
9#include <SFML/Graphics/Color.hpp>
10
12
13
14public:
15 static sf::Color hsv(double hue, double sat, double val)
16 {
17 hue = fmod(hue, 360);
18 while(hue<0) hue += 360;
19
20 if(sat<0.f) sat = 0.f;
21 if(sat>1.f) sat = 1.f;
22
23 if(val<0.f) val = 0.f;
24 if(val>1.f) val = 1.f;
25
26 int h = hue/60;
27 double f = (hue)/60-h;
28 double p = val*(1.f-sat);
29 double q = val*(1.f-sat*f);
30 double t = val*(1.f-sat*(1-f));
31
32 switch(h)
33 {
34 default:
35 case 0:
36 case 6: return sf::Color(val*255, t*255, p*255);
37 case 1: return sf::Color(q*255, val*255, p*255);
38 case 2: return sf::Color(p*255, val*255, t*255);
39 case 3: return sf::Color(p*255, q*255, val*255);
40 case 4: return sf::Color(t*255, p*255, val*255);
41 case 5: return sf::Color(val*255, p*255, q*255);
42 }
43 }
44};
45
46
47#endif //WARC2SIM_COLORCONVERTER_H
std::tuple< int, int, int > Color
Definition: Blend2DGUI.h:21
Definition: ColorConverter.hpp:11
static sf::Color hsv(double hue, double sat, double val)
Definition: ColorConverter.hpp:15