17 #ifndef vtkmlib_DataArrayConverters_h
18 #define vtkmlib_DataArrayConverters_h
20 #include "vtkAcceleratorsVTKmCoreModule.h"
21 #include "vtkmConfigCore.h"
26 #include <vtkm/cont/ArrayHandleSOA.h>
27 #include <vtkm/cont/Field.h>
28 #include <vtkm/cont/UnknownArrayHandle.h>
30 #include <type_traits>
39 class CoordinateSystem;
46 template <
typename DataArrayType, vtkm::IdComponent NumComponents>
49 template <
typename T, vtkm::IdComponent NumComponents>
53 typename std::conditional<NumComponents == 1, T, vtkm::Vec<T, NumComponents>>
::type;
54 using StorageType = vtkm::cont::internal::Storage<ValueType, vtkm::cont::StorageTagBasic>;
55 using ArrayHandleType = vtkm::cont::ArrayHandle<ValueType, vtkm::cont::StorageTagBasic>;
64 template <
typename T, vtkm::IdComponent NumComponents>
68 using StorageType = vtkm::cont::internal::Storage<ValueType, vtkm::cont::StorageTagSOA>;
69 using ArrayHandleType = vtkm::cont::ArrayHandle<ValueType, vtkm::cont::StorageTagSOA>;
73 vtkm::Id numValues = input->GetNumberOfTuples();
74 vtkm::cont::ArrayHandleSOA<ValueType> handle;
75 for (vtkm::IdComponent i = 0; i < NumComponents; ++i)
79 numValues, vtkm::CopyFlag::Off));
89 using StorageType = vtkm::cont::internal::Storage<T, vtkm::cont::StorageTagBasic>;
94 return vtkm::cont::make_ArrayHandle(
113 VTKACCELERATORSVTKMCORE_EXPORT
116 VTKACCELERATORSVTKMCORE_EXPORT
119 VTKACCELERATORSVTKMCORE_EXPORT
136 #endif // vtkmlib_ArrayConverters_h