diff --git a/Source/SimulationManager/imstkSimulationManager.cpp b/Source/SimulationManager/imstkSimulationManager.cpp index 46a0df0e5a4475ede6aed82c3b4dd4fdf44f5059..f2c2f4ab900f63c5cd66994ca77ddf7818e5ddbb 100644 --- a/Source/SimulationManager/imstkSimulationManager.cpp +++ b/Source/SimulationManager/imstkSimulationManager.cpp @@ -348,6 +348,8 @@ SimulationManager::launchSimulation() this->startModuleInNewThread(m_sceneManagerMap.at(m_activeSceneName)); m_status = SimulationStatus::RUNNING; + + m_simThreadLaunched = true; } void @@ -384,9 +386,10 @@ SimulationManager::startSimulation(const SimulationStatus simStatus /*= Simulati } // Launch simulation right away if the simulator starts in running mode - if (simStatus == SimulationStatus::RUNNING) + this->launchSimulation(); + if (simStatus == SimulationStatus::PAUSED) { - this->launchSimulation(); + this->pauseSimulation(); } if (m_viewer) diff --git a/Source/SimulationManager/imstkSimulationManager.h b/Source/SimulationManager/imstkSimulationManager.h index 226a5334c5574f1d4d36adb4c34a8a352e0c7777..2b1e854aee1c6039cf5f02d8371a18f783191749 100644 --- a/Source/SimulationManager/imstkSimulationManager.h +++ b/Source/SimulationManager/imstkSimulationManager.h @@ -203,6 +203,8 @@ private: std::shared_ptr<Viewer> m_viewer = nullptr; std::shared_ptr<LogUtility> m_logUtil = std::make_shared<LogUtility>(); + + bool m_simThreadLaunched = false; }; } // imstk