From d9c55296dd6178654442e14ac9a0cd7e1eb31e4e Mon Sep 17 00:00:00 2001 From: Oskar Wallgren Date: Sun, 16 Jul 2023 18:36:28 +0200 Subject: [PATCH] Implement setting value in ModelSpinner --- src/pigui/ModelSpinner.cpp | 4 +++- src/pigui/ModelSpinner.h | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/pigui/ModelSpinner.cpp b/src/pigui/ModelSpinner.cpp index 15cc7a95dcc..0b3b4f99e00 100644 --- a/src/pigui/ModelSpinner.cpp +++ b/src/pigui/ModelSpinner.cpp @@ -16,6 +16,7 @@ using namespace PiGui; ModelSpinner::ModelSpinner() : m_spinning(true), + m_middleMouseButton(false), m_pauseTime(.0f), m_rot(vector2f(DEG2RAD(-15.0), DEG2RAD(120.0))), m_zoom(1.0f), @@ -118,7 +119,8 @@ void ModelSpinner::DrawPiGui() const ImGuiIO &io = ImGui::GetIO(); bool hovered = ImGui::IsItemHovered(); - if (hovered && ImGui::IsMouseDown(SDL_BUTTON_MIDDLE)) { + const int mouseButton = (Pi::input->GetMouseMiddleButton() ? 0 : 2); // 0 : 2 = ImGui mouse button Left and Middle. + if (hovered && ImGui::IsMouseDown(mouseButton)) { m_rot.x -= 0.005 * io.MouseDelta.y; m_rot.y -= 0.005 * io.MouseDelta.x; m_pauseTime = 1.0f; diff --git a/src/pigui/ModelSpinner.h b/src/pigui/ModelSpinner.h index c3df02254dc..1268c2571ef 100644 --- a/src/pigui/ModelSpinner.h +++ b/src/pigui/ModelSpinner.h @@ -13,6 +13,7 @@ namespace Graphics { #include "Shields.h" #include "scenegraph/Model.h" #include "scenegraph/ModelSkin.h" +#include "Input.h" // TODO: // - make this code reusable across multiple usecases (camera, rear-view mirror, UI preview, etc.) @@ -71,6 +72,9 @@ namespace PiGui { // Shoulde we spinne? bool m_spinning; + // Is there a middle mouse button? + bool m_middleMouseButton; + // After the user manually rotates the model, hold that orientation for // a second to let them look at it. Assumes Update() is called every // frame while visible.