15 #ifndef BORNAGAIN_GUI_VIEW_REALSPACE_IPOSITIONBUILDER_H
16 #define BORNAGAIN_GUI_VIEW_REALSPACE_IPOSITIONBUILDER_H
21 class Interference1DLattice;
22 class Interference2DLattice;
23 class Interference2DParaCrystal;
24 class InterferenceFinite2DLattice;
25 class InterferenceRadialParaCrystal;
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<Interference1DLattice>
m_iff;
85 double density = 0.0)
const override;
87 std::unique_ptr<Interference2DLattice>
m_iff;
97 double density = 0.0)
const override;
99 std::unique_ptr<Interference2DParaCrystal>
m_iff;
109 double density = 0.0)
const override;
111 std::unique_ptr<InterferenceFinite2DLattice>
m_iff;
121 double density = 0.0)
const override;
123 std::unique_ptr<InterferenceRadialParaCrystal>
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< InterferenceFinite2DLattice > m_iff
std::vector< std::vector< double > > generatePositionsImpl(double layer_size, double density=0.0) const override
~Finite2DLatticePositionBuilder() override
Finite2DLatticePositionBuilder(const InterferenceFinite2DLattice *p_iff)
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
Lattice1DPositionBuilder(const Interference1DLattice *p_iff)
std::unique_ptr< Interference1DLattice > m_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 Interference2DLattice *p_iff)
std::unique_ptr< Interference2DLattice > m_iff
std::vector< std::vector< double > > generatePositionsImpl(double layer_size, double density=0.0) const override
double positionVariance() const override
std::unique_ptr< Interference2DParaCrystal > m_iff
double positionVariance() const override
std::vector< std::vector< double > > generatePositionsImpl(double layer_size, double density=0.0) const override
ParaCrystal2DPositionBuilder(const Interference2DParaCrystal *p_iff)
~ParaCrystal2DPositionBuilder() override
std::unique_ptr< InterferenceRadialParaCrystal > m_iff
RadialParacrystalPositionBuilder(const InterferenceRadialParaCrystal *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