diff --git a/Core/Computation/MainComputation.cpp b/Core/Computation/MainComputation.cpp index abda87a9ed9a0511c6af35a710dffdb80e1db728..9cb3d542535da957bddd0c804a29c8e3d385e981 100644 --- a/Core/Computation/MainComputation.cpp +++ b/Core/Computation/MainComputation.cpp @@ -44,8 +44,8 @@ MainComputation::MainComputation( , m_progress(&progress) , m_begin_it(begin_it) , m_end_it(end_it) - , mP_fresnel_map(createFresnelMap(mP_multi_layer.get())) { + mP_fresnel_map.reset(createFresnelMap()); bool polarized = mP_multi_layer->containsMagneticMaterial(); size_t nLayers = mP_multi_layer->numberOfLayers(); for (size_t i=0; i<nLayers; ++i) { @@ -97,12 +97,12 @@ void MainComputation::runProtected() } } -IFresnelMap* MainComputation::createFresnelMap(const MultiLayer* p_multilayer) +IFresnelMap* MainComputation::createFresnelMap() { - if (!p_multilayer->requiresMatrixRTCoefficients()) - return new ScalarFresnelMap(*p_multilayer); + if (!mP_multi_layer->requiresMatrixRTCoefficients()) + return new ScalarFresnelMap(*mP_multi_layer); else - return new MatrixFresnelMap(*p_multilayer); + return new MatrixFresnelMap(*mP_multi_layer); } void MainComputation::adjustFresnelMap() diff --git a/Core/Computation/MainComputation.h b/Core/Computation/MainComputation.h index cb42ff7dfc4c7a67014dbda38c6427d515c7f648..5aff04332a3f687a2cb25acff0c3a69e311679f5 100644 --- a/Core/Computation/MainComputation.h +++ b/Core/Computation/MainComputation.h @@ -55,7 +55,7 @@ public: private: void runProtected(); - static IFresnelMap* createFresnelMap(const MultiLayer* p_multilayer); + IFresnelMap* createFresnelMap(); // corrects used materials in the Fresnel map to the average materials void adjustFresnelMap(); bool checkRegions(const std::vector<HomogeneousRegion>& regions) const;