16 #error no need to expose this header to Swig
20 #ifndef BORNAGAIN_SAMPLE_FRESNEL_IFRESNELMAP_H
21 #define BORNAGAIN_SAMPLE_FRESNEL_IFRESNELMAP_H
36 IFresnelMap(std::unique_ptr<ISpecularStrategy> strategy);
40 virtual std::unique_ptr<const ILayerRTCoefficients>
46 size_t layer_index)
const
52 const std::vector<Slice>&
slices()
const;
58 virtual std::unique_ptr<const ILayerRTCoefficients>
Defines and implements class ISpecularStrategy.
Holds the necessary information to calculate the radiation wavefunction in every layer for different ...
void disableCaching()
Disables caching of previously computed Fresnel coefficients.
IFresnelMap(std::unique_ptr< ISpecularStrategy > strategy)
virtual std::unique_ptr< const ILayerRTCoefficients > getOutCoefficients(const SimulationElement &sim_element, size_t layer_index) const =0
Retrieves the amplitude coefficients for a (time-reversed) outgoing wavevector.
std::vector< Slice > m_slices
virtual void setSlices(const std::vector< Slice > &slices)
std::unique_ptr< ISpecularStrategy > m_Strategy
std::unique_ptr< const ILayerRTCoefficients > getInCoefficients(const T &sim_element, size_t layer_index) const
Retrieves the amplitude coefficients for an incoming wavevector.
const std::vector< Slice > & slices() const
virtual std::unique_ptr< const ILayerRTCoefficients > getCoefficients(const kvector_t &kvec, size_t layer_index) const =0
Data stucture containing both input and output of a single detector cell.