18#ifndef itkConstShapedNeighborhoodIterator_h
19#define itkConstShapedNeighborhoodIterator_h
73template <
typename TImage,
typename TBoundaryCondition = ZeroFluxNeumannBoundaryCondition<TImage>>
82 static constexpr unsigned int Dimension = TImage::ImageDimension;
208 [[nodiscard]]
typename IndexListType::value_type
279 using Superclass::operator==;
280#ifndef ITK_EXPERIMENTAL_CXX20_REWRITTEN_UNEQUAL_OPERATOR
281 using Superclass::operator!=;
283 using Superclass::operator<;
284 using Superclass::operator>;
285 using Superclass::operator>=;
286 using Superclass::operator<=;
287 using Superclass::operator[];
301 using Superclass::operator-;
339 template <
typename TOffsets>
343 for (
const auto & offset : offsets)
358 const IndexListType &
365 typename IndexListType::size_type
375 template <
typename TNeighborPixel>
411 friend struct ConstIterator;
433template <
typename TImage>
436 const typename TImage::RegionType &)
441#ifndef ITK_MANUAL_INSTANTIATION
442# include "itkConstShapedNeighborhoodIterator.hxx"
PixelType GetCenterPixel() const
void SetRegion(const RegionType ®ion)
RegionType GetRegion() const
void OverrideBoundaryCondition(const ImageBoundaryConditionPointerType i)
PixelType GetPixel(const NeighborIndexType i) const
void NeedToUseBoundaryConditionOff()
bool GetNeedToUseBoundaryCondition() const
ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION(Self)
void SetNeedToUseBoundaryCondition(bool b)
void NeedToUseBoundaryConditionOn()
void SetBoundaryCondition(const TBoundaryCondition &c)
const ImageType * GetImagePointer() const
IndexType GetIndex() const
IndexType GetBeginIndex() const
ImageBoundaryConditionPointerType GetBoundaryCondition() const
void SetLocation(const IndexType &position)
void ResetBoundaryCondition()
Const version of ShapedNeighborhoodIterator, defining iteration of a local N-dimensional neighborhood...
IndexListType::size_type GetActiveIndexListSize() const
Index< Self::Dimension > IndexType
IndexListType m_ActiveIndexList
static constexpr unsigned int Dimension
ConstIterator End() const
typename TImage::RegionType RegionType
void PrintSelf(std::ostream &, Indent) const override
typename OffsetType::OffsetValueType OffsetValueType
typename TImage::PixelType PixelType
void ActivateIndex(NeighborIndexType)
ImageBoundaryCondition< ImageType > * ImageBoundaryConditionPointerType
void DeactivateOffset(const OffsetType &off)
void CreateActiveListFromNeighborhood(const NeighborhoodType &neighborhood)
ConstShapedNeighborhoodIterator()=default
void ActivateOffset(const OffsetType &off)
ConstShapedNeighborhoodIterator Self
typename SizeType::SizeValueType SizeValueType
TBoundaryCondition BoundaryConditionType
typename IndexListType::const_iterator IndexListConstIterator
Self & operator-=(const OffsetType &)
Self & operator=(const Self &orig)
ConstShapedNeighborhoodIterator(const SizeType &radius, const TImage *ptr, const RegionType ®ion)
typename TImage::InternalPixelType InternalPixelType
Neighborhood< PixelType, Self::Dimension > NeighborhoodType
typename IndexListType::iterator IndexListIterator
typename IndexType::IndexValueType IndexValueType
ConstIterator Begin() const
InternalPixelType * GetCenterPointer()
void CreateActiveListFromNeighborhood(const Neighborhood< TNeighborPixel, Self::Dimension > &)
void DeactivateIndex(NeighborIndexType)
ConstShapedNeighborhoodIterator(const ConstShapedNeighborhoodIterator &)=delete
Self & operator+=(const OffsetType &)
void ActivateOffsets(const TOffsets &offsets)
typename NeighborhoodType::NeighborIndexType NeighborIndexType
~ConstShapedNeighborhoodIterator() override=default
NeighborhoodIterator< TImage, TBoundaryCondition > Superclass
const IndexListType & GetActiveIndexList() const
std::list< NeighborIndexType > IndexListType
A virtual base object that defines an interface to a class of boundary condition objects for use by n...
Control indentation during Print() invocation.
itk::Size< VDimension > SizeType
void SetCenterPixel(const PixelType &p)
Offset< VDimension > OffsetType
void SetPixel(const unsigned int n, const PixelType &v, bool &status)
Self & operator=(const Self &orig)
itk::Size< VDimension > RadiusType
A light-weight container object for storing an N-dimensional neighborhood of values.
TImage::InternalPixelType *& GetElement(NeighborIndexType i)
OffsetType GetOffset(NeighborIndexType i) const
void Print(std::ostream &os) const
virtual NeighborIndexType GetNeighborhoodIndex(const OffsetType &) const
NeighborIndexType GetCenterNeighborhoodIndex() const
SizeValueType NeighborIndexType
const SizeType GetRadius() const
ShapedNeighborhoodIterator Self
friend struct ConstIterator
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
ConstShapedNeighborhoodIterator(const typename TImage::SizeType &, SmartPointer< TImage >, const typename TImage::RegionType &) -> ConstShapedNeighborhoodIterator< std::remove_const_t< TImage > >
ConstIterator & operator=(const ConstIterator &o)=default
Self * m_NeighborhoodIterator
OffsetType GetNeighborhoodOffset() const
const ConstIterator & operator++()
IndexListType::const_iterator m_ListIterator
const ConstIterator & operator--()
void ProtectedSet(const PixelType &v) const
IndexListType::value_type GetNeighborhoodIndex() const
ConstIterator(const ConstIterator &o)
ConstIterator(const Self *s, const typename IndexListType::const_iterator &li)
bool operator==(const ConstIterator &o) const
Represent a n-dimensional index in a n-dimensional image.
itk::IndexValueType IndexValueType
itk::OffsetValueType OffsetValueType
itk::SizeValueType SizeValueType