17 #ifndef vtkmlib_Portals_h
18 #define vtkmlib_Portals_h
20 #include "vtkAcceleratorsVTKmModule.h"
21 #include "vtkmConfig.h"
28 #include <vtkm/cont/internal/IteratorFromArrayPortal.h>
32 template <
typename Type,
typename VTKDataArrayType_>
35 static const int NUM_COMPONENTS = vtkm::VecTraits<Type>::NUM_COMPONENTS;
51 VTKM_SUPPRESS_EXEC_WARNINGS
53 ValueType Get(vtkm::Id
index)
const;
55 void Set(vtkm::Id
index,
const ValueType&
value)
const;
57 typedef vtkm::cont::internal::IteratorFromArrayPortal<vtkArrayPortal>
76 VTKDataArrayType* VTKData;
82 static const int NUM_COMPONENTS = vtkm::VecTraits<Type>::NUM_COMPONENTS;
96 template <
typename OtherType>
104 VTKM_SUPPRESS_EXEC_WARNINGS
106 ValueType Get(vtkm::Id
index)
const;
108 void Set(vtkm::Id
index,
const ValueType&
value)
const;
110 typedef vtkm::cont::internal::IteratorFromArrayPortal<vtkPointsPortal>
130 ComponentType* Array;
135 #define VTKM_TEMPLATE_EXPORT_ArrayPortal(T, S) \
136 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \
137 vtkArrayPortal<const T, S<T>>; \
138 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT vtkArrayPortal<T, S<T>>; \
139 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \
140 vtkArrayPortal<const vtkm::Vec<T, 2>, S<T>>; \
141 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \
142 vtkArrayPortal<vtkm::Vec<T, 2>, S<T>>; \
143 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \
144 vtkArrayPortal<const vtkm::Vec<T, 3>, S<T>>; \
145 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \
146 vtkArrayPortal<vtkm::Vec<T, 3>, S<T>>; \
147 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \
148 vtkArrayPortal<const vtkm::Vec<T, 4>, S<T>>; \
149 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \
150 vtkArrayPortal<vtkm::Vec<T, 4>, S<T>>;
152 #define VTKM_TEMPLATE_IMPORT_ArrayPortal(T, S) \
153 template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT vtkArrayPortal<const T, S<T>>; \
154 template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT vtkArrayPortal<T, S<T>>; \
155 template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \
156 vtkArrayPortal<const vtkm::Vec<T, 2>, S<T>>; \
157 template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \
158 vtkArrayPortal<vtkm::Vec<T, 2>, S<T>>; \
159 template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \
160 vtkArrayPortal<const vtkm::Vec<T, 3>, S<T>>; \
161 template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \
162 vtkArrayPortal<vtkm::Vec<T, 3>, S<T>>; \
163 template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \
164 vtkArrayPortal<const vtkm::Vec<T, 4>, S<T>>; \
165 template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT \
166 vtkArrayPortal<vtkm::Vec<T, 4>, S<T>>;
168 #ifndef vtkmlib_Portals_cxx
169 #include <vtkm/cont/internal/ArrayPortalFromIterators.h>
196 #if VTKM_SIZE_LONG_LONG == 8
204 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT
205 vtkPointsPortal<vtkm::Vec<vtkm::Float32, 3>
const>;
206 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT
207 vtkPointsPortal<vtkm::Vec<vtkm::Float64, 3>
const>;
208 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT
209 vtkPointsPortal<vtkm::Vec<vtkm::Float32, 3>>;
210 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT
211 vtkPointsPortal<vtkm::Vec<vtkm::Float64, 3>>;
214 #endif // defined vtkmlib_Portals_cxx
216 #include "Portals.hxx"
217 #endif // vtkmlib_Portals_h
typename vtkPortalTraits< Type >::Type ValueType
Struct-Of-Arrays implementation of vtkGenericDataArray.
IteratorType GetIteratorBegin() const
typename vtkPortalTraits< Type >::ComponentType ComponentType
vtkm::cont::internal::IteratorFromArrayPortal< vtkArrayPortal > IteratorType
typename vtkPortalTraits< Type >::ComponentType ComponentType
vtkm::cont::internal::IteratorFromArrayPortal< vtkPointsPortal > IteratorType
Array-Of-Structs implementation of vtkGenericDataArray.
abstract superclass for arrays of numeric data
IteratorType GetIteratorEnd() const
VTKM_TEMPLATE_EXPORT_ArrayPortal(char, vtkAOSDataArrayTemplate)
IteratorType GetIteratorBegin() const
vtkm::Id GetNumberOfValues() const
VTKDataArrayType * GetVtkData() const
vtkm::Id GetNumberOfValues() const
IteratorType GetIteratorEnd() const
typename std::remove_const< T >::type ComponentType
vtkPoints * GetVtkData() const
VTKDataArrayType_ VTKDataArrayType
represent and manipulate 3D points
typename vtkPortalTraits< Type >::Type ValueType