16 #error no need to expose this header to Swig
20 #ifndef BORNAGAIN_DEVICE_COORD_ICOORDSYSTEM_H
21 #define BORNAGAIN_DEVICE_COORD_ICOORDSYSTEM_H
46 virtual size_t rank()
const = 0;
50 virtual size_t axisSize(
size_t i_axis)
const = 0;
67 [[noreturn]]
void throwUnitsError(std::string method, std::vector<Coords> available)
const;
70 virtual std::vector<std::map<Coords, std::string>>
createNameMaps()
const = 0;
Defines and implements the standard mix-in ICloneable.
Stores radiation power per bin.
Abstract base class for one-dimensional axes.
Interface for polymorphic classes that should not be copied, except by explicit cloning.
Interface to provide axis translations to different units for simulation output.
std::vector< IAxis * > defaultAxes() const
Coords substituteDefaultUnits(Coords units) const
virtual double calculateMax(size_t i_axis, Coords units) const =0
virtual Datafield * createConvertedData(const Datafield &data, Coords units) const
Creates Datafield array in converter units.
ICoordSystem * clone() const override=0
virtual size_t axisSize(size_t i_axis) const =0
virtual IAxis * createConvertedAxis(size_t i_axis, Coords units) const =0
virtual double calculateMin(size_t i_axis, Coords units) const =0
virtual std::vector< std::map< Coords, std::string > > createNameMaps() const =0
virtual Coords defaultUnits() const =0
std::string axisName(size_t i_axis, Coords units=Coords::UNDEFINED) const
void throwUnitsError(std::string method, std::vector< Coords > available) const
std::vector< IAxis * > convertedAxes(Coords units) const
virtual std::vector< Coords > availableUnits() const =0
virtual size_t rank() const =0