26#ifndef LIBSBX_MATH_COLOR_HPP_
27#define LIBSBX_MATH_COLOR_HPP_
31#include <yaml-cpp/yaml.h>
62 color(std::uint32_t rgba)
noexcept;
64 color(std::uint8_t
red, std::uint8_t
green, std::uint8_t
blue, std::uint8_t alpha = 255u)
noexcept;
74 template<std::
floating_po
int Type>
145 auto r()
const noexcept ->
const std::float_t&;
152 auto r()
noexcept -> std::float_t&;
159 auto g()
const noexcept ->
const std::float_t&;
166 auto g()
noexcept -> std::float_t&;
173 auto b()
const noexcept ->
const std::float_t&;
180 auto b()
noexcept -> std::float_t&;
187 auto a()
const noexcept ->
const std::float_t&;
194 auto a()
noexcept -> std::float_t&;
213auto operator==(
const color& lhs,
const color& rhs)
noexcept -> bool;
225template<std::
floating_po
int Type>
227: _red{
static_cast<std::float_t
>(red)},
228 _green{
static_cast<std::float_t
>(green)},
229 _blue{
static_cast<std::float_t
>(blue)},
230 _alpha{
static_cast<std::float_t
>(alpha)} { }
238struct YAML::convert<sbx::math::color> {
254struct std::hash<sbx::math::color> {
256 auto operator()(
const sbx::math::color& color)
const noexcept -> std::size_t;
constexpr auto operator*(basic_degree< Type > lhs, const Other rhs) noexcept -> basic_degree< Type >
Multiplies a degree value by a scalar factor.
Definition: angle.ipp:105
RGBA color value type.
Definition: color.hpp:48
auto g() const noexcept -> const std::float_t &
Returns the green component (const).
Definition: color.cpp:89
static auto black() noexcept -> color
Returns a black color.
Definition: color.cpp:45
static auto white() noexcept -> color
Returns a white color.
Definition: color.cpp:49
static auto red() noexcept -> color
Returns a red color.
Definition: color.cpp:53
auto a() const noexcept -> const std::float_t &
Returns the alpha component (const).
Definition: color.cpp:105
color() noexcept
Constructs a white color with full opacity.
Definition: color.cpp:27
static auto cyan() noexcept -> color
Returns a cyan color.
Definition: color.cpp:73
static auto orange() noexcept -> color
Returns an orange color.
Definition: color.cpp:77
static auto blue() noexcept -> color
Returns a blue color.
Definition: color.cpp:61
auto b() const noexcept -> const std::float_t &
Returns the blue component (const).
Definition: color.cpp:97
auto r() const noexcept -> const std::float_t &
Returns the red component (const).
Definition: color.cpp:81
static auto magenta() noexcept -> color
Returns a magenta color.
Definition: color.cpp:65
static auto yellow() noexcept -> color
Returns a yellow color.
Definition: color.cpp:69
static auto green() noexcept -> color
Returns a green color.
Definition: color.cpp:57
auto operator<<(YAML::Emitter &out, const sbx::math::color &color) -> YAML::Emitter &
YAML stream output for color.
Definition: color.cpp:149