BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
DomainObjectBuilder.h
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // BornAgain: simulate and fit reflection and scattering
4 //
5 //! @file GUI/coregui/Models/DomainObjectBuilder.h
6 //! @brief Defines DomainObjectBuilder namespace
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2018
11 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************************************
14 
15 #ifndef BORNAGAIN_GUI_COREGUI_MODELS_DOMAINOBJECTBUILDER_H
16 #define BORNAGAIN_GUI_COREGUI_MODELS_DOMAINOBJECTBUILDER_H
17 
18 #include <memory>
19 
20 class MultiLayer;
21 class Layer;
22 class Instrument;
23 class ParticleLayout;
25 class SessionItem;
26 class InstrumentItem;
27 class IUnitConverter;
28 
30 std::unique_ptr<MultiLayer> buildMultiLayer(const SessionItem& multilayer_item);
31 std::unique_ptr<Layer> buildLayer(const SessionItem& item);
32 std::unique_ptr<ParticleLayout> buildParticleLayout(const SessionItem& item);
33 std::unique_ptr<IInterferenceFunction> buildInterferenceFunction(const SessionItem& item);
34 std::unique_ptr<Instrument> buildInstrument(const InstrumentItem& instrumentItem);
35 
36 //! Creates a unit converter corresponding to the given instrument item
37 std::unique_ptr<IUnitConverter> createUnitConverter(const InstrumentItem* instrumentItem);
38 }; // namespace DomainObjectBuilder
39 
40 #endif // BORNAGAIN_GUI_COREGUI_MODELS_DOMAINOBJECTBUILDER_H
Abstract base class of interference functions.
Interface to provide axis translations to different units for simulation output.
Assembles beam, detector and their relative positions with respect to the sample.
Definition: Instrument.h:32
A layer in a MultiLayer sample.
Definition: Layer.h:27
Our sample model: a stack of layers one below the other.
Definition: MultiLayer.h:41
Decorator class that adds particles to ISampleNode objects.
std::unique_ptr< MultiLayer > buildMultiLayer(const SessionItem &multilayer_item)
std::unique_ptr< Layer > buildLayer(const SessionItem &item)
std::unique_ptr< ParticleLayout > buildParticleLayout(const SessionItem &item)
std::unique_ptr< IUnitConverter > createUnitConverter(const InstrumentItem *instrumentItem)
Creates a unit converter corresponding to the given instrument item.
std::unique_ptr< IInterferenceFunction > buildInterferenceFunction(const SessionItem &item)
std::unique_ptr< Instrument > buildInstrument(const InstrumentItem &instrumentItem)