diff --git a/src/internal/colors/RgbColor.cpp b/src/internal/colors/RgbColor.cpp index 6bc592c..88a7a1f 100644 --- a/src/internal/colors/RgbColor.cpp +++ b/src/internal/colors/RgbColor.cpp @@ -37,7 +37,6 @@ License along with NeoPixel. If not, see #include "RgbwColor.h" #include "RgbwwColor.h" #include "RgbwwwColor.h" -#include "Rgb48Color.h" #include "Rgbw64Color.h" #include "Rgbww80Color.h" diff --git a/src/internal/colors/RgbwColor.cpp b/src/internal/colors/RgbwColor.cpp index 5391583..cbb38d4 100644 --- a/src/internal/colors/RgbwColor.cpp +++ b/src/internal/colors/RgbwColor.cpp @@ -34,6 +34,43 @@ License along with NeoPixel. If not, see #include "RgbwColor.h" #include "HtmlColor.h" +#include "RgbwwColor.h" +#include "RgbwwwColor.h" +#include "Rgbw64Color.h" +#include "Rgbww80Color.h" + +RgbwColor::RgbwColor(const RgbwwColor& color) : + R(color.R), + G(color.G), + B(color.B), + W(static_cast((static_cast(color.WW) + static_cast(color.CW)) / 2)) +{ +}; + +RgbwColor::RgbwColor(const RgbwwwColor& color) : + R(color.R), + G(color.G), + B(color.B), + W(static_cast((static_cast(color.W1) + static_cast(color.W2) + static_cast(color.W3)) / 3)) +{ +}; + +RgbwColor::RgbwColor(const Rgbw64Color& color) : + R(color.R >> 8), + G(color.G >> 8), + B(color.B >> 8), + W(color.W >> 8) +{ +}; + +RgbwColor::RgbwColor(const Rgbww80Color& color) : + R(color.R >> 8), + G(color.G >> 8), + B(color.B >> 8), + W(static_cast((static_cast(color.WW) + static_cast(color.CW)) >> 9)) // div 2 >> 8 +{ +}; + RgbwColor::RgbwColor(const HtmlColor& color) { uint32_t temp = color.Color; diff --git a/src/internal/colors/RgbwColor.h b/src/internal/colors/RgbwColor.h index 6154769..1270289 100644 --- a/src/internal/colors/RgbwColor.h +++ b/src/internal/colors/RgbwColor.h @@ -29,6 +29,11 @@ struct RgbColor; struct HslColor; struct HsbColor; +struct RgbwwColor; +struct RgbwwwColor; +struct Rgbw64Color; +struct Rgbww80Color; + // ------------------------------------------------------------------------ // RgbwColor represents a color object that is represented by Red, Green, Blue // component values and an extra White component. It contains helpful color @@ -67,6 +72,26 @@ struct RgbwColor : RgbColorBase { }; + // ------------------------------------------------------------------------ + // explicitly Construct a RgbColor using RgbwwColor + // ------------------------------------------------------------------------ + explicit RgbwColor(const RgbwwColor& color); + + // ------------------------------------------------------------------------ + // explicitly Construct a RgbColor using RgbwwwColor + // ------------------------------------------------------------------------ + explicit RgbwColor(const RgbwwwColor& color); + + // ------------------------------------------------------------------------ + // explicitly Construct a RgbColor using Rgbw64Color + // ------------------------------------------------------------------------ + explicit RgbwColor(const Rgbw64Color& color); + + // ------------------------------------------------------------------------ + // explicitly Construct a RgbColor using Rgbww80Color + // ------------------------------------------------------------------------ + explicit RgbwColor(const Rgbww80Color& color); + // ------------------------------------------------------------------------ // Construct a RgbwColor using HtmlColor // ------------------------------------------------------------------------