11 #ifndef vtk_m_worklet_connectivity_graph_connectivity_h
12 #define vtk_m_worklet_connectivity_graph_connectivity_h
23 namespace connectivity
30 using ControlSignature = void(FieldIn start,
33 AtomicArrayInOut comp);
35 using ExecutionSignature = void(WorkIndex, _1, _2, _3, _4);
37 template <
typename InPortalType,
typename AtomicCompInOut>
41 const InPortalType& conn,
42 AtomicCompInOut& comp)
const
44 for (
vtkm::Id offset = start; offset < start + degree; offset++)
46 vtkm::Id neighbor = conn.Get(offset);
52 auto thisComp = comp.Get(index);
53 auto thatComp = comp.Get(neighbor);
71 template <
typename InputArrayType,
typename OutputArrayType>
72 static void Run(
const InputArrayType& numIndicesArray,
73 const InputArrayType& indexOffsetsArray,
74 const InputArrayType& connectivityArray,
75 OutputArrayType& componentsOut)
90 detail::GraphGraft{}, indexOffsetsArray, numIndicesArray, connectivityArray, componentsOut);
100 #endif //vtk_m_worklet_connectivity_graph_connectivity_h