Defines interface IParticle.
Abstract base class for Particle, ParticleComposition, ParticleCoreShell, MesoCrystal....
A composition of particles at fixed positions.
void addParticle(const IParticle &particle)
size_t nbrParticles() const
Returns number of different particles.
void addParticles(const IParticle &particle, std::vector< R3 > positions)
std::vector< std::unique_ptr< IParticle > > decompose() const override
Decompose in constituent IParticle objects.
std::vector< const INode * > nodeChildren() const override
Returns all children.
std::string className() const final
Returns the class name, to be hard-coded in each leaf class that inherits from INode.
std::vector< const IParticle * > particles() const
OwningVector< IParticle > m_particles
~ParticleComposition() override
ParticleComposition * clone() const override
Returns a clone of this ISampleNode object.