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"
34class vtkImageData;
35
36template <class DType>
37class VTKCOMMONDATAMODEL_EXPORT vtkImageIterator
38{
39public:
40 typedef DType* SpanIterator;
41
47
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
78protected:
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
94vtkExternTemplateMacro(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
topologically and geometrically regular array of data
Definition: vtkImageData.h:54
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
#define vtkExternTemplateMacro(decl)
A macro to declare extern templates for all numerical types.
Definition: vtkType.h:395
int vtkIdType
Definition: vtkType.h:332