38#ifndef vtkIndexedArray_h
39#define vtkIndexedArray_h
41#include "vtkCommonCoreModule.h"
46VTK_ABI_NAMESPACE_BEGIN
47template <
class ValueTypeT>
50 :
public vtkImplicitArray<vtkIndexedImplicitBackend<ValueTypeT>, vtkArrayTypes::VTK_INDEXED_ARRAY>
52 using ImplicitArrayType =
65 using typename Superclass::ValueType;
75#if defined(__VTK_WRAP__) || defined(__WRAP_GCCXML__)
128#define vtkCreateIndexedWrappedArrayInterface(T) \
129 vtkCreateImplicitWrappedArrayInterface(T); \
130 void ConstructBackend(vtkIdList* indexes, vtkDataArray* array); \
131 void ConstructBackend(vtkDataArray* indexes, vtkDataArray* array); \
132 vtkDataArray* GetBaseArray(); \
133 vtkDataArray* GetIndexArray();
141#ifdef VTK_INDEXED_ARRAY_INSTANTIATING
142#define VTK_INDEXED_ARRAY_INSTANTIATE(T) \
143 namespace vtkDataArrayPrivate \
145 VTK_ABI_NAMESPACE_BEGIN \
146 VTK_INSTANTIATE_VALUERANGE_ARRAYTYPE(vtkIndexedArray<T>, double); \
147 VTK_ABI_NAMESPACE_END \
149 VTK_ABI_NAMESPACE_BEGIN \
150 template class VTKCOMMONCORE_EXPORT vtkIndexedArray<T>; \
151 VTK_ABI_NAMESPACE_END
155#define VTK_INDEXED_ARRAY_INSTANTIATE_VALUERANGE(T) \
156 namespace vtkDataArrayPrivate \
158 VTK_ABI_NAMESPACE_BEGIN \
159 VTK_INSTANTIATE_VALUERANGE_ARRAYTYPE(vtkIndexedArray<T>, T); \
160 VTK_ABI_NAMESPACE_END \
162#elif defined(VTK_USE_EXTERN_TEMPLATE)
163#ifndef VTK_INDEXED_ARRAY_EXTERN
164#define VTK_INDEXED_ARRAY_EXTERN
169#pragma warning(disable : 4910)
171VTK_ABI_NAMESPACE_BEGIN
177VTK_ABI_NAMESPACE_BEGIN
208#elif defined(_MSC_VER) && !defined(VTK_BUILD_SHARED_LIBS)
212#pragma warning(disable : 4091)
215#pragma warning(disable : 4231)
228#pragma warning(disable : 4910)
232VTK_ABI_NAMESPACE_BEGIN
Abstract superclass for all arrays.
std::integral_constant< int, VTK_OPAQUE > DataTypeTag
std::integral_constant< int, vtkArrayTypes::VTK_ABSTRACT_ARRAY > ArrayTypeTag
list of point or cell ids
A utility array for creating a wrapper array around an existing array and reindexing its components.
~vtkIndexedArray() override=default
vtkDataArray * GetIndexArray()
Get the original index array used for indirection.
vtkIndexedArray()=default
vtkImplicitArrayTypeMacro(SelfType, ImplicitArrayType)
vtkDataArray * GetBaseArray()
Get the original base array used for value lookup.
void ConstructBackend(vtkDataArray *indexes, vtkDataArray *array, bool mapTuples=false)
Set which indexes from array should be exposed and if we want to map values or tuples.
static vtkIndexedArray< ValueType > * FastDownCast(vtkAbstractArray *source)
A faster alternative to SafeDownCast for downcasting vtkAbstractArrays.
static vtkIndexedArray * New()
bool GetMapTuples()
Get the original index array used for indirection.
vtkIndexedArray< ValueTypeT > SelfType
void ConstructBackend(vtkIdList *indexes, vtkDataArray *array, bool mapTuples=false)
Set which indexes from array should be exposed and if we want to map values or tuples.
#define vtkArrayDownCast_TemplateFastCastMacro(ArrayT)
Same as vtkArrayDownCast_FastCastMacro, but treats ArrayT as a single-parameter template (the paramet...
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
#define VTK_DECLARE_VALUERANGE_ARRAYTYPE(ArrayType, ValueType)
#define vtkCreateImplicitWrappedArrayInterface(T)
#define vtkExternTemplateMacro(decl)
A macro to declare extern templates for all numerical types.
#define vtkInstantiateTemplateMacro(decl)
A macro to instantiate a template over all numerical types.