3 #include "../../debug_ui.h"
4 #include "components/3rdparty/imgui/extensions/imgui_extensions.h"
27 std::vector<Triangle> triangles = {
42 std::vector<PosColorVertex> verticies = {
43 {-1.0f, 1.0f, 1.0f, 0xff000000 },
44 { 1.0f, 1.0f, 1.0f, 0xff0000ff },
45 {-1.0f, -1.0f, 1.0f, 0xff00ff00 },
46 { 1.0f, -1.0f, 1.0f, 0xff00ffff },
47 {-1.0f, 1.0f, -1.0f, 0xffff0000 },
48 { 1.0f, 1.0f, -1.0f, 0xffff00ff },
49 {-1.0f, -1.0f, -1.0f, 0xffffff00 },
50 { 1.0f, -1.0f, -1.0f, 0xffffffff },
53 bool auto_rebuild =
false;
54 int delete_triangle_at = -1;
55 int delete_vertex_at = -1;
66 if (ImGui::Begin(
"Geometry Test", &
show))
68 ImGui::Checkbox(
"auto rebuild", &auto_rebuild);
72 if (ImGui::CollapsingHeader(
"triangles"))
74 ImGui::PushID(
"triangle_controls");
76 if (ImGui::Button(
"+"))
81 if (ImGui::Button(
"delete @"))
83 if (delete_triangle_at < triangles.size() && delete_triangle_at > -1)
85 triangles.erase(triangles.begin() + delete_triangle_at);
89 ImGui::InputInt(
"index", &delete_triangle_at);
95 for (
int i = 0; i < triangles.size(); i++)
97 ImGui::PushItemWidth(250.0f);
98 ImGui::PushID(std::string(
"triangle_i_" + std::to_string(i)).c_str());
100 Triangle* triangle = &triangles.at(i);
101 ImGui::InputShort(
"x", (
short*)&triangle->
x, 1, 10, NULL);
103 ImGui::InputShort(
"y", (
short*)&triangle->
y, 1, 10, NULL);
105 ImGui::InputShort(
"z", (
short*)&triangle->
z, 1, 10, NULL);
108 ImGui::PopItemWidth();
112 if (ImGui::CollapsingHeader(
"verticies"))
114 ImGui::PushID(
"vertex_controls");
116 if (ImGui::Button(
"+"))
121 if (ImGui::Button(
"delete @"))
123 if (delete_vertex_at < verticies.size() && delete_vertex_at > -1)
125 verticies.erase(verticies.begin() + delete_vertex_at);
129 ImGui::InputInt(
"index", &delete_vertex_at);
135 for (
int i = 0; i < verticies.size(); i++)
137 ImGui::PushItemWidth(250.0f);
138 ImGui::PushID(std::string(
"vertex_i_" + std::to_string(i)).c_str());
141 ImGui::InputFloat(
"x", &vertex->
x);
143 ImGui::InputFloat(
"y", &vertex->
y);
145 ImGui::InputFloat(
"z", &vertex->
z);
147 ImVec4
color = ImGui::ColorConvertU32ToFloat4(vertex->
abgr);
149 ImGui::ColorEdit4(
"color", (
float*)&
color);
151 vertex->
abgr = ImGui::ColorConvertFloat4ToU32(
color);
153 ImGui::PopItemWidth();
160 ImGui::TextDisabled(
"model data is automatically rebuilt");
164 std::vector<uint16_t> triangles_raw = {};
168 triangles_raw.push_back(t.x);
169 triangles_raw.push_back(t.y);
170 triangles_raw.push_back(t.z);
179 if (ImGui::Button(
"rebuild model data"))
183 std::vector<uint16_t> triangles_raw = {};
187 triangles_raw.push_back(t.x);
188 triangles_raw.push_back(t.y);
189 triangles_raw.push_back(t.z);