diff --git a/Editor/src/PropertyPanels/Inspector.cpp b/Editor/src/PropertyPanels/Inspector.cpp index f2d5f1e..e910e9d 100644 --- a/Editor/src/PropertyPanels/Inspector.cpp +++ b/Editor/src/PropertyPanels/Inspector.cpp @@ -1,5 +1,5 @@ #include "Inspector.h" - +#include "../TransformVec3.h" void Inspector::Draw() { @@ -40,9 +40,18 @@ void Inspector::ShowComponents() if (selected.HasComponent()) { auto& transform = selected.GetComponent(); if (ImGui::CollapsingHeader("Transform", ImGuiTreeNodeFlags_DefaultOpen)) { +/* ImGui::DragFloat3("Position", glm::value_ptr(transform.Position), 0.1f); ImGui::DragFloat3("Rotation", glm::value_ptr(transform.Rotation), 0.1f); ImGui::DragFloat3("Scale", glm::value_ptr(transform.Scale), 0.1f, 0.0f); +*/ + auto something = glm::value_ptr(transform.Position); + + ImGuiExtension::TransformVec3("Position", transform.Position); + ImGuiExtension::TransformVec3("Rotation", transform.Rotation); + ImGuiExtension::TransformVec3("Scale", transform.Scale); + + } if (selected.HasComponent()) { ImGui::Text("Has relation"); diff --git a/Editor/src/TransformVec3.h b/Editor/src/TransformVec3.h new file mode 100644 index 0000000..1a3089e --- /dev/null +++ b/Editor/src/TransformVec3.h @@ -0,0 +1,59 @@ +#pragma once +#include +#include +namespace ImGuiExtension { + + + void TransformVec3(const char* label, glm::vec3& vector) { + + ImGui::PushID(label); + ImGui::Columns(2); + ImGui::SetColumnWidth(0, 100.0f); + ImGui::Text(label); + + ImGui::NextColumn(); + + ImGui::PushMultiItemsWidths(3, ImGui::CalcItemWidth()); + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2{ 0, 0 }); + + ImGui::PushStyleColor(ImGuiCol_Button, ImVec4{ 0.8f, 0.1f, 0.15f, 1.0f }); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4{ 0.9f,0.2f,0.2f, 1.0f }); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4{ 0.8f,0.1f,0.15f, 1.0f }); + if (ImGui::Button("X")) + vector.x = 0; + ImGui::PopStyleColor(3); + + ImGui::SameLine(); + ImGui::DragFloat("##X", &glm::value_ptr(vector)[0], 0.1f, 0.0f, 0.0f, "%.2f"); + ImGui::PopItemWidth(); + ImGui::SameLine(); + + ImGui::PushStyleColor(ImGuiCol_Button, ImVec4{ 0.2f, 0.7f, 0.2f, 1.0f }); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4{ 0.3f,0.8f,0.3f, 1.0f }); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4{ 0.2f,0.7f,0.2f, 1.0f }); + if (ImGui::Button("Y")) + vector.y = 0; + ImGui::PopStyleColor(3); + + ImGui::SameLine(); + ImGui::DragFloat("##Y", &glm::value_ptr(vector)[1], 0.1f, 0.0f, 0.0f, "%.2f"); + ImGui::PopItemWidth(); + ImGui::SameLine(); + + ImGui::PushStyleColor(ImGuiCol_Button, ImVec4{ 0.1f, 0.25f, 0.8f, 1.0f }); + ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4{ 0.2f,0.35f,0.9f, 1.0f }); + ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4{ 0.1f,0.25f,0.8f, 1.0f }); + if (ImGui::Button("Z")) + vector.z = 0; + ImGui::PopStyleColor(3); + + ImGui::SameLine(); + ImGui::DragFloat("##Z", &glm::value_ptr(vector)[2], 0.1f, 0.0f, 0.0f, "%.2f"); + ImGui::PopItemWidth(); + ImGui::PopStyleVar(); + + ImGui::Columns(1); + ImGui::PopID(); + + } +} \ No newline at end of file diff --git a/Editor/src/app.cpp b/Editor/src/app.cpp index fdc6775..e5dabde 100644 --- a/Editor/src/app.cpp +++ b/Editor/src/app.cpp @@ -84,9 +84,9 @@ public: inspector.Update(); //console.Update(); - assetsView.Draw(); + assetsView.Update(); - //ImGui::ShowDemoWindow(); + ImGui::ShowDemoWindow(); //ImGui::ShowMetricsWindow();