30 throw std::runtime_error(
"IParticle::createSlicedParticle error: "
68 if (make_registered) {
78 if (make_registered) {
98 return {P_ff->bottomZ(*P_rot), P_ff->topZ(*P_rot)};
107 return p_rotation->
clone();
Defines interface IParticle.
Defines class RealParameter.
IRotation * createProduct(const IRotation &left, const IRotation &right)
Returns concatenated rotation (first right, then left).
Defines IRotation classes.
Defines class SlicedParticle.
void registerChild(INode *node)
RealParameter & registerParameter(const std::string &name, double *parpointer)
RealParameter * parameter(const std::string &name) const
Returns parameter with given 'name'.
static std::string XComponentName(const std::string &base_name)
void removeParameter(const std::string &name)
void removeVector(const std::string &base_name)
void registerVector(const std::string &base_name, kvector_t *p_vec, const std::string &units="nm")
void registerAbundance(bool make_registered=true)
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 rotate(const IRotation &rotation) override final
Rotates the particle.
std::unique_ptr< IRotation > mP_rotation
IRotation * createComposedRotation(const IRotation *p_rotation) const
Creates a composed IRotation object.
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.
virtual IRotation * clone() const =0
static IRotation * createIdentity()
kvector_t transformed(const kvector_t &v) const
A vector of pointers, owned by *this, with methods to handle them safely.
void push_back(T *pointer)
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.