From 2eecc0ae6e9853dc54d6f37a2a9fa2a823a03829 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Sat, 17 Aug 2019 10:59:34 +0700 Subject: [PATCH] make_vecX from color and color32 --- headers/enduro2d/utils/color.hpp | 3 +++ headers/enduro2d/utils/color32.hpp | 3 +++ sources/enduro2d/utils/color.cpp | 8 ++++++++ sources/enduro2d/utils/color32.cpp | 8 ++++++++ untests/sources/untests_utils/color.cpp | 4 ++++ untests/sources/untests_utils/color32.cpp | 4 ++++ 6 files changed, 30 insertions(+) diff --git a/headers/enduro2d/utils/color.hpp b/headers/enduro2d/utils/color.hpp index 228d9999..05db038d 100644 --- a/headers/enduro2d/utils/color.hpp +++ b/headers/enduro2d/utils/color.hpp @@ -55,6 +55,9 @@ namespace e2d namespace e2d { + vec3 make_vec3(const color& c) noexcept; + vec4 make_vec4(const color& c) noexcept; + bool operator<(const color& l, const color& r) noexcept; bool operator==(const color& l, const color& r) noexcept; bool operator!=(const color& l, const color& r) noexcept; diff --git a/headers/enduro2d/utils/color32.hpp b/headers/enduro2d/utils/color32.hpp index 72684e88..8055683f 100644 --- a/headers/enduro2d/utils/color32.hpp +++ b/headers/enduro2d/utils/color32.hpp @@ -55,6 +55,9 @@ namespace e2d namespace e2d { + vec3 make_vec3(const color32& c) noexcept; + vec4 make_vec4(const color32& c) noexcept; + bool operator<(const color32& l, const color32& r) noexcept; bool operator==(const color32& l, const color32& r) noexcept; bool operator!=(const color32& l, const color32& r) noexcept; diff --git a/sources/enduro2d/utils/color.cpp b/sources/enduro2d/utils/color.cpp index 50e2da44..b42d9bf6 100644 --- a/sources/enduro2d/utils/color.cpp +++ b/sources/enduro2d/utils/color.cpp @@ -139,6 +139,14 @@ namespace e2d namespace e2d { + vec3 make_vec3(const color& c) noexcept { + return make_vec3(c.r, c.g, c.b); + } + + vec4 make_vec4(const color& c) noexcept { + return make_vec4(c.r, c.g, c.b, c.a); + } + // // color (<,==,!=) color // diff --git a/sources/enduro2d/utils/color32.cpp b/sources/enduro2d/utils/color32.cpp index 0d7cab2b..02f7f793 100644 --- a/sources/enduro2d/utils/color32.cpp +++ b/sources/enduro2d/utils/color32.cpp @@ -139,6 +139,14 @@ namespace e2d namespace e2d { + vec3 make_vec3(const color32& c) noexcept { + return make_vec3(c.r, c.g, c.b); + } + + vec4 make_vec4(const color32& c) noexcept { + return make_vec4(c.r, c.g, c.b, c.a); + } + // // color32 (<,==,!=) color32 // diff --git a/untests/sources/untests_utils/color.cpp b/untests/sources/untests_utils/color.cpp index 5fe0ea0b..0e087cfb 100644 --- a/untests/sources/untests_utils/color.cpp +++ b/untests/sources/untests_utils/color.cpp @@ -48,6 +48,10 @@ TEST_CASE("color") { c /= color(0.1f,0.2f,0.3f,0.4f); REQUIRE(c == color(0.5f,0.6f,0.7f,0.8f)); } + { + REQUIRE(make_vec3(color(0.1f,0.2f,0.3f,0.4f)) == v3f(0.1f,0.2f,0.3f)); + REQUIRE(make_vec4(color(0.1f,0.2f,0.3f,0.4f)) == v4f(0.1f,0.2f,0.3f, 0.4f)); + } { REQUIRE(color(0.1f,0.2f,0.3f,0.4f) + 0.1f == color(0.2f,0.3f,0.4f,0.5f)); REQUIRE(color(0.1f,0.2f,0.3f,0.4f) - 0.1f == color(0.0f,0.1f,0.2f,0.3f)); diff --git a/untests/sources/untests_utils/color32.cpp b/untests/sources/untests_utils/color32.cpp index 81c61f07..e0fd312d 100644 --- a/untests/sources/untests_utils/color32.cpp +++ b/untests/sources/untests_utils/color32.cpp @@ -50,6 +50,10 @@ TEST_CASE("color32") { c /= color32(2,3,6,7); REQUIRE(c == color32(40,50,40,20)); } + { + REQUIRE(make_vec3(color32(10,20,30,40)) == vec3(10,20,30)); + REQUIRE(make_vec4(color32(10,20,30,40)) == vec4(10,20,30,40)); + } { REQUIRE(color32(10,20,30,40) + 10 == color32(20,30,40,50)); REQUIRE(color32(10,20,30,40) - 10 == color32(0,10,20,30));