16 #ifndef BORNAGAIN_SAMPLE_PARTICLE_IPARTICLE_H
17 #define BORNAGAIN_SAMPLE_PARTICLE_IPARTICLE_H
71 std::vector<const INode*>
getChildren()
const override;
Defines interface IAbstractParticle.
Defines and implements template class SafePointerVector.
BasicVector3D< double > kvector_t
Interface for a generic particle.
Abstract base class for Particle, ParticleComposition, ParticleCoreShell, MesoCrystal.
void registerAbundance(bool make_registered=true)
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.
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) 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 ISampleNode object.
std::unique_ptr< IRotation > m_rotation
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 translate(kvector_t translation) final
Translates the particle.
void registerParticleProperties()
Registers abundance and position.
Abstract base class 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.