ITK
5.0.0
Insight Segmentation and Registration Toolkit
|
#include <itkIndexRange.h>
Modern C++11 range, supporting efficient iteration over the indices of an image grid space.
The following example prints all indices of an 2-D grid space of size 2x3.
The indices from IndexRange can also be used as consecutive locations of a ShapedImageNeighborhoodRange, for example:
IndexRange is designed to conform to Standard C++ Iterator requirements, so that it can be used in range-based for loop, and its iterators can be passed to Standard C++ algorithms.
Definition at line 80 of file itkIndexRange.h.
Classes | |
class | const_iterator |
Public Types | |
using | const_reverse_iterator = std::reverse_iterator< const_iterator > |
using | IndexType = Index< VDimension > |
using | iterator = const_iterator |
using | reverse_iterator = std::reverse_iterator< iterator > |
using | SizeType = Size< VDimension > |
Public Member Functions | |
iterator | begin () const noexcept |
const_iterator | cbegin () const noexcept |
const_iterator | cend () const noexcept |
const_reverse_iterator | crbegin () const noexcept |
const_reverse_iterator | crend () const noexcept |
IndexRange () noexcept | |
IndexRange (const SizeType &gridSize) | |
reverse_iterator | rbegin () const noexcept |
reverse_iterator | rend () const noexcept |
std::vcl_size_t | size () const noexcept |
template<bool VIsSubstitutionFailure = VBeginAtZero, typename TVoid = typename std::enable_if<!VIsSubstitutionFailure>::type> | |
IndexRange (const ImageRegion< VDimension > &imageRegion) | |
iterator | end () const noexcept |
bool | empty () const noexcept |
Static Public Attributes | |
static constexpr unsigned | Dimension = VDimension |
Private Types | |
using | MinIndexType = typename iterator::MinIndexType |
Static Private Member Functions | |
static IndexType | CalculateMaxIndex (const MinIndexType &minIndex, const SizeType &size) |
Private Attributes | |
IndexType | m_MaxIndex |
MinIndexType | m_MinIndex |
using itk::Experimental::IndexRange< VDimension, VBeginAtZero >::const_reverse_iterator = std::reverse_iterator<const_iterator> |
Definition at line 301 of file itkIndexRange.h.
using itk::Experimental::IndexRange< VDimension, VBeginAtZero >::IndexType = Index<VDimension> |
Definition at line 85 of file itkIndexRange.h.
using itk::Experimental::IndexRange< VDimension, VBeginAtZero >::iterator = const_iterator |
Definition at line 299 of file itkIndexRange.h.
|
private |
Definition at line 438 of file itkIndexRange.h.
using itk::Experimental::IndexRange< VDimension, VBeginAtZero >::reverse_iterator = std::reverse_iterator<iterator> |
Definition at line 300 of file itkIndexRange.h.
using itk::Experimental::IndexRange< VDimension, VBeginAtZero >::SizeType = Size<VDimension> |
Definition at line 84 of file itkIndexRange.h.
|
inlinenoexcept |
Default-constructor. Constructs an empty range.
Definition at line 308 of file itkIndexRange.h.
References itk::Index< VDimension >::back().
|
inlineexplicit |
Constructs a range of indices for the specified grid size.
Definition at line 321 of file itkIndexRange.h.
|
inlineexplicit |
Constructs a range of indices for the specified image region.
Definition at line 337 of file itkIndexRange.h.
|
inlinenoexcept |
Returns an iterator to the first index.
Definition at line 356 of file itkIndexRange.h.
References itk::Experimental::IndexRange< VDimension, VBeginAtZero >::m_MaxIndex, and itk::Experimental::IndexRange< VDimension, VBeginAtZero >::m_MinIndex.
Referenced by itk::Experimental::IndexRange< VDimension, VBeginAtZero >::cbegin(), and itk::Experimental::IndexRange< VDimension, VBeginAtZero >::rend().
|
inlinestaticprivate |
Definition at line 440 of file itkIndexRange.h.
|
inlinenoexcept |
Returns a const iterator to the first index. Provides only read-only access to the index data.
Definition at line 372 of file itkIndexRange.h.
References itk::Experimental::IndexRange< VDimension, VBeginAtZero >::begin().
|
inlinenoexcept |
Returns a const 'end iterator' for this range.
Definition at line 378 of file itkIndexRange.h.
References itk::Experimental::IndexRange< VDimension, VBeginAtZero >::end().
|
inlinenoexcept |
Returns a const reverse 'begin iterator' for this range.
Definition at line 396 of file itkIndexRange.h.
References itk::Experimental::IndexRange< VDimension, VBeginAtZero >::rbegin().
|
inlinenoexcept |
Returns a const reverse 'end iterator' for this range.
Definition at line 402 of file itkIndexRange.h.
References itk::Experimental::IndexRange< VDimension, VBeginAtZero >::rend().
|
inlinenoexcept |
Tells whether the range is empty.
Definition at line 422 of file itkIndexRange.h.
References itk::Experimental::IndexRange< VDimension, VBeginAtZero >::m_MaxIndex, and itk::Experimental::IndexRange< VDimension, VBeginAtZero >::m_MinIndex.
|
inlinenoexcept |
Returns an 'end iterator' for this range.
Definition at line 362 of file itkIndexRange.h.
References itk::Index< VDimension >::back(), itk::Experimental::IndexRange< VDimension, VBeginAtZero >::m_MaxIndex, and itk::Experimental::IndexRange< VDimension, VBeginAtZero >::m_MinIndex.
Referenced by itk::Experimental::IndexRange< VDimension, VBeginAtZero >::cend(), and itk::Experimental::IndexRange< VDimension, VBeginAtZero >::rbegin().
|
inlinenoexcept |
Returns a reverse 'begin iterator' for this range.
Definition at line 384 of file itkIndexRange.h.
References itk::Experimental::IndexRange< VDimension, VBeginAtZero >::end().
Referenced by itk::Experimental::IndexRange< VDimension, VBeginAtZero >::crbegin().
|
inlinenoexcept |
Returns a reverse 'end iterator' for this range.
Definition at line 390 of file itkIndexRange.h.
References itk::Experimental::IndexRange< VDimension, VBeginAtZero >::begin().
Referenced by itk::Experimental::IndexRange< VDimension, VBeginAtZero >::crend().
|
inlinenoexcept |
Returns the size of the range, that is the number of indices.
Definition at line 409 of file itkIndexRange.h.
References itk::Experimental::IndexRange< VDimension, VBeginAtZero >::m_MaxIndex, and itk::Experimental::IndexRange< VDimension, VBeginAtZero >::m_MinIndex.
|
static |
Definition at line 83 of file itkIndexRange.h.
|
private |
Definition at line 458 of file itkIndexRange.h.
Referenced by itk::Experimental::IndexRange< VDimension, VBeginAtZero >::begin(), itk::Experimental::IndexRange< VDimension, VBeginAtZero >::empty(), itk::Experimental::IndexRange< VDimension, VBeginAtZero >::end(), and itk::Experimental::IndexRange< VDimension, VBeginAtZero >::size().
|
private |
Definition at line 455 of file itkIndexRange.h.
Referenced by itk::Experimental::IndexRange< VDimension, VBeginAtZero >::begin(), itk::Experimental::IndexRange< VDimension, VBeginAtZero >::empty(), itk::Experimental::IndexRange< VDimension, VBeginAtZero >::end(), and itk::Experimental::IndexRange< VDimension, VBeginAtZero >::size().