744 constexpr
Color() =
default;
753 constexpr
Color(
double r,
double g,
double b)
754 : red(roundAndClamp(r)),
755 green(roundAndClamp(g)),
756 blue(roundAndClamp(b)) {}
763 static constexpr
double kPrecision = 1.0 / (1 << 12);
765 static constexpr
double roundAndClamp(
double value) {
767 (static_cast<int>(value / kPrecision) + 0.5) * kPrecision;
768 return std::clamp(rounded, 0.0, 1.0);
772 inline bool operator==(
const Color& c1,
const Color& c2) {
773 return c1.red == c2.red && c1.green == c2.green && c1.blue == c2.blue;
779 inline constexpr Color
Color::kDenim{0.0823529412, 0.376470589, 0.7411764706};
792 inline constexpr Color
Color::kAzure{0.9411765f, 1.0f, 1.0f};
793 inline constexpr Color
Color::kBeige{0.9607843f, 0.9607843f, 0.8627451f};
794 inline constexpr Color
Color::kBisque{1.0f, 0.89411765f, 0.76862746f};
799 inline constexpr Color
Color::kBrown{0.64705884f, 0.16470589f, 0.16470589f};
804 inline constexpr Color
Color::kCoral{1.0f, 0.49803922f, 0.3137255f};
808 inline constexpr Color
Color::kCrimson{0.8627451f, 0.078431375f, 0.23529412f};
814 inline constexpr Color
Color::kDarkGray{0.6627451f, 0.6627451f, 0.6627451f};
834 inline constexpr Color
Color::kDimGray{0.4117647f, 0.4117647f, 0.4117647f};
843 inline constexpr Color
Color::kGold{1.0f, 0.84313726f, 0.0f};
845 inline constexpr Color
Color::kGray{0.5019608f, 0.5019608f, 0.5019608f};
846 inline constexpr Color
Color::kGreen{0.0f, 0.5019608f, 0.0f};
851 inline constexpr Color
Color::kIndigo{0.29411766f, 0.0f, 0.50980395f};
852 inline constexpr Color
Color::kIvory{1.0f, 1.0f, 0.9411765f};
853 inline constexpr Color
Color::kKhaki{0.9411765f, 0.9019608f, 0.54901963f};
854 inline constexpr Color
Color::kLavender{0.9019608f, 0.9019608f, 0.98039216f};
877 inline constexpr Color
Color::kLinen{0.98039216f, 0.9411765f, 0.9019608f};
899 inline constexpr Color
Color::kNavy{0.0f, 0.0f, 0.5019608f};
900 inline constexpr Color
Color::kOldLace{0.99215686f, 0.9607843f, 0.9019608f};
901 inline constexpr Color
Color::kOlive{0.5019608f, 0.5019608f, 0.0f};
905 inline constexpr Color
Color::kOrchid{0.85490197f, 0.4392157f, 0.8392157f};
915 inline constexpr Color
Color::kPeru{0.8039216f, 0.52156866f, 0.24705882f};
916 inline constexpr Color
Color::kPink{1.0f, 0.7529412f, 0.79607844f};
917 inline constexpr Color
Color::kPlum{0.8666667f, 0.627451f, 0.8666667f};
919 inline constexpr Color
Color::kPurple{0.5019608f, 0.0f, 0.5019608f};
920 inline constexpr Color
Color::kRed{1.0f, 0.0f, 0.0f};
925 inline constexpr Color
Color::kSalmon{0.98039216f, 0.5019608f, 0.44705883f};
927 inline constexpr Color
Color::kSeaGreen{0.18039216f, 0.54509807f, 0.34117648f};
929 inline constexpr Color
Color::kSienna{0.627451f, 0.32156864f, 0.1764706f};
930 inline constexpr Color
Color::kSilver{0.7529412f, 0.7529412f, 0.7529412f};
931 inline constexpr Color
Color::kSkyBlue{0.5294118f, 0.80784315f, 0.92156863f};
934 inline constexpr Color
Color::kSnow{1.0f, 0.98039216f, 0.98039216f};
937 inline constexpr Color
Color::kTan{0.8235294f, 0.7058824f, 0.54901963f};
938 inline constexpr Color
Color::kTeal{0.0f, 0.5019608f, 0.5019608f};
939 inline constexpr Color
Color::kThistle{0.84705883f, 0.7490196f, 0.84705883f};
940 inline constexpr Color
Color::kTomato{1.0f, 0.3882353f, 0.2784314f};
942 inline constexpr Color
Color::kViolet{0.93333334f, 0.50980395f, 0.93333334f};
943 inline constexpr Color
Color::kWheat{0.9607843f, 0.87058824f, 0.7019608f};