36#define NUM_LEDS ((WIDTH) * (HEIGHT))
37#define TIME_ANIMATION 1000
90 if (checkbox.
value()) {
100 auto screenmap =
xyMap.toScreenMap();
101 screenmap.setDiameter(.2);
103 .setScreenMap(screenmap);
104 auto screenmap2 =
xyMap_Dst.toScreenMap();
105 screenmap.setDiameter(.5);
106 screenmap2.addOffsetY(-
HEIGHT / 2);
108 .setScreenMap(screenmap2);
131 const uint32_t now = millis();
132 uint32_t now_warped =
time_warp.update(now);
135 shape->setScale(
scale.value());
138 static float s_prev_alpha = 0.0f;
146 FASTLED_WARN(
"Transition triggered on " << shape->name());
148 s_prev_alpha = curr_alpha;
151 static uint32_t frame = 0;
154 const CRGB purple =
CRGB(255, 0, 255);
158 float diff = curr_alpha - s_prev_alpha;
160 float factor =
MAX(s_prev_alpha - diff, 0.f);
162 for (
int i = 0; i < number_of_steps; ++i) {
169 float diff_max_alpha =
maxAnimation.value() - curr_alpha;
170 if (diff_max_alpha < 0.94) {
178 subpixel.
scale(alpha);
180 raster.rasterize(subpixel);
183 s_prev_alpha = curr_alpha;
192 int first =
xyMap(1, 1);
210 for (
int i = 0; i < 10; ++i) {
UITitle title("Chromancer")
fl::vector< XYPathPtr > CreateXYPaths(int width, int height)
FL_DISABLE_WARNING_PUSH FL_DISABLE_WARNING_GLOBAL_CONSTRUCTORS CFastLED FastLED
Global LED strip management instance.
central include file for FastLED, defines the CFastLED class/object
LED controller for WS2812 LEDs with GRB color order.
void push_back(const T &value)
void scale(uint8_t scale)
UISlider numberOfSteps("Number of Steps", 32.0f, 1.0f, 100.0f, 1.0f)
UIButton trigger("Trigger")
XYPathPtr getShape(int which)
UISlider maxAnimation("Max Animation", 1.0f, 5.0f, 20.0f, 1.f)
XYMap xyMap_Dst(WIDTH/2, HEIGHT/2, false)
UISlider transition("Transition", 0.0f, 0.0f, 1.0f, 0.01f)
fl::vector< XYPathPtr > shapes
float getAnimationTime(uint32_t now)
XYRaster raster(WIDTH, HEIGHT)
TimeClampedTransition shapeProgress(TIME_ANIMATION)
UICheckbox useWaveFx("Use WaveFX", true)
CRGB leds_downscaled[NUM_LEDS/4]
UISlider whichShape("Which Shape", 0.0f, 0.0f, shapes.size() - 1, 1.0f)
WaveEffect NewWaveSimulation2D(const XYMap xymap)
InlinedVector< T, INLINED_SIZE > vector_inlined
XYRasterU8Sparse XYRaster
void clear(CRGB(&arr)[N])
void downscaleHalf(const CRGB *src, uint16_t srcWidth, uint16_t srcHeight, CRGB *dst)
HeapVector< T, Allocator > vector
FASTLED_FORCE_INLINE U map_range(T value, T in_min, T in_max, U out_min, U out_max)
Implements a simple red square effect for 2D LED grids.
Representation of an RGB pixel (Red, Green, Blue)
UIDescription description("Advanced layered and blended wave effects.")