32     return layers.indexOf(
const_cast<SessionItem*
>(&layerItem)) == 0;
 
   37     return layers.indexOf(
const_cast<SessionItem*
>(&layerItem)) == layers.size() - 1;
 
   46     double thickness(0.0);
 
   47     if (isTopLayer(layerItem))
 
   49     else if (isBottomLayer(layerItem))
 
   59                                                              const QVector3D& origin)
 
   66     double ztop = 
static_cast<double>(origin.z());
 
   67     double zbottom = 
static_cast<double>(origin.z()) - thickness;
 
   69     std::unique_ptr<RealSpace::Layer> result =
 
   78     result->color = color;
 
   83 std::unique_ptr<RealSpace::Particles::Particle>
 
   88     std::unique_ptr<RealSpace::Particles::Particle> result;
 
  100 std::unique_ptr<RealSpace::Particles::Particle>
 
  103     std::unique_ptr<RealSpace::Particles::Particle> result;
 
  106         double length = ff_AnisoPyramid->getLength();
 
  107         double width = ff_AnisoPyramid->getWidth();
 
  108         double height = ff_AnisoPyramid->getHeight();
 
  109         double alpha = ff_AnisoPyramid->getAlpha();
 
  110         result = std::make_unique<RealSpace::Particles::AnisoPyramid>(length, width, height, alpha);
 
  112         double length = ff_BarGauss->getLength();
 
  113         double width = ff_BarGauss->getWidth();
 
  114         double height = ff_BarGauss->getHeight();
 
  115         result = std::make_unique<RealSpace::Particles::BarGauss>(length, width, height);
 
  117         double length = ff_BarLorentz->getLength();
 
  118         double width = ff_BarLorentz->getWidth();
 
  119         double height = ff_BarLorentz->getHeight();
 
  120         result = std::make_unique<RealSpace::Particles::BarLorentz>(length, width, height);
 
  121     } 
else if (
auto ff_Box = 
dynamic_cast<const FormFactorBox*
>(ff)) {
 
  122         double length = ff_Box->getLength();
 
  123         double width = ff_Box->getWidth();
 
  124         double height = ff_Box->getHeight();
 
  125         result = std::make_unique<RealSpace::Particles::Box>(length, width, height);
 
  126     } 
else if (
auto ff_Cone = 
dynamic_cast<const FormFactorCone*
>(ff)) {
 
  127         double radius = ff_Cone->getRadius();
 
  128         double height = ff_Cone->getHeight();
 
  129         double alpha = ff_Cone->getAlpha();
 
  130         result = std::make_unique<RealSpace::Particles::Cone>(radius, height, alpha);
 
  132         double baseedge = ff_Cone6->getBaseEdge();
 
  133         double height = ff_Cone6->getHeight();
 
  134         double alpha = ff_Cone6->getAlpha();
 
  135         result = std::make_unique<RealSpace::Particles::Cone6>(baseedge, height, alpha);
 
  137         double length = ff_Cuboctahedron->getLength();
 
  138         double height = ff_Cuboctahedron->getHeight();
 
  139         double height_ratio = ff_Cuboctahedron->getHeightRatio();
 
  140         double alpha = ff_Cuboctahedron->getAlpha();
 
  141         result = std::make_unique<RealSpace::Particles::Cuboctahedron>(length, height, height_ratio,
 
  144         double radius = ff_Cylinder->getRadius();
 
  145         double height = ff_Cylinder->getHeight();
 
  146         result = std::make_unique<RealSpace::Particles::Cylinder>(radius, height);
 
  148         double edge = ff_Dodecahedron->getEdge();
 
  149         result = std::make_unique<RealSpace::Particles::Dodecahedron>(edge);
 
  150     } 
else if (
auto ff_Dot = 
dynamic_cast<const FormFactorDot*
>(ff)) {
 
  152         result = std::make_unique<RealSpace::Particles::Dot>();
 
  153     } 
else if (
auto ff_EllipsoidalCylinder =
 
  155         double radius_x = ff_EllipsoidalCylinder->getRadiusX();
 
  156         double radius_y = ff_EllipsoidalCylinder->getRadiusY();
 
  157         double height = ff_EllipsoidalCylinder->getHeight();
 
  159             std::make_unique<RealSpace::Particles::EllipsoidalCylinder>(radius_x, radius_y, height);
 
  161         double radius = ff_FullSphere->getRadius();
 
  162         result = std::make_unique<RealSpace::Particles::FullSphere>(radius);
 
  164         double radius = ff_FullSpheroid->getRadius();
 
  165         double height = ff_FullSpheroid->getHeight();
 
  166         result = std::make_unique<RealSpace::Particles::FullSpheroid>(radius, height);
 
  168         double radius_x = ff_HemiEllipsoid->getRadiusX();
 
  169         double radius_y = ff_HemiEllipsoid->getRadiusY();
 
  170         double height = ff_HemiEllipsoid->getHeight();
 
  171         result = std::make_unique<RealSpace::Particles::HemiEllipsoid>(radius_x, radius_y, height);
 
  173         double edge = ff_Icosahedron->getEdge();
 
  174         result = std::make_unique<RealSpace::Particles::Icosahedron>(edge);
 
  176         double baseedge = ff_Prism3->getBaseEdge();
 
  177         double height = ff_Prism3->getHeight();
 
  178         result = std::make_unique<RealSpace::Particles::Prism3>(baseedge, height);
 
  180         double baseedge = ff_Prism6->getBaseEdge();
 
  181         double height = ff_Prism6->getHeight();
 
  182         result = std::make_unique<RealSpace::Particles::Prism6>(baseedge, height);
 
  184         double baseedge = ff_Pyramid->getBaseEdge();
 
  185         double height = ff_Pyramid->getHeight();
 
  186         double alpha = ff_Pyramid->getAlpha();
 
  187         result = std::make_unique<RealSpace::Particles::Pyramid>(baseedge, height, alpha);
 
  189         double length = ff_CosineRippleBox->getLength();
 
  190         double width = ff_CosineRippleBox->getWidth();
 
  191         double height = ff_CosineRippleBox->getHeight();
 
  192         result = std::make_unique<RealSpace::Particles::CosineRippleBox>(length, width, height);
 
  194         double length = ff_CosineRippleGauss->getLength();
 
  195         double width = ff_CosineRippleGauss->getWidth();
 
  196         double height = ff_CosineRippleGauss->getHeight();
 
  197         result = std::make_unique<RealSpace::Particles::CosineRippleGauss>(length, width, height);
 
  198     } 
else if (
auto ff_CosineRippleLorentz =
 
  200         double length = ff_CosineRippleLorentz->getLength();
 
  201         double width = ff_CosineRippleLorentz->getWidth();
 
  202         double height = ff_CosineRippleLorentz->getHeight();
 
  203         result = std::make_unique<RealSpace::Particles::CosineRippleLorentz>(length, width, height);
 
  205         double length = ff_SawtoothRippleBox->getLength();
 
  206         double width = ff_SawtoothRippleBox->getWidth();
 
  207         double height = ff_SawtoothRippleBox->getHeight();
 
  208         result = std::make_unique<RealSpace::Particles::SawtoothRippleBox>(length, width, height);
 
  209     } 
else if (
auto ff_SawtoothRippleGauss =
 
  211         double length = ff_SawtoothRippleGauss->getLength();
 
  212         double width = ff_SawtoothRippleGauss->getWidth();
 
  213         double height = ff_SawtoothRippleGauss->getHeight();
 
  214         result = std::make_unique<RealSpace::Particles::SawtoothRippleGauss>(length, width, height);
 
  215     } 
else if (
auto ff_SawtoothRippleLorentz =
 
  217         double length = ff_SawtoothRippleLorentz->getLength();
 
  218         double width = ff_SawtoothRippleLorentz->getWidth();
 
  219         double height = ff_SawtoothRippleLorentz->getHeight();
 
  221             std::make_unique<RealSpace::Particles::SawtoothRippleLorentz>(length, width, height);
 
  223         double baseedge = ff_Tetrahedron->getBaseEdge();
 
  224         double height = ff_Tetrahedron->getHeight();
 
  225         double alpha = ff_Tetrahedron->getAlpha();
 
  226         result = std::make_unique<RealSpace::Particles::Tetrahedron>(baseedge, height, alpha);
 
  228         double length = ff_TruncatedCube->getLength();
 
  229         double removed_length = ff_TruncatedCube->getRemovedLength();
 
  230         result = std::make_unique<RealSpace::Particles::TruncatedCube>(length, removed_length);
 
  232         double radius = ff_TruncatedSphere->getRadius();
 
  233         double height = ff_TruncatedSphere->getHeight();
 
  234         double deltaH = ff_TruncatedSphere->getRemovedTop();
 
  235         result = std::make_unique<RealSpace::Particles::TruncatedSphere>(radius, height, deltaH);
 
  237         double radius = ff_TruncatedSpheroid->getRadius();
 
  238         double height = ff_TruncatedSpheroid->getHeight();
 
  239         double hfc = ff_TruncatedSpheroid->getHeightFlattening();
 
  240         double deltaH = ff_TruncatedSpheroid->getRemovedTop();
 
  242             std::make_unique<RealSpace::Particles::TruncatedSpheroid>(radius, height, hfc, deltaH);
 
#define ASSERT(condition)
Defines class ExternalProperty.
Defines class GUIDomainSampleVisitor.
Includes all particle-shape form-factor definitions.
Defines class MultiLayerItem.
Defines class ParticleCompositionItem.
Defines class ParticleItem.
Defines class RealSpaceCanvas.
Defines some unit conversion factors and other constants in namespace Units.
Defines class VectorItem.
The ExternalProperty class defines custom QVariant property to carry the text, color and an identifie...
static const QString P_MATERIAL
static const QString P_THICKNESS
static const QString T_LAYERS
static const QString P_FORM_FACTOR
double layer_top_thickness() const
double layer_min_thickness() const
double layer_bottom_thickness() const
double layer_size() const
SessionItem * getGroupItem(const QString &groupName) const
Access subitem of group item.
QVector< SessionItem * > getItems(const QString &tag="") const
Returns vector of all items of given tag.
QVariant getItemValue(const QString &tag) const
Directly access value of item under given tag.
SessionItem * parent() const
Returns parent of this item.
QString modelType() const
Get model type.