25 : m_material(std::move(material)), m_thickness(thickness)
66 std::vector<const ILayout*> result;
68 result.push_back(p_layout);
74 std::vector<const INode*> result;
76 result.push_back(layout);
82 if (make_registered) {
Defines many exception classes in namespace Exceptionss.
Defines and implements interface class ILayout.
Defines class ParameterPool.
Defines class RealParameter.
Pure virtual interface class to equip a sample layer with scattering properties.
virtual ILayout * clone() const =0
Returns a clone of this ISample object.
void registerChild(INode *node)
RealParameter & registerParameter(const std::string &name, double *parpointer)
RealParameter * parameter(const std::string &name) const
Returns parameter with given 'name'.
void removeParameter(const std::string &name)
const std::string & getName() const
void setName(const std::string &name)
A layer, with thickness (in nanometer) and material.
const Material * material() const override final
Returns nullptr, unless overwritten to return a specific material.
std::vector< const INode * > getChildren() const override final
Returns a vector of children (const).
kvector_t m_B_field
cached value of magnetic induction
double m_thickness
layer thickness in nanometers
Layer * clone() const override final
Returns a clone of this ISample object.
void addLayout(const ILayout &decoration)
void setMaterial(Material material)
void setThickness(double thickness)
Sets layer thickness in nanometers.
unsigned int m_n_slices
number of slices to create for graded layer approach
Material m_material
material
Layer(Material material, double thickness=0)
Constructor of a layer with thickness and material.
void registerThickness(bool make_registered=true)
std::vector< const ILayout * > layouts() const
SafePointerVector< ILayout > m_layouts
independent layouts in this layer
A wrapper for underlying material implementation.
RealParameter & setNonnegative()
RealParameter & setUnit(const std::string &name)
void push_back(T *pointer)