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

◆ interp16()

template<typename T>
T fl::LUT< T >::interp16 ( uint16_t alpha)
inline

Definition at line 79 of file lut.h.

79 {
80 if (length == 0)
81 return T();
82 if (alpha == 0)
83 return data[0];
84 if (alpha == 65535)
85 return data[length - 1];
86
87 // treat alpha/65535 as fraction, scale to [0..length-1]
89 uint32_t pos = uint32_t(alpha) * maxIndex; // numerator
90 uint32_t idx0 = pos / 65535; // floor(position)
92 uint16_t blend = pos % 65535; // fractional part
93
94 const T &a = data[idx0];
95 const T &b = data[idx1];
96 // a + (b-a) * blend/65535
97 return a + (b - a) * blend / 65535;
98 }
T * data
Definition lut.h:102
uint32_t length
Definition lut.h:103
Definition lut.h:34