Color(float r_, float g_, float b_, float a_): r(r_), g(g_), b(b_), a(a_) { }
Color operator*(float f) const { return Color(r*f, g*f, b*f, a); }
Color operator+(const Color &c) const { return Color(r+c.r, g+c.g, b+c.b, 1-(1-a)*(1-c.a)); }
Color(float r_, float g_, float b_, float a_): r(r_), g(g_), b(b_), a(a_) { }
Color operator*(float f) const { return Color(r*f, g*f, b*f, a); }
Color operator+(const Color &c) const { return Color(r+c.r, g+c.g, b+c.b, 1-(1-a)*(1-c.a)); }