16 #error no need to expose this header to Swig
20 #ifndef BORNAGAIN_DEVICE_COORD_COORDSYSTEM1D_H
21 #define BORNAGAIN_DEVICE_COORD_COORDSYSTEM1D_H
41 size_t rank()
const override {
return 1u; }
44 size_t axisSize(
size_t i_axis)
const override;
89 std::vector<std::map<Coords, std::string>>
createNameMaps()
const override;
116 std::vector<std::map<Coords, std::string>>
createNameMaps()
const override;
Defines interface ICoordSystem and possible axis units.
Conversion of axis units for the case of conventional (angle-based) reflectometry.
AngularReflectometryCoordinates * clone() const override
std::vector< Coords > availableUnits() const override
Returns the list of all available units.
AngularReflectometryCoordinates(double wavelength, const IAxis &axis, Coords axis_units=Coords::RADIANS)
Constructs the object for unit conversion.
double m_wavelength
basic wavelength in nm (for translation to q-space).
std::function< double(double)> getTraslatorTo(Coords units) const override
Returns translating functional (rads --> desired units)
~AngularReflectometryCoordinates() override
std::vector< std::map< Coords, std::string > > createNameMaps() const override
Creates name map for axis in various units.
Coords defaultUnits() const override
Returns default units to convert to.
Abstract base class to support coordinate transforms and axis labels for 1D scans....
const IAxis * coordinateAxis() const
double calculateMax(size_t i_axis, Coords units) const override
Calculates maximum on-axis value in given units.
virtual std::function< double(double)> getTraslatorTo(Coords units) const =0
Returns translating functional (rads --> output units)
std::unique_ptr< const IAxis > m_axis
semantics depends on subclass
size_t rank() const override
Returns dimensionality of converted canvas.
double calculateMin(size_t i_axis, Coords units) const override
Calculates minimum on-axis value in given units.
~CoordSystem1D() override=default
CoordSystem1D(const IAxis *&&axis)
Takes ownership of axis.
IAxis * createConvertedAxis(size_t i_axis, Coords units) const override
Creates axis in converted units.
size_t axisSize(size_t i_axis) const override
Returns the size of underlying axis.
CoordSystem1D * clone() const override=0
Datafield * createConvertedData(const Datafield &data, Coords units) const override
Creates Datafield array in converter units.
Stores radiation power per bin.
Abstract base class for one-dimensional axes.
Interface to provide axis translations to different units for simulation output.
Abstract base class for all types of specular scans.
Conversion of axis units for the case of q-defined reflectometry.
std::vector< Coords > availableUnits() const override
Returns the list of all available units.
WavenumberReflectometryCoordinates * clone() const override
Coords defaultUnits() const override
Returns default units to convert to.
~WavenumberReflectometryCoordinates() override
std::vector< std::map< Coords, std::string > > createNameMaps() const override
Creates name map for axis in various units.
WavenumberReflectometryCoordinates(const IAxis *&&axis)
std::function< double(double)> getTraslatorTo(Coords units) const override
Returns translating functional (inv. nm --> desired units)