20#define ANIMARTRIX_INTERNAL
82class FastLEDANIMartRIX;
88 mXyMap.convertToLookUpTable();
96 Str fxName()
const override {
return "Animartrix:"; }
140 uint16_t
xyMap(uint16_t
x, uint16_t
y)
override {
171 self.
impl->setTime(now);
249 if (entry.anim ==
data->current_animation) {
250 (this->*entry.func)();
255 FASTLED_DBG(
"Animation not found for " <<
int(
data->current_animation));
260 if (entry.anim == animation) {
264 FASTLED_DBG(
"Animation not found for " <<
int(animation));
272 for (
int i = 0; i <
mXyMap.getTotal(); ++i) {
277 pixel =
CRGB(pixel.raw[b0_index], pixel.raw[b1_index],
278 pixel.raw[b2_index]);
282 this->
leds =
nullptr;
void Module_Experiment1()
void Module_Experiment4()
void Module_Experiment9()
void Module_Experiment8()
void Module_Experiment2()
void Module_Experiment10()
void Module_Experiment7()
void Module_Experiment5()
void Module_Experiment3()
void Distance_Experiment()
void Module_Experiment6()
Animartrix(const Animartrix &)=delete
void draw(DrawContext context) override
friend void AnimartrixLoop(Animartrix &self, uint32_t now)
void setColorOrder(EOrder order)
Animartrix(XYMap xyMap, AnimartrixAnim which_animation)
Str fxName() const override
AnimartrixAnim current_animation
friend class FastLEDANIMartRIX
AnimartrixAnim prev_animation
fl::scoped_ptr< FastLEDANIMartRIX > impl
EOrder getColorOrder() const
static const char * getAnimationName(AnimartrixAnim animation)
void setPixelColor(int x, int y, CRGB pixel)
uint16_t xyMap(uint16_t x, uint16_t y) override
FastLEDANIMartRIX(Animartrix *_data)
void setPixelColorInternal(int x, int y, animartrix_detail::rgb pixel) override
uint16_t xyMap(uint16_t x, uint16_t y) const
uint16_t getHeight() const
uint16_t getWidth() const
Defines the red, green, and blue (RGB) pixel struct.
EOrder
RGB color channel orderings, used when instantiating controllers to determine what order the controll...
@ RGB
Red, Green, Blue (0012)
Defines color channel ordering enumerations.
Implements the FastLED namespace macros.
static const AnimartrixEntry ANIMATION_TABLE[]
void AnimartrixLoop(Animartrix &self, uint32_t now)
Implements a simple red square effect for 2D LED grids.
void(FastLEDANIMartRIX::* func)()
################################################## Details with the implementation of Animartrix
#define RGB_BYTE2(RO)
Gets the color channel for byte 2.
#define RGB_BYTE1(RO)
Gets the color channel for byte 1.
#define RGB_BYTE0(RO)
Gets the color channel for byte 0.
Low level pixel data writing class.
#define FASTLED_SMART_PTR(type)
Representation of an RGB pixel (Red, Green, Blue)