FastLED
3.9.15
Loading...
Searching...
No Matches
splat.cpp
Go to the documentation of this file.
1
2
#include "
fl/tile2x2.h
"
3
#include "
fl/splat.h
"
4
#include "
fl/math.h
"
5
6
namespace
fl
{
7
8
static
u8
to_uint8
(
float
f) {
9
// convert to [0..255] range
10
u8
i =
static_cast<
u8
>
(f * 255.0f + .5f);
11
return
MIN
(i, 255);
12
}
13
14
Tile2x2_u8
splat
(
vec2f
xy
) {
15
// 1) collect values.
16
float
x
=
xy
.x;
17
float
y
=
xy
.y;
18
19
// 2) integer cell indices
20
i16 cx =
static_cast<
i16
>
(floorf(
x
));
21
i16 cy =
static_cast<
i16
>
(floorf(
y
));
22
23
// 3) fractional offsets in [0..1)
24
float
fx =
x
- cx;
25
float
fy =
y
- cy;
26
27
// 4) bilinear weights
28
float
w_ll = (1 - fx) * (1 - fy);
// lower‑left
29
float
w_lr = fx * (1 - fy);
// lower‑right
30
float
w_ul = (1 - fx) * fy;
// upper‑left
31
float
w_ur = fx * fy;
// upper‑right
32
33
// 5) build Tile2x2_u8 anchored at (cx,cy)
34
Tile2x2_u8
out(
vec2<u16>
(cx, cy));
35
out.
lower_left
() =
to_uint8
(w_ll);
36
out.
lower_right
() =
to_uint8
(w_lr);
37
out.
upper_left
() =
to_uint8
(w_ul);
38
out.
upper_right
() =
to_uint8
(w_ur);
39
40
return
out;
41
}
42
43
}
// namespace
y
int y
Definition
simple.h:93
x
int x
Definition
simple.h:92
xy
unsigned int xy(unsigned int x, unsigned int y)
Definition
PJRCSpectrumAnalyzer.h:81
fl::Tile2x2_u8::lower_right
u8 & lower_right()
Definition
tile2x2.h:44
fl::Tile2x2_u8::upper_right
u8 & upper_right()
Definition
tile2x2.h:45
fl::Tile2x2_u8::lower_left
u8 & lower_left()
Definition
tile2x2.h:42
fl::Tile2x2_u8::upper_left
u8 & upper_left()
Definition
tile2x2.h:43
fl::Tile2x2_u8
Definition
tile2x2.h:22
math.h
MIN
#define MIN(a, b)
Definition
math_macros.h:41
fl::u8
unsigned char u8
Definition
int.h:17
fl::splat
Tile2x2_u8 splat(vec2f xy)
"Splat" as in "splat pixel rendering" takes a pixel value in float x,y coordinates and "splats" it in...
Definition
splat.cpp:14
fl::vec2f
vec2< float > vec2f
Definition
geometry.h:333
fl::to_uint8
static u8 to_uint8(float f)
Definition
splat.cpp:8
fl
IMPORTANT!
Definition
crgb.h:20
splat.h
fl::vec2
Definition
geometry.h:187
tile2x2.h
fl
splat.cpp
Generated on Fri Aug 22 2025 20:59:33 for FastLED by
1.13.2