20 #ifndef vtkmConnectivityExec_h 21 #define vtkmConnectivityExec_h 23 #ifndef VTK_WRAPPING_CXX 27 #include <vtkm/CellShape.h> 28 #include <vtkm/TopologyElementTag.h> 29 #include <vtkm/cont/ArrayHandle.h> 30 #include <vtkm/VecFromPortal.h> 32 #include <vtkm/cont/serial/DeviceAdapterSerial.h> 33 #include <vtkm/cont/cuda/DeviceAdapterCuda.h> 34 #include <vtkm/cont/tbb/DeviceAdapterTBB.h> 41 typedef vtkm::cont::ArrayHandle<vtkm::UInt8, tovtkm::vtkAOSArrayContainerTag>
43 typedef vtkm::cont::ArrayHandle<vtkm::Id, tovtkm::vtkCellArrayContainerTag>
44 ConnectivityHandleType;
45 typedef vtkm::cont::ArrayHandle<vtkm::Id, tovtkm::vtkAOSArrayContainerTag>
48 typedef typename ShapeHandleType::template ExecutionTypes<Device>::PortalConst
50 typedef typename ConnectivityHandleType::template ExecutionTypes<
51 Device>::PortalConst ConnectivityPortalType;
53 typename OffsetHandleType::template ExecutionTypes<Device>::PortalConst
54 IndexOffsetPortalType;
59 VTKM_SUPPRESS_EXEC_WARNINGS
65 const ConnectivityPortalType& connPortal,
66 const IndexOffsetPortalType& indexOffsetPortal);
68 VTKM_SUPPRESS_EXEC_WARNINGS
70 vtkm::Id GetNumberOfElements()
const;
77 typedef vtkm::VecFromPortal<ConnectivityPortalType>
IndicesType;
88 ShapePortalType Shapes;
89 ConnectivityPortalType Connectivity;
90 IndexOffsetPortalType IndexOffsets;
96 typedef vtkm::cont::ArrayHandle<vtkm::Id, tovtkm::vtkCellArrayContainerTag>
97 ConnectivityHandleType;
98 typedef typename ConnectivityHandleType::template ExecutionTypes<
99 Device>::PortalConst ConnectivityPortalType;
104 VTKM_SUPPRESS_EXEC_WARNINGS
111 vtkm::IdComponent numPointsPerCell,
112 vtkm::UInt8 shapeType);
115 vtkm::Id GetNumberOfElements()
const;
133 ConnectivityPortalType Connectivity;
134 vtkm::Id NumberOfCells;
135 vtkm::IdComponent NumberOfPointsPerCell;
136 vtkm::UInt8 ShapeType;
142 typedef vtkm::cont::ArrayHandle<vtkm::Id> ConnectivityHandleType;
143 typedef vtkm::cont::ArrayHandle<vtkm::IdComponent> NumIndicesHandleType;
144 typedef vtkm::cont::ArrayHandle<vtkm::Id> OffsetHandleType;
146 typedef typename ConnectivityHandleType::template ExecutionTypes<
147 Device>::PortalConst ConnectivityPortalType;
149 typedef typename OffsetHandleType::template ExecutionTypes<Device>::PortalConst
150 IndexOffsetPortalType;
152 typedef typename NumIndicesHandleType::template ExecutionTypes<Device>::PortalConst
153 NumIndicesPortalType;
158 VTKM_SUPPRESS_EXEC_WARNINGS
164 const NumIndicesPortalType& numIndicesPortal,
165 const IndexOffsetPortalType& indexOffsetPortal);
168 vtkm::Id GetNumberOfElements()
const;
186 ConnectivityPortalType Connectivity;
187 NumIndicesPortalType NumIndices;
188 IndexOffsetPortalType IndexOffsets;
196 #ifdef VTKM_ENABLE_TBB 203 #if defined(VTKM_ENABLE_CUDA) && defined(VTKM_CUDA) vtkm::CellShapeTagGeneric CellShapeTag
vtkm::Id SchedulingRangeType
vtkm::VecFromPortal< ConnectivityPortalType > IndicesType
vtkm::VecFromPortal< ConnectivityPortalType > IndicesType
vtkm::Id SchedulingRangeType
vtkm::CellShapeTagVertex CellShapeTag
VTKM_EXEC CellShapeTag GetCellShape(vtkm::Id) const
vtkm::CellShapeTagGeneric CellShapeTag
vtkm::VecFromPortal< ConnectivityPortalType > IndicesType
vtkm::Id SchedulingRangeType