VTK  9.2.6
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 =========================================================================*/
29 #ifndef vtkImageIterator_h
30 #define vtkImageIterator_h
31 
32 #include "vtkCommonDataModelModule.h" // For export macro
33 #include "vtkSystemIncludes.h"
34 class vtkImageData;
35 
36 template <class DType>
37 class VTKCOMMONDATAMODEL_EXPORT vtkImageIterator
38 {
39 public:
40  typedef DType* SpanIterator;
41 
47 
51  vtkImageIterator(vtkImageData* id, int* ext);
52 
56  void Initialize(vtkImageData* id, int* ext);
57 
61  void NextSpan();
62 
66  SpanIterator BeginSpan() { return this->Pointer; }
67 
71  SpanIterator EndSpan() { return this->SpanEndPointer; }
72 
76  vtkTypeBool IsAtEnd() { return (this->Pointer >= this->EndPointer); }
77 
78 protected:
79  DType* Pointer;
82  DType* EndPointer;
83  vtkIdType Increments[3];
84  vtkIdType ContinuousIncrements[3];
85 };
86 
87 #ifndef vtkImageIterator_cxx
88 #ifdef _MSC_VER
89 #pragma warning(push)
90 // The following is needed when the vtkImageIterator is declared
91 // dllexport and is used from another class in vtkCommonCore
92 #pragma warning(disable : 4910) // extern and dllexport incompatible
93 #endif
94 vtkExternTemplateMacro(extern template class VTKCOMMONDATAMODEL_EXPORT vtkImageIterator);
95 #ifdef _MSC_VER
96 #pragma warning(pop)
97 #endif
98 #endif
99 
100 #endif
101 // VTK-HeaderTest-Exclude: vtkImageIterator.h
SpanIterator BeginSpan()
Return an iterator (pointer) for the span.
int vtkIdType
Definition: vtkType.h:332
int vtkTypeBool
Definition: vtkABI.h:69
topologically and geometrically regular array of data
Definition: vtkImageData.h:53
vtkExternTemplateMacro(extern template class VTKCOMMONDATAMODEL_EXPORT vtkImageIterator)
vtkTypeBool IsAtEnd()
Test if the end of the extent has been reached.
SpanIterator EndSpan()
Return an iterator (pointer) for the end of the span.
a simple image iterator