VTK
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()
67  {
68  return this->Pointer;
69  }
70 
74  SpanIterator EndSpan()
75  {
76  return this->SpanEndPointer;
77  }
78 
83  {
84  return (this->Pointer >= this->EndPointer);
85  }
86 
87 protected:
88  DType *Pointer;
91  DType *EndPointer;
92  vtkIdType Increments[3];
93  vtkIdType ContinuousIncrements[3];
94 };
95 
96 #ifndef vtkImageIterator_cxx
97 #ifdef _MSC_VER
98 #pragma warning (push)
99 // The following is needed when the vtkImageIterator is declared
100 // dllexport and is used from another class in vtkCommonCore
101 #pragma warning (disable: 4910) // extern and dllexport incompatible
102 #endif
104  extern template class VTKCOMMONDATAMODEL_EXPORT vtkImageIterator
105 )
106 #ifdef _MSC_VER
107 #pragma warning (pop)
108 #endif
109 #endif
110 
111 #endif
112 // VTK-HeaderTest-Exclude: vtkImageIterator.h
SpanIterator BeginSpan()
Return an iterator (pointer) for the span.
int vtkIdType
Definition: vtkType.h:347
int vtkTypeBool
Definition: vtkABI.h:69
#define vtkExternTemplateMacro(decl)
A macro to declare extern templates for all numerical types.
Definition: vtkType.h:415
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
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