diff --git a/Core/Computation/ParticleLayoutComputation.cpp b/Core/Computation/ParticleLayoutComputation.cpp index e4d21fbd1664f8f5cfb3bb4131bce8803a038e5c..73590d66e31c8e872e6aadac0ae6448d48e6b585 100644 --- a/Core/Computation/ParticleLayoutComputation.cpp +++ b/Core/Computation/ParticleLayoutComputation.cpp @@ -50,9 +50,11 @@ bool ParticleLayoutComputation::eval( return false; double alpha_f = it->getAlphaMean(); size_t n_layers = mp_multilayer->getNumberOfLayers(); - if (n_layers > 1 && alpha_f < 0) // skip transmission for multilayers (n>1) - continue; - it->setIntensity(p_strategy->evaluate(*it) * total_surface_density); + if (n_layers > 1 && alpha_f < 0) { + it->setIntensity(0.0); // zero for transmission with multilayers (n>1) + } else { + it->setIntensity(p_strategy->evaluate(*it) * total_surface_density); + } counter.stepProgress(progress); } return true; diff --git a/Core/Computation/SpecularComputation.cpp b/Core/Computation/SpecularComputation.cpp index 71756faf5be9c675af353b2e2136317231743d7d..59b12f1e6d3cb2ec95763f04ca6b98b4fb77ae46 100644 --- a/Core/Computation/SpecularComputation.cpp +++ b/Core/Computation/SpecularComputation.cpp @@ -42,6 +42,8 @@ bool SpecularComputation::eval( continue; double intensity = std::norm(R)*sin_alpha_i/solid_angle; it->setIntensity(intensity); + } else { + it->setIntensity(0.0); } } return true;