From cdc28b8bddfde04c8610746e3e5d70a52779fddd Mon Sep 17 00:00:00 2001
From: Matthias Puchner <github@mpuchner.de>
Date: Mon, 20 Dec 2021 16:35:03 +0100
Subject: [PATCH] complete ParticleCompositionItem's serialization

---
 GUI/Model/Sample/ParticleCompositionItem.cpp | 15 ++++++++++++---
 GUI/Model/Sample/ParticleCompositionItem.h   |  1 +
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/GUI/Model/Sample/ParticleCompositionItem.cpp b/GUI/Model/Sample/ParticleCompositionItem.cpp
index 40159e6dc66..0281e24241b 100644
--- a/GUI/Model/Sample/ParticleCompositionItem.cpp
+++ b/GUI/Model/Sample/ParticleCompositionItem.cpp
@@ -13,12 +13,12 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Sample/ParticleCompositionItem.h"
+#include "GUI/Model/Sample/ItemWithParticlesCatalog.h"
 #include "GUI/Model/Sample/MesoCrystalItem.h"
 #include "GUI/Model/Sample/ParticleCoreShellItem.h"
 #include "GUI/Model/Sample/ParticleItem.h"
-#include "GUI/Model/Session/SessionItemUtils.h"
-#include "GUI/Model/Types/DoubleDescriptor.h"
-#include "GUI/Model/Types/VectorItem.h"
+#include "GUI/Model/Sample/RotationItemCatalog.h"
+#include "GUI/Model/Session/Serializer.h"
 #include "Sample/Particle/MesoCrystal.h"
 #include "Sample/Particle/Particle.h"
 #include "Sample/Particle/ParticleCoreShell.h"
@@ -39,6 +39,15 @@ ParticleCompositionItem::ParticleCompositionItem()
 {
 }
 
+void ParticleCompositionItem::serialize(Serializer& s)
+{
+    s.assertVersion(0);
+    s.rw(m_abundance);
+    s.rw(m_position);
+    s.rw<RotationItemCatalog>(m_rotation);
+    s.rw<ItemWithParticlesCatalog>("Particles", m_particles);
+}
+
 std::unique_ptr<ParticleComposition> ParticleCompositionItem::createParticleComposition() const
 {
     auto P_composition = std::make_unique<ParticleComposition>();
diff --git a/GUI/Model/Sample/ParticleCompositionItem.h b/GUI/Model/Sample/ParticleCompositionItem.h
index b5232119c00..937ed92b024 100644
--- a/GUI/Model/Sample/ParticleCompositionItem.h
+++ b/GUI/Model/Sample/ParticleCompositionItem.h
@@ -22,6 +22,7 @@
 class ParticleCompositionItem : public ItemWithParticles {
 public:
     ParticleCompositionItem();
+    void serialize(Serializer& s) override;
 
     std::unique_ptr<ParticleComposition> createParticleComposition() const;
 
-- 
GitLab