diff --git a/Sample/Multilayer/Layer.cpp b/Sample/Multilayer/Layer.cpp index 739a3d12f1e61f5ef2c1dd8edf5c5b69b1243882..1b4082caf68b6bf02b0dfbd4c9f4d42f3c8e44a0 100644 --- a/Sample/Multilayer/Layer.cpp +++ b/Sample/Multilayer/Layer.cpp @@ -42,8 +42,8 @@ Layer* Layer::clone() const std::vector<const INode*> Layer::nodeChildren() const { std::vector<const INode*> result; - for (const auto& layout : m_layouts) - result.push_back(layout.get()); + for (const auto* layout : m_layouts) + result.push_back(layout); return result; } @@ -55,8 +55,8 @@ void Layer::addLayout(const ParticleLayout& layout) std::vector<const ParticleLayout*> Layer::layouts() const { std::vector<const ParticleLayout*> result; - for (const auto& layout : m_layouts) - result.push_back(layout.get()); + for (const auto* layout : m_layouts) + result.push_back(layout); return result; } diff --git a/Sample/Multilayer/Layer.h b/Sample/Multilayer/Layer.h index 4d09e9eed21bcb96af8a0ab8b14f15d6f923aec9..9f01c2fcb4223c8857d7b1bb4081e40ff3d28e28 100644 --- a/Sample/Multilayer/Layer.h +++ b/Sample/Multilayer/Layer.h @@ -16,6 +16,7 @@ #define BORNAGAIN_SAMPLE_MULTILAYER_LAYER_H #include "Sample/Material/Material.h" +#include "Base/Types/OwningVector.h" #include "Sample/Scattering/ISampleNode.h" class ParticleLayout; @@ -47,10 +48,10 @@ public: std::string validate() const override; private: - Material m_material; //!< material - R3 m_B_field; //!< cached value of magnetic induction - double m_thickness; //!< layer thickness in nanometers - std::vector<std::unique_ptr<ParticleLayout>> m_layouts; //!< independent layouts in this layer + Material m_material; //!< material + R3 m_B_field; //!< cached value of magnetic induction + double m_thickness; //!< layer thickness in nanometers + OwningVector<ParticleLayout> m_layouts; //!< independent layouts in this layer unsigned int m_n_slices = 1; //!< number of slices to create for graded layer approach };