diff options
Diffstat (limited to 'archive/hgehelp/hgecolor.cpp')
-rw-r--r-- | archive/hgehelp/hgecolor.cpp | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/archive/hgehelp/hgecolor.cpp b/archive/hgehelp/hgecolor.cpp deleted file mode 100644 index 561a9cc..0000000 --- a/archive/hgehelp/hgecolor.cpp +++ /dev/null @@ -1,89 +0,0 @@ -/* -** Haaf's Game Engine 1.7 -** Copyright (C) 2003-2007, Relish Games -** hge.relishgames.com -** -** hgeColor*** helper classes implementation -*/ - - -#include "hgecolor.h" -#include <math.h> - -#ifndef min -#define min(x,y) ((x) < (y) ? (x) : (y)) -#endif - -#ifndef max -#define max(x,y) ((x) > (y) ? (x) : (y)) -#endif - -void hgeColorHSV::SetHWColor(DWORD col) -{ - float r, g, b; - float minv, maxv, delta; - float del_R, del_G, del_B; - - a = (col>>24) / 255.0f; - r = ((col>>16) & 0xFF) / 255.0f; - g = ((col>>8) & 0xFF) / 255.0f; - b = (col & 0xFF) / 255.0f; - - minv = min(min(r, g), b); - maxv = max(max(r, g), b); - delta = maxv - minv; - - v = maxv; - - if (delta == 0) - { - h = 0; - s = 0; - } - else - { - s = delta / maxv; - del_R = (((maxv - r) / 6) + (delta / 2)) / delta; - del_G = (((maxv - g) / 6) + (delta / 2)) / delta; - del_B = (((maxv - b) / 6) + (delta / 2)) / delta; - - if (r == maxv) {h = del_B - del_G;} - else if (g == maxv) {h = (1.0f / 3.0f) + del_R - del_B;} - else if (b == maxv) {h = (2.0f / 3.0f) + del_G - del_R;} - - if (h < 0) h += 1; - if (h > 1) h -= 1; - } -} - -DWORD hgeColorHSV::GetHWColor() const -{ - float r, g, b; - float xh, i, p1, p2, p3; - - if (s == 0) - { - r = v; - g = v; - b = v; - } - else - { - xh = h * 6; - if(xh == 6) xh=0; - i = floorf(xh); - p1 = v * (1 - s); - p2 = v * (1 - s * (xh - i)); - p3 = v * (1 - s * (1 - (xh - i))); - - if (i == 0) {r = v; g = p3; b = p1;} - else if (i == 1) {r = p2; g = v; b = p1;} - else if (i == 2) {r = p1; g = v; b = p3;} - else if (i == 3) {r = p1; g = p2; b = v; } - else if (i == 4) {r = p3; g = p1; b = v; } - else {r = v; g = p1; b = p2;} - } - - return (DWORD(a*255.0f)<<24) + (DWORD(r*255.0f)<<16) + (DWORD(g*255.0f)<<8) + DWORD(b*255.0f); -} - |