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]
65
uint32_t
maxIndex
=
length
- 1;
66
uint32_t
pos
=
uint32_t
(
alpha
) *
maxIndex
;
// numerator
67
uint32_t
idx0
=
pos
/ 255;
// floor(position)
68
uint32_t
idx1
=
idx0
<
maxIndex
?
idx0
+ 1 :
maxIndex
;
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
}
fl::LUT::data
T * data
Definition
lut.h:100
fl::LUT::length
uint32_t length
Definition
lut.h:101
fl::LUT
Definition
lut.h:32
fl
LUT
Generated on Sat May 24 2025 22:44:25 for FastLED by
1.13.2