From b2ed35a7046fb947f5f967c458e8706db32c4774 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Fri, 13 Dec 2024 01:15:55 +0100 Subject: [PATCH] ControlNodes init. Feels like a good idea! --- src/control-node.h | 43 +++++++++++++++++++++++++++++++++++++++++++ src/datatypes.h | 2 +- src/midi-node.h | 4 ++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 src/control-node.h diff --git a/src/control-node.h b/src/control-node.h new file mode 100644 index 0000000..cefdae4 --- /dev/null +++ b/src/control-node.h @@ -0,0 +1,43 @@ +#pragma once + +#include "node.h" + +namespace VISEQ::GRAPH::NODES{ + + class ControlNode: public Node{ + public: + ControlNode(){} + + float radius = 6; + + NodeType nodeType = NodeType::CONTROLNODE; + + Vec2Df center; + + std::shared_ptr getPtr(){ + return std::static_pointer_cast(shared_from_this()); + } + + virtual GRAPH::GraphItemType getType() override { + return GraphItemType::NODE; + } + + virtual NodeType getNodeType() const override {return nodeType;} + + virtual bool hovering() override { + return CheckCollisionPointCircle(SCREEN_MOUSE, position, radius); + } + + virtual void update() override { + Node::update(); + } + + virtual void draw() override { + DrawCircleV(position, radius, VS_COLOR_SUN); + } + + virtual bool select() override { + return false; + } + }; +} diff --git a/src/datatypes.h b/src/datatypes.h index 493b3ef..addce75 100644 --- a/src/datatypes.h +++ b/src/datatypes.h @@ -35,7 +35,7 @@ namespace VISEQ::GRAPH::NODES { namespace VISEQ::GRAPH{ enum GraphItemType {NODE, EDGE, CONNECTOR, CANVAS, HANDLE, VS_BUTTON}; - enum NodeType {OSCNODE, MIDINODE, CONFIGNODE}; + enum NodeType {OSCNODE, MIDINODE, CONFIGNODE, CONTROLNODE}; enum EdgeType {MIDIEDGE, CONFIGEDGE}; } diff --git a/src/midi-node.h b/src/midi-node.h index 5cbd6a9..a5fd1f5 100644 --- a/src/midi-node.h +++ b/src/midi-node.h @@ -2,6 +2,7 @@ #include "button.h" #include "config-node.h" +#include "control-node.h" #include "datatypes.h" #include "edge.h" #include "node.h" @@ -9,6 +10,7 @@ #include "raymath.h" #include "state.h" #include +#include #include namespace VISEQ::APP::UI{ @@ -42,6 +44,8 @@ namespace VISEQ::GRAPH::NODES { MidiNode(Vec2Df position) : Node(position) {init();} NodeType nodeType = NodeType::MIDINODE; + + //std::vector> controlNodes; bool send_note = true; bool send_cc = false;