15 #ifndef BORNAGAIN_CORE_PARTICLE_IPARTICLE_H
16 #define BORNAGAIN_CORE_PARTICLE_IPARTICLE_H
71 std::vector<const INode*>
getChildren()
const override;
73 void registerAbundance(
bool make_registered =
true);
95 std::unique_ptr<IRotation> mP_rotation;
Defines interface IAbstractParticle.
Defines and implements template class SafePointerVector.
Interface for a generic particle.
Pure virtual base class for Particle, ParticleComposition, ParticleCoreShell, MesoCrystal.
void translate(kvector_t translation) override final
Translates the particle.
virtual SafePointerVector< IParticle > decompose() const
Decompose in constituent IParticle objects.
virtual SlicedParticle createSlicedParticle(ZLimits limits) const
Creates a sliced form factor for this particle.
void registerPosition(bool make_registered=true)
Registers the three components of its position.
std::vector< const INode * > getChildren() const override
Returns a vector of children (const).
void setPosition(kvector_t position)
Sets relative position of the particle's reference point in the coordinate system of parent.
void setPosition(double x, double y, double z)
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.
IRotation * createComposedRotation(const IRotation *p_rotation) const
Creates a composed IRotation object.
kvector_t position() const
Returns particle position.
const IRotation * rotation() const
Returns rotation object.
kvector_t composedTranslation(const IRotation *p_rotation, kvector_t translation) const
Gets a composed translation vector.
IParticle * clone() const override=0
Returns a clone of this ISample object.
void setRotation(const IRotation &rotation)
Sets transformation.
virtual IFormFactor * createFormFactor() const
Creates a form factor for this particle.
virtual ParticleLimits bottomTopZ() const
Top and bottom z-coordinate.
void registerParticleProperties()
Registers abundance and position.
Pure virtual interface for rotations.
A vector of pointers, owned by *this, with methods to handle them safely.
Class that contains upper and lower limits of the z-coordinate for the slicing of form factors.
Vertical extension of a particle, specified by bottom and top z coordinate.
Struct that contains information on a sliced particle.