VTK  9.2.5
vtkImageIterator.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkImageIterator.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
78 #ifndef vtkImageIterator_h
79 #define vtkImageIterator_h
80 
81 #include "vtkCommonDataModelModule.h" // For export macro
82 #include "vtkSystemIncludes.h"
83 class vtkImageData;
84 
85 template <class DType>
86 class VTKCOMMONDATAMODEL_EXPORT vtkImageIterator
87 {
88 public:
89  typedef DType* SpanIterator;
90 
96 
101 
105  void Initialize(vtkImageData* id, int* ext);
106 
110  void NextSpan();
111 
115  SpanIterator BeginSpan() { return this->Pointer; }
116 
120  SpanIterator EndSpan() { return this->SpanEndPointer; }
121 
125  vtkTypeBool IsAtEnd() { return (this->Pointer >= this->EndPointer); }
126 
127 protected:
128  DType* Pointer;
131  DType* EndPointer;
132  vtkIdType Increments[3];
133  vtkIdType ContinuousIncrements[3];
134 };
135 
136 #ifndef vtkImageIterator_cxx
137 #ifdef _MSC_VER
138 #pragma warning(push)
139 // The following is needed when the vtkImageIterator is declared
140 // dllexport and is used from another class in vtkCommonCore
141 #pragma warning(disable : 4910) // extern and dllexport incompatible
142 #endif
143 vtkExternTemplateMacro(extern template class VTKCOMMONDATAMODEL_EXPORT vtkImageIterator);
144 #ifdef _MSC_VER
145 #pragma warning(pop)
146 #endif
147 #endif
148 
149 #endif
150 // VTK-HeaderTest-Exclude: vtkImageIterator.h
topologically and geometrically regular array of data
Definition: vtkImageData.h:163
a simple image iterator
void Initialize(vtkImageData *id, int *ext)
Initialize the image iterator for a given image data, and given extent.
vtkImageIterator(vtkImageData *id, int *ext)
Create an image iterator for a given image data and a given extent.
vtkImageIterator()
Default empty constructor, useful only when creating an array of iterators You need to call Initializ...
SpanIterator BeginSpan()
Return an iterator (pointer) for the span.
void NextSpan()
Move the iterator to the next span.
SpanIterator EndSpan()
Return an iterator (pointer) for the end of the span.
vtkTypeBool IsAtEnd()
Test if the end of the extent has been reached.
int vtkTypeBool
Definition: vtkABI.h:69
vtkExternTemplateMacro(extern template class VTKCOMMONDATAMODEL_EXPORT vtkImageIterator)
int vtkIdType
Definition: vtkType.h:332