VTK
vtkArrayIteratorTemplate.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkArrayIteratorTemplate.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 vtkArrayIteratorTemplate_h
30#define vtkArrayIteratorTemplate_h
31
32#include "vtkCommonCoreModule.h" // For export macro
33#include "vtkArrayIterator.h"
34
35#include "vtkStdString.h" // For template instantiation
36#include "vtkUnicodeString.h" // For template instantiation
37#include "vtkVariant.h" // For template instantiation
38
39template <class T>
40class VTKCOMMONCORE_EXPORT vtkArrayIteratorTemplate : public vtkArrayIterator
41{
42public:
45 void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
46
54 void Initialize(vtkAbstractArray* array) VTK_OVERRIDE;
55
59 vtkAbstractArray* GetArray(){ return this->Array; }
60
61
66
71 { return this->Pointer[id]; }
72
79 {
80 this->Pointer[id] = value;
81 }
82
87
92
97
101 int GetDataType() VTK_OVERRIDE;
102
106 int GetDataTypeSize();
107
111 typedef T ValueType;
112
113protected:
116
117 T* Pointer;
118private:
119 vtkArrayIteratorTemplate(const vtkArrayIteratorTemplate&) VTK_DELETE_FUNCTION;
120 void operator=(const vtkArrayIteratorTemplate&) VTK_DELETE_FUNCTION;
121
122 void SetArray(vtkAbstractArray*);
123 vtkAbstractArray* Array;
124};
125
126#ifdef VTK_USE_EXTERN_TEMPLATE
127#ifndef vtkArrayIteratorTemplateInstantiate_cxx
128#ifdef _MSC_VER
129#pragma warning (push)
130// The following is needed when the vtkArrayIteratorTemplate is declared
131// dllexport and is used from another class in vtkCommonCore
132#pragma warning (disable: 4910) // extern and dllexport incompatible
133#endif
135 extern template class VTKCOMMONCORE_EXPORT vtkArrayIteratorTemplate)
136extern template class VTKCOMMONCORE_EXPORT
138extern template class VTKCOMMONCORE_EXPORT
140extern template class VTKCOMMONCORE_EXPORT
142#ifdef _MSC_VER
143#pragma warning (pop)
144#endif
145#endif
146#endif // VTK_USE_EXTERN_TEMPLATE
147
148#endif
149
150// VTK-HeaderTest-Exclude: vtkArrayIteratorTemplate.h
Abstract superclass for all arrays.
Implementation template for a array iterator.
T ValueType
This is the data type for the value.
static vtkArrayIteratorTemplate< T > * New()
vtkIdType GetNumberOfValues()
Must be called only after Initialize.
int GetDataType() override
Get the data type from the underlying array.
vtkTemplateTypeMacro(vtkArrayIteratorTemplate< T >, vtkArrayIterator) void PrintSelf(ostream &os
void SetValue(vtkIdType id, T value)
Sets the value at the index.
T & GetValue(vtkIdType id)
Must be called only after Initialize.
T * GetTuple(vtkIdType id)
Must be called only after Initialize.
int GetNumberOfComponents()
Must be called only after Initialize.
vtkIdType GetNumberOfTuples()
Must be called only after Initialize.
Abstract superclass to iterate over elements in an vtkAbstractArray.
a simple class to control print indentation
Definition: vtkIndent.h:40
@ value
Definition: vtkX3D.h:220
int vtkIdType
Definition: vtkType.h:287
#define vtkInstantiateTemplateMacro(decl)
A macro to instantiate a template over all numerical types.
Definition: vtkType.h:325