forked from HACKERALERT/imgui-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
imnodesWrapper.cpp
134 lines (110 loc) · 2.76 KB
/
imnodesWrapper.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include "imnodes.h"
#include "imnodesWrapper.h"
#include "imguiWrappedHeader.h"
#include "WrapperConverter.h"
void iggImNodesCreateContext()
{
ImNodes::CreateContext();
}
void iggImNodesDestroyContext()
{
ImNodes::DestroyContext();
}
void iggImNodesBeginNodeEditor()
{
ImNodes::BeginNodeEditor();
}
void iggImNodesEndNodeEditor()
{
ImNodes::EndNodeEditor();
}
void iggImNodesBeginNode(int id)
{
ImNodes::BeginNode(id);
}
void iggImNodesEndNode()
{
ImNodes::EndNode();
}
void iggImNodesBeginNodeTitleBar()
{
ImNodes::BeginNodeTitleBar();
}
void iggImNodesEndNodeTitleBar()
{
ImNodes::EndNodeTitleBar();
}
void iggImNodesBeginInputAttribute(int id)
{
ImNodes::BeginInputAttribute(id);
}
void iggImNodesEndInputAttribute()
{
ImNodes::EndInputAttribute();
}
void iggImNodesBeginOutputAttribute(int id)
{
ImNodes::BeginOutputAttribute(id);
}
void iggImNodesEndOutputAttribute()
{
ImNodes::EndOutputAttribute();
}
void iggImNodesLink(int id, int start_attribute_id, int end_attribute_id)
{
ImNodes::Link(id, start_attribute_id, end_attribute_id);
}
IggBool iggImNodesIsLinkCreated(
int* started_at_node_id,
int* started_at_attribute_id,
int* ended_at_node_id,
int* ended_at_attribute_id,
IggBool* created_from_snap)
{
BoolWrapper boolArg(created_from_snap);
return ImNodes::IsLinkCreated(started_at_node_id, started_at_attribute_id, ended_at_node_id, ended_at_attribute_id, boolArg) ? 1 : 0;
}
IggBool iggImNodesIsLinkDestroyed(int* link_id)
{
return ImNodes::IsLinkDestroyed(link_id) ? 1 : 0;
}
void iggImNodesPushAttributeFlag(int flag)
{
ImNodes::PushAttributeFlag(static_cast<ImNodesAttributeFlags>(flag));
}
void iggImNodesPopAttributeFlag()
{
ImNodes::PopAttributeFlag();
}
void iggImNodesEnableDetachWithCtrlClick()
{
ImNodesIO& io = ImNodes::GetIO();
io.LinkDetachWithModifierClick.Modifier = &ImGui::GetIO().KeyCtrl;
}
void iggImNodesSetNodeScreenSpacePos(int node_id, const IggVec2 *screen_space_pos)
{
Vec2Wrapper posArg(screen_space_pos);
ImNodes::SetNodeScreenSpacePos(node_id, *posArg);
}
void iggImNodesSetNodeEditorSpacePos(int node_id, const IggVec2 *editor_space_pos)
{
Vec2Wrapper posArg(editor_space_pos);
ImNodes::SetNodeEditorSpacePos(node_id, *posArg);
}
void iggImNodesSetNodeGridSpacePos(int node_id, const IggVec2 *grid_pos)
{
Vec2Wrapper posArg(grid_pos);
ImNodes::SetNodeGridSpacePos(node_id, *posArg);
}
void iggImNodesGetNodeScreenSpacePos(const int node_id, IggVec2 *pos)
{
exportValue(*pos, ImNodes::GetNodeScreenSpacePos(node_id));
}
void iggImNodesGetNodeEditorSpacePos(const int node_id, IggVec2 *pos)
{
exportValue(*pos, ImNodes::GetNodeEditorSpacePos(node_id));
}
void iggImNodesGetNodeGridSpacePos(const int node_id, IggVec2 *pos)
{
exportValue(*pos, ImNodes::GetNodeGridSpacePos(node_id));
}