Skip to content

Commit aa5b06c

Browse files
committed
changed styling a little
1 parent e18e296 commit aa5b06c

File tree

6 files changed

+24
-12
lines changed

6 files changed

+24
-12
lines changed

src/components/core.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ void init_shaders() {
1010
// same deal with these
1111
void init_component_defaults() {
1212
_component_defaults = {
13-
std::make_shared<circle>(glm::vec2(0, 0), 50),
13+
std::make_shared<circle>(glm::vec2(0, 0), 20),
1414
std::make_shared<arrow>(glm::vec2(0, 0), glm::vec2(0, 0), 10.0f),
1515
std::make_shared<line>(glm::vec2(0, 0), glm::vec2(0, 0), 10.0f)
1616
};

src/engine/graph/edge.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ edge::edge(
88
bool directed,
99
std::shared_ptr<data> value
1010
) : item(value) {
11+
this->id = id;
12+
1113
this->u = u;
1214
this->v = v;
1315
this->directed = directed;

src/engine/graph/graph.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@
33
graph::graph(int n, bool directed) {
44
this->node_cnt = n;
55
for (int i = 0; i < n; ++i) {
6-
nodes[i] = std::make_shared<node>();
6+
add_node();
77
}
8-
98
this->edge_cnt = 0;
109

1110
this->directed = directed;
@@ -41,6 +40,6 @@ int graph::add_edge(int u, int v) {
4140
}
4241

4342
int graph::add_node() {
44-
this->nodes[node_cnt] = std::make_shared<node>();
43+
this->nodes[node_cnt] = std::make_shared<node>(node_cnt);
4544
return node_cnt++;
4645
}

src/engine/graph/node.cpp

+6-2
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,20 @@
22
#include "edge.hpp"
33

44
node::node(
5-
int index,
5+
int id,
66
std::shared_ptr<data> value
77
) : item(value) {
8-
this->id = index;
8+
this->id = id;
99

1010
this->component = std::static_pointer_cast<node_component>(
1111
_component_defaults._node->copy()
1212
);
1313
}
1414

15+
node::node(
16+
int id
17+
) : node(id, std::make_shared<data>()) { }
18+
1519
node::node() : node(0, std::make_shared<data>()) { }
1620

1721
node::~node() {

src/engine/graph/node.hpp

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ class edge;
99
class node : public item {
1010
public:
1111
node();
12+
node(int id);
1213
node(int id, std::shared_ptr<data> value);
1314
~node();
1415

src/engine/scene.cpp

+12-6
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ void scene::select(glm::vec2 pt) {
3333
if (obj->hit(pt_to_world(pt))) {
3434
obj->set_color(RED);
3535
selected_object = v;
36+
selected_object->select();
3637
return;
3738
}
3839
}
@@ -41,6 +42,7 @@ void scene::select(glm::vec2 pt) {
4142
if (obj->hit(pt_to_world(pt))) {
4243
obj->set_color(RED);
4344
selected_object = e;
45+
selected_object->select();
4446
return;
4547
}
4648
}
@@ -80,19 +82,23 @@ void scene::draw() {
8082
for (const auto & [i, e] : this->g->get_edges()) {
8183
if (e != selected_object) {
8284
e->get_component()->draw(view, projection);
83-
draw_text("edge" + std::to_string(i), e->label(), pt_to_screen(e->get_component()->get_center()), 0);
85+
draw_text("edge" + std::to_string(e->get_id()), e->label(), e->get_component()->get_center(), 0);
8486
}
8587
}
88+
if (std::dynamic_pointer_cast<edge>(selected_object) != nullptr) {
89+
selected_object->get_component()->draw(view, projection);
90+
draw_text("edge" + std::to_string(selected_object->get_id()), selected_object->label(), selected_object->get_component()->get_center(), 0);
91+
}
92+
8693
for (const auto & [i, v] : this->g->get_nodes()) {
8794
if (v != selected_object) {
8895
v->get_component()->draw(view, projection);
89-
draw_text("node" + std::to_string(i), v->label(), pt_to_screen(v->get_component()->get_center()), 0);
96+
draw_text("node" + std::to_string(v->get_id()), v->label(), v->get_component()->get_center(), 0);
9097
}
9198
}
92-
93-
if (selected_object != nullptr) {
99+
if (std::dynamic_pointer_cast<node>(selected_object) != nullptr) {
94100
selected_object->get_component()->draw(view, projection);
95-
draw_text("s" + std::to_string(selected_object->get_id()), selected_object->label(), pt_to_screen(selected_object->get_component()->get_center()), 0);
101+
draw_text("node" + std::to_string(selected_object->get_id()), selected_object->label(), selected_object->get_component()->get_center(), 0);
96102
}
97103
}
98104

@@ -143,7 +149,7 @@ void scene::draw_text(std::string label, std::string text, glm::vec2 pos, int si
143149
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0.0f, 0.0f));
144150
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0.0f, 0.0f));
145151
ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f);
146-
ImGui::SetNextWindowPos(pos - (glm::vec2) ImGui::CalcTextSize(text.c_str()) / 2.0f);
152+
ImGui::SetNextWindowPos(pt_to_screen(pos) - (glm::vec2) ImGui::CalcTextSize(text.c_str()) / 2.0f);
147153

148154
ImGui::Begin(label.c_str(), nullptr, ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoSavedSettings|ImGuiWindowFlags_NoInputs);
149155

0 commit comments

Comments
 (0)