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
44 return getCoefficients(sim_element.getKi(), layer_index);
47 virtual void setSlices(
const std::vector<Slice>& slices);
48 const std::vector<Slice>& slices()
const;
54 virtual std::unique_ptr<const ILayerRTCoefficients>
55 getCoefficients(
const kvector_t& kvec,
size_t layer_index)
const = 0;
57 std::vector<Slice> m_slices;
60 std::unique_ptr<ISpecularStrategy> m_Strategy;
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.
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::unique_ptr< const ILayerRTCoefficients > getInCoefficients(const T &sim_element, size_t layer_index) const
Retrieves the amplitude coefficients for an incoming wavevector.
Data stucture containing both input and output of a single detector cell.