terion/Source/VectorScope.h

29 lines
859 B
C++

#pragma once
#include <juce_audio_processors/juce_audio_processors.h>
#include <juce_opengl/juce_opengl.h>
#include "PluginProcessor.h"
class VectorScope : public juce::Component, private juce::Timer
{
public:
explicit VectorScope(TerionProcessor& p);
~VectorScope() override;
void paint(juce::Graphics& g) override;
void resized() override;
void timerCallback() override;
float getRadius() const;
void setScale(float s) { currentScale = s; }
private:
TerionProcessor& processor;
float currentScale = 1.0f;
juce::Image trail;
void drawLegends(juce::Graphics& g, float cx, float cy, float radius);
void drawHairCross(juce::Graphics& g, float cx, float cy);
void drawMetricsOverlay(juce::Graphics& g, const juce::Rectangle<int>& bounds);
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(VectorScope)
};