#pragma once #include "ComponentPanel.h" #include #include #include #include class MeshPanel : ComponentPanel { public: MeshPanel() {} void Draw(Nuake::Entity entity) override { if (!entity.HasComponent()) return; Nuake::MeshComponent& component = entity.GetComponent(); BeginComponentTable(MESH, Nuake::MeshComponent); { ImGui::Text("Mesh"); ImGui::TableNextColumn(); std::string label = std::to_string(component.ModelResource->ID); ImGui::Button(label.c_str(), ImVec2(ImGui::GetContentRegionAvail().x, 0)); if (ImGui::BeginDragDropTarget()) { if (const ImGuiPayload* payload = ImGui::AcceptDragDropPayload("_Model")) { char* file = (char*)payload->Data; std::string fullPath = std::string(file, 256); fullPath = Nuake::FileSystem::AbsoluteToRelative(fullPath); if (Nuake::String::EndsWith(fullPath, ".model")) { } else { component.ModelPath = fullPath; component.LoadModel(); } } ImGui::EndDragDropTarget(); } ImGui::TableNextColumn(); ComponentTableReset(component.ModelPath, ""); } EndComponentTable(); } };