68 if (
const auto core_shell_particle =
dynamic_cast<const ParticleCoreShell*
>(absparticle))
70 if (
const auto particle =
dynamic_cast<const Particle*
>(absparticle))
76 if (
const auto mesocrystal =
dynamic_cast<const MesoCrystal*
>(absparticle))
79 "SampleLabelHandler::getLabel: called for unknown IParticle type");
125 if (*(it->first) == *mat) {
131 std::set<std::string> unique_labels;
133 unique_labels.insert(it->second);
135 std::string label =
"material_" + std::to_string(unique_labels.size() + 1);
Defines and implements the interface class IInterferenceFunction.
Defines class LayerRoughness.
Defines class MesoCrystal.
Defines class MultiLayer.
Defines class ParticleComposition.
Defines ParticleCoreShell.
Defines class ParticleDistribution.
Defines classes LabelMap and SampleLabelHandler.
A crystal structure with a ParticleComposition as a basis.
Interface for a generic particle.
Pure virtual base class of interference functions.
Pure virtual interface class to equip a sample layer with scattering properties.
Pure virtual interface for rotations.
A lattice with three basis vectors.
A roughness of interface between two layers.
double getSigma() const
Returns rms of roughness.
double getLatteralCorrLength() const
Returns lateral correlation length.
double getHurstParameter() const
Returns hurst parameter.
A layer, with thickness (in nanometer) and material.
A wrapper for underlying material implementation.
A particle with an internal structure of smaller particles.
Our sample model: a stack of layers one below the other.
const_iterator end() const
void insert(const Key &key, const Object &object)
const_iterator begin() const
A composition of particles at fixed positions.
A particle with a core/shell geometry.
A particle type that is a parametric distribution of IParticle's.
A particle with a form factor and refractive index.
void insertRotation(const IRotation *sample)
std::string labelLayer(const Layer *sample)
void insertInterferenceFunction(const IInterferenceFunction *sample)
void insertFormFactor(const IFormFactor *sample)
particledistributions_t m_ParticleDistributionLabel
particles_t m_ParticleLabel
std::string labelParticle(const IAbstractParticle *sample)
std::string labelRotation(const IRotation *sample)
void insertRoughness(const LayerRoughness *sample)
void insertMesoCrystal(const MesoCrystal *sample)
particlecompositions_t m_ParticleCompositionLabel
crystals_t m_CrystalLabel
std::string labelInterferenceFunction(const IInterferenceFunction *sample)
std::string labelMultiLayer(const MultiLayer *sample)
void insertMultiLayer(const MultiLayer *sample)
mesocrystals_t m_MesoCrystalLabel
particlescoreshell_t m_ParticleCoreShellLabel
void insertParticleCoreShell(const ParticleCoreShell *sample)
rotations_t m_RotationsLabel
std::string labelLattice(const Lattice *sample)
lattices_t m_LatticeLabel
roughnesses_t m_LayerRoughnessLabel
std::string labelLayout(const ILayout *sample)
formfactors_t m_FormFactorLabel
void insertLattice(const Lattice *sample)
std::string labelCrystal(const Crystal *sample)
void insertParticle(const Particle *sample)
void insertCrystal(const Crystal *sample)
std::string labelRoughness(const LayerRoughness *sample)
void insertMaterial(const Material *sample)
interferences_t m_InterferenceFunctionLabel
materials_t m_MaterialLabel
void insertParticleComposition(const ParticleComposition *sample)
void insertParticleDistribution(const ParticleDistribution *sample)
void insertLayout(const ILayout *sample)
multilayers_t m_MultiLayerLabel
std::string labelMaterial(const Material *sample)
std::string labelFormFactor(const IFormFactor *sample)
void insertLayer(const Layer *sample)