2024-10-09 02:01:23 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <SFML/Graphics.hpp>
|
|
|
|
|
#include <SFML/Graphics/RenderWindow.hpp>
|
|
|
|
|
|
|
|
|
|
#include "datatypes.h"
|
|
|
|
|
#include "moveable.h"
|
|
|
|
|
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
|
|
class Node : public Movable{
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
Node() {}
|
|
|
|
|
Node(float x, float y, float r) : Movable(Vec2D<float>(x, y), 0.0f), radius(r) {}
|
|
|
|
|
|
|
|
|
|
float radius;
|
|
|
|
|
|
|
|
|
|
bool clicked = false;
|
|
|
|
|
bool hover_move = false;
|
|
|
|
|
bool hover_connect = false;
|
|
|
|
|
|
|
|
|
|
std::vector<Node*> connections;
|
|
|
|
|
|
|
|
|
|
void update() {};
|
|
|
|
|
|
|
|
|
|
void draw(sf::RenderWindow* window) {
|
|
|
|
|
|
|
|
|
|
sf::CircleShape circle(radius);
|
2024-10-10 02:59:27 +02:00
|
|
|
circle.setOrigin(radius/2.f, radius/2.f);
|
|
|
|
|
if(!hover_move) circle.setFillColor(sf::Color(180, 210, 115));
|
|
|
|
|
if(hover_move) circle.setFillColor(sf::Color(108, 153, 187));
|
2024-10-09 02:01:23 +02:00
|
|
|
circle.setPosition(position.x, position.y);
|
|
|
|
|
window->draw(circle);
|
|
|
|
|
}
|
|
|
|
|
};
|