#pragma once #include namespace VIZ { class RainbowLine : public VIZ { int currentColumn = 0; double deltaNeeded = 0.0; double deltaElapsed = 0; rgba *colours = nullptr; int maxCols = 0; double lastValue = 0; double decayValue = 0; double tailFactor = 0.5; 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{}; bool firstUnder = true; double deltaMove(double val); void moveLine(double val, double d); double factor = 1.0; }; }