Skip to content
Snippets Groups Projects
Commit 2dd09d34 authored by t.knopff's avatar t.knopff
Browse files

Make MesoCrystalItem::P_VECTOR_(A|B|C) private

parent 8de06636
No related branches found
No related tags found
1 merge request!168Refactor model: ParticleItem, ParticleCoreShellItem, ParticleCompositionItem and MesoCrystalItem
...@@ -152,20 +152,21 @@ void GUIDomainSampleVisitor::visit(const MesoCrystal* sample) ...@@ -152,20 +152,21 @@ void GUIDomainSampleVisitor::visit(const MesoCrystal* sample)
void GUIDomainSampleVisitor::visit(const Crystal* sample) void GUIDomainSampleVisitor::visit(const Crystal* sample)
{ {
SessionItem* mesocrystal_item = m_levelToParentItem[depth() - 1]; SessionItem* item = m_levelToParentItem[depth() - 1];
ASSERT(mesocrystal_item); ASSERT(item);
if (!mesocrystal_item->hasModelType<MesoCrystalItem>()) { if (!item->hasModelType<MesoCrystalItem>()) {
throw Error("GUI::Model::ObjectBuilder::visit(const Crystal*) " throw Error("GUI::Model::ObjectBuilder::visit(const Crystal*) "
"-> Error. Parent is not a MesoCrystal"); "-> Error. Parent is not a MesoCrystal");
} }
MesoCrystalItem* mesocrystal_item = polymorphic_cast<MesoCrystalItem*>(item);
auto lattice = sample->transformedLattice(); auto lattice = sample->transformedLattice();
auto vector_a = lattice.getBasisVectorA(); auto vector_a = lattice.getBasisVectorA();
auto vector_b = lattice.getBasisVectorB(); auto vector_b = lattice.getBasisVectorB();
auto vector_c = lattice.getBasisVectorC(); auto vector_c = lattice.getBasisVectorC();
mesocrystal_item->item<VectorItem>(MesoCrystalItem::P_VECTOR_A)->setVector(vector_a); mesocrystal_item->setVectorA(vector_a);
mesocrystal_item->item<VectorItem>(MesoCrystalItem::P_VECTOR_B)->setVector(vector_b); mesocrystal_item->setVectorB(vector_b);
mesocrystal_item->item<VectorItem>(MesoCrystalItem::P_VECTOR_C)->setVector(vector_c); mesocrystal_item->setVectorC(vector_c);
// Since there is no CrystalItem, set the parent map to the MesoCrystalItem // Since there is no CrystalItem, set the parent map to the MesoCrystalItem
m_levelToParentItem[depth()] = mesocrystal_item; m_levelToParentItem[depth()] = mesocrystal_item;
......
...@@ -135,3 +135,18 @@ ItemWithParticles* MesoCrystalItem::basisParticle() const ...@@ -135,3 +135,18 @@ ItemWithParticles* MesoCrystalItem::basisParticle() const
{ {
return dynamic_cast<ItemWithParticles*>(getItem(T_BASIS_PARTICLE)); return dynamic_cast<ItemWithParticles*>(getItem(T_BASIS_PARTICLE));
} }
void MesoCrystalItem::setVectorA(const kvector_t& vector_a)
{
item<VectorItem>(P_VECTOR_A)->setVector(vector_a);
}
void MesoCrystalItem::setVectorB(const kvector_t& vector_b)
{
item<VectorItem>(P_VECTOR_B)->setVector(vector_b);
}
void MesoCrystalItem::setVectorC(const kvector_t& vector_c)
{
item<VectorItem>(P_VECTOR_C)->setVector(vector_c);
}
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#define BORNAGAIN_GUI_MODELS_MESOCRYSTALITEM_H #define BORNAGAIN_GUI_MODELS_MESOCRYSTALITEM_H
#include "GUI/Models/ItemWithParticles.h" #include "GUI/Models/ItemWithParticles.h"
#include "Base/Vector/Vectors3D.h"
#include "Sample/Lattice/Lattice3D.h" #include "Sample/Lattice/Lattice3D.h"
class FormFactorItem; class FormFactorItem;
...@@ -28,12 +29,11 @@ class BA_CORE_API_ MesoCrystalItem : public ItemWithParticles { ...@@ -28,12 +29,11 @@ class BA_CORE_API_ MesoCrystalItem : public ItemWithParticles {
private: private:
static const QString P_OUTER_SHAPE; static const QString P_OUTER_SHAPE;
static const QString T_BASIS_PARTICLE; static const QString T_BASIS_PARTICLE;
public:
static const QString P_VECTOR_A; static const QString P_VECTOR_A;
static const QString P_VECTOR_B; static const QString P_VECTOR_B;
static const QString P_VECTOR_C; static const QString P_VECTOR_C;
public:
static const QString M_TYPE; static const QString M_TYPE;
MesoCrystalItem(); MesoCrystalItem();
...@@ -47,6 +47,10 @@ public: ...@@ -47,6 +47,10 @@ public:
template <typename T> T* setOuterShapeType(); template <typename T> T* setOuterShapeType();
ItemWithParticles* basisParticle() const; ItemWithParticles* basisParticle() const;
void setVectorA(const kvector_t& vector_a);
void setVectorB(const kvector_t& vector_b);
void setVectorC(const kvector_t& vector_c);
}; };
template <typename T> T* MesoCrystalItem::setOuterShapeType() template <typename T> T* MesoCrystalItem::setOuterShapeType()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment