#pragma once #include "datatypes.h" #include "edge.h" #include "node.h" #include "raymath.h" #include "state.h" #include namespace VISEQ::GRAPH::NODES { class ModNode : public Node{ public: ModNode() {std::cout << "ModNode Constructor std" << std::endl;} ModNode(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> getConnectedModNodes() const; std::vector> getConnectedMidiNodes() const; void update() override; void interact(); void draw(Vec2Df mouse, Camera2D cam) override; friend void to_json(json& j, const ModNode& N); friend void from_json(const json& j, ModNode& N); }; }