VTK  9.0.1
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 =========================================================================*/
26 #ifndef vtkImageIterator_h
27 #define vtkImageIterator_h
28 
29 #include "vtkCommonDataModelModule.h" // For export macro
30 #include "vtkSystemIncludes.h"
31 class vtkImageData;
32 
33 template <class DType>
34 class VTKCOMMONDATAMODEL_EXPORT vtkImageIterator
35 {
36 public:
37  typedef DType* SpanIterator;
38 
44 
48  vtkImageIterator(vtkImageData* id, int* ext);
49 
53  void Initialize(vtkImageData* id, int* ext);
54 
58  void NextSpan();
59 
63  SpanIterator BeginSpan() { return this->Pointer; }
64 
68  SpanIterator EndSpan() { return this->SpanEndPointer; }
69 
73  vtkTypeBool IsAtEnd() { return (this->Pointer >= this->EndPointer); }
74 
75 protected:
76  DType* Pointer;
79  DType* EndPointer;
80  vtkIdType Increments[3];
81  vtkIdType ContinuousIncrements[3];
82 };
83 
84 #ifndef vtkImageIterator_cxx
85 #ifdef _MSC_VER
86 #pragma warning(push)
87 // The following is needed when the vtkImageIterator is declared
88 // dllexport and is used from another class in vtkCommonCore
89 #pragma warning(disable : 4910) // extern and dllexport incompatible
90 #endif
91 vtkExternTemplateMacro(extern template class VTKCOMMONDATAMODEL_EXPORT vtkImageIterator);
92 #ifdef _MSC_VER
93 #pragma warning(pop)
94 #endif
95 #endif
96 
97 #endif
98 // VTK-HeaderTest-Exclude: vtkImageIterator.h
vtkIdType
int vtkIdType
Definition: vtkType.h:338
vtkImageIterator::EndSpan
SpanIterator EndSpan()
Return an iterator (pointer) for the end of the span.
Definition: vtkImageIterator.h:68
vtkImageIterator::IsAtEnd
vtkTypeBool IsAtEnd()
Test if the end of the extent has been reached.
Definition: vtkImageIterator.h:73
vtkImageIterator::BeginSpan
SpanIterator BeginSpan()
Return an iterator (pointer) for the span.
Definition: vtkImageIterator.h:63
vtkImageIterator::SpanIterator
DType * SpanIterator
Definition: vtkImageIterator.h:37
vtkImageIterator::SliceEndPointer
DType * SliceEndPointer
Definition: vtkImageIterator.h:78
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:41
vtkExternTemplateMacro
vtkExternTemplateMacro(extern template class VTKCOMMONDATAMODEL_EXPORT vtkImageIterator)
vtkImageIterator::EndPointer
DType * EndPointer
Definition: vtkImageIterator.h:79
vtkImageIterator
a simple image iterator
Definition: vtkImageIterator.h:34
vtkImageIterator::SpanEndPointer
DType * SpanEndPointer
Definition: vtkImageIterator.h:77
vtkImageIterator::Pointer
DType * Pointer
Definition: vtkImageIterator.h:76
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkSystemIncludes.h