15 #ifndef BORNAGAIN_SAMPLE_MULTILAYER_LAYER_H
16 #define BORNAGAIN_SAMPLE_MULTILAYER_LAYER_H
45 std::vector<const ParticleLayout*>
layouts()
const;
47 std::vector<const INode*>
getChildren() const final;
Defines interface class ISampleNode.
Defines and implements class Material.
Defines and implements template class SafePointerVector.
Visitor interface to visit ISampleNode objects.
Abstract base class for sample components and properties related to scattering.
A layer in a MultiLayer sample.
void setNumberOfSlices(unsigned int n_slices)
std::vector< const ParticleLayout * > layouts() const
const Material * material() const final
Returns nullptr, unless overwritten to return a specific material.
kvector_t m_B_field
cached value of magnetic induction
void accept(INodeVisitor *visitor) const final
Calls the INodeVisitor's visit method.
double m_thickness
layer thickness in nanometers
size_t numberOfLayouts() const
void setMaterial(Material material)
void setThickness(double thickness)
Sets layer thickness in nanometers.
unsigned int numberOfSlices() const
unsigned int m_n_slices
number of slices to create for graded layer approach
std::vector< const INode * > getChildren() const final
Returns a vector of children.
Material m_material
material
Layer(Material material, double thickness=0)
Constructor of a layer with thickness and material.
void registerThickness(bool make_registered=true)
void addLayout(const ParticleLayout &decoration)
SafePointerVector< ParticleLayout > m_layouts
independent layouts in this layer
Layer * clone() const final
Returns a clone of this ISampleNode object.
A wrapper for underlying material implementation.
Decorator class that adds particles to ISampleNode objects.