Skip to content
Snippets Groups Projects
Commit f19bd1bf authored by Matthias Puchner's avatar Matthias Puchner
Browse files

complete MesoCrystalItem's serialization

parent cdc28b8b
No related branches found
No related tags found
1 merge request!573Sample item serialization
......@@ -15,9 +15,12 @@
#include "GUI/Model/Sample/MesoCrystalItem.h"
#include "GUI/Model/Sample/FormFactorItemCatalog.h"
#include "GUI/Model/Sample/FormFactorItems.h"
#include "GUI/Model/Sample/ItemWithParticlesCatalog.h"
#include "GUI/Model/Sample/ParticleCompositionItem.h"
#include "GUI/Model/Sample/ParticleCoreShellItem.h"
#include "GUI/Model/Sample/ParticleItem.h"
#include "GUI/Model/Sample/RotationItemCatalog.h"
#include "GUI/Model/Session/Serializer.h"
#include "GUI/Util/Error.h"
#include "Sample/Particle/Crystal.h"
#include "Sample/Particle/IBornFF.h"
......@@ -45,6 +48,20 @@ MesoCrystalItem::MesoCrystalItem() : ItemWithParticles(abundance_tooltip, positi
Unit::nanometer, "vectorC");
m_outerShape.init<FormFactorItemCatalog>("Outer Shape", "", "outerShape");
m_basisParticle.init<ItemWithParticlesCatalog>("Basis", "", "basis");
}
void MesoCrystalItem::serialize(Serializer& s)
{
s.assertVersion(0);
s.rw(m_abundance);
s.rw(m_position);
s.rw<RotationItemCatalog>(m_rotation);
s.rw(m_vectorA);
s.rw(m_vectorB);
s.rw(m_vectorC);
s.rw<FormFactorItemCatalog>(m_outerShape);
s.rw<ItemWithParticlesCatalog>(m_basisParticle);
}
std::unique_ptr<MesoCrystal> MesoCrystalItem::createMesoCrystal() const
......@@ -114,7 +131,7 @@ ItemWithParticles* MesoCrystalItem::basisParticle() const
void MesoCrystalItem::setBasis(ItemWithParticles* basis)
{
m_basisParticle.reset(basis);
m_basisParticle.set(basis);
}
void MesoCrystalItem::setVectorA(const R3& v)
......
......@@ -29,6 +29,7 @@ class MesoCrystal;
class MesoCrystalItem : public ItemWithParticles {
public:
MesoCrystalItem();
void serialize(Serializer& s) override;
std::unique_ptr<MesoCrystal> createMesoCrystal() const;
......@@ -60,7 +61,7 @@ private:
VectorProperty m_vectorB;
VectorProperty m_vectorC;
SelectionProperty<FormFactorItem*> m_outerShape;
std::unique_ptr<ItemWithParticles> m_basisParticle;
SelectionProperty<ItemWithParticles*> m_basisParticle;
};
template <typename T> T* MesoCrystalItem::setOuterShapeType()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment