BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
RealSpacePositionBuilder.cpp
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // BornAgain: simulate and fit reflection and scattering
4 //
5 //! @file GUI/coregui/Views/RealSpaceWidgets/RealSpacePositionBuilder.cpp
6 //! @brief Implements class RealSpacePositionBuilder
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 
17 
19 {
20 }
21 
23 
25 {
26  m_pos_builder = std::make_unique<Lattice1DPositionBuilder>(p_iff);
27 }
28 
30 {
31  m_pos_builder = std::make_unique<Lattice2DPositionBuilder>(p_iff);
32 }
33 
35 {
36  m_pos_builder = std::make_unique<ParaCrystal2DPositionBuilder>(p_iff);
37 }
38 
40 {
41  m_pos_builder = std::make_unique<Finite2DLatticePositionBuilder>(p_iff);
42 }
43 
45 {
46  m_pos_builder = std::make_unique<RadialParacrystalPositionBuilder>(p_iff);
47 }
48 
50 {
52 }
53 
54 std::vector<std::vector<double>> RealSpacePositionBuilder::generatePositions(double layer_size,
55  double density) const
56 {
57  return m_pos_builder->generatePositions(layer_size, density);
58 }
Declares interface IPositionBuilder and subclasses.
Defines class RealSpacePositionBuilder.
The default position builder is used when no specific implementation exist for generating the positio...
Interference function of a 1D lattice.
Interference function of a 2D lattice.
Interference function of a 2D paracrystal.
Interference function of a finite 2D lattice.
Default interference function (i.e.
Interference function of radial paracrystal.
virtual void visit(const BasicLattice2D *)
Definition: INodeVisitor.h:151
~RealSpacePositionBuilder() override
std::unique_ptr< IPositionBuilder > m_pos_builder
std::vector< std::vector< double > > generatePositions(double layer_size, double density=0.0) const