15 #ifndef BORNAGAIN_CORE_MULTILAYER_IFRESNELMAP_H
16 #define BORNAGAIN_CORE_MULTILAYER_IFRESNELMAP_H
32 IFresnelMap(std::unique_ptr<ISpecularStrategy> strategy);
36 virtual std::unique_ptr<const ILayerRTCoefficients>
42 size_t layer_index)
const
48 const std::vector<Slice>&
slices()
const;
54 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.