@@ -28,6 +28,7 @@ Simulator_GUI_imgui::Simulator_GUI_imgui(SimulatorBase *base) :
2828 m_currentFluidModel = 0 ;
2929 m_currentScaleIndex = 0 ;
3030 m_vsync = false ;
31+ m_alt_camera = false ;
3132 m_iniFound = false ;
3233 m_showLogWindow = true ;
3334}
@@ -62,7 +63,7 @@ void Simulator_GUI_imgui::init(const char *name)
6263 io.ConfigFlags |= ImGuiConfigFlags_DockingEnable; // Enable Docking
6364 ImGui::LoadIniSettingsFromDisk (io.IniFilename );
6465
65- MiniGL::init (1280 , 960 , name, m_userSettings.vsync , m_userSettings.maximized );
66+ MiniGL::init (1280 , 960 , name, m_userSettings.vsync , m_userSettings.maximized , m_userSettings. alt_camera );
6667 MiniGL::initLights ();
6768
6869 const Utilities::SceneLoader::Scene& scene = SceneConfiguration::getCurrent ()->getScene ();
@@ -145,6 +146,7 @@ void Simulator_GUI_imgui::readIni(ImGuiContext* ctx, ImGuiSettingsHandler* handl
145146 else if (sscanf (line, " scale=%d" , &i) == 1 ) { settings->scaleIndex = i; }
146147 else if (sscanf (line, " maximized=%d" , &i) == 1 ) { settings->maximized = (i != 0 ); }
147148 else if (sscanf (line, " vsync=%d" , &i) == 1 ) { settings->vsync = (i != 0 ); }
149+ else if (sscanf (line, " alt_camera=%d" , &i) == 1 ) { settings->alt_camera = (i != 0 ); }
148150 else if (sscanf (line, " show_log_window=%d" , &i) == 1 ) { settings->show_log_window = (i != 0 ); }
149151 else if (sscanf (line, " log_filter=%d" , &i) == 1 ) { settings->log_filter = i; }
150152}
@@ -166,6 +168,7 @@ void Simulator_GUI_imgui::writeIni(ImGuiContext* ctx, ImGuiSettingsHandler* hand
166168 out_buf->appendf (" maximized=%d\n " , MiniGL::getWindowMaximized ());
167169
168170 out_buf->appendf (" vsync=%d\n " , gui->m_vsync );
171+ out_buf->appendf (" alt_camera=%d\n " , gui->m_alt_camera );
169172 out_buf->appendf (" show_log_window=%d\n " , gui->m_showLogWindow );
170173 out_buf->appendf (" log_filter=%d\n " , gui->m_logWindow ->getSelectedFilter ());
171174}
@@ -176,6 +179,7 @@ void Simulator_GUI_imgui::applySettings(ImGuiContext* ctx, ImGuiSettingsHandler*
176179 UserSettings* settings = (UserSettings*) &gui->m_userSettings ;
177180 gui->m_currentScaleIndex = settings->scaleIndex ;
178181 gui->m_vsync = settings->vsync ;
182+ gui->m_alt_camera = settings->alt_camera ;
179183 gui->m_showLogWindow = settings->show_log_window ;
180184 gui->m_iniFound = true ;
181185 gui->m_logWindow ->setSelectedFilter (settings->log_filter );
@@ -294,6 +298,11 @@ void Simulator_GUI_imgui::createMenuBar()
294298 m_vsync = !m_vsync;
295299 openpopup = true ;
296300 }
301+ if (ImGui::MenuItem (" Alternative camera controls" , " " , m_alt_camera))
302+ {
303+ m_alt_camera = !m_alt_camera;
304+ MiniGL::setAltCameraMode (m_alt_camera);
305+ }
297306 if (ImGui::MenuItem (" Scale - 100%" , " " , m_currentScaleIndex == 0 ))
298307 {
299308 m_currentScaleIndex = 0 ;
0 commit comments