Defines class LayerInterface.
Defines class LayersWithAbsorptionBuilder.
const double middle_layer_thickness(60.0 *Units::nanometer)
Defines class MultiLayer.
Defines class ParticleLayout.
Defines materials in namespace refMat.
Defines sample components for complex sample builders.
Defines some unit conversion factors and other constants in namespace Units.
BasicVector3D< double > kvector_t
void setName(const std::string &name)
void setPosition(kvector_t position)
Sets relative position of the particle's reference point in the coordinate system of parent.
void rotate(const IRotation &rotation) override final
Rotates the particle.
void setRotation(const IRotation &rotation)
Sets transformation.
const ValueType * getItem(const std::string &key) const
std::vector< std::string > keys() const
A layer, with thickness (in nanometer) and material.
void addLayout(const ILayout &decoration)
~LayersWithAbsorptionBuilder()
virtual MultiLayer * buildSample() const
std::unique_ptr< IFormFactor > m_ff
LayersWithAbsorptionBuilder()
MultiLayer * createSampleByIndex(size_t index)
Our sample model: a stack of layers one below the other.
void addLayer(const Layer &layer)
Adds object to multilayer.
Decorator class that adds particles to ISample objects.
void addParticle(const IAbstractParticle &particle, double abundance=-1.0, const kvector_t position={}, const IRotation &rotation=IdentityRotation())
Adds particle to the layout with abundance, position and the rotation defined.
A particle with a form factor and refractive index.
A rotation about the x axis.
A rotation about the y axis.
A rotation about the z axis.
Constants and functions for physical unit conversions.
static constexpr double degree
static constexpr double nanometer
static const FormFactorComponents ff_components
static const Material Substrate2
static const Material Vacuum
static const Material Teflon