This commit is contained in:
2022-07-05 22:15:43 +02:00
commit a616970ce2
27 changed files with 55257 additions and 0 deletions

51
ImguiNodes/ImguiNodes.h Normal file
View File

@@ -0,0 +1,51 @@
#pragma once
#include <string>
#include <vector>
int nodeIdCounter = 0;
class NodeElement {
public:
int id;
std::string name;
ImVec2 position;
NodeElement(std::string name);
};
class NodeWindow {
public:
std::string title;
std::vector<NodeElement> alerts;
std::vector<NodeElement> triggers;
NodeWindow(std::string title);
};
typedef struct NodeConnection {
int sourceID;
int targetID;
};
typedef struct ConnectionPayload {
int sourceID;
};
class CustomDrawData {
public:
std::vector<NodeWindow> nodes;
std::vector<NodeConnection> connections;
};
enum class CircleDragType
{
None,
Source,
Target
};
void init();
void draw(DrawData& drawData, void* customDataVoid);
bool drawCircle(float xOffset, CircleDragType dragType, const void* id, ImVec2* outCirclePos = nullptr);
bool inlineButton(const char* title, const void* id);
std::vector<NodeElement>::iterator cleanEraseElement(std::vector<NodeElement>& vector, std::vector<NodeElement>::iterator toErase, CustomDrawData* data);