#pragma once #include "datatypes.h" #include "node.h" #include namespace VISEQ::GRAPH::NODES { class ConfigNode : public Node{ public: ConfigNode() {std::cout << "ConfigNode Constructor std" << std::endl;} ConfigNode(Vec2Df position) : Node(position) {} std::shared_ptr getPtr(); NodeType nodeType = NodeType::CONFIGNODE; MIDI::MidiNote midiNote; MIDI::MidiCC midiCC; MIDI::MidiPitchBend midiPitchBend; MIDI::MidiPolyPressure midiPolyPressure; MIDI::MidiPC midiPC; MIDI::MidiAftertouch midiAftertouch; int mode = 0; float radius = 20.0f; virtual NodeType getNodeType() const override; virtual void trigger() override; virtual void setMode(int _mode) override; MIDI::MidiNote getNotes() const; MIDI::MidiCC getCC() const; MIDI::MidiPC getPC() const; MIDI::MidiPitchBend getPitchBend() const; MIDI::MidiAftertouch getAftertouch() const; MIDI::MidiPolyPressure getPolyPressure() const; std::vector> getConnectedConfigNodes() const; void update() override; void interact(); void draw(Vec2Df mouse, Camera2D cam) override; friend void to_json(json& j, const ConfigNode& N); friend void from_json(const json& j, ConfigNode& N); friend void to_json(json& j, const std::shared_ptr& N); friend void from_json(const json& j, std::shared_ptr& N); }; }