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>
39class CoordinateSystem;
51 static const char* name =
"NoNameVTKField";
55template <
typename DataArrayType, vtkm::IdComponent NumComponents>
58template <
typename T, vtkm::IdComponent NumComponents>
62 typename std::conditional<NumComponents == 1, T, vtkm::Vec<T, NumComponents>>::type;
63 using StorageType = vtkm::cont::internal::Storage<ValueType, vtkm::cont::StorageTagBasic>;
64 using ArrayHandleType = vtkm::cont::ArrayHandle<ValueType, vtkm::cont::StorageTagBasic>;
73template <
typename T, vtkm::IdComponent NumComponents>
77 using StorageType = vtkm::cont::internal::Storage<ValueType, vtkm::cont::StorageTagSOA>;
78 using ArrayHandleType = vtkm::cont::ArrayHandle<ValueType, vtkm::cont::StorageTagSOA>;
83 vtkm::cont::ArrayHandleSOA<ValueType> handle;
84 for (vtkm::IdComponent i = 0; i < NumComponents; ++i)
88 numValues, vtkm::CopyFlag::Off));
98 using StorageType = vtkm::cont::internal::Storage<T, vtkm::cont::StorageTagBasic>;
103 return vtkm::cont::make_ArrayHandle(
122VTKACCELERATORSVTKMCORE_EXPORT
125VTKACCELERATORSVTKMCORE_EXPORT
128VTKACCELERATORSVTKMCORE_EXPORT
135 using T = std::underlying_type<tovtkm::FieldsFlag>::type;
141 using T = std::underlying_type<tovtkm::FieldsFlag>::type;
tovtkm::FieldsFlag operator&(const tovtkm::FieldsFlag &a, const tovtkm::FieldsFlag &b)
tovtkm::FieldsFlag operator|(const tovtkm::FieldsFlag &a, const tovtkm::FieldsFlag &b)
Array-Of-Structs implementation of vtkGenericDataArray.
ValueType * GetPointer(vtkIdType valueIdx)
Get the address of a particular data index.
vtkIdType GetNumberOfTuples() const
Get the number of complete tuples (a component group) in the array.
represent and manipulate 3D points
Struct-Of-Arrays implementation of vtkGenericDataArray.
ValueType * GetComponentArrayPointer(int comp)
Return a pointer to a contiguous block of memory containing all values for a particular components (i...
VTKACCELERATORSVTKMCORE_EXPORT vtkDataArray * Convert(const vtkm::cont::Field &input)
static const char * NoNameVTKFieldName()
Temporary name for arrays converted from VTK that do not have a name.
vtkm::cont::ArrayHandle< ValueType, vtkm::cont::StorageTagBasic > ArrayHandleType
typename std::conditional< NumComponents==1, T, vtkm::Vec< T, NumComponents > >::type ValueType
vtkm::cont::internal::Storage< ValueType, vtkm::cont::StorageTagBasic > StorageType
static ArrayHandleType Wrap(vtkAOSDataArrayTemplate< T > *input)
static ArrayHandleType Wrap(vtkSOADataArrayTemplate< T > *input)
vtkm::cont::ArrayHandle< T, vtkm::cont::StorageTagBasic > ArrayHandleType
vtkm::cont::internal::Storage< T, vtkm::cont::StorageTagBasic > StorageType
vtkm::Vec< T, NumComponents > ValueType
vtkm::cont::internal::Storage< ValueType, vtkm::cont::StorageTagSOA > StorageType
static ArrayHandleType Wrap(vtkSOADataArrayTemplate< T > *input)
vtkm::cont::ArrayHandle< ValueType, vtkm::cont::StorageTagSOA > ArrayHandleType