LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
Index manager for a container of data arranged on a DIMS-dimension grid. More...
#include "GridContainerIndices.h"
Public Types | |
using | CellIndex_t = typename IndexManager_t::LinIndex_t |
type of index for direct access to the cell More... | |
using | CellIndexOffset_t = std::ptrdiff_t |
type of difference between indices More... | |
using | CellDimIndex_t = CellIndexOffset_t |
type of difference between indices along a dimension More... | |
using | CellID_t = std::array< CellDimIndex_t, dims()> |
type of cell coordinate (x, y, z) More... | |
Public Member Functions | |
GridContainerIndicesBase (std::array< size_t, dims()> const &new_dims) | |
Constructor: specifies the size of the container and allocates it. More... | |
Grid structure | |
bool | has (CellIndexOffset_t index) const |
Returns whether the specified index is valid. More... | |
size_t | size () const |
Returns the number of cells in the grid. More... | |
Indexing | |
CellIndex_t | operator[] (CellID_t id) const |
Returns the index of the element from its cell coordinates (no check!) More... | |
CellIndexOffset_t | offset (CellID_t const &origin, CellID_t const &cellID) const |
Returns the difference in index of cellID respect to origin. More... | |
Static Public Member Functions | |
static constexpr unsigned int | dims () |
Returns the number of dimensions in this object. More... | |
Protected Member Functions | |
CellIndex_t | index (CellID_t id) const |
Returns the index of the element from its cell coordinates (no check!) More... | |
Protected Attributes | |
IndexManager_t | indices |
the actual worker More... | |
Private Types | |
using | IndexManager_t = util::TensorIndices< DIMS > |
Index manager for a container of data arranged on a DIMS-dimension grid.
Definition at line 34 of file GridContainerIndices.h.
using util::details::GridContainerIndicesBase< DIMS >::CellDimIndex_t = CellIndexOffset_t |
type of difference between indices along a dimension
Definition at line 48 of file GridContainerIndices.h.
using util::details::GridContainerIndicesBase< DIMS >::CellID_t = std::array<CellDimIndex_t, dims()> |
type of cell coordinate (x, y, z)
Definition at line 51 of file GridContainerIndices.h.
using util::details::GridContainerIndicesBase< DIMS >::CellIndex_t = typename IndexManager_t::LinIndex_t |
type of index for direct access to the cell
Definition at line 42 of file GridContainerIndices.h.
using util::details::GridContainerIndicesBase< DIMS >::CellIndexOffset_t = std::ptrdiff_t |
type of difference between indices
Definition at line 45 of file GridContainerIndices.h.
|
private |
Definition at line 35 of file GridContainerIndices.h.
|
inline |
Constructor: specifies the size of the container and allocates it.
Definition at line 54 of file GridContainerIndices.h.
|
inlinestatic |
Returns the number of dimensions in this object.
Definition at line 39 of file GridContainerIndices.h.
|
inline |
Returns whether the specified index is valid.
Definition at line 62 of file GridContainerIndices.h.
References util::TensorIndices< RANK >::hasLinIndex(), and util::details::GridContainerIndicesBase< DIMS >::indices.
|
inlineprotected |
Returns the index of the element from its cell coordinates (no check!)
Definition at line 87 of file GridContainerIndices.h.
References util::begin(), and util::details::GridContainerIndicesBase< DIMS >::indices.
Referenced by util::GridContainerIndicesBase1D< DIMS >::hasX(), util::GridContainerIndicesBase2D< DIMS >::hasY(), util::GridContainerIndicesBase3D< DIMS >::hasZ(), util::details::GridContainerIndicesBase< DIMS >::offset(), and util::details::GridContainerIndicesBase< DIMS >::operator[]().
|
inline |
Returns the difference in index of cellID respect to origin.
Definition at line 76 of file GridContainerIndices.h.
References util::details::GridContainerIndicesBase< DIMS >::index().
|
inline |
Returns the index of the element from its cell coordinates (no check!)
Definition at line 73 of file GridContainerIndices.h.
References util::details::GridContainerIndicesBase< DIMS >::index().
|
inline |
Returns the number of cells in the grid.
Definition at line 65 of file GridContainerIndices.h.
References util::details::GridContainerIndicesBase< DIMS >::indices, and util::TensorIndices< RANK >::size().
|
protected |
the actual worker
Definition at line 84 of file GridContainerIndices.h.
Referenced by util::details::GridContainerIndicesBase< DIMS >::has(), util::details::GridContainerIndicesBase< DIMS >::index(), and util::details::GridContainerIndicesBase< DIMS >::size().