Skip to content
Snippets Groups Projects
Commit ee6addb9 authored by Gennady Pospelov's avatar Gennady Pospelov
Browse files

Introduce accessors for Particle's position

parent 38d38d6b
No related branches found
No related tags found
No related merge requests found
...@@ -105,6 +105,11 @@ MesoCrystalItem::MesoCrystalItem() : SessionGraphicsItem("MesoCrystal") ...@@ -105,6 +105,11 @@ MesoCrystalItem::MesoCrystalItem() : SessionGraphicsItem("MesoCrystal")
}); });
} }
VectorItem* MesoCrystalItem::positionItem() const
{
return item<VectorItem>(ParticleItem::P_POSITION);
}
std::unique_ptr<MesoCrystal> MesoCrystalItem::createMesoCrystal() const std::unique_ptr<MesoCrystal> MesoCrystalItem::createMesoCrystal() const
{ {
const Lattice3D& lattice = getLattice(); const Lattice3D& lattice = getLattice();
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
class IFormFactor; class IFormFactor;
class IParticle; class IParticle;
class MesoCrystal; class MesoCrystal;
class VectorItem;
class BA_CORE_API_ MesoCrystalItem : public SessionGraphicsItem { class BA_CORE_API_ MesoCrystalItem : public SessionGraphicsItem {
public: public:
...@@ -32,6 +33,8 @@ public: ...@@ -32,6 +33,8 @@ public:
MesoCrystalItem(); MesoCrystalItem();
VectorItem* positionItem() const;
std::unique_ptr<MesoCrystal> createMesoCrystal() const; std::unique_ptr<MesoCrystal> createMesoCrystal() const;
QStringList translateList(const QStringList& list) const override; QStringList translateList(const QStringList& list) const override;
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include "GUI/coregui/Models/ParticleItem.h" #include "GUI/coregui/Models/ParticleItem.h"
#include "GUI/coregui/Models/SessionItemUtils.h" #include "GUI/coregui/Models/SessionItemUtils.h"
#include "GUI/coregui/Models/TransformToDomain.h" #include "GUI/coregui/Models/TransformToDomain.h"
#include "GUI/coregui/Models/VectorItem.h"
#include "Sample/Particle/MesoCrystal.h" #include "Sample/Particle/MesoCrystal.h"
#include "Sample/Particle/Particle.h" #include "Sample/Particle/Particle.h"
#include "Sample/Particle/ParticleCoreShell.h" #include "Sample/Particle/ParticleCoreShell.h"
...@@ -67,6 +68,11 @@ ParticleCompositionItem::ParticleCompositionItem() : SessionGraphicsItem("Partic ...@@ -67,6 +68,11 @@ ParticleCompositionItem::ParticleCompositionItem() : SessionGraphicsItem("Partic
}); });
} }
VectorItem* ParticleCompositionItem::positionItem() const
{
return item<VectorItem>(ParticleItem::P_POSITION);
}
std::unique_ptr<ParticleComposition> ParticleCompositionItem::createParticleComposition() const std::unique_ptr<ParticleComposition> ParticleCompositionItem::createParticleComposition() const
{ {
double abundance = getItemValue(ParticleItem::P_ABUNDANCE).toDouble(); double abundance = getItemValue(ParticleItem::P_ABUNDANCE).toDouble();
......
...@@ -18,10 +18,15 @@ ...@@ -18,10 +18,15 @@
#include "GUI/coregui/Models/SessionGraphicsItem.h" #include "GUI/coregui/Models/SessionGraphicsItem.h"
#include "Sample/Particle/ParticleComposition.h" #include "Sample/Particle/ParticleComposition.h"
class VectorItem;
class BA_CORE_API_ ParticleCompositionItem : public SessionGraphicsItem { class BA_CORE_API_ ParticleCompositionItem : public SessionGraphicsItem {
public: public:
static const QString T_PARTICLES; static const QString T_PARTICLES;
ParticleCompositionItem(); ParticleCompositionItem();
VectorItem* positionItem() const;
std::unique_ptr<ParticleComposition> createParticleComposition() const; std::unique_ptr<ParticleComposition> createParticleComposition() const;
}; };
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include "GUI/coregui/Models/TransformToDomain.h" #include "GUI/coregui/Models/TransformToDomain.h"
#include "GUI/coregui/utils/GUIHelpers.h" #include "GUI/coregui/utils/GUIHelpers.h"
#include "Sample/Particle/Particle.h" #include "Sample/Particle/Particle.h"
#include "GUI/coregui/Models/VectorItem.h"
#include "Sample/Particle/ParticleCoreShell.h" #include "Sample/Particle/ParticleCoreShell.h"
namespace { namespace {
...@@ -63,6 +64,11 @@ ParticleCoreShellItem::ParticleCoreShellItem() : SessionGraphicsItem("ParticleCo ...@@ -63,6 +64,11 @@ ParticleCoreShellItem::ParticleCoreShellItem() : SessionGraphicsItem("ParticleCo
}); });
} }
VectorItem* ParticleCoreShellItem::positionItem() const
{
return item<VectorItem>(ParticleItem::P_POSITION);
}
std::unique_ptr<ParticleCoreShell> ParticleCoreShellItem::createParticleCoreShell() const std::unique_ptr<ParticleCoreShell> ParticleCoreShellItem::createParticleCoreShell() const
{ {
double abundance = getItemValue(ParticleItem::P_ABUNDANCE).toDouble(); double abundance = getItemValue(ParticleItem::P_ABUNDANCE).toDouble();
......
...@@ -18,12 +18,17 @@ ...@@ -18,12 +18,17 @@
#include "GUI/coregui/Models/SessionGraphicsItem.h" #include "GUI/coregui/Models/SessionGraphicsItem.h"
class ParticleCoreShell; class ParticleCoreShell;
class VectorItem;
class BA_CORE_API_ ParticleCoreShellItem : public SessionGraphicsItem { class BA_CORE_API_ ParticleCoreShellItem : public SessionGraphicsItem {
public: public:
static const QString T_CORE; static const QString T_CORE;
static const QString T_SHELL; static const QString T_SHELL;
ParticleCoreShellItem(); ParticleCoreShellItem();
VectorItem* positionItem() const;
std::unique_ptr<ParticleCoreShell> createParticleCoreShell() const; std::unique_ptr<ParticleCoreShell> createParticleCoreShell() const;
QVector<SessionItem*> materialPropertyItems(); QVector<SessionItem*> materialPropertyItems();
}; };
......
...@@ -62,6 +62,12 @@ ParticleItem::ParticleItem() : SessionGraphicsItem("Particle") ...@@ -62,6 +62,12 @@ ParticleItem::ParticleItem() : SessionGraphicsItem("Particle")
[this](SessionItem* newParent) { updatePropertiesAppearance(newParent); }); [this](SessionItem* newParent) { updatePropertiesAppearance(newParent); });
} }
VectorItem* ParticleItem::positionItem() const
{
return item<VectorItem>(P_POSITION);
}
std::unique_ptr<Particle> ParticleItem::createParticle() const std::unique_ptr<Particle> ParticleItem::createParticle() const
{ {
auto& ffItem = groupItem<FormFactorItem>(ParticleItem::P_FORM_FACTOR); auto& ffItem = groupItem<FormFactorItem>(ParticleItem::P_FORM_FACTOR);
...@@ -92,7 +98,7 @@ void ParticleItem::updatePropertiesAppearance(SessionItem* newParent) ...@@ -92,7 +98,7 @@ void ParticleItem::updatePropertiesAppearance(SessionItem* newParent)
setItemValue(ParticleItem::P_ABUNDANCE, 1.0); setItemValue(ParticleItem::P_ABUNDANCE, 1.0);
getItem(ParticleItem::P_ABUNDANCE)->setEnabled(false); getItem(ParticleItem::P_ABUNDANCE)->setEnabled(false);
if (isShellParticle()) { if (isShellParticle()) {
auto pos = item<VectorItem>(P_POSITION); auto pos = positionItem();
pos->setVector(kvector_t()); pos->setVector(kvector_t());
pos->setEnabled(false); pos->setEnabled(false);
} }
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "GUI/coregui/Models/SessionGraphicsItem.h" #include "GUI/coregui/Models/SessionGraphicsItem.h"
class Particle; class Particle;
class VectorItem;
class BA_CORE_API_ ParticleItem : public SessionGraphicsItem { class BA_CORE_API_ ParticleItem : public SessionGraphicsItem {
public: public:
...@@ -29,6 +30,8 @@ public: ...@@ -29,6 +30,8 @@ public:
ParticleItem(); ParticleItem();
VectorItem* positionItem() const;
std::unique_ptr<Particle> createParticle() const; std::unique_ptr<Particle> createParticle() const;
QVector<SessionItem*> materialPropertyItems(); QVector<SessionItem*> materialPropertyItems();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment