VTK  9.1.0
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 =========================================================================*/
75 #ifndef vtkImageIterator_h
76 #define vtkImageIterator_h
77 
78 #include "vtkCommonDataModelModule.h" // For export macro
79 #include "vtkSystemIncludes.h"
80 class vtkImageData;
81 
82 template <class DType>
83 class VTKCOMMONDATAMODEL_EXPORT vtkImageIterator
84 {
85 public:
86  typedef DType* SpanIterator;
87 
93 
98 
102  void Initialize(vtkImageData* id, int* ext);
103 
107  void NextSpan();
108 
112  SpanIterator BeginSpan() { return this->Pointer; }
113 
117  SpanIterator EndSpan() { return this->SpanEndPointer; }
118 
122  vtkTypeBool IsAtEnd() { return (this->Pointer >= this->EndPointer); }
123 
124 protected:
125  DType* Pointer;
128  DType* EndPointer;
129  vtkIdType Increments[3];
130  vtkIdType ContinuousIncrements[3];
131 };
132 
133 #ifndef vtkImageIterator_cxx
134 #ifdef _MSC_VER
135 #pragma warning(push)
136 // The following is needed when the vtkImageIterator is declared
137 // dllexport and is used from another class in vtkCommonCore
138 #pragma warning(disable : 4910) // extern and dllexport incompatible
139 #endif
140 vtkExternTemplateMacro(extern template class VTKCOMMONDATAMODEL_EXPORT vtkImageIterator);
141 #ifdef _MSC_VER
142 #pragma warning(pop)
143 #endif
144 #endif
145 
146 #endif
147 // VTK-HeaderTest-Exclude: vtkImageIterator.h
vtkIdType
int vtkIdType
Definition: vtkType.h:332
vtkImageIterator::EndSpan
SpanIterator EndSpan()
Return an iterator (pointer) for the end of the span.
Definition: vtkImageIterator.h:117
vtkImageIterator::vtkImageIterator
vtkImageIterator()
Default empty constructor, useful only when creating an array of iterators You need to call Initializ...
vtkImageIterator::IsAtEnd
vtkTypeBool IsAtEnd()
Test if the end of the extent has been reached.
Definition: vtkImageIterator.h:122
vtkImageIterator::BeginSpan
SpanIterator BeginSpan()
Return an iterator (pointer) for the span.
Definition: vtkImageIterator.h:112
vtkImageIterator::SpanIterator
DType * SpanIterator
Definition: vtkImageIterator.h:86
vtkImageIterator::SliceEndPointer
DType * SliceEndPointer
Definition: vtkImageIterator.h:127
vtkImageIterator::NextSpan
void NextSpan()
Move the iterator to the next span.
vtkImageIterator::vtkImageIterator
vtkImageIterator(vtkImageData *id, int *ext)
Create an image iterator for a given image data and a given extent.
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:157
vtkExternTemplateMacro
vtkExternTemplateMacro(extern template class VTKCOMMONDATAMODEL_EXPORT vtkImageIterator)
vtkImageIterator::EndPointer
DType * EndPointer
Definition: vtkImageIterator.h:128
vtkImageIterator::Initialize
void Initialize(vtkImageData *id, int *ext)
Initialize the image iterator for a given image data, and given extent.
vtkImageIterator
a simple image iterator
Definition: vtkImageIterator.h:84
vtkImageIterator::SpanEndPointer
DType * SpanEndPointer
Definition: vtkImageIterator.h:126
vtkImageIterator::Pointer
DType * Pointer
Definition: vtkImageIterator.h:125
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkSystemIncludes.h