Skip to main content

blokdots::color

Color parsing, mixing, and mapping helpers for blokdots::Color values.

C++
#include "blokdots.h"

#Functions

#isHexDigit

C++
bool isHexDigit(char c);

true if valid hex digit

#hexVal

C++
uint8_t hexVal(char c);

#parseHexRGB

C++
bool parseHexRGB(const char hex, uint8_t r, uint8_t g, uint8_t b);

Returns true on success

#parseHexColor

C++
bool parseHexColor(const char hex, blokdots::Color out);

NEW: parse directly into blokdots::Color

#parseHexOr

C++
blokdots::Color parseHexOr(const char hex, blokdots::Color fallback);

NEW: convenience version that returns a default on failure (generator-friendly)

#clampU8

C++
uint8_t clampU8(int32_t x);

#mapToU8

C++
uint8_t mapToU8(int32_t v, int32_t inMin, int32_t inMax, bool invert);

Map v from [inMin..inMax] to [0..255], clamp, optional invert.

#lerpU8

C++
uint8_t lerpU8(uint8_t a, uint8_t b, uint8_t t);

Mix two uint8 by t in [0..255] with rounding.

#mixRGB

C++
void mixRGB(uint8_t rMin, uint8_t gMin, uint8_t bMin, uint8_t rMax, uint8_t gMax, uint8_t bMax, uint8_t t, uint8_t rOut, uint8_t gOut, uint8_t bOut);

Existing API (kept)

#mix

C++
blokdots::Color mix(blokdots::Color minC, blokdots::Color maxC, uint8_t t);

NEW: mix colors as structs (cleaner call sites + codegen)

#mapColorRGB

C++
void mapColorRGB(int32_t v, int32_t inMin, int32_t inMax, uint8_t rMin, uint8_t gMin, uint8_t bMin, uint8_t rMax, uint8_t gMax, uint8_t bMax, bool invert, uint8_t rOut, uint8_t gOut, uint8_t bOut);

Existing API (kept)

#mapColor

C++
blokdots::Color mapColor(int32_t v, int32_t inMin, int32_t inMax, blokdots::Color minC, blokdots::Color maxC, bool invert);

NEW: map value directly to a blokdots::Color

#pack24

C++
uint32_t pack24(blokdots::Color c);

Useful for NeoPixel, storage, comparisons, etc.

#unpack24

C++
blokdots::Color unpack24(uint32_t rgb);

#equals

C++
bool equals(blokdots::Color a, blokdots::Color b);