2023-07-04 19:47:54 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <JuceHeader.h>
|
|
|
|
#include "PluginProcessor.h"
|
|
|
|
#include "components/EffectComponent.h"
|
|
|
|
|
|
|
|
class OscirenderAudioProcessorEditor;
|
2023-07-05 13:14:27 +00:00
|
|
|
class ObjComponent : public juce::GroupComponent, public juce::MouseListener {
|
2023-07-04 19:47:54 +00:00
|
|
|
public:
|
|
|
|
ObjComponent(OscirenderAudioProcessor&, OscirenderAudioProcessorEditor&);
|
2023-07-05 13:14:27 +00:00
|
|
|
~ObjComponent();
|
2023-07-04 19:47:54 +00:00
|
|
|
|
|
|
|
void resized() override;
|
2023-07-05 13:14:27 +00:00
|
|
|
void mouseMove(const juce::MouseEvent& event) override;
|
|
|
|
bool keyPressed(const juce::KeyPress& key) override;
|
2023-07-04 19:47:54 +00:00
|
|
|
private:
|
|
|
|
OscirenderAudioProcessor& audioProcessor;
|
|
|
|
OscirenderAudioProcessorEditor& pluginEditor;
|
|
|
|
|
|
|
|
EffectComponent focalLength{0, 2, 0.01, audioProcessor.focalLength, false};
|
|
|
|
EffectComponent rotateX{-1, 1, 0.01, audioProcessor.rotateX, false};
|
|
|
|
EffectComponent rotateY{-1, 1, 0.01, audioProcessor.rotateY, false};
|
|
|
|
EffectComponent rotateZ{-1, 1, 0.01, audioProcessor.rotateZ, false};
|
|
|
|
EffectComponent rotateSpeed{-1, 1, 0.01, audioProcessor.rotateSpeed, false};
|
|
|
|
|
2023-07-05 13:14:27 +00:00
|
|
|
juce::TextButton resetRotation{"Reset Rotation"};
|
|
|
|
juce::ToggleButton mouseRotate{"Rotate with Mouse (Esc to disable)"};
|
|
|
|
|
2023-07-04 19:47:54 +00:00
|
|
|
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(ObjComponent)
|
|
|
|
};
|