16 #error no need to expose this header to Swig
20 #ifndef BORNAGAIN_RESAMPLE_ELEMENT_SPECULARELEMENT_H
21 #define BORNAGAIN_RESAMPLE_ELEMENT_SPECULARELEMENT_H
25 #include <heinz/Complex.h>
26 #include <heinz/Vectors3D.h>
57 std::function<std::vector<complex_t>(
const SliceStack&)> kz_comp);
Defines class DiffuseElement.
const PolMatrices & polMatrices() const
Returns polarizer and analyzer matrices.
Convenience class for handling polarization density matrix and polarization analyzer operator.
Data stucture containing both input and output of a single image pixel for specular simulation.
double m_intensity
simulated intensity for detector cell
bool isCalculated() const
Returns calculation flag (if it's false, zero intensity is assigned to the element)
void setIntensity(double intensity)
std::vector< complex_t > produceKz(const SliceStack &slices)
Returns kz values for Abeles computation of reflection/transition coefficients.
SpecularElement(const SpecularElement &other)=delete
const std::function< std::vector< complex_t >const SliceStack &)> m_kz_computation
SpecularElement(SpecularElement &&other)
static SpecularElement FromAlphaScan(double wavelength, double alpha, const PolMatrices &polMatrices, bool computable)
static SpecularElement FromQzScan(double kz, const PolMatrices &polMatrices, bool computable)