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

◆ interp8()

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

Definition at line 58 of file lut.h.

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