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

◆ interp16()

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

Definition at line 77 of file lut.h.

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