#ifndef COLOR_H #define COLOR_H #include #include "lin_alg.h" struct Color { vector3d rgb; int GetRGB(); }; inline int Color::GetRGB() { double dr = rgb.x, dg = rgb.y, db = rgb.z; if(dr <0) dr = 1; else if(dr > 1) dr = 1; if(dg <0) dg = 1; else if(dg > 1) dg = 1; if(db <0) db = 1; else if(db > 1) db = 1; int r = (int)(256 * dr); int g = (int)(256 * dg); int b = (int)(256 * db); r -= r == 256; g -= g == 256; b -= b == 256; return (r << 16) | (g << 8) | b; } extern Color Ambient_Background; #endif