#pragma once #include namespace common { class Color { public: constexpr Color() noexcept : r{0.f}, g{0.f}, b{0.f}, a{0.f} {} template && std::is_convertible_v && std::is_convertible_v && std::is_convertible_v>> constexpr explicit Color(R _r, G _g = 0, B _b = 0, A _a = 0) noexcept : r{_r}, g{_g}, b{_b}, a{_a} {} union { vec4_t values{}; struct { float r; float g; float b; float a; }; }; }; }