All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Types | List of all members
util::details::GridContainerIndicesBase< DIMS > Class Template Reference

Index manager for a container of data arranged on a DIMS-dimension grid. More...

#include <GridContainerIndices.h>

Inheritance diagram for util::details::GridContainerIndicesBase< DIMS >:
util::GridContainerIndicesBase1D< DIMS > util::GridContainerIndicesBase2D< DIMS > util::GridContainerIndicesBase3D< DIMS >

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

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...
 

Public Attributes

 __pad0__: indices(new_dims.begin()) {} bool has(CellIndexOffset_t index) const { return indices.hasLinIndex(index)
 Constructor: specifies the size of the container and allocates it. 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 >
 

Detailed Description

template<unsigned int DIMS>
class util::details::GridContainerIndicesBase< DIMS >

Index manager for a container of data arranged on a DIMS-dimension grid.

Definition at line 36 of file GridContainerIndices.h.

Member Typedef Documentation

template<unsigned int DIMS>
using util::details::GridContainerIndicesBase< DIMS >::CellDimIndex_t = CellIndexOffset_t

type of difference between indices along a dimension

Definition at line 50 of file GridContainerIndices.h.

template<unsigned int DIMS>
using util::details::GridContainerIndicesBase< DIMS >::CellID_t = std::array<CellDimIndex_t, dims()>

type of cell coordinate (x, y, z)

Definition at line 53 of file GridContainerIndices.h.

template<unsigned int DIMS>
using util::details::GridContainerIndicesBase< DIMS >::CellIndex_t = typename IndexManager_t::LinIndex_t

type of index for direct access to the cell

Definition at line 44 of file GridContainerIndices.h.

template<unsigned int DIMS>
using util::details::GridContainerIndicesBase< DIMS >::CellIndexOffset_t = std::ptrdiff_t

type of difference between indices

Definition at line 47 of file GridContainerIndices.h.

template<unsigned int DIMS>
using util::details::GridContainerIndicesBase< DIMS >::IndexManager_t = util::TensorIndices<DIMS>
private

Definition at line 37 of file GridContainerIndices.h.

Member Function Documentation

template<unsigned int DIMS>
static constexpr unsigned int util::details::GridContainerIndicesBase< DIMS >::dims ( )
inlinestatic

Returns the number of dimensions in this object.

Definition at line 41 of file GridContainerIndices.h.

41 { return DIMS; }
template<unsigned int DIMS>
CellIndex_t util::details::GridContainerIndicesBase< DIMS >::index ( CellID_t  id) const
inlineprotected

Returns the index of the element from its cell coordinates (no check!)

Definition at line 89 of file GridContainerIndices.h.

90  { return indices(id.begin()); }
IndexManager_t indices
the actual worker
decltype(auto) constexpr begin(T &&obj)
ADL-aware version of std::begin.
Definition: StdUtils.h:72
template<unsigned int DIMS>
CellIndexOffset_t util::details::GridContainerIndicesBase< DIMS >::offset ( CellID_t const &  origin,
CellID_t const &  cellID 
) const
inline

Returns the difference in index of cellID respect to origin.

Definition at line 80 of file GridContainerIndices.h.

81  { return index(cellID) - index(origin); }
CellIndex_t index(CellID_t id) const
Returns the index of the element from its cell coordinates (no check!)
constexpr Point origin()
Returns a origin position with a point of the specified type.
Definition: geo_vectors.h:227
template<unsigned int DIMS>
CellIndex_t util::details::GridContainerIndicesBase< DIMS >::operator[] ( CellID_t  id) const
inline

Returns the index of the element from its cell coordinates (no check!)

Definition at line 76 of file GridContainerIndices.h.

76 { return index(id); }
CellIndex_t index(CellID_t id) const
Returns the index of the element from its cell coordinates (no check!)
template<unsigned int DIMS>
size_t util::details::GridContainerIndicesBase< DIMS >::size ( ) const
inline

Returns the number of cells in the grid.

Definition at line 68 of file GridContainerIndices.h.

68 { return indices.size(); }
IndexManager_t indices
the actual worker
DimSize_t size() const
Returns the size of the minor tensor.

Member Data Documentation

template<unsigned int DIMS>
util::details::GridContainerIndicesBase< DIMS >::__pad0__

Constructor: specifies the size of the container and allocates it.

Definition at line 65 of file GridContainerIndices.h.

template<unsigned int DIMS>
IndexManager_t util::details::GridContainerIndicesBase< DIMS >::indices
protected

the actual worker

Definition at line 86 of file GridContainerIndices.h.


The documentation for this class was generated from the following file: