Abstract base class for Particle, ParticleComposition, ParticleCoreShell, MesoCrystal....
void setParticlePosition(double x, double y, double z)
Sets relative position of the particle's reference point in the coordinate system of parent.
virtual std::vector< std::unique_ptr< IParticle > > decompose() const
Decompose in constituent IParticle objects.
IParticle * translate(R3 translation)
Translates the particle, and returns this.
void setAbundance(double abundance)
Sets particle abundance.
void setParticlePosition(R3 position)
Sets relative position of the particle's reference point in the coordinate system of parent.
const IRotation * rotation() const
Returns rotation object.
IParticle * rotate(const IRotation &rotation)
Rotates the particle, and returns this.
std::vector< const INode * > nodeChildren() const override
Returns all children.
IParticle * clone() const override=0
Returns a clone of this ISampleNode object.
std::unique_ptr< IRotation > m_rotation
R3 particlePosition() const
Returns particle position.
void setRotation(const IRotation &rotation)
Sets transformation.