VTK  9.6.20260325
vtkIndexedImplicitBackend.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
3// Funded by CEA, DAM, DIF, F-91297 Arpajon, France
4#ifndef vtkIndexedImplicitBackend_h
5#define vtkIndexedImplicitBackend_h
6
44
45#include "vtkCommonCoreModule.h"
46
47#include "vtkType.h"
48
49#include <memory>
50
51VTK_ABI_NAMESPACE_BEGIN
52class vtkDataArray;
53class vtkIdList;
54template <typename ValueType>
55class VTKCOMMONCORE_EXPORT vtkIndexedImplicitBackend final
56{
57public:
59
68
73 ValueType operator()(vtkIdType idx) const;
74
79 unsigned long getMemorySize() const;
80
85
90
91private:
92 struct Internals;
93 std::unique_ptr<Internals> Internal;
94};
95VTK_ABI_NAMESPACE_END
96
97#endif // vtkIndexedImplicitBackend_h
98
99#if defined(VTK_INDEXED_BACKEND_INSTANTIATING)
100
101#define VTK_INSTANTIATE_INDEXED_BACKEND(ValueType) \
102 VTK_ABI_NAMESPACE_BEGIN \
103 template class VTKCOMMONCORE_EXPORT vtkIndexedImplicitBackend<ValueType>; \
104 VTK_ABI_NAMESPACE_END
105
106#elif defined(VTK_USE_EXTERN_TEMPLATE)
107
108#ifndef VTK_INDEXED_BACKEND_TEMPLATE_EXTERN
109#define VTK_INDEXED_BACKEND_TEMPLATE_EXTERN
110#ifdef _MSC_VER
111#pragma warning(push)
112#pragma warning(disable : 4910) // extern and dllexport incompatible
113#endif
114VTK_ABI_NAMESPACE_BEGIN
115vtkExternTemplateMacro(extern template class VTKCOMMONCORE_EXPORT vtkIndexedImplicitBackend);
116VTK_ABI_NAMESPACE_END
117#ifdef _MSC_VER
118#pragma warning(pop)
119#endif
120#endif // VTK_INDEXED_IMPLICIT_BACKEND_TEMPLATE_EXTERN
121
122#endif
list of point or cell ids
Definition vtkIdList.h:135
A backend for the vtkImplicitArray framework allowing one to use a subset of a given data array,...
vtkDataArray * GetIndexArray() const
Get the original index array used for indirection.
unsigned long getMemorySize() const
Returns the smallest integer memory size in KiB needed to store the array.
vtkIndexedImplicitBackend(vtkDataArray *indexes, vtkDataArray *array)
Constructor.
ValueType operator()(vtkIdType idx) const
Indexing operation for the indexed array respecting the backend expectations of vtkImplicitArray
vtkDataArray * GetBaseArray() const
Get the original base array used for value lookup.
vtkIndexedImplicitBackend(vtkIdList *indexes, vtkDataArray *array)
Constructor.
#define vtkDataArray
#define vtkExternTemplateMacro(decl)
A macro to declare extern templates for all numerical types.
Definition vtkType.h:458
int vtkIdType
Definition vtkType.h:363