16 #error no need to expose this header to Swig
20 #ifndef BORNAGAIN_DEVICE_COORD_COORDSYSTEM2D_H
21 #define BORNAGAIN_DEVICE_COORD_COORDSYSTEM2D_H
36 double wavelength = 0);
43 size_t axisSize(
size_t i_axis)
const override;
54 void addAxisData(std::string name,
double min,
double max,
size_t nbins);
83 std::vector<std::map<Coords, std::string>>
createNameMaps()
const override;
93 const Direction& direction,
double wavelength);
105 std::vector<std::map<Coords, std::string>>
createNameMaps()
const override;
126 std::vector<std::map<Coords, std::string>>
createNameMaps()
const override;
148 std::vector<std::map<Coords, std::string>>
createNameMaps()
const override;
Defines interface ICoordSystem and possible axis units.
Defines and implements templated class OwningVector.
An incident neutron or x-ray beam.
Interface for objects that provide axis translations to different units for IDetector objects.
~CoordSystem2D() override=default
OwningVector< IAxis > m_axes
size_t axisSize(size_t i_axis) const override
size_t rank() const override
virtual double calculateValue(size_t i_axis, Coords units, double value) const =0
void addAxisData(std::string name, double min, double max, size_t nbins)
std::vector< Coords > availableUnits() const override
Returns list of units that are available for all 2D detectors. Further units may be added by child cl...
CoordSystem2D(const Direction &direction, double wavelength=0)
double calculateMin(size_t i_axis, Coords units) const override
double calculateMax(size_t i_axis, Coords units) const override
IAxis * createConvertedAxis(size_t i_axis, Coords units) const override
DepthProbeCoordinates class handles the unit translations for depth probe simulations Its default uni...
DepthProbeCoordinates(const OwningVector< IAxis > &axes, const Direction &direction, double wavelength)
std::vector< Coords > availableUnits() const override
Returns list of units that are available for all 2D detectors. Further units may be added by child cl...
DepthProbeCoordinates * clone() const override
~DepthProbeCoordinates() override
Coords defaultUnits() const override
double calculateValue(size_t, Coords units, double value) const override
std::vector< std::map< Coords, std::string > > createNameMaps() const override
A direction in three-dimensional space.
Abstract base class for one-dimensional axes.
Interface to provide axis translations to different units for simulation output.
ICoordSystem class that handles the unit translations for rectangular detectors Its default units are...
std::vector< Coords > availableUnits() const override
Returns list of units that are available for all 2D detectors. Further units may be added by child cl...
Coords defaultUnits() const override
double calculateValue(size_t i_axis, Coords units, double value) const override
ImageCoords(const OwningVector< IAxis > &axes, RectangularPixel *regionOfInterestPixel, const Direction &direction, double wavelength)
std::unique_ptr< RectangularPixel > m_detector_pixel
std::vector< std::map< Coords, std::string > > createNameMaps() const override
ImageCoords * clone() const override
ICoordSystem class that handles the unit translations for off-specular simulations with a spherical d...
OffspecCoordinates * clone() const override
OffspecCoordinates(const OwningVector< IAxis > &axes, const Direction &direction)
Coords defaultUnits() const override
double calculateValue(size_t i_axis, Coords units, double value) const override
std::vector< std::map< Coords, std::string > > createNameMaps() const override
A pixel in a RectangularDetector.
ICoordSystem class that handles the unit translations for spherical detectors Its default units are r...
std::vector< Coords > availableUnits() const override
Returns list of units that are available for all 2D detectors. Further units may be added by child cl...
std::vector< std::map< Coords, std::string > > createNameMaps() const override
SphericalCoords * clone() const override
SphericalCoords(const OwningVector< IAxis > &axes, const Direction &direction, double wavelength)
Coords defaultUnits() const override
double calculateValue(size_t i_axis, Coords units, double value) const override
~SphericalCoords() override