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

---
 GUI/Model/Sample/ParticleItem.cpp | 16 +++++++++++-----
 GUI/Model/Sample/ParticleItem.h   |  1 +
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/GUI/Model/Sample/ParticleItem.cpp b/GUI/Model/Sample/ParticleItem.cpp
index 1e730bebcd8..380bd82e1a0 100644
--- a/GUI/Model/Sample/ParticleItem.cpp
+++ b/GUI/Model/Sample/ParticleItem.cpp
@@ -13,16 +13,13 @@
 //  ************************************************************************************************
 
 #include "GUI/Model/Sample/ParticleItem.h"
-#include "GUI/Model/Group/GroupItem.h"
 #include "GUI/Model/Job/JobItem.h"
-#include "GUI/Model/Job/JobModelFunctions.h"
 #include "GUI/Model/Material/MaterialItem.h"
 #include "GUI/Model/Sample/FormFactorItemCatalog.h"
 #include "GUI/Model/Sample/FormFactorItems.h"
 #include "GUI/Model/Sample/ParticleCoreShellItem.h"
-#include "GUI/Model/Sample/ParticleLayoutItem.h"
-#include "GUI/Model/Session/SessionItemUtils.h"
-#include "GUI/Model/Types/VectorItem.h"
+#include "GUI/Model/Sample/RotationItemCatalog.h"
+#include "GUI/Model/Session/Serializer.h"
 #include "Sample/Particle/Particle.h"
 
 namespace {
@@ -41,6 +38,15 @@ ParticleItem::ParticleItem() : ItemWithParticles(abundance_tooltip, position_too
     m_formFactor.set(new CylinderItem());
 }
 
+void ParticleItem::serialize(Serializer& s)
+{
+    s.assertVersion(0);
+    s.rw(m_abundance);
+    s.rw(m_position);
+    s.rw<RotationItemCatalog>(m_rotation);
+    s.rw<FormFactorItemCatalog>(m_formFactor);
+}
+
 std::unique_ptr<Particle> ParticleItem::createParticle() const
 {
     auto domainMaterial = materialItem()->createMaterial();
diff --git a/GUI/Model/Sample/ParticleItem.h b/GUI/Model/Sample/ParticleItem.h
index 29b6e19d92e..5eafe2ee829 100644
--- a/GUI/Model/Sample/ParticleItem.h
+++ b/GUI/Model/Sample/ParticleItem.h
@@ -28,6 +28,7 @@ class VectorItem;
 class ParticleItem : public ItemWithMaterial, public ItemWithParticles {
 public:
     ParticleItem();
+    void serialize(Serializer& s) override;
 
     std::unique_ptr<Particle> createParticle() const;
 
-- 
GitLab