| 139 | } |
| 140 | |
| 141 | void MainLoopController::processLoadingScreen() |
| 142 | { |
| 143 | drawLoadingScreen(); |
| 144 | |
| 145 | auto requestedSimState = _persisterFacade->getRequestState(_loadSimRequestId).value(); |
| 146 | if (requestedSimState == PersisterRequestState::Finished) { |
| 147 | auto const& data = _persisterFacade->fetchReadSimulationData(_loadSimRequestId); |
| 148 | auto const& deserializedSim = data.deserializedSimulation; |
| 149 | _simulationFacade->newSimulation( |
| 150 | deserializedSim.auxiliaryData.timestep, deserializedSim.auxiliaryData.generalSettings, deserializedSim.auxiliaryData.simulationParameters); |
| 151 | _simulationFacade->setClusteredSimulationData(deserializedSim.mainData); |
| 152 | _simulationFacade->setStatisticsHistory(deserializedSim.statistics); |
| 153 | _simulationFacade->setRealTime(deserializedSim.auxiliaryData.realTime); |
| 154 | Viewport::get().setCenterInWorldPos(deserializedSim.auxiliaryData.center); |
| 155 | Viewport::get().setZoomFactor(deserializedSim.auxiliaryData.zoom); |
| 156 | TemporalControlWindow::get().onSnapshot(); |
| 157 | |
| 158 | _simulationLoadedTimepoint = std::chrono::steady_clock::now(); |
| 159 | _programState = ProgramState::FadeOutLoadingScreen; |
| 160 | } |
| 161 | if (requestedSimState == PersisterRequestState::Error) { |
| 162 | GenericMessageDialog::get().information("Error", "The default simulation file could not be read.\nAn empty simulation will be created."); |
| 163 | |
| 164 | DeserializedSimulation deserializedSim; |
| 165 | deserializedSim.auxiliaryData.generalSettings.worldSizeX = 1000; |
| 166 | deserializedSim.auxiliaryData.generalSettings.worldSizeY = 500; |
| 167 | deserializedSim.auxiliaryData.timestep = 0; |
| 168 | deserializedSim.auxiliaryData.zoom = 12.0f; |
| 169 | deserializedSim.auxiliaryData.center = {500.0f, 250.0f}; |
| 170 | deserializedSim.auxiliaryData.realTime = std::chrono::milliseconds(0); |
| 171 | |
| 172 | _simulationFacade->newSimulation( |
| 173 | deserializedSim.auxiliaryData.timestep, deserializedSim.auxiliaryData.generalSettings, deserializedSim.auxiliaryData.simulationParameters); |
| 174 | _simulationFacade->setClusteredSimulationData(deserializedSim.mainData); |
| 175 | _simulationFacade->setStatisticsHistory(deserializedSim.statistics); |
| 176 | _simulationFacade->setRealTime(deserializedSim.auxiliaryData.realTime); |
| 177 | Viewport::get().setCenterInWorldPos(deserializedSim.auxiliaryData.center); |
| 178 | Viewport::get().setZoomFactor(deserializedSim.auxiliaryData.zoom); |
| 179 | TemporalControlWindow::get().onSnapshot(); |
| 180 | |
| 181 | _simulationLoadedTimepoint = std::chrono::steady_clock::now(); |
| 182 | _programState = ProgramState::FadeOutLoadingScreen; |
| 183 | } |
| 184 | |
| 185 | OverlayController::get().process(); |
| 186 | |
| 187 | std::this_thread::sleep_for(std::chrono::milliseconds(10)); |
| 188 | } |
| 189 | |
| 190 | void MainLoopController::processFadeOutLoadingScreen() |
| 191 | { |
nothing calls this directly
no test coverage detected