15 #ifndef BORNAGAIN_CORE_PARTICLE_PARTICLEDISTRIBUTION_H
16 #define BORNAGAIN_CORE_PARTICLE_PARTICLEDISTRIBUTION_H
49 std::vector<const INode*>
getChildren() const override final;
Defines interface IAbstractParticle.
Defines class ParameterDistribution.
Defines and implements template class SafePointerVector.
Interface for a generic particle.
Visitor interface to visit ISample objects.
Pure virtual base class for Particle, ParticleComposition, ParticleCoreShell, MesoCrystal.
Pure virtual interface for rotations.
A parametric distribution function, for use with any model parameter.
A particle type that is a parametric distribution of IParticle's.
ParameterDistribution m_par_distribution
const IParticle & prototype() const
Returns the prototype particle, used for generating multiple ones.
std::vector< const INode * > getChildren() const override final
Returns a vector of children (const).
std::unique_ptr< IParticle > mP_particle
SafePointerVector< IParticle > generateParticles() const
Returns list of new particles generated according to a distribution.
ParameterDistribution parameterDistribution() const
Returns the distributed parameter data.
std::string mainUnits() const
ParticleDistribution(const IParticle &prototype, const ParameterDistribution &par_distr)
void rotate(const IRotation &rotation) override final
Applies the given rotation to the particle.
void accept(INodeVisitor *visitor) const override final
Calls the INodeVisitor's visit method.
ParticleDistribution * clone() const override final
Returns a clone of this ISample object.
void translate(kvector_t translation) override final
Translates the particle with the given vector.
A vector of pointers, owned by *this, with methods to handle them safely.