15 #ifndef BORNAGAIN_BASE_AXIS_FRAME_H
16 #define BORNAGAIN_BASE_AXIS_FRAME_H
30 Frame(
const std::vector<IAxis*>& axes);
59 std::vector<int>
allIndices(
size_t i_flat)
const;
71 size_t toGlobalIndex(
const std::vector<unsigned>& axes_indices)
const;
Defines and implements templated class OwningVector.
size_t projectedIndex(size_t i_flat, size_t k_axis) const
Returns axis bin index for given global index.
const IAxis & axis(size_t k_axis) const
Returns axis with given serial number.
size_t size() const
Returns total number of bins.
std::vector< int > allIndices(size_t i_flat) const
Returns vector of axes indices for given global index.
bool operator==(const Frame &) const
Returns true if both Frames have same rank, and all axes are equal.
OwningVector< IAxis > m_axes
size_t toGlobalIndex(const std::vector< unsigned > &axes_indices) const
Returns global index for specified indices of axes.
const IAxis & xAxis() const
size_t projectedSize(size_t k_axis) const
Returns number of bins along axis.
Frame(const std::vector< IAxis * > &axes)
Constructor that takes ownership of supplied axes.
const IAxis & yAxis() const
std::vector< IAxis * > cloned_axes() const
Returns cloned axes.
double projectedCoord(size_t i_flat, size_t k_axis) const
Returns the value of selected axis for given i_flat.
size_t rank() const
Returns number of dimensions.
bool hasSameSizes(const Frame &) const
Returns true if both Frames have same rank, and all axes have same sizes.
Abstract base class for one-dimensional axes.
T *const & at(int i) const