18 #ifndef itkConstShapedNeighborhoodIterator_h
19 #define itkConstShapedNeighborhoodIterator_h
70 template <
typename TImage,
typename TBoundaryCondition = ZeroFluxNeumannBoundaryCondition<TImage>>
79 static constexpr
unsigned int Dimension = TImage::ImageDimension;
120 m_NeighborhoodIterator = s;
181 if (m_ListIterator == m_NeighborhoodIterator->GetActiveIndexList().end())
194 m_ListIterator = m_NeighborhoodIterator->GetActiveIndexList().begin();
200 m_ListIterator = m_NeighborhoodIterator->GetActiveIndexList().end();
206 return m_NeighborhoodIterator->GetPixel(*m_ListIterator);
212 return m_NeighborhoodIterator->GetOffset(*m_ListIterator);
215 typename IndexListType::value_type
218 return *m_ListIterator;
225 : m_NeighborhoodIterator(const_cast<
Self *>(s))
236 m_NeighborhoodIterator->SetPixel(*m_ListIterator, v);
274 using Superclass::GetImagePointer;
275 using Superclass::GetRadius;
276 using Superclass::GetIndex;
277 using Superclass::GetNeighborhoodIndex;
278 using Superclass::GetCenterNeighborhoodIndex;
279 using Superclass::GetRegion;
280 using Superclass::GetBeginIndex;
281 using Superclass::GoToBegin;
282 using Superclass::GoToEnd;
283 using Superclass::IsAtBegin;
284 using Superclass::IsAtEnd;
285 using Superclass::GetOffset;
286 using Superclass::operator==;
287 using Superclass::operator!=;
288 using Superclass::operator<;
289 using Superclass::operator>;
290 using Superclass::operator>=;
291 using Superclass::operator<=;
292 using Superclass::operator[];
293 using Superclass::GetElement;
294 using Superclass::SetLocation;
295 using Superclass::GetCenterPointer;
296 using Superclass::GetCenterPixel;
297 using Superclass::OverrideBoundaryCondition;
298 using Superclass::ResetBoundaryCondition;
299 using Superclass::GetBoundaryCondition;
300 using Superclass::GetNeedToUseBoundaryCondition;
301 using Superclass::SetNeedToUseBoundaryCondition;
302 using Superclass::NeedToUseBoundaryConditionOn;
303 using Superclass::NeedToUseBoundaryConditionOff;
304 using Superclass::Print;
305 using Superclass::operator-;
306 using Superclass::GetPixel;
307 using Superclass::SetRegion;
315 Superclass::operator=(orig);
316 m_ActiveIndexList = orig.m_ActiveIndexList;
317 m_CenterIsActive = orig.m_CenterIsActive;
325 PrintSelf(std::ostream &,
Indent)
const override;
330 ITK_ITERATOR_VIRTUAL
void
333 this->ActivateIndex(Superclass::GetNeighborhoodIndex(off));
335 ITK_ITERATOR_VIRTUAL
void
338 this->DeactivateIndex(Superclass::GetNeighborhoodIndex(off));
344 template <
typename TOffsets>
348 for (
const auto & offset : offsets)
350 this->ActivateOffset(offset);
356 ITK_ITERATOR_VIRTUAL
void
359 m_ActiveIndexList.clear();
360 m_CenterIsActive =
false;
365 const IndexListType &
368 return m_ActiveIndexList;
372 typename IndexListType::size_type
375 return m_ActiveIndexList.size();
382 CreateActiveListFromNeighborhood(
const NeighborhoodType &);
398 operator+=(
const OffsetType &);
404 operator-=(
const OffsetType &);
407 using Superclass::SetPixel;
408 using Superclass::SetCenterPixel;
427 bool m_CenterIsActive{
false };
432 #ifndef ITK_MANUAL_INSTANTIATION
433 # include "itkConstShapedNeighborhoodIterator.hxx"