15 #ifndef BORNAGAIN_GUI_COREGUI_VIEWS_REALSPACEWIDGETS_IPOSITIONBUILDER_H
16 #define BORNAGAIN_GUI_COREGUI_VIEWS_REALSPACEWIDGETS_IPOSITIONBUILDER_H
32 double density = 0.0)
const;
36 double density = 0.0)
const = 0;
51 double density = 0.0)
const override;
62 double density = 0.0)
const override;
73 double density = 0.0)
const override;
75 std::unique_ptr<InterferenceFunction1DLattice>
m_iff;
85 double density = 0.0)
const override;
87 std::unique_ptr<InterferenceFunction2DLattice>
m_iff;
97 double density = 0.0)
const override;
99 std::unique_ptr<InterferenceFunction2DParaCrystal>
m_iff;
109 double density = 0.0)
const override;
111 std::unique_ptr<InterferenceFunctionFinite2DLattice>
m_iff;
121 double density = 0.0)
const override;
123 std::unique_ptr<InterferenceFunctionRadialParaCrystal>
m_iff;
The default position builder is used when no specific implementation exist for generating the positio...
std::vector< std::vector< double > > generatePositionsImpl(double layer_size, double density=0.0) const override
double positionVariance() const override
~DefaultPositionBuilder() override
std::unique_ptr< InterferenceFunctionFinite2DLattice > m_iff
std::vector< std::vector< double > > generatePositionsImpl(double layer_size, double density=0.0) const override
Finite2DLatticePositionBuilder(const InterferenceFunctionFinite2DLattice *p_iff)
~Finite2DLatticePositionBuilder() override
double positionVariance() const override
virtual ~IPositionBuilder()
virtual std::vector< std::vector< double > > generatePositionsImpl(double layer_size, double density=0.0) const =0
std::vector< std::vector< double > > generatePositions(double layer_size, double density=0.0) const
virtual double positionVariance() const =0
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.
Interference function of radial paracrystal.
std::unique_ptr< InterferenceFunction1DLattice > m_iff
Lattice1DPositionBuilder(const InterferenceFunction1DLattice *p_iff)
~Lattice1DPositionBuilder() override
std::vector< std::vector< double > > generatePositionsImpl(double layer_size, double density=0.0) const override
double positionVariance() const override
~Lattice2DPositionBuilder() override
Lattice2DPositionBuilder(const InterferenceFunction2DLattice *p_iff)
std::unique_ptr< InterferenceFunction2DLattice > m_iff
std::vector< std::vector< double > > generatePositionsImpl(double layer_size, double density=0.0) const override
double positionVariance() const override
double positionVariance() const override
std::vector< std::vector< double > > generatePositionsImpl(double layer_size, double density=0.0) const override
~ParaCrystal2DPositionBuilder() override
std::unique_ptr< InterferenceFunction2DParaCrystal > m_iff
ParaCrystal2DPositionBuilder(const InterferenceFunction2DParaCrystal *p_iff)
std::unique_ptr< InterferenceFunctionRadialParaCrystal > m_iff
RadialParacrystalPositionBuilder(const InterferenceFunctionRadialParaCrystal *p_iff)
std::vector< std::vector< double > > generatePositionsImpl(double layer_size, double density=0.0) const override
double positionVariance() const override
~RadialParacrystalPositionBuilder() override
~RandomPositionBuilder() override
std::vector< std::vector< double > > generatePositionsImpl(double layer_size, double density=0.0) const override
double positionVariance() const override