21 #ifndef VTK_WRAPPING_CXX
23 #ifndef vtkmDataArray_h
24 #define vtkmDataArray_h
26 #include "vtkAcceleratorsVTKmModule.h"
28 #include "vtkmConfig.h"
30 #include <vtkm/List.h>
31 #include <vtkm/VecFromPortal.h>
32 #include <vtkm/VecTraits.h>
33 #include <vtkm/cont/ArrayHandle.h>
34 #include <vtkm/cont/VariantArrayHandle.h>
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>::PortalControl> >;
64 template <
typename V,
typename S>
92 std::unique_ptr<internal::ArrayHandleWrapperBase<T> > VtkmArray;
96 template <
typename T,
typename S>
98 const vtkm::cont::ArrayHandle<T, S>& ah)
101 ret->SetVtkmArrayHandle(ah);
106 #ifndef vtkmDataArray_cxx
124 #include "vtkmDataArray.hxx"
Base interface for all typed vtkDataArray subclasses.
abstract base class for most VTK objects
ValueType GetValue(vtkIdType valueIdx) const
concept methods for vtkGenericDataArray
vtkm::cont::VariantArrayHandle GetVtkmVariantArrayHandle() const
void SetValue(vtkIdType valueIdx, ValueType value)
bool AllocateTuples(vtkIdType numTuples)
concept methods for vtkGenericDataArray
void SetTypedTuple(vtkIdType tupleIdx, const ValueType *tuple)
vtkm::List< T, vtkm::Vec< T, 2 >, vtkm::Vec< T, 3 >, vtkm::Vec< T, 4 >, vtkm::VecFromPortal< typename vtkm::cont::ArrayHandle< T >::PortalControl > > VtkmTypesList
~vtkmDataArray() override
static vtkmDataArray * New()
void SetVtkmArrayHandle(const vtkm::cont::ArrayHandle< V, S > &ah)
void SetTypedComponent(vtkIdType tupleIdx, int compIdx, ValueType value)
void GetTypedTuple(vtkIdType tupleIdx, ValueType *tuple) const
ValueType GetTypedComponent(vtkIdType tupleIdx, int compIdx) const
bool ReallocateTuples(vtkIdType numTuples)
vtkTemplateTypeMacro(SelfType, GenericDataArrayType)
vtkmDataArray< typename vtkm::VecTraits< T >::BaseComponentType > * make_vtkmDataArray(const vtkm::cont::ArrayHandle< T, S > &ah)