25 #ifndef GRIDCONTAINER_GRIDINDEXHELPER_H
26 #define GRIDCONTAINER_GRIDINDEXHELPER_H
34 namespace GridContainer {
53 template <
typename... AxesTypes>
82 size_t axisIndex(
size_t axis,
size_t array_index)
const;
105 template <
typename Coord>
109 template <
typename Coord,
typename... RestCoords>
126 template <
typename... AxesTypes>
std::vector< size_t > m_axes_index_factors
size_t totalIndex(decltype(std::declval< GridAxis< AxesTypes >>().size())...coords) const
GridIndexHelper(const std::tuple< GridAxis< AxesTypes >...> &axes_tuple)
std::vector< size_t > m_axes_sizes
Helper class for converting multi-dimensional grid coordinates to the index of a long data array and ...
Provides information related with an axis of a GridContainer.
std::vector< std::string > m_axes_names
virtual ~GridIndexHelper()=default
Default destructor.
GridIndexHelper & operator=(GridIndexHelper< AxesTypes...> &&)=default
void checkAllFixedAreZero(const std::map< size_t, size_t > &fixed_indices, Coord coord) const
Checks if any of the given coordinates is fixed and not zero.
size_t totalIndexChecked(decltype(std::declval< GridAxis< AxesTypes >>().size())...coords) const
GridIndexHelper< AxesTypes...> makeGridIndexHelper(const std::tuple< GridAxis< AxesTypes >...> &axes_tuple)
size_t axisIndex(size_t axis, size_t array_index) const