#pragma once #include namespace VIZ { class RainbowLine : public VIZ { int currentColumn = 0; double deltaNeeded = 100000.0; double deltaElapsed = 0; rgba *colours = nullptr; double lastValue = 0; double decayValue = 0; double ratios[4] = {1.3,1.3,1.3,1.2}; double tailFactor = 0.3; public: RainbowLine(AudioGrabber *pGrabber, Vulcan121 *vulcan); ~RainbowLine() override; void onSetup() override; void onTick(float delta) override; void calcNextDelta(double ratio); const char *name() override; std::string m_name = "Rainbow Line"; led_map *data = Vulcan121::createEmptyLEDMap(); bool firstUnder = true; double deltaMove(double val); }; }