44 Rgbw64Color(uint16_t r, uint16_t g, uint16_t b, uint16_t w = 0) :
45 R(r),
G(g),
B(b),
W(w)
55 R(0),
G(0),
B(0),
W(brightness)
84 R = (uint16_t)color.
R * 257;
85 G = (uint16_t)color.
G * 257;
86 B = (uint16_t)color.
B * 257;
87 W = (uint16_t)color.
W * 257;
122 return (
R == other.
R &&
G == other.
G &&
B == other.
B &&
W == other.
W);
127 return !(*
this == other);
140 return _Compare<Rgbw64Color, int32_t>(*
this, other, epsilon);
153 return _Compare<Rgbw64Color, int32_t>(left, right, epsilon);
201 return (
R ==
B &&
R ==
G);
210 return (
R == 0 &&
B == 0 &&
G == 0);
235 uint16_t expanded = ratio << 8;
236 return Dim(expanded);
255 uint16_t expanded = ratio << 8;
264 void Darken(uint16_t delta);
324 const static uint16_t
Max = 65535;
328 inline static uint16_t _elementDim(uint16_t value, uint16_t ratio)
330 return (
static_cast<uint32_t
>(value) * (
static_cast<uint32_t
>(ratio) + 1)) >> 16;
333 inline static uint16_t _elementBrighten(uint16_t value, uint16_t ratio)
335 uint32_t element = ((
static_cast<uint32_t
>(value) + 1) << 16) / (
static_cast<uint32_t
>(ratio) + 1);
Definition: NeoSettings.h:65
const uint16_t RedTenthMilliAmpere
Definition: NeoSettings.h:94
const uint16_t GreenTenthMilliAmpere
Definition: NeoSettings.h:95
const uint16_t BlueTenthMilliAmpere
Definition: NeoSettings.h:96
const uint16_t WhiteTenthMilliAmpere
Definition: NeoSettings.h:97
Definition: HsbColor.h:35
Definition: HslColor.h:34
Definition: HtmlColor.h:70
Definition: Rgb48Color.h:36
Definition: RgbColorBase.h:34
Definition: RgbColor.h:36
Definition: Rgbw64Color.h:38
uint16_t B
Definition: Rgbw64Color.h:321
static Rgbw64Color LinearBlend(const Rgbw64Color &left, const Rgbw64Color &right, float progress)
Definition: Rgbw64Color.cpp:158
Rgbw64Color(const HtmlColor &color)
Definition: Rgbw64Color.h:94
void Darken(uint16_t delta)
Definition: Rgbw64Color.cpp:75
uint16_t G
Definition: Rgbw64Color.h:320
uint16_t & operator[](size_t idx)
Definition: Rgbw64Color.h:181
Rgbw64Color()
Definition: Rgbw64Color.h:113
static const size_t Count
Definition: Rgbw64Color.h:325
Rgbw64Color Brighten(uint16_t ratio) const
Definition: Rgbw64Color.cpp:69
Rgbw64Color(const Rgb48Color &color)
Definition: Rgbw64Color.h:70
uint16_t CalculateBrightness() const
Definition: Rgbw64Color.cpp:50
Rgbw64Color(const RgbwColor &color)
Definition: Rgbw64Color.h:81
static int32_t Compare(const Rgbw64Color &left, const Rgbw64Color &right, uint16_t epsilon=256)
Definition: Rgbw64Color.h:151
uint16_t CalcTotalTenthMilliAmpere(const SettingsObject &settings)
Definition: Rgbw64Color.h:302
uint16_t W
Definition: Rgbw64Color.h:322
int32_t CompareTo(const Rgbw64Color &other, uint16_t epsilon=256)
Definition: Rgbw64Color.h:138
bool operator==(const Rgbw64Color &other) const
Definition: Rgbw64Color.h:120
uint16_t R
Definition: Rgbw64Color.h:319
Rgbw64Color(uint16_t r, uint16_t g, uint16_t b, uint16_t w=0)
Definition: Rgbw64Color.h:44
bool IsMonotone() const
Definition: Rgbw64Color.h:199
static const uint16_t Max
Definition: Rgbw64Color.h:324
NeoRgbwCurrentSettings SettingsObject
Definition: Rgbw64Color.h:39
bool IsColorLess() const
Definition: Rgbw64Color.h:208
uint16_t operator[](size_t idx) const
Definition: Rgbw64Color.h:161
Rgbw64Color(const RgbColor &color)
Definition: Rgbw64Color.h:62
bool operator!=(const Rgbw64Color &other) const
Definition: Rgbw64Color.h:125
static Rgbw64Color BilinearBlend(const Rgbw64Color &c00, const Rgbw64Color &c01, const Rgbw64Color &c10, const Rgbw64Color &c11, float x, float y)
Definition: Rgbw64Color.cpp:173
Rgbw64Color Dim(uint16_t ratio) const
Definition: Rgbw64Color.cpp:63
Rgbw64Color Brighten(uint8_t ratio) const
Definition: Rgbw64Color.h:253
void Lighten(uint16_t delta)
Definition: Rgbw64Color.cpp:114
Rgbw64Color Dim(uint8_t ratio) const
Definition: Rgbw64Color.h:233
Rgbw64Color(uint16_t brightness)
Definition: Rgbw64Color.h:54
Definition: RgbwColor.h:38
uint8_t R
Definition: RgbwColor.h:271
uint8_t W
Definition: RgbwColor.h:274
uint8_t B
Definition: RgbwColor.h:273
uint8_t G
Definition: RgbwColor.h:272