15 #ifndef BORNAGAIN_CORE_CORRELATIONS_ILAYOUT_H
16 #define BORNAGAIN_CORE_CORRELATIONS_ILAYOUT_H
Defines interface class ISample.
Defines and implements template class SafePointerVector.
Interface for a generic particle.
Pure virtual base class of interference functions.
Pure virtual interface class to equip a sample layer with scattering properties.
void setWeight(double weight)
Sets the relative weight of this layout.
virtual void accept(INodeVisitor *visitor) const =0
Calls the INodeVisitor's visit method.
virtual const IInterferenceFunction * interferenceFunction() const =0
Returns the interference function.
virtual double getTotalAbundance() const =0
Get total abundance of all particles.
virtual SafePointerVector< IParticle > particles() const =0
Returns information on all particles (type and abundance) and generates new particles if an IAbstract...
virtual double totalParticleSurfaceDensity() const =0
Returns surface density of all particles.
virtual void setTotalParticleSurfaceDensity(double particle_density)=0
Sets surface density of all particles.
virtual ILayout * clone() const =0
Returns a clone of this ISample object.
double weight() const
Returns the relative weight of this layout.
Visitor interface to visit ISample objects.
Pure virtual base class for sample components and properties related to scattering.
A vector of pointers, owned by *this, with methods to handle them safely.