ITK  5.4.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 
23 namespace itk
24 {
41 template <typename TImage>
42 class ITK_TEMPLATE_EXPORT ImageScanlineIterator : public ImageScanlineConstIterator<TImage>
43 {
44 public:
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;
56  using typename Superclass::PixelContainerPointer;
57  using typename Superclass::InternalPixelType;
58  using typename Superclass::PixelType;
59  using typename Superclass::AccessorType;
60 
62  ImageScanlineIterator() = default;
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 
92 protected:
96  Self &
97  operator=(const ImageScanlineConstIterator<TImage> & it);
98 };
101 // Deduction guide for class template argument deduction (CTAD).
102 template <typename TImage>
103 ImageScanlineIterator(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
itk::ImageConstIterator::PixelType
typename TImage::PixelType PixelType
Definition: itkImageConstIterator.h:124
itk::ImageScanlineIterator
A multi-dimensional iterator templated over image type that walks a region of pixels,...
Definition: itkImageScanlineIterator.h:42
itk::ImageConstIterator::OffsetType
typename TImage::OffsetType OffsetType
Definition: itkImageConstIterator.h:106
itk::ImageConstIterator::AccessorType
typename TImage::AccessorType AccessorType
Definition: itkImageConstIterator.h:128
itk::ImageConstIterator::RegionType
typename TImage::RegionType RegionType
Definition: itkImageConstIterator.h:109
itk::GTest::TypedefsAndConstructors::Dimension2::SizeType
ImageBaseType::SizeType SizeType
Definition: itkGTestTypedefsAndConstructors.h:49
itk::ImageScanlineIterator
ImageScanlineIterator(SmartPointer< TImage >, const typename TImage::RegionType &) -> ImageScanlineIterator< TImage >
itk::ImageScanlineIterator::Set
void Set(const PixelType &value) const
Definition: itkImageScanlineIterator.h:78
itk::ImageConstIterator::PixelContainerPointer
typename PixelContainer::Pointer PixelContainerPointer
Definition: itkImageConstIterator.h:118
itk::GTest::TypedefsAndConstructors::Dimension2::IndexType
ImageBaseType::IndexType IndexType
Definition: itkGTestTypedefsAndConstructors.h:50
itk::GTest::TypedefsAndConstructors::Dimension2::RegionType
ImageBaseType::RegionType RegionType
Definition: itkGTestTypedefsAndConstructors.h:54
itk::ImageScanlineIterator::Value
PixelType & Value()
Definition: itkImageScanlineIterator.h:87
itk::ImageConstIterator::InternalPixelType
typename TImage::InternalPixelType InternalPixelType
Definition: itkImageConstIterator.h:121
itk::ImageIterator
A multi-dimensional iterator templated over image type.
Definition: itkImageIterator.h:65
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::ImageConstIterator
A multi-dimensional image iterator templated over image type.
Definition: itkImageConstIterator.h:84
itk::ImageConstIterator::ImageType
TImage ImageType
Definition: itkImageConstIterator.h:112
itkImageScanlineConstIterator.h
itk::ImageConstIterator::PixelContainer
typename TImage::PixelContainer PixelContainer
Definition: itkImageConstIterator.h:117
AddImageFilter
Definition: itkAddImageFilter.h:81
itk::ImageScanlineConstIterator
A multi-dimensional iterator templated over image type that walks a region of pixels,...
Definition: itkImageScanlineConstIterator.h:64