Convert hsv floats ([0-1],[0-1],[0-1]) to rgb floats ([0-1],[0-1],[0-1]), from Foley & van Dam p593 also http://en.wikipedia.org/wiki/HSL_and_HSV
| 2872 | // Convert hsv floats ([0-1],[0-1],[0-1]) to rgb floats ([0-1],[0-1],[0-1]), from Foley & van Dam p593 |
| 2873 | // also http://en.wikipedia.org/wiki/HSL_and_HSV |
| 2874 | void ImGui::ColorConvertHSVtoRGB(float h, float s, float v, float& out_r, float& out_g, float& out_b) |
| 2875 | { |
| 2876 | if (s == 0.0f) |
| 2877 | { |
| 2878 | // gray |
| 2879 | out_r = out_g = out_b = v; |
| 2880 | return; |
| 2881 | } |
| 2882 | |
| 2883 | h = ImFmod(h, 1.0f) / (60.0f / 360.0f); |
| 2884 | int i = (int)h; |
| 2885 | float f = h - (float)i; |
| 2886 | float p = v * (1.0f - s); |
| 2887 | float q = v * (1.0f - s * f); |
| 2888 | float t = v * (1.0f - s * (1.0f - f)); |
| 2889 | |
| 2890 | switch (i) |
| 2891 | { |
| 2892 | case 0: out_r = v; out_g = t; out_b = p; break; |
| 2893 | case 1: out_r = q; out_g = v; out_b = p; break; |
| 2894 | case 2: out_r = p; out_g = v; out_b = t; break; |
| 2895 | case 3: out_r = p; out_g = q; out_b = v; break; |
| 2896 | case 4: out_r = t; out_g = p; out_b = v; break; |
| 2897 | case 5: default: out_r = v; out_g = p; out_b = q; break; |
| 2898 | } |
| 2899 | } |
| 2900 | |
| 2901 | //----------------------------------------------------------------------------- |
| 2902 | // [SECTION] ImGuiStorage |
nothing calls this directly
no outgoing calls
no test coverage detected