Skip to content
Snippets Groups Projects
Commit 21b66112 authored by Matthias Puchner's avatar Matthias Puchner
Browse files

rm indirection for SimulationOptionsItem

use it directly instead via DocumentModel
parent 44bdc373
No related branches found
No related tags found
1 merge request!481Refactor SimulationOptionsItem (no SessionItem, no SessionModel any more)
......@@ -16,11 +16,10 @@
#include "Base/Const/Units.h"
#include "Base/Util/Assert.h"
#include "Core/Simulation/includeSimulations.h"
#include "GUI/Model/Data/DocumentModel.h"
#include "GUI/Model/From/FromDomain.h"
#include "GUI/Model/From/GUIDomainSampleVisitor.h"
#include "GUI/Model/Instrument/InstrumentItems.h"
#include "GUI/Model/Instrument/InstrumentModel.h"
#include "GUI/Model/From/GUIDomainSampleVisitor.h"
#include "GUI/Model/Session/SimulationOptionsItem.h"
#include "Resample/Options/SimulationOptions.h"
......@@ -93,11 +92,9 @@ SessionItem* GUI::Model::ObjectBuilder::populateInstrumentModel(InstrumentModel*
ASSERT(0);
}
SessionItem* GUI::Model::ObjectBuilder::populateDocumentModel(DocumentModel* p_document_model,
const ISimulation& simulation)
void GUI::Model::ObjectBuilder::populateSimulationOptions(SimulationOptionsItem* item,
const ISimulation& simulation)
{
auto* item = p_document_model->insertItem<SimulationOptionsItem>();
if (simulation.options().isIntegrate())
item->setUseMonteCarloIntegration(static_cast<int>(simulation.options().getMcPoints()));
else
......@@ -105,6 +102,4 @@ SessionItem* GUI::Model::ObjectBuilder::populateDocumentModel(DocumentModel* p_d
item->setUseAverageMaterials(simulation.options().useAvgMaterials());
item->setIncludeSpecularPeak(simulation.options().includeSpecular());
return item;
}
......@@ -17,7 +17,7 @@
#include <QString>
class DocumentModel;
class SimulationOptionsItem;
class ISimulation;
class InstrumentModel;
class MaterialModel;
......@@ -33,7 +33,7 @@ SessionItem* populateInstrumentModel(InstrumentModel* p_instrument_model,
const ISimulation& simulation,
const QString& instrument_name = "");
SessionItem* populateDocumentModel(DocumentModel* p_document_model, const ISimulation& simulation);
void populateSimulationOptions(SimulationOptionsItem* item, const ISimulation& simulation);
} // namespace GUI::Model::ObjectBuilder
......
......@@ -19,13 +19,13 @@
#include "Device/Data/DataUtils.h"
#include "Device/Histo/IntensityDataIOFactory.h"
#include "Device/Histo/SimulationResult.h"
#include "GUI/Model/Data/DocumentModel.h"
#include "GUI/Model/From/GUIDomainSampleVisitor.h"
#include "GUI/Model/From/GUIObjectBuilder.h"
#include "GUI/Model/Instrument/InstrumentItems.h"
#include "GUI/Model/Instrument/InstrumentModel.h"
#include "GUI/Model/Material/MaterialModel.h"
#include "GUI/Model/Sample/SampleModel.h"
#include "GUI/Model/Session/SimulationOptionsItem.h"
#include "GUI/Model/To/DomainSimulationBuilder.h"
#include <iostream>
......@@ -35,7 +35,7 @@ std::unique_ptr<OutputData<double>> domainData(const std::string& /*test_name*/,
const ISimulation& direct_simulation)
{
// initializing necessary GUI
DocumentModel documentModel;
SimulationOptionsItem optionsItem;
SampleModel sampleModel;
InstrumentModel instrumentModel;
MaterialModel materialModel;
......@@ -44,12 +44,11 @@ std::unique_ptr<OutputData<double>> domainData(const std::string& /*test_name*/,
GUIDomainSampleVisitor().populateSampleModel(&sampleModel, &materialModel,
*direct_simulation.sample());
GUI::Model::ObjectBuilder::populateInstrumentModel(&instrumentModel, direct_simulation);
GUI::Model::ObjectBuilder::populateDocumentModel(&documentModel, direct_simulation);
GUI::Model::ObjectBuilder::populateSimulationOptions(&optionsItem, direct_simulation);
std::unique_ptr<ISimulation> domain_simulation =
GUI::Model::DomainSimulationBuilder::createSimulation(
sampleModel.multiLayerItem(), instrumentModel.instrumentItems().front(),
*documentModel.simulationOptionsItem());
sampleModel.multiLayerItem(), instrumentModel.instrumentItems().front(), optionsItem);
domain_simulation->runSimulation();
return std::unique_ptr<OutputData<double>>(domain_simulation->result().data());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment