ITK  6.0.0
Insight Toolkit
itkImageScanlineIterator.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * https://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18#ifndef itkImageScanlineIterator_h
19#define itkImageScanlineIterator_h
20
22
23namespace itk
24{
41template <typename TImage>
42class ITK_TEMPLATE_EXPORT ImageScanlineIterator : public ImageScanlineConstIterator<TImage>
43{
44public:
48
50 using typename Superclass::IndexType;
51 using typename Superclass::SizeType;
52 using typename Superclass::OffsetType;
53 using typename Superclass::RegionType;
54 using typename Superclass::ImageType;
55 using typename Superclass::PixelContainer;
57 using typename Superclass::InternalPixelType;
58 using typename Superclass::PixelType;
59 using typename Superclass::AccessorType;
60
63
66 ImageScanlineIterator(TImage * ptr, const RegionType & region);
67
75
77 void
78 Set(const PixelType & value) const
79 {
80 this->m_PixelAccessorFunctor.Set(*(const_cast<InternalPixelType *>(this->m_Buffer + this->m_Offset)), value);
81 }
82
86 PixelType &
88 {
89 return *(const_cast<InternalPixelType *>(this->m_Buffer + this->m_Offset));
90 }
91
92protected:
96 Self &
98};
101// Deduction guide for class template argument deduction (CTAD).
102template <typename TImage>
103ImageScanlineIterator(SmartPointer<TImage>, const typename TImage::RegionType &)->ImageScanlineIterator<TImage>;
104
105} // end namespace itk
106
107#ifndef ITK_MANUAL_INSTANTIATION
108# include "itkImageScanlineIterator.hxx"
109#endif
110
111#endif
A multi-dimensional image iterator templated over image type.
typename TImage::PixelContainer PixelContainer
typename TImage::OffsetType OffsetType
typename TImage::InternalPixelType InternalPixelType
typename PixelContainer::Pointer PixelContainerPointer
typename TImage::AccessorType AccessorType
typename TImage::RegionType RegionType
typename TImage::PixelType PixelType
A multi-dimensional iterator templated over image type.
A multi-dimensional iterator templated over image type that walks a region of pixels,...
A multi-dimensional iterator templated over image type that walks a region of pixels,...
ImageScanlineIterator(const ImageScanlineConstIterator< TImage > &it)
Self & operator=(const ImageScanlineConstIterator< TImage > &it)
ImageScanlineIterator(const ImageIterator< TImage > &it)
ImageScanlineIterator(TImage *ptr, const RegionType &region)
void Set(const PixelType &value) const
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
ImageScanlineIterator(SmartPointer< TImage >, const typename TImage::RegionType &) -> ImageScanlineIterator< TImage >