31 : m_material(std::move(material)), mP_form_factor(form_factor.clone())
38 : m_material(std::move(material)), mP_form_factor(form_factor.clone())
65 std::unique_ptr<IFormFactor> P_temp_ff(
70 double volume = P_temp_ff->volume();
72 P_ff->setMaterial(transformed_material);
74 result.
m_regions.push_back({volume, transformed_material});
Factory functions used to create material instances.
Defines class SlicedParticle.
void setAbundance(double abundance)
Sets particle abundance.
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
const IRotation * rotation() const
Returns rotation object.
void setRotation(const IRotation &rotation)
Sets transformation.
void registerParticleProperties()
Registers abundance and position.
Pure virtual interface for rotations.
static IRotation * createIdentity()
A wrapper for underlying material implementation.
Material rotatedMaterial(const Transform3D &transform) const
A particle with a form factor and refractive index.
Particle * clone() const override final
Returns a clone of this ISample object.
const Material * material() const override final
Returns nullptr, unless overwritten to return a specific material.
std::vector< const INode * > getChildren() const override final
Returns a vector of children (const).
void setFormFactor(const IFormFactor &form_factor)
SlicedParticle createSlicedParticle(ZLimits limits) const override final
Creates a sliced form factor for this particle.
std::unique_ptr< IFormFactor > mP_form_factor
void setMaterial(Material material)
Class that contains upper and lower limits of the z-coordinate for the slicing of form factors.
Material HomogeneousMaterial(const std::string &name, complex_t refractive_index, kvector_t magnetization)
Constructs a material with name, refractive_index and magnetization (in A/m).
Struct that contains information on a sliced particle.
std::vector< HomogeneousRegion > m_regions
std::unique_ptr< IFormFactor > mP_slicedff