32 #ifndef vtkCompositeArray_h
33 #define vtkCompositeArray_h
35 #include "vtkCommonCoreModule.h"
42 VTK_ABI_NAMESPACE_BEGIN
43 template <
class ValueTypeT>
47 vtkArrayTypes::VTK_COMPOSITE_ARRAY>
51 #else // Fake the superclass for the wrappers.
60 using typename Superclass::ArrayTypeTag;
61 using typename Superclass::DataTypeTag;
62 using typename Superclass::ValueType;
72 #if defined(__VTK_WRAP__) || defined(__WRAP_GCCXML__)
116 VTK_ABI_NAMESPACE_END
121 #define vtkCreateCompositeWrappedArrayInterface(T) \
122 vtkCreateImplicitWrappedArrayInterface(T); \
123 void ConstructBackend(vtkDataArrayCollection* arrays); \
124 vtkIdType GetNumberOfArrays(); \
125 vtkDataArray* GetArray(vtkIdType idx); \
126 vtkIdType GetOffset(vtkIdType idx);
130 VTK_ABI_NAMESPACE_BEGIN
139 template <
typename ValueTypeT>
141 const std::vector<vtkDataArray*>& arrays);
142 VTK_ABI_NAMESPACE_END
145 #endif // vtkCompositeArray_h
151 #ifdef VTK_COMPOSITE_ARRAY_INSTANTIATING
152 #define VTK_COMPOSITE_ARRAY_INSTANTIATE(T) \
153 namespace vtkDataArrayPrivate \
155 VTK_ABI_NAMESPACE_BEGIN \
156 VTK_INSTANTIATE_VALUERANGE_ARRAYTYPE(vtkCompositeArray<T>, double); \
157 VTK_ABI_NAMESPACE_END \
159 VTK_ABI_NAMESPACE_BEGIN \
160 template class VTKCOMMONCORE_EXPORT vtkCompositeArray<T>; \
161 VTK_ABI_NAMESPACE_END \
164 VTK_ABI_NAMESPACE_BEGIN \
165 template VTKCOMMONCORE_EXPORT vtkSmartPointer<vtkCompositeArray<T>> ConcatenateDataArrays( \
166 const std::vector<vtkDataArray*>& arrays); \
167 VTK_ABI_NAMESPACE_END \
172 #define VTK_COMPOSITE_ARRAY_INSTANTIATE_VALUERANGE(T) \
173 namespace vtkDataArrayPrivate \
175 VTK_ABI_NAMESPACE_BEGIN \
176 VTK_INSTANTIATE_VALUERANGE_ARRAYTYPE(vtkCompositeArray<T>, T); \
177 VTK_ABI_NAMESPACE_END \
179 #elif defined(VTK_USE_EXTERN_TEMPLATE)
180 #ifndef VTK_COMPOSITE_ARRAY_EXTERN
181 #define VTK_COMPOSITE_ARRAY_EXTERN
183 #pragma warning(push)
186 #pragma warning(disable : 4910) // extern and dllexport incompatible
188 VTK_ABI_NAMESPACE_BEGIN
190 VTK_ABI_NAMESPACE_END
194 VTK_ABI_NAMESPACE_BEGIN
216 VTK_ABI_NAMESPACE_END
222 #endif // VTK_COMPOSITE_ARRAY_EXTERN
225 #elif defined(_MSC_VER) && !defined(VTK_BUILD_SHARED_LIBS)
226 #pragma warning(push)
229 #pragma warning(disable : 4091)
232 #pragma warning(disable : 4231)
245 #pragma warning(disable : 4910) // extern and dllexport incompatible
249 VTK_ABI_NAMESPACE_BEGIN
251 VTK_ABI_NAMESPACE_END
vtkSmartPointer< vtkCompositeArray< ValueTypeT > > ConcatenateDataArrays(const std::vector< vtkDataArray * > &arrays)
Abstract superclass for all arrays.
vtkImplicitArrayTypeMacro(SelfType, GenericDataArrayType)
#define VTK_DECLARE_VALUERANGE_ARRAYTYPE(ArrayType, ValueType)
Hold a reference to a vtkObjectBase instance.
Specialization of tuple ranges and iterators for vtkAOSDataArrayTemplate.
vtkExternTemplateMacro(extern template class VTKCOMMONCORE_EXPORT vtkCompositeArray)
static vtkCompositeArray< ValueType > * FastDownCast(vtkAbstractArray *source)
A faster alternative to SafeDownCast for downcasting vtkAbstractArrays.
vtkInstantiateTemplateMacro(extern template class VTKCOMMONCORE_EXPORT vtkArrayIteratorTemplate)
abstract superclass for arrays of numeric data
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
A read only array class that wraps an implicit function from integers to any value type supported by ...
maintain an ordered list of dataarray objects
vtkArrayDownCast_TemplateFastCastMacro(vtkCompositeArray)
#define vtkCreateImplicitWrappedArrayInterface(T)
static vtkImplicitArray * New()
A utility array for concatenating arrays into an implicit array.
void ConstructBackend(Params &&...params)
Utility method for setting backend parameterization directly.