Defines interface IParticle.
Abstract base class for Particle, ParticleComposition, ParticleCoreShell, MesoCrystal....
const IRotation * rotation() const
Returns rotation object.
A particle with a form factor and refractive index.
const Material * material() const override
Returns nullptr, unless overwritten to return a specific material.
Particle(Material material, const IFormFactor &formfactor)
Particle * clone() const override
Returns a clone of this ISampleNode object.
const IFormFactor * formfactor_at_bottom() const
std::string className() const override
Returns the class name, to be hard-coded in each leaf class that inherits from INode.
std::vector< const INode * > nodeChildren() const override
Returns all children.
const Material m_material
std::unique_ptr< const IFormFactor > m_formfactor