MCPcopy Create free account
hub / github.com/chrxh/alien / onOpenSimulation

Method onOpenSimulation

source/Gui/FileTransferController.cpp:24–71  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

22}
23
24void FileTransferController::onOpenSimulation(std::filesystem::path const& filename)
25{
26 printOverlayMessage("Loading ...");
27
28 _openSimulationProcessor->executeTask(
29 [&](auto const& senderId) {
30 auto senderInfo = SenderInfo{.senderId = senderId, .wishResultData = true, .wishErrorInfo = true};
31 auto readData = ReadSimulationRequestData{filename.string()};
32 return _persisterFacade->scheduleReadSimulation(senderInfo, readData);
33 },
34 [&](auto const& requestId) {
35 auto const& data = _persisterFacade->fetchReadSimulationData(requestId);
36 _persisterFacade->shutdown();
37
38 _simulationFacade->closeSimulation();
39
40 std::optional<std::string> errorMessage;
41 try {
42 _simulationFacade->newSimulation(
43 data.deserializedSimulation.auxiliaryData.timestep,
44 data.deserializedSimulation.auxiliaryData.generalSettings,
45 data.deserializedSimulation.auxiliaryData.simulationParameters);
46 _simulationFacade->setClusteredSimulationData(data.deserializedSimulation.mainData);
47 _simulationFacade->setStatisticsHistory(data.deserializedSimulation.statistics);
48 _simulationFacade->setRealTime(data.deserializedSimulation.auxiliaryData.realTime);
49 } catch (CudaMemoryAllocationException const& exception) {
50 errorMessage = exception.what();
51 } catch (...) {
52 errorMessage = "Failed to load simulation.";
53 }
54
55 if (errorMessage) {
56 showMessage("Error", *errorMessage);
57 _simulationFacade->closeSimulation();
58 _simulationFacade->newSimulation(
59 data.deserializedSimulation.auxiliaryData.timestep,
60 data.deserializedSimulation.auxiliaryData.generalSettings,
61 data.deserializedSimulation.auxiliaryData.simulationParameters);
62 }
63 _persisterFacade->restart();
64
65 Viewport::get().setCenterInWorldPos(data.deserializedSimulation.auxiliaryData.center);
66 Viewport::get().setZoomFactor(data.deserializedSimulation.auxiliaryData.zoom);
67 TemporalControlWindow::get().onSnapshot();
68 printOverlayMessage(data.filename.string());
69 },
70 [](auto const& criticalErrors) { GenericMessageDialog::get().information("Error", criticalErrors); });
71}
72
73void FileTransferController::onSaveSimulationDialog()
74{

Callers 1

onLoadSavepointMethod · 0.80

Calls 15

printOverlayMessageFunction · 0.85
showMessageFunction · 0.85
executeTaskMethod · 0.80
closeSimulationMethod · 0.80
setRealTimeMethod · 0.80
setCenterInWorldPosMethod · 0.80
setZoomFactorMethod · 0.80
onSnapshotMethod · 0.80
informationMethod · 0.80
shutdownMethod · 0.45

Tested by

no test coverage detected