diff --git a/Sample/Scattering/DecoratedFF.cpp b/Sample/Scattering/DecoratedFF.cpp index bf05e762dc5dd61700c33345aa904f59df028ae9..4b8c9fb5df86f4d364fda37ee679cea401dc6cd5 100644 --- a/Sample/Scattering/DecoratedFF.cpp +++ b/Sample/Scattering/DecoratedFF.cpp @@ -21,19 +21,19 @@ #include "Sample/Scattering/Rotations.h" #include <iostream> -DecoratedFF::DecoratedFF(IBornFF* ff, const Material& material, - const Material& ambient_material, const R3* position, +DecoratedFF::DecoratedFF(IBornFF* ff, const Material* material, + const Material* ambient_material, const R3* position, const RotMatrix* rotMatrix) : m_ff(std::move(ff)) - , m_material(std::make_unique<const Material>(material)) - , m_ambient_material(std::make_unique<Material>(ambient_material)) + , m_material(std::move(material)) + , m_ambient_material(std::move(ambient_material)) , m_position(std::move(position)) , m_rotMatrix(std::move(rotMatrix)) { } DecoratedFF::DecoratedFF(const IBornFF& ff) - : DecoratedFF(ff.clone(), HomogeneousMaterial(), HomogeneousMaterial(), nullptr, nullptr) + : DecoratedFF(ff.clone(), nullptr, nullptr, nullptr, nullptr) { } @@ -41,8 +41,8 @@ DecoratedFF::~DecoratedFF() = default; DecoratedFF* DecoratedFF::clone() const { - return new DecoratedFF(m_ff->clone(), *m_material, - *m_ambient_material, + return new DecoratedFF(m_ff->clone(), m_material ? new Material (*m_material) : nullptr, + m_ambient_material ? new Material(*m_ambient_material) : nullptr, m_position ? new R3(*m_position) : nullptr, m_rotMatrix ? new RotMatrix(*m_rotMatrix) : nullptr); } diff --git a/Sample/Scattering/DecoratedFF.h b/Sample/Scattering/DecoratedFF.h index b0636e5139a2fc5ffe6b2d4f149d1c7f992edfe1..8ebb0a362ffa1d85ee792b7d09ce3d7f94be902e 100644 --- a/Sample/Scattering/DecoratedFF.h +++ b/Sample/Scattering/DecoratedFF.h @@ -70,8 +70,8 @@ protected: std::unique_ptr<const IBornFF> m_ff; //private: - DecoratedFF(IBornFF* ff, const Material& material, - const Material& ambient_material, const R3* position, const RotMatrix* rotMatrix); + DecoratedFF(IBornFF* ff, const Material* material, + const Material* ambient_material, const R3* position, const RotMatrix* rotMatrix); std::unique_ptr<const Material> m_material; std::unique_ptr<const Material> m_ambient_material;