17 #ifndef vtkmlib_Portals_h 18 #define vtkmlib_Portals_h 21 #include "vtkAcceleratorsVTKmModule.h" 22 #include "vtkmConfig.h" 29 #include <vtkm/cont/internal/IteratorFromArrayPortal.h> 33 template <
typename Type,
typename VTKDataArrayType_>
36 static const int NUM_COMPONENTS = vtkm::VecTraits<Type>::NUM_COMPONENTS;
52 VTKM_SUPPRESS_EXEC_WARNINGS
54 ValueType Get(vtkm::Id
index)
const;
56 void Set(vtkm::Id
index,
const ValueType&
value)
const;
58 typedef vtkm::cont::internal::IteratorFromArrayPortal<vtkArrayPortal>
77 VTKDataArrayType* VTKData;
83 static const int NUM_COMPONENTS = vtkm::VecTraits<Type>::NUM_COMPONENTS;
97 template <
typename OtherType>
105 VTKM_SUPPRESS_EXEC_WARNINGS
107 ValueType Get(vtkm::Id
index)
const;
109 void Set(vtkm::Id
index,
const ValueType&
value)
const;
111 typedef vtkm::cont::internal::IteratorFromArrayPortal<vtkPointsPortal>
131 ComponentType* Array;
136 #define VTKM_TEMPLATE_EXPORT_ArrayPortal(T, S) \ 137 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \ 138 vtkArrayPortal<const T, S<T>>; \ 139 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT vtkArrayPortal<T, S<T>>; \ 140 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \ 141 vtkArrayPortal<const vtkm::Vec<T, 2>, S<T>>; \ 142 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \ 143 vtkArrayPortal<vtkm::Vec<T, 2>, S<T>>; \ 144 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \ 145 vtkArrayPortal<const vtkm::Vec<T, 3>, S<T>>; \ 146 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \ 147 vtkArrayPortal<vtkm::Vec<T, 3>, S<T>>; \ 148 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \ 149 vtkArrayPortal<const vtkm::Vec<T, 4>, S<T>>; \ 150 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \ 151 vtkArrayPortal<vtkm::Vec<T, 4>, S<T>>; 153 #define VTKM_TEMPLATE_IMPORT_ArrayPortal(T, S) \ 154 template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT vtkArrayPortal<const T, S<T>>; \ 155 template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT vtkArrayPortal<T, S<T>>; \ 156 template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \ 157 vtkArrayPortal<const vtkm::Vec<T, 2>, S<T>>; \ 158 template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \ 159 vtkArrayPortal<vtkm::Vec<T, 2>, S<T>>; \ 160 template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \ 161 vtkArrayPortal<const vtkm::Vec<T, 3>, S<T>>; \ 162 template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \ 163 vtkArrayPortal<vtkm::Vec<T, 3>, S<T>>; \ 164 template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \ 165 vtkArrayPortal<const vtkm::Vec<T, 4>, S<T>>; \ 166 template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \ 167 vtkArrayPortal<vtkm::Vec<T, 4>, S<T>>; 169 #ifndef vtkmlib_Portals_cxx 170 #include <vtkm/cont/internal/ArrayPortalFromIterators.h> 197 #if VTKM_SIZE_LONG_LONG == 8 205 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT
206 vtkPointsPortal<vtkm::Vec<vtkm::Float32, 3>
const>;
207 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT
208 vtkPointsPortal<vtkm::Vec<vtkm::Float64, 3>
const>;
209 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT
210 vtkPointsPortal<vtkm::Vec<vtkm::Float32, 3>>;
211 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT
212 vtkPointsPortal<vtkm::Vec<vtkm::Float64, 3>>;
215 #endif // defined vtkmlib_Portals_cxx 217 #include "Portals.hxx" 219 #endif // vtkmlib_Portals_h typename vtkPortalTraits< Type >::Type ValueType
Struct-Of-Arrays implementation of vtkGenericDataArray.
IteratorType GetIteratorBegin() const
IteratorType GetIteratorEnd() const
vtkPoints * GetVtkData() const
typename vtkPortalTraits< Type >::ComponentType ComponentType
vtkm::Id GetNumberOfValues() const
vtkm::cont::internal::IteratorFromArrayPortal< vtkArrayPortal > IteratorType
VTKDataArrayType * GetVtkData() const
typename vtkPortalTraits< Type >::ComponentType ComponentType
vtkm::cont::internal::IteratorFromArrayPortal< vtkPointsPortal > IteratorType
Array-Of-Structs implementation of vtkGenericDataArray.
abstract superclass for arrays of numeric data
VTKM_TEMPLATE_EXPORT_ArrayPortal(char, vtkAOSDataArrayTemplate)
vtkm::Id GetNumberOfValues() const
IteratorType GetIteratorEnd() const
typename std::remove_const< T >::type ComponentType
VTKDataArrayType_ VTKDataArrayType
represent and manipulate 3D points
IteratorType GetIteratorBegin() const
typename vtkPortalTraits< Type >::Type ValueType