FastLED 3.9.15
Loading...
Searching...
No Matches

◆ interp8()

template<typename T>
T fl::LUT< T >::interp8 ( uint8_t alpha)
inline

Definition at line 56 of file lut.h.

56 {
57 if (length == 0)
58 return T();
59 if (alpha == 0)
60 return data[0];
61 if (alpha == 255)
62 return data[length - 1];
63
64 // treat alpha/255 as fraction, scale to [0..length-1]
66 uint32_t pos = uint32_t(alpha) * maxIndex; // numerator
67 uint32_t idx0 = pos / 255; // floor(position)
69 uint8_t blend = pos % 255; // fractional part
70
71 const T &a = data[idx0];
72 const T &b = data[idx1];
73 // a + (b-a) * blend/255
74 return a + (b - a) * blend / 255;
75 }
T * data
Definition lut.h:100
uint32_t length
Definition lut.h:101
Definition lut.h:32