15 #ifndef BORNAGAIN_CORE_INTENSITY_SIMPLEUNITCONVERTERS_H
16 #define BORNAGAIN_CORE_INTENSITY_SIMPLEUNITCONVERTERS_H
37 virtual size_t dimension()
const final;
39 double calculateMin(
size_t i_axis, Axes::Units units_type)
const final;
40 double calculateMax(
size_t i_axis, Axes::Units units_type)
const final;
41 size_t axisSize(
size_t i_axis)
const final;
46 std::unique_ptr<IAxis> createConvertedAxis(
size_t i_axis, Axes::Units units)
const final;
50 void addDetectorAxis(
const IDetector& detector,
size_t i_axis);
52 void addAxisData(std::string name,
double min,
double max, Axes::Units default_units,
59 Axes::Units default_units;
62 std::vector<AxisData> m_axis_data_table;
69 virtual double calculateValue(
size_t i_axis, Axes::Units units_type,
double value)
const = 0;
88 Axes::Units defaultUnits()
const final;
92 double calculateValue(
size_t i_axis, Axes::Units units_type,
double value)
const final;
93 std::vector<std::map<Axes::Units, std::string>> createNameMaps()
const final;
111 Axes::Units defaultUnits()
const final;
115 double calculateValue(
size_t i_axis, Axes::Units units_type,
double value)
const final;
116 std::vector<std::map<Axes::Units, std::string>> createNameMaps()
const final;
118 double axisAngle(
size_t i_axis,
kvector_t k_f)
const;
119 std::unique_ptr<RectangularPixel> mP_detector_pixel;
135 Axes::Units defaultUnits()
const final;
139 double calculateValue(
size_t i_axis, Axes::Units units_type,
double value)
const final;
140 std::vector<std::map<Axes::Units, std::string>> createNameMaps()
const final;
141 void addDetectorYAxis(
const IDetector2D& detector);
159 Axes::Units defaultUnits()
const final {
return Axes::Units::DEGREES; }
163 double calculateValue(
size_t, Axes::Units units_type,
double value)
const final;
164 std::vector<std::map<Axes::Units, std::string>> createNameMaps()
const final;
165 void checkUnits(Axes::Units units_type)
const;
Defines interface IUnitConverter and possible axis units.
Defines basic vectors in R^3 and C^3.
Beam defined by wavelength, direction and intensity.
DepthProbeConverter class handles the unit translations for depth probe simulations Its default units...
std::vector< Axes::Units > availableUnits() const final
Returns the list of all available units.
Interface for one-dimensional axes.
Abstract 2D detector interface.
Abstract detector interface.
Interface to provide axis translations to different units for simulation output.
IUnitConverter class that handles the unit translations for off-specular simulations with a spherical...
IUnitConverter class that handles the unit translations for rectangular detectors Its default units a...
std::vector< Axes::Units > availableUnits() const final
Returns the list of all available units.
A flat rectangular detector with axes and resolution function.
A pixel in a RectangularDetector.
IUnitConverter class that handles the unit translations for spherical detectors Its default units are...
std::vector< Axes::Units > availableUnits() const final
Returns the list of all available units.
A spherical detector with axes and resolution function.
Interface for objects that provide axis translations to different units for IDetector objects.
std::vector< Axes::Units > availableUnits() const override
Returns the list of all available units.