#pragma once #include #include "datatypes.h" #include "moveable.h" #define R 14.0f class Node : public Movable{ public: Node() {} Node(float x, float y, float r) : Movable(Vec2D(x, y), 0.0f), radius(r) {} float radius; bool picked_up = false; bool hover_move = false; bool hover_connect = false; bool connecting = false; bool config = false; int midi_out = 0; int midi_note = 0; int midi_cc = 0; Distribution mode = Distribution::ROUNDROBIN; void draw(Vec2D *mouse) { if(!hover_move) DrawCircle(position.x, position.y, radius, (Color){180, 210, 115, 255}); if(hover_move) DrawCircle(position.x, position.y, radius, (Color){108, 153, 187, 255}); if(mode == Distribution::RANDOM) DrawCircle(position.x, position.y, radius/2.0f, (Color){229, 181, 103, 255}); Vec2D connector = position - ((position - *mouse)).norm() * (radius + R); if(hover_connect){ DrawCircleLines(position.x, position.y, radius + R, (Color){108, 153, 187, 255}); DrawCircle(connector.x, connector.y, 8.0f, (Color){108, 153, 187, 255}); } else { DrawCircleLines(position.x, position.y, radius + R, (Color){108, 153, 187, 50}); DrawCircle(connector.x, connector.y, 8.0f, (Color){108, 153, 187, 50}); } } };