diff --git a/headers/enduro2d/utils/color.hpp b/headers/enduro2d/utils/color.hpp index b2b1801a..228d9999 100644 --- a/headers/enduro2d/utils/color.hpp +++ b/headers/enduro2d/utils/color.hpp @@ -17,17 +17,18 @@ namespace e2d f32 b = 1.f; f32 a = 1.f; public: - static const color& clear() noexcept; /// (0; 0; 0; 0) - static const color& black() noexcept; /// (0; 0; 0; 1) - static const color& white() noexcept; /// (1; 1; 1; 1) - static const color& red() noexcept; /// (1; 0; 0; 1) - static const color& green() noexcept; /// (0; 1; 0; 1) - static const color& blue() noexcept; /// (0; 0; 1; 1) - static const color& yellow() noexcept; /// (1; 1; 0; 1) - static const color& magenta() noexcept; /// (1; 0; 1; 1) - static const color& cyan() noexcept; /// (0; 1; 1; 1) + static const color& clear() noexcept; + static const color& black() noexcept; + static const color& white() noexcept; + static const color& red() noexcept; + static const color& green() noexcept; + static const color& blue() noexcept; + static const color& yellow() noexcept; + static const color& magenta() noexcept; + static const color& cyan() noexcept; public: color() noexcept = default; + color(const color& other) noexcept = default; color& operator=(const color& other) noexcept = default; @@ -85,7 +86,6 @@ namespace e2d::math color minimized(const color& c, const color& cmin) noexcept; color maximized(const color& c, const color& cmax) noexcept; color clamped(const color& c, const color& cmin, const color& cmax) noexcept; - color saturated(const color& c) noexcept; bool contains_nan(const color& c) noexcept; } diff --git a/headers/enduro2d/utils/color32.hpp b/headers/enduro2d/utils/color32.hpp index c7f9b91b..72684e88 100644 --- a/headers/enduro2d/utils/color32.hpp +++ b/headers/enduro2d/utils/color32.hpp @@ -17,17 +17,18 @@ namespace e2d u8 b = 255; u8 a = 255; public: - static const color32& clear() noexcept; /// ( 0; 0; 0; 0 ) - static const color32& black() noexcept; /// ( 0; 0; 0; 255) - static const color32& white() noexcept; /// (255; 255; 255; 255) - static const color32& red() noexcept; /// (255; 0; 0; 255) - static const color32& green() noexcept; /// ( 0; 255; 0; 255) - static const color32& blue() noexcept; /// ( 0; 0; 255; 255) - static const color32& yellow() noexcept; /// (255; 255; 0; 255) - static const color32& magenta() noexcept; /// (255; 0; 255; 255) - static const color32& cyan() noexcept; /// ( 0; 255; 255; 255) + static const color32& clear() noexcept; + static const color32& black() noexcept; + static const color32& white() noexcept; + static const color32& red() noexcept; + static const color32& green() noexcept; + static const color32& blue() noexcept; + static const color32& yellow() noexcept; + static const color32& magenta() noexcept; + static const color32& cyan() noexcept; public: color32() noexcept = default; + color32(const color32& other) noexcept = default; color32& operator=(const color32& other) noexcept = default; @@ -85,6 +86,8 @@ namespace e2d::math color32 minimized(const color32& c, const color32& cmin) noexcept; color32 maximized(const color32& c, const color32& cmax) noexcept; color32 clamped(const color32& c, const color32& cmin, const color32& cmax) noexcept; + + bool contains_nan(const color32& c) noexcept; } namespace e2d::colors diff --git a/sources/enduro2d/utils/color.cpp b/sources/enduro2d/utils/color.cpp index 55a2cf72..50e2da44 100644 --- a/sources/enduro2d/utils/color.cpp +++ b/sources/enduro2d/utils/color.cpp @@ -298,10 +298,6 @@ namespace e2d::math math::clamp(c.a, cmin.a, cmax.a)); } - color saturated(const color& c) noexcept { - return clamped(c, color::clear(), color::white()); - } - // // contains_nan // diff --git a/sources/enduro2d/utils/color32.cpp b/sources/enduro2d/utils/color32.cpp index a75bb62d..0d7cab2b 100644 --- a/sources/enduro2d/utils/color32.cpp +++ b/sources/enduro2d/utils/color32.cpp @@ -297,6 +297,17 @@ namespace e2d::math math::clamp(c.b, cmin.b, cmax.b), math::clamp(c.a, cmin.a, cmax.a)); } + + // + // contains_nan + // + + bool contains_nan(const color32& c) noexcept { + return !math::is_finite(c.r) + || !math::is_finite(c.g) + || !math::is_finite(c.b) + || !math::is_finite(c.a); + } } namespace e2d::colors diff --git a/untests/sources/untests_utils/color.cpp b/untests/sources/untests_utils/color.cpp index 138417f9..5fe0ea0b 100644 --- a/untests/sources/untests_utils/color.cpp +++ b/untests/sources/untests_utils/color.cpp @@ -115,13 +115,6 @@ TEST_CASE("color") { REQUIRE(math::clamped(v0, color(4,5,6,7), color(9,9,9,9)) == color(4,5,6,7)); REQUIRE(math::clamped(v0, color(6,5,4,3), color(9,9,9,9)) == color(6,5,5,6)); REQUIRE(math::clamped(v0, color(7,6,5,4), color(9,9,9,9)) == color(7,6,5,6)); - - REQUIRE(math::saturated(color(-1,-2,-3,-4)) == color(0,0,0,0)); - REQUIRE(math::saturated(color( 2, 3, 4, 5)) == color(1,1,1,1)); - REQUIRE(math::saturated(color(-1, 3, 4, 5)) == color(0,1,1,1)); - - REQUIRE(math::saturated(color(2,0.6f,2,0.7f)) == color(1,0.6f,1,0.7f)); - REQUIRE(math::saturated(color(0.6f,-2,2,2)) == color(0.6f,0,1,1)); } { {