23 : mp_particle_structure(particle_structure.clone()), mp_meso_form_factor(form_factor.clone())
53 std::unique_ptr<IFormFactor> P_temp_ff(
55 std::unique_ptr<IFormFactor> P_total_ff(
59 for (
auto& region : regions)
60 region.m_volume *= meso_volume;
69 return std::vector<const INode*>()
74 : mp_particle_structure(p_particle_structure), mp_meso_form_factor(p_form_factor)
Defines class IClusteredParticles.
Defines class MesoCrystal.
Defines class SlicedParticle.
void setAbundance(double abundance)
Sets particle abundance.
An ordered assembly of particles.
Visitor interface to visit ISample objects.
virtual void visit(const BasicLattice *)
void registerChild(INode *node)
void setName(const std::string &name)
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.
std::unique_ptr< IRotation > mP_rotation
void setRotation(const IRotation &rotation)
Sets transformation.
void registerParticleProperties()
Registers abundance and position.
static IRotation * createIdentity()
A particle with an internal structure of smaller particles.
std::unique_ptr< IClusteredParticles > mp_particle_structure
Crystal structure.
MesoCrystal * clone() const override final
Returns a clone of this ISample object.
MesoCrystal(const IClusteredParticles &particle_structure, const IFormFactor &form_factor)
SlicedParticle createSlicedParticle(ZLimits limits) const override final
Creates a sliced form factor for this particle.
std::vector< const INode * > getChildren() const override final
Returns a vector of children (const).
std::unique_ptr< IFormFactor > mp_meso_form_factor
Outer shape of this mesocrystal.
void accept(INodeVisitor *visitor) const override final
Calls the INodeVisitor's visit method.
Class that contains upper and lower limits of the z-coordinate for the slicing of form factors.
Struct that contains information on a sliced particle.
std::vector< HomogeneousRegion > m_regions
std::unique_ptr< IFormFactor > mP_slicedff