#pragma once #include #include #include #include "../visualiser/VisualiserParameters.h" class ShapeVectorRenderer { public: ShapeVectorRenderer(double sampleRate = 44100.0, double frequency = 60.0); // Set new shapes to render void setShapes(std::vector> newShapes); // Get the next point in the shape vector sequence osci::Point nextVector(); // Update sample rate if it changes void setSampleRate(double newSampleRate); // Set the frequency at which shapes should be drawn void setFrequency(double newFrequency); private: double currentSampleRate = 44100.0; double frequency = 60.0; std::vector> shapes; double shapesLength = 0.0; int currentShape = 0; double shapeDrawn = 0.0; double frameDrawn = 0.0; void incrementShapeDrawing(); };