From 5f7ea01eec730517ea69cf900cce9d06c250c281 Mon Sep 17 00:00:00 2001
From: Dmitry Yurov <d.yurov@fz-juelich.de>
Date: Fri, 6 Apr 2018 10:55:12 +0200
Subject: [PATCH] Removed IFresnelMap::fillSpecularData and descendants

Redmine: #2028
---
 Core/Computation/SpecularComputationTerm.cpp | 14 ++++----------
 Core/Computation/SpecularComputationTerm.h   |  2 --
 Core/Multilayer/IFresnelMap.h                |  3 ---
 Core/Multilayer/MatrixFresnelMap.cpp         | 11 -----------
 Core/Multilayer/MatrixFresnelMap.h           |  5 +----
 Core/Multilayer/ScalarFresnelMap.cpp         | 10 ----------
 Core/Multilayer/ScalarFresnelMap.h           |  3 ---
 7 files changed, 5 insertions(+), 43 deletions(-)

diff --git a/Core/Computation/SpecularComputationTerm.cpp b/Core/Computation/SpecularComputationTerm.cpp
index 0b6549fa31d..dcf8f59d914 100644
--- a/Core/Computation/SpecularComputationTerm.cpp
+++ b/Core/Computation/SpecularComputationTerm.cpp
@@ -2,7 +2,6 @@
 #include "ILayerRTCoefficients.h"
 #include "MultiLayer.h"
 #include "SpecularComputationTerm.h"
-#include "SpecularData.h"
 #include "SpecularSimulationElement.h"
 
 SpecularComputationTerm::SpecularComputationTerm(const MultiLayer* p_multi_layer,
@@ -18,13 +17,8 @@ void SpecularComputationTerm::eval(ProgressHandler*, const SpecularElementIter&
         return;
 
     for (auto it = begin_it; it != end_it; ++it)
-        if (it->isCalculated())
-            evalSingle(it);
-}
-
-void SpecularComputationTerm::evalSingle(const SpecularElementIter& iter) const
-{
-    mp_fresnel_map->fillSpecularData(*iter);
-    const ILayerRTCoefficients& layer_data = iter->specularData()[0];
-    iter->setIntensity(std::norm(layer_data.getScalarR()));
+        if (it->isCalculated()) {
+            double intensity = std::norm(mp_fresnel_map->getInCoefficients(*it, 0)->getScalarR());
+            it->setIntensity(intensity);
+        }
 }
diff --git a/Core/Computation/SpecularComputationTerm.h b/Core/Computation/SpecularComputationTerm.h
index e314868554e..1cedf7febfa 100644
--- a/Core/Computation/SpecularComputationTerm.h
+++ b/Core/Computation/SpecularComputationTerm.h
@@ -37,8 +37,6 @@ public:
               const SpecularElementIter& end_it) const;
 
 private:
-    void evalSingle(const SpecularElementIter& iter) const;
-
     const MultiLayer* mp_multilayer;
     const IFresnelMap* mp_fresnel_map;
 };
diff --git a/Core/Multilayer/IFresnelMap.h b/Core/Multilayer/IFresnelMap.h
index 2fb2901439c..7563b2d286a 100644
--- a/Core/Multilayer/IFresnelMap.h
+++ b/Core/Multilayer/IFresnelMap.h
@@ -50,9 +50,6 @@ public:
         return getCoefficients(sim_element.getKi(), layer_index);
     }
 
-    //! Fills simulation element specular data
-    virtual void fillSpecularData(SpecularSimulationElement& sim_element) const = 0;
-
     //! Sets the multilayer to be used for the Fresnel calculations.
     virtual void setMultilayer(const MultiLayer& multilayer);
 
diff --git a/Core/Multilayer/MatrixFresnelMap.cpp b/Core/Multilayer/MatrixFresnelMap.cpp
index f8034f01d26..8da0be8e05a 100644
--- a/Core/Multilayer/MatrixFresnelMap.cpp
+++ b/Core/Multilayer/MatrixFresnelMap.cpp
@@ -19,7 +19,6 @@
 #include "SimulationElement.h"
 #include "SpecularData.h"
 #include "SpecularMagnetic.h"
-#include "SpecularSimulationElement.h"
 
 namespace {
 std::vector<MatrixRTCoefficients> calculateCoefficients(const MultiLayer& multilayer,
@@ -41,16 +40,6 @@ MatrixFresnelMap::getOutCoefficients(const SimulationElement& sim_element, size_
                            m_hash_table_out);
 }
 
-void MatrixFresnelMap::fillSpecularData(SpecularSimulationElement& sim_element) const
-{
-    const auto& kvec = sim_element.getKi();
-    if (m_use_cache)
-        sim_element.setSpecular(
-            SpecularData(getCoefficientsFromCache(kvec, *mP_multilayer, m_hash_table_in)));
-    else
-        sim_element.setSpecular(SpecularData(calculateCoefficients(*mP_multilayer, kvec)));
-}
-
 std::unique_ptr<const ILayerRTCoefficients>
 MatrixFresnelMap::getCoefficients(const kvector_t& kvec, size_t layer_index) const
 {
diff --git a/Core/Multilayer/MatrixFresnelMap.h b/Core/Multilayer/MatrixFresnelMap.h
index a1dbd8dccd7..c1047bcf069 100644
--- a/Core/Multilayer/MatrixFresnelMap.h
+++ b/Core/Multilayer/MatrixFresnelMap.h
@@ -33,7 +33,7 @@ class BA_CORE_API_ MatrixFresnelMap : public IFresnelMap
 {
 public:
     MatrixFresnelMap();
-    virtual ~MatrixFresnelMap();
+    ~MatrixFresnelMap() override;
 
     std::unique_ptr<const ILayerRTCoefficients>
     getOutCoefficients(const SimulationElement& sim_element,
@@ -41,9 +41,6 @@ public:
 
     void setMultilayer(const MultiLayer& multilayer) final override;
 
-    //! Fills simulation element specular data
-    void fillSpecularData(SpecularSimulationElement& sim_element) const override;
-
     typedef std::unordered_map<kvector_t, std::vector<MatrixRTCoefficients>, HashKVector>
         CoefficientHash;
 
diff --git a/Core/Multilayer/ScalarFresnelMap.cpp b/Core/Multilayer/ScalarFresnelMap.cpp
index 2d3fdf806b0..4034889e238 100644
--- a/Core/Multilayer/ScalarFresnelMap.cpp
+++ b/Core/Multilayer/ScalarFresnelMap.cpp
@@ -17,7 +17,6 @@
 #include "ScalarRTCoefficients.h"
 #include "SimulationElement.h"
 #include "SpecularMatrix.h"
-#include "SpecularSimulationElement.h"
 #include "Vectors3D.h"
 
 namespace {
@@ -37,15 +36,6 @@ ScalarFresnelMap::getOutCoefficients(const SimulationElement& sim_element, size_
     return getCoefficients(-sim_element.getMeanKf(), layer_index);
 }
 
-void ScalarFresnelMap::fillSpecularData(SpecularSimulationElement& sim_element) const
-{
-    const auto& kvec = sim_element.getKi();
-    if (m_use_cache)
-        sim_element.setSpecular(SpecularData(getCoefficientsFromCache(kvec)));
-    else
-        sim_element.setSpecular(SpecularData(calculateCoefficients(*mP_multilayer, kvec)));
-}
-
 std::unique_ptr<const ILayerRTCoefficients>
 ScalarFresnelMap::getCoefficients(const kvector_t& kvec, size_t layer_index) const
 {
diff --git a/Core/Multilayer/ScalarFresnelMap.h b/Core/Multilayer/ScalarFresnelMap.h
index 7a5a81e2844..57c357d98b5 100644
--- a/Core/Multilayer/ScalarFresnelMap.h
+++ b/Core/Multilayer/ScalarFresnelMap.h
@@ -39,9 +39,6 @@ public:
     getOutCoefficients(const SimulationElement& sim_element,
                        size_t layer_index) const override;
 
-    //! Fills simulation element specular data
-    void fillSpecularData(SpecularSimulationElement& sim_element) const override;
-
 private:
     std::unique_ptr<const ILayerRTCoefficients> getCoefficients(const kvector_t& kvec,
                                                                 size_t layer_index) const override;
-- 
GitLab