21#ifndef VTK_WRAPPING_CXX
23#ifndef vtkmDataArray_h
24#define vtkmDataArray_h
26#include "vtkAcceleratorsVTKmCoreModule.h"
28#include "vtkmConfigCore.h"
31#include <vtkm/VecFromPortal.h>
32#include <vtkm/VecTraits.h>
33#include <vtkm/cont/ArrayHandle.h>
34#include <vtkm/cont/UnknownArrayHandle.h>
49 static_assert(std::is_arithmetic<T>::value,
"T must be an integral or floating-point type");
57 using typename Superclass::ValueType;
59 using VtkmTypesList = vtkm::List<T, vtkm::Vec<T, 2>, vtkm::Vec<T, 3>, vtkm::Vec<T, 4>,
60 vtkm::VecFromPortal<typename vtkm::cont::ArrayHandle<T>::WritePortalType>>;
64 template <
typename V,
typename S>
92 std::unique_ptr<internal::ArrayHandleWrapperBase<T>> VtkmArray;
96template <
typename T,
typename S>
98 const vtkm::cont::ArrayHandle<T, S>& ah)
101 ret->SetVtkmArrayHandle(ah);
106#ifndef vtkmDataArray_cxx
124#include "vtkmlib/vtkmDataArray.hxx"
Abstract superclass for all arrays.
Base interface for all typed vtkDataArray subclasses.
ValueType GetValue(vtkIdType valueIdx) const
concept methods for vtkGenericDataArray
void SetValue(vtkIdType valueIdx, ValueType value)
bool AllocateTuples(vtkIdType numTuples)
concept methods for vtkGenericDataArray
vtkm::cont::UnknownArrayHandle GetVtkmUnknownArrayHandle() const
void SetTypedTuple(vtkIdType tupleIdx, const ValueType *tuple)
~vtkmDataArray() override
void SetVtkmArrayHandle(const vtkm::cont::ArrayHandle< V, S > &ah)
void SetTypedComponent(vtkIdType tupleIdx, int compIdx, ValueType value)
static vtkmDataArray * New()
void GetTypedTuple(vtkIdType tupleIdx, ValueType *tuple) const
ValueType GetTypedComponent(vtkIdType tupleIdx, int compIdx) const
bool ReallocateTuples(vtkIdType numTuples)
vtkm::List< T, vtkm::Vec< T, 2 >, vtkm::Vec< T, 3 >, vtkm::Vec< T, 4 >, vtkm::VecFromPortal< typename vtkm::cont::ArrayHandle< T >::WritePortalType > > VtkmTypesList
vtkTemplateTypeMacro(SelfType, GenericDataArrayType)
vtkmDataArray< typename vtkm::VecTraits< T >::BaseComponentType > * make_vtkmDataArray(const vtkm::cont::ArrayHandle< T, S > &ah)