20 #ifndef vtkmDataArray_h
21 #define vtkmDataArray_h
23 #include "vtkAcceleratorsVTKmCoreModule.h"
25 #include "vtkmConfigCore.h"
27 #include <vtkm/List.h>
28 #include <vtkm/VecFromPortal.h>
29 #include <vtkm/VecTraits.h>
30 #include <vtkm/cont/ArrayHandle.h>
31 #include <vtkm/cont/UnknownArrayHandle.h>
54 using typename Superclass::ValueType;
56 using VtkmTypesList = vtkm::List<T, vtkm::Vec<T, 2>, vtkm::Vec<T, 3>, vtkm::Vec<T, 4>,
57 vtkm::VecFromPortal<typename vtkm::cont::ArrayHandle<T>::WritePortalType>>;
61 template <
typename V,
typename S>
89 std::unique_ptr<internal::ArrayHandleWrapperBase<T>> VtkmArray;
93 template <
typename T,
typename S>
95 const vtkm::cont::ArrayHandle<T, S>& ah)
98 ret->SetVtkmArrayHandle(ah);
103 #ifndef vtkmDataArray_cxx
117 #endif // vtkmDataArray_cxx
119 #endif // vtkmDataArray_h
121 #include "vtkmlib/vtkmDataArray.hxx"
void SetVtkmArrayHandle(const vtkm::cont::ArrayHandle< V, S > &ah)
void SetTypedTuple(vtkIdType tupleIdx, const ValueType *tuple)
abstract base class for most VTK objects
~vtkmDataArray() override
bool AllocateTuples(vtkIdType numTuples)
concept methods for vtkGenericDataArray
Base interface for all typed vtkDataArray subclasses.
void SetTypedComponent(vtkIdType tupleIdx, int compIdx, ValueType value)
static vtkmDataArray * New()
void SetValue(vtkIdType valueIdx, ValueType value)
bool ReallocateTuples(vtkIdType numTuples)
void GetTypedTuple(vtkIdType tupleIdx, ValueType *tuple) const
ValueType GetValue(vtkIdType valueIdx) const
concept methods for vtkGenericDataArray
ValueType GetTypedComponent(vtkIdType tupleIdx, int compIdx) const
vtkmDataArray< typename vtkm::VecTraits< T >::BaseComponentType > * make_vtkmDataArray(const vtkm::cont::ArrayHandle< T, S > &ah)
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)
vtkm::cont::UnknownArrayHandle GetVtkmUnknownArrayHandle() const