2024-10-30 14:55:24 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
2024-10-31 01:43:00 +01:00
|
|
|
#include "raylib.h"
|
2024-10-30 14:55:24 +01:00
|
|
|
#include "datatypes.h"
|
2024-10-31 01:43:00 +01:00
|
|
|
#include <memory>
|
2024-10-30 14:55:24 +01:00
|
|
|
#include <vector>
|
|
|
|
|
|
2024-11-03 03:48:49 +01:00
|
|
|
namespace VISEQ::GRAPH {
|
|
|
|
|
class GraphItem{
|
2024-10-30 14:55:24 +01:00
|
|
|
|
2024-11-03 03:48:49 +01:00
|
|
|
public:
|
2024-11-04 01:00:59 +01:00
|
|
|
GraphItem() {newId();}
|
|
|
|
|
GraphItem(const GraphItem& G) {
|
|
|
|
|
newId();
|
|
|
|
|
graphItemType = G.graphItemType;
|
|
|
|
|
neighbors = G.neighbors;
|
|
|
|
|
}
|
2024-11-03 03:48:49 +01:00
|
|
|
std::vector<std::shared_ptr<GraphItem>> neighbors;
|
|
|
|
|
GraphItemType graphItemType;
|
2024-11-04 01:00:59 +01:00
|
|
|
|
|
|
|
|
int id = 0;
|
2024-11-01 02:38:47 +01:00
|
|
|
|
2024-11-04 01:00:59 +01:00
|
|
|
void newId(){
|
|
|
|
|
static int _id;
|
|
|
|
|
id = _id;
|
|
|
|
|
_id++;
|
|
|
|
|
}
|
|
|
|
|
|
2024-11-03 03:48:49 +01:00
|
|
|
virtual void draw(Vec2Df mouse, Camera2D cam) {};
|
|
|
|
|
virtual GraphItemType getType() {return graphItemType;}
|
|
|
|
|
virtual ~GraphItem() = default;
|
2024-11-02 15:52:16 +01:00
|
|
|
|
2024-11-03 03:48:49 +01:00
|
|
|
};
|
2024-11-02 15:52:16 +01:00
|
|
|
|
2024-11-03 03:48:49 +01:00
|
|
|
}
|
2024-11-02 15:52:16 +01:00
|
|
|
|