17 #ifndef vtkmlib_Portals_h 
   18 #define vtkmlib_Portals_h 
   21 #include "vtkAcceleratorsVTKmModule.h" 
   22 #include "vtkmConfig.h"  
   27 #include <vtkm/cont/internal/IteratorFromArrayPortal.h> 
   32 template <
typename Type, 
typename VTKDataArrayType_>
 
   35   static const int NUM_COMPONENTS = vtkm::VecTraits<Type>::NUM_COMPONENTS;
 
   48   VTKM_SUPPRESS_EXEC_WARNINGS
 
   52   VTKM_SUPPRESS_EXEC_WARNINGS
 
   54   inline ValueType Get(vtkm::Id 
index) 
const;
 
   56   VTKM_SUPPRESS_EXEC_WARNINGS
 
   58   inline void Set(vtkm::Id 
index, 
const ValueType& 
value) 
const;
 
   60   typedef vtkm::cont::internal::IteratorFromArrayPortal<vtkArrayPortal> 
IteratorType;
 
   72   VTKDataArrayType* VTKData;
 
   76 template <
typename Type>
 
   79   static const int NUM_COMPONENTS = vtkm::VecTraits<Type>::NUM_COMPONENTS;
 
   91   VTKM_SUPPRESS_EXEC_WARNINGS
 
   95   VTKM_SUPPRESS_EXEC_WARNINGS
 
   97   inline ValueType Get(vtkm::Id 
index) 
const;
 
   99   VTKM_SUPPRESS_EXEC_WARNINGS
 
  101   inline void Set(vtkm::Id 
index, 
const ValueType& 
value) 
const;
 
  103   typedef vtkm::cont::internal::IteratorFromArrayPortal<vtkPointsPortal> 
IteratorType;
 
  116   ComponentType* Array;
 
  121 #ifndef vtkmlib_Portals_cxx 
  122 #include <vtkm/cont/internal/ArrayPortalFromIterators.h> 
  126 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT
 
  127   vtkPointsPortal<vtkm::Vec<vtkm::Float32, 3> 
const>;
 
  128 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT
 
  129   vtkPointsPortal<vtkm::Vec<vtkm::Float64, 3> 
const>;
 
  130 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT
 
  131   vtkPointsPortal<vtkm::Vec<vtkm::Float32, 3> >;
 
  132 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT
 
  133   vtkPointsPortal<vtkm::Vec<vtkm::Float64, 3> >;
 
  136 #endif // defined vtkmlib_Portals_cxx 
  138 #include "Portals.hxx" 
  139 #endif // vtkmlib_Portals_h